diff options
author | Ben Dooks <ben-linux@fluff.org> | 2010-02-02 20:55:39 -0500 |
---|---|---|
committer | Ben Dooks <ben-linux@fluff.org> | 2010-02-02 20:55:39 -0500 |
commit | 28db4ed52d329ca06da9fbcc9dcf6c4e25cdcac2 (patch) | |
tree | c251b8a7bb53514b87ab29591623b156144f3302 /arch/arm | |
parent | 87aef30eb3c5dac0491c83fe3b90bc61f1df24ec (diff) | |
parent | 91492b4a04586e7cb191c72de9d1b22545a3ce16 (diff) |
ARM: Merge next-samsung-devupdates2
Merge branch 'next-samsung-devupdates2' into next-samsung
Diffstat (limited to 'arch/arm')
-rw-r--r-- | arch/arm/plat-s3c64xx/Makefile | 9 | ||||
-rw-r--r-- | arch/arm/plat-samsung/Kconfig | 6 | ||||
-rw-r--r-- | arch/arm/plat-samsung/adc.c | 24 | ||||
-rw-r--r-- | arch/arm/plat-samsung/dev-usb-hsotg.c | 7 | ||||
-rw-r--r-- | arch/arm/plat-samsung/include/plat/regs-adc.h | 1 |
5 files changed, 40 insertions, 7 deletions
diff --git a/arch/arm/plat-s3c64xx/Makefile b/arch/arm/plat-s3c64xx/Makefile index 80255a5e1789..33a73f3e9f01 100644 --- a/arch/arm/plat-s3c64xx/Makefile +++ b/arch/arm/plat-s3c64xx/Makefile | |||
@@ -40,11 +40,16 @@ obj-$(CONFIG_S3C64XX_DMA) += dma.o | |||
40 | 40 | ||
41 | obj-$(CONFIG_S3C_ADC) += dev-adc.o | 41 | obj-$(CONFIG_S3C_ADC) += dev-adc.o |
42 | 42 | ||
43 | # SPI support | ||
44 | obj-$(CONFIG_S3C64XX_DEV_SPI) += dev-spi.o | ||
45 | |||
46 | # Device support | ||
47 | obj-y += dev-audio.o | ||
48 | |||
43 | # Device setup | 49 | # Device setup |
44 | 50 | ||
45 | obj-$(CONFIG_S3C64XX_SETUP_I2C0) += setup-i2c0.o | 51 | obj-$(CONFIG_S3C64XX_SETUP_I2C0) += setup-i2c0.o |
46 | obj-$(CONFIG_S3C64XX_SETUP_I2C1) += setup-i2c1.o | 52 | obj-$(CONFIG_S3C64XX_SETUP_I2C1) += setup-i2c1.o |
47 | obj-$(CONFIG_S3C64XX_SETUP_FB_24BPP) += setup-fb-24bpp.o | 53 | obj-$(CONFIG_S3C64XX_SETUP_FB_24BPP) += setup-fb-24bpp.o |
48 | obj-$(CONFIG_S3C64XX_SETUP_SDHCI_GPIO) += setup-sdhci-gpio.o | 54 | obj-$(CONFIG_S3C64XX_SETUP_SDHCI_GPIO) += setup-sdhci-gpio.o |
49 | obj-$(CONFIG_SND_S3C24XX_SOC) += dev-audio.o | 55 | |
50 | obj-$(CONFIG_SPI_S3C64XX) += dev-spi.o | ||
diff --git a/arch/arm/plat-samsung/Kconfig b/arch/arm/plat-samsung/Kconfig index 1c2fe91c23e9..72da6461db12 100644 --- a/arch/arm/plat-samsung/Kconfig +++ b/arch/arm/plat-samsung/Kconfig | |||
@@ -132,6 +132,12 @@ config S3C_DEV_NAND | |||
132 | help | 132 | help |
133 | Compile in platform device definition for NAND controller | 133 | Compile in platform device definition for NAND controller |
134 | 134 | ||
135 | config S3C64XX_DEV_SPI | ||
136 | bool | ||
137 | help | ||
138 | Compile in platform device definitions for S3C64XX's type | ||
139 | SPI controllers. | ||
140 | |||
135 | comment "Power management" | 141 | comment "Power management" |
136 | 142 | ||
137 | config SAMSUNG_PM_DEBUG | 143 | config SAMSUNG_PM_DEBUG |
diff --git a/arch/arm/plat-samsung/adc.c b/arch/arm/plat-samsung/adc.c index c7659b7378b1..81caf2135721 100644 --- a/arch/arm/plat-samsung/adc.c +++ b/arch/arm/plat-samsung/adc.c | |||
@@ -262,6 +262,7 @@ static irqreturn_t s3c_adc_irq(int irq, void *pw) | |||
262 | { | 262 | { |
263 | struct adc_device *adc = pw; | 263 | struct adc_device *adc = pw; |
264 | struct s3c_adc_client *client = adc->cur; | 264 | struct s3c_adc_client *client = adc->cur; |
265 | enum s3c_cpu_type cpu = platform_get_device_id(adc->pdev)->driver_data; | ||
265 | unsigned long flags; | 266 | unsigned long flags; |
266 | unsigned data0, data1; | 267 | unsigned data0, data1; |
267 | 268 | ||
@@ -276,9 +277,17 @@ static irqreturn_t s3c_adc_irq(int irq, void *pw) | |||
276 | 277 | ||
277 | client->nr_samples--; | 278 | client->nr_samples--; |
278 | 279 | ||
280 | if (cpu == TYPE_S3C64XX) { | ||
281 | /* S3C64XX ADC resolution is 12-bit */ | ||
282 | data0 &= 0xfff; | ||
283 | data1 &= 0xfff; | ||
284 | } else { | ||
285 | data0 &= 0x3ff; | ||
286 | data1 &= 0x3ff; | ||
287 | } | ||
288 | |||
279 | if (client->convert_cb) | 289 | if (client->convert_cb) |
280 | (client->convert_cb)(client, data0 & 0x3ff, data1 & 0x3ff, | 290 | (client->convert_cb)(client, data0, data1, &client->nr_samples); |
281 | &client->nr_samples); | ||
282 | 291 | ||
283 | if (client->nr_samples > 0) { | 292 | if (client->nr_samples > 0) { |
284 | /* fire another conversion for this */ | 293 | /* fire another conversion for this */ |
@@ -295,7 +304,7 @@ static irqreturn_t s3c_adc_irq(int irq, void *pw) | |||
295 | } | 304 | } |
296 | 305 | ||
297 | exit: | 306 | exit: |
298 | if (platform_get_device_id(adc->pdev)->driver_data == TYPE_S3C64XX) { | 307 | if (cpu == TYPE_S3C64XX) { |
299 | /* Clear ADC interrupt */ | 308 | /* Clear ADC interrupt */ |
300 | writel(0, adc->regs + S3C64XX_ADCCLRINT); | 309 | writel(0, adc->regs + S3C64XX_ADCCLRINT); |
301 | } | 310 | } |
@@ -308,6 +317,7 @@ static int s3c_adc_probe(struct platform_device *pdev) | |||
308 | struct adc_device *adc; | 317 | struct adc_device *adc; |
309 | struct resource *regs; | 318 | struct resource *regs; |
310 | int ret; | 319 | int ret; |
320 | unsigned tmp; | ||
311 | 321 | ||
312 | adc = kzalloc(sizeof(struct adc_device), GFP_KERNEL); | 322 | adc = kzalloc(sizeof(struct adc_device), GFP_KERNEL); |
313 | if (adc == NULL) { | 323 | if (adc == NULL) { |
@@ -354,8 +364,12 @@ static int s3c_adc_probe(struct platform_device *pdev) | |||
354 | 364 | ||
355 | clk_enable(adc->clk); | 365 | clk_enable(adc->clk); |
356 | 366 | ||
357 | writel(adc->prescale | S3C2410_ADCCON_PRSCEN, | 367 | tmp = adc->prescale | S3C2410_ADCCON_PRSCEN; |
358 | adc->regs + S3C2410_ADCCON); | 368 | if (platform_get_device_id(pdev)->driver_data == TYPE_S3C64XX) { |
369 | /* Enable 12-bit ADC resolution */ | ||
370 | tmp |= S3C64XX_ADCCON_RESSEL; | ||
371 | } | ||
372 | writel(tmp, adc->regs + S3C2410_ADCCON); | ||
359 | 373 | ||
360 | dev_info(dev, "attached adc driver\n"); | 374 | dev_info(dev, "attached adc driver\n"); |
361 | 375 | ||
diff --git a/arch/arm/plat-samsung/dev-usb-hsotg.c b/arch/arm/plat-samsung/dev-usb-hsotg.c index e2f604b51c86..33a844ab6917 100644 --- a/arch/arm/plat-samsung/dev-usb-hsotg.c +++ b/arch/arm/plat-samsung/dev-usb-hsotg.c | |||
@@ -14,6 +14,7 @@ | |||
14 | #include <linux/kernel.h> | 14 | #include <linux/kernel.h> |
15 | #include <linux/string.h> | 15 | #include <linux/string.h> |
16 | #include <linux/platform_device.h> | 16 | #include <linux/platform_device.h> |
17 | #include <linux/dma-mapping.h> | ||
17 | 18 | ||
18 | #include <mach/irqs.h> | 19 | #include <mach/irqs.h> |
19 | #include <mach/map.h> | 20 | #include <mach/map.h> |
@@ -33,9 +34,15 @@ static struct resource s3c_usb_hsotg_resources[] = { | |||
33 | }, | 34 | }, |
34 | }; | 35 | }; |
35 | 36 | ||
37 | static u64 s3c_hsotg_dmamask = DMA_BIT_MASK(32); | ||
38 | |||
36 | struct platform_device s3c_device_usb_hsotg = { | 39 | struct platform_device s3c_device_usb_hsotg = { |
37 | .name = "s3c-hsotg", | 40 | .name = "s3c-hsotg", |
38 | .id = -1, | 41 | .id = -1, |
39 | .num_resources = ARRAY_SIZE(s3c_usb_hsotg_resources), | 42 | .num_resources = ARRAY_SIZE(s3c_usb_hsotg_resources), |
40 | .resource = s3c_usb_hsotg_resources, | 43 | .resource = s3c_usb_hsotg_resources, |
44 | .dev = { | ||
45 | .dma_mask = &s3c_hsotg_dmamask, | ||
46 | .coherent_dma_mask = DMA_BIT_MASK(32), | ||
47 | }, | ||
41 | }; | 48 | }; |
diff --git a/arch/arm/plat-samsung/include/plat/regs-adc.h b/arch/arm/plat-samsung/include/plat/regs-adc.h index f43c8dab39e4..7554c4fcddb9 100644 --- a/arch/arm/plat-samsung/include/plat/regs-adc.h +++ b/arch/arm/plat-samsung/include/plat/regs-adc.h | |||
@@ -25,6 +25,7 @@ | |||
25 | 25 | ||
26 | 26 | ||
27 | /* ADCCON Register Bits */ | 27 | /* ADCCON Register Bits */ |
28 | #define S3C64XX_ADCCON_RESSEL (1<<16) | ||
28 | #define S3C2410_ADCCON_ECFLG (1<<15) | 29 | #define S3C2410_ADCCON_ECFLG (1<<15) |
29 | #define S3C2410_ADCCON_PRSCEN (1<<14) | 30 | #define S3C2410_ADCCON_PRSCEN (1<<14) |
30 | #define S3C2410_ADCCON_PRSCVL(x) (((x)&0xFF)<<6) | 31 | #define S3C2410_ADCCON_PRSCVL(x) (((x)&0xFF)<<6) |