Loading arch/arm/plat-s3c64xx/Makefile +7 −2 Original line number Original line Diff line number Diff line Loading @@ -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 arch/arm/plat-samsung/Kconfig +6 −0 Original line number Original line Diff line number Diff line Loading @@ -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 Loading arch/arm/plat-samsung/adc.c +19 −5 Original line number Original line Diff line number Diff line Loading @@ -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; Loading @@ -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 */ Loading @@ -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); } } Loading @@ -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) { Loading Loading @@ -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"); Loading arch/arm/plat-samsung/dev-usb-hsotg.c +7 −0 Original line number Original line Diff line number Diff line Loading @@ -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> Loading @@ -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), }, }; }; arch/arm/plat-samsung/include/plat/regs-adc.h +1 −0 Original line number Original line Diff line number Diff line Loading @@ -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 Loading
arch/arm/plat-s3c64xx/Makefile +7 −2 Original line number Original line Diff line number Diff line Loading @@ -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
arch/arm/plat-samsung/Kconfig +6 −0 Original line number Original line Diff line number Diff line Loading @@ -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 Loading
arch/arm/plat-samsung/adc.c +19 −5 Original line number Original line Diff line number Diff line Loading @@ -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; Loading @@ -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 */ Loading @@ -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); } } Loading @@ -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) { Loading Loading @@ -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"); Loading
arch/arm/plat-samsung/dev-usb-hsotg.c +7 −0 Original line number Original line Diff line number Diff line Loading @@ -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> Loading @@ -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), }, }; };
arch/arm/plat-samsung/include/plat/regs-adc.h +1 −0 Original line number Original line Diff line number Diff line Loading @@ -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