Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 28db4ed5 authored by Ben Dooks's avatar Ben Dooks
Browse files

ARM: Merge next-samsung-devupdates2

Merge branch 'next-samsung-devupdates2' into next-samsung
parents 87aef30e 91492b4a
Loading
Loading
Loading
Loading
+7 −2
Original line number Original line Diff line number Diff line
@@ -40,11 +40,16 @@ obj-$(CONFIG_S3C64XX_DMA) += dma.o


obj-$(CONFIG_S3C_ADC)		+= dev-adc.o
obj-$(CONFIG_S3C_ADC)		+= dev-adc.o


# SPI support
obj-$(CONFIG_S3C64XX_DEV_SPI) += dev-spi.o

# Device support
obj-y				+= dev-audio.o

# Device setup
# Device setup


obj-$(CONFIG_S3C64XX_SETUP_I2C0) += setup-i2c0.o
obj-$(CONFIG_S3C64XX_SETUP_I2C0) += setup-i2c0.o
obj-$(CONFIG_S3C64XX_SETUP_I2C1) += setup-i2c1.o
obj-$(CONFIG_S3C64XX_SETUP_I2C1) += setup-i2c1.o
obj-$(CONFIG_S3C64XX_SETUP_FB_24BPP) += setup-fb-24bpp.o
obj-$(CONFIG_S3C64XX_SETUP_FB_24BPP) += setup-fb-24bpp.o
obj-$(CONFIG_S3C64XX_SETUP_SDHCI_GPIO) += setup-sdhci-gpio.o
obj-$(CONFIG_S3C64XX_SETUP_SDHCI_GPIO) += setup-sdhci-gpio.o
obj-$(CONFIG_SND_S3C24XX_SOC) += dev-audio.o
obj-$(CONFIG_SPI_S3C64XX) += dev-spi.o
+6 −0
Original line number Original line Diff line number Diff line
@@ -132,6 +132,12 @@ config S3C_DEV_NAND
	help
	help
	  Compile in platform device definition for NAND controller
	  Compile in platform device definition for NAND controller


config S3C64XX_DEV_SPI
	bool
	help
	  Compile in platform device definitions for S3C64XX's type
	  SPI controllers.

comment "Power management"
comment "Power management"


config SAMSUNG_PM_DEBUG
config SAMSUNG_PM_DEBUG
+19 −5
Original line number Original line Diff line number Diff line
@@ -262,6 +262,7 @@ static irqreturn_t s3c_adc_irq(int irq, void *pw)
{
{
	struct adc_device *adc = pw;
	struct adc_device *adc = pw;
	struct s3c_adc_client *client = adc->cur;
	struct s3c_adc_client *client = adc->cur;
	enum s3c_cpu_type cpu = platform_get_device_id(adc->pdev)->driver_data;
	unsigned long flags;
	unsigned long flags;
	unsigned data0, data1;
	unsigned data0, data1;


@@ -276,9 +277,17 @@ static irqreturn_t s3c_adc_irq(int irq, void *pw)


	client->nr_samples--;
	client->nr_samples--;


	if (cpu == TYPE_S3C64XX) {
		/* S3C64XX ADC resolution is 12-bit */
		data0 &= 0xfff;
		data1 &= 0xfff;
	} else {
		data0 &= 0x3ff;
		data1 &= 0x3ff;
	}

	if (client->convert_cb)
	if (client->convert_cb)
		(client->convert_cb)(client, data0 & 0x3ff, data1 & 0x3ff,
		(client->convert_cb)(client, data0, data1, &client->nr_samples);
				     &client->nr_samples);


	if (client->nr_samples > 0) {
	if (client->nr_samples > 0) {
		/* fire another conversion for this */
		/* fire another conversion for this */
@@ -295,7 +304,7 @@ static irqreturn_t s3c_adc_irq(int irq, void *pw)
	}
	}


exit:
exit:
	if (platform_get_device_id(adc->pdev)->driver_data == TYPE_S3C64XX) {
	if (cpu == TYPE_S3C64XX) {
		/* Clear ADC interrupt */
		/* Clear ADC interrupt */
		writel(0, adc->regs + S3C64XX_ADCCLRINT);
		writel(0, adc->regs + S3C64XX_ADCCLRINT);
	}
	}
@@ -308,6 +317,7 @@ static int s3c_adc_probe(struct platform_device *pdev)
	struct adc_device *adc;
	struct adc_device *adc;
	struct resource *regs;
	struct resource *regs;
	int ret;
	int ret;
	unsigned tmp;


	adc = kzalloc(sizeof(struct adc_device), GFP_KERNEL);
	adc = kzalloc(sizeof(struct adc_device), GFP_KERNEL);
	if (adc == NULL) {
	if (adc == NULL) {
@@ -354,8 +364,12 @@ static int s3c_adc_probe(struct platform_device *pdev)


	clk_enable(adc->clk);
	clk_enable(adc->clk);


	writel(adc->prescale | S3C2410_ADCCON_PRSCEN,
	tmp = adc->prescale | S3C2410_ADCCON_PRSCEN;
	       adc->regs + S3C2410_ADCCON);
	if (platform_get_device_id(pdev)->driver_data == TYPE_S3C64XX) {
		/* Enable 12-bit ADC resolution */
		tmp |= S3C64XX_ADCCON_RESSEL;
	}
	writel(tmp, adc->regs + S3C2410_ADCCON);


	dev_info(dev, "attached adc driver\n");
	dev_info(dev, "attached adc driver\n");


+7 −0
Original line number Original line Diff line number Diff line
@@ -14,6 +14,7 @@
#include <linux/kernel.h>
#include <linux/kernel.h>
#include <linux/string.h>
#include <linux/string.h>
#include <linux/platform_device.h>
#include <linux/platform_device.h>
#include <linux/dma-mapping.h>


#include <mach/irqs.h>
#include <mach/irqs.h>
#include <mach/map.h>
#include <mach/map.h>
@@ -33,9 +34,15 @@ static struct resource s3c_usb_hsotg_resources[] = {
	},
	},
};
};


static u64 s3c_hsotg_dmamask = DMA_BIT_MASK(32);

struct platform_device s3c_device_usb_hsotg = {
struct platform_device s3c_device_usb_hsotg = {
	.name		= "s3c-hsotg",
	.name		= "s3c-hsotg",
	.id		= -1,
	.id		= -1,
	.num_resources	= ARRAY_SIZE(s3c_usb_hsotg_resources),
	.num_resources	= ARRAY_SIZE(s3c_usb_hsotg_resources),
	.resource	= s3c_usb_hsotg_resources,
	.resource	= s3c_usb_hsotg_resources,
	.dev		= {
		.dma_mask		= &s3c_hsotg_dmamask,
		.coherent_dma_mask	= DMA_BIT_MASK(32),
	},
};
};
+1 −0
Original line number Original line Diff line number Diff line
@@ -25,6 +25,7 @@




/* ADCCON Register Bits */
/* ADCCON Register Bits */
#define S3C64XX_ADCCON_RESSEL		(1<<16)
#define S3C2410_ADCCON_ECFLG		(1<<15)
#define S3C2410_ADCCON_ECFLG		(1<<15)
#define S3C2410_ADCCON_PRSCEN		(1<<14)
#define S3C2410_ADCCON_PRSCEN		(1<<14)
#define S3C2410_ADCCON_PRSCVL(x)	(((x)&0xFF)<<6)
#define S3C2410_ADCCON_PRSCVL(x)	(((x)&0xFF)<<6)
Loading