diff options
Diffstat (limited to 'arch/arm/plat-samsung')
-rw-r--r-- | arch/arm/plat-samsung/adc.c | 1 | ||||
-rw-r--r-- | arch/arm/plat-samsung/clock.c | 27 | ||||
-rw-r--r-- | arch/arm/plat-samsung/include/plat/cpu.h | 2 | ||||
-rw-r--r-- | arch/arm/plat-samsung/include/plat/devs.h | 7 | ||||
-rw-r--r-- | arch/arm/plat-samsung/include/plat/s3c-dma-pl330.h | 20 | ||||
-rw-r--r-- | arch/arm/plat-samsung/include/plat/s3c64xx-spi.h | 2 |
6 files changed, 54 insertions, 5 deletions
diff --git a/arch/arm/plat-samsung/adc.c b/arch/arm/plat-samsung/adc.c index 04d9521ddc9f..e8f2be2d67f2 100644 --- a/arch/arm/plat-samsung/adc.c +++ b/arch/arm/plat-samsung/adc.c | |||
@@ -435,7 +435,6 @@ static int s3c_adc_suspend(struct platform_device *pdev, pm_message_t state) | |||
435 | static int s3c_adc_resume(struct platform_device *pdev) | 435 | static int s3c_adc_resume(struct platform_device *pdev) |
436 | { | 436 | { |
437 | struct adc_device *adc = platform_get_drvdata(pdev); | 437 | struct adc_device *adc = platform_get_drvdata(pdev); |
438 | unsigned long flags; | ||
439 | 438 | ||
440 | clk_enable(adc->clk); | 439 | clk_enable(adc->clk); |
441 | enable_irq(adc->irq); | 440 | enable_irq(adc->irq); |
diff --git a/arch/arm/plat-samsung/clock.c b/arch/arm/plat-samsung/clock.c index 90a20512d68d..e8d20b0bc50e 100644 --- a/arch/arm/plat-samsung/clock.c +++ b/arch/arm/plat-samsung/clock.c | |||
@@ -48,6 +48,9 @@ | |||
48 | #include <plat/clock.h> | 48 | #include <plat/clock.h> |
49 | #include <plat/cpu.h> | 49 | #include <plat/cpu.h> |
50 | 50 | ||
51 | #include <linux/serial_core.h> | ||
52 | #include <plat/regs-serial.h> /* for s3c24xx_uart_devs */ | ||
53 | |||
51 | /* clock information */ | 54 | /* clock information */ |
52 | 55 | ||
53 | static LIST_HEAD(clocks); | 56 | static LIST_HEAD(clocks); |
@@ -65,6 +68,28 @@ static int clk_null_enable(struct clk *clk, int enable) | |||
65 | return 0; | 68 | return 0; |
66 | } | 69 | } |
67 | 70 | ||
71 | static int dev_is_s3c_uart(struct device *dev) | ||
72 | { | ||
73 | struct platform_device **pdev = s3c24xx_uart_devs; | ||
74 | int i; | ||
75 | for (i = 0; i < ARRAY_SIZE(s3c24xx_uart_devs); i++, pdev++) | ||
76 | if (*pdev && dev == &(*pdev)->dev) | ||
77 | return 1; | ||
78 | return 0; | ||
79 | } | ||
80 | |||
81 | /* | ||
82 | * Serial drivers call get_clock() very early, before platform bus | ||
83 | * has been set up, this requires a special check to let them get | ||
84 | * a proper clock | ||
85 | */ | ||
86 | |||
87 | static int dev_is_platform_device(struct device *dev) | ||
88 | { | ||
89 | return dev->bus == &platform_bus_type || | ||
90 | (dev->bus == NULL && dev_is_s3c_uart(dev)); | ||
91 | } | ||
92 | |||
68 | /* Clock API calls */ | 93 | /* Clock API calls */ |
69 | 94 | ||
70 | struct clk *clk_get(struct device *dev, const char *id) | 95 | struct clk *clk_get(struct device *dev, const char *id) |
@@ -73,7 +98,7 @@ struct clk *clk_get(struct device *dev, const char *id) | |||
73 | struct clk *clk = ERR_PTR(-ENOENT); | 98 | struct clk *clk = ERR_PTR(-ENOENT); |
74 | int idno; | 99 | int idno; |
75 | 100 | ||
76 | if (dev == NULL || dev->bus != &platform_bus_type) | 101 | if (dev == NULL || !dev_is_platform_device(dev)) |
77 | idno = -1; | 102 | idno = -1; |
78 | else | 103 | else |
79 | idno = to_platform_device(dev)->id; | 104 | idno = to_platform_device(dev)->id; |
diff --git a/arch/arm/plat-samsung/include/plat/cpu.h b/arch/arm/plat-samsung/include/plat/cpu.h index 6412933d6fbb..9addb3dfb4bc 100644 --- a/arch/arm/plat-samsung/include/plat/cpu.h +++ b/arch/arm/plat-samsung/include/plat/cpu.h | |||
@@ -79,7 +79,7 @@ extern struct sysdev_class s3c2442_sysclass; | |||
79 | extern struct sysdev_class s3c2443_sysclass; | 79 | extern struct sysdev_class s3c2443_sysclass; |
80 | extern struct sysdev_class s3c6410_sysclass; | 80 | extern struct sysdev_class s3c6410_sysclass; |
81 | extern struct sysdev_class s3c64xx_sysclass; | 81 | extern struct sysdev_class s3c64xx_sysclass; |
82 | extern struct sysdev_class s5p6440_sysclass; | 82 | extern struct sysdev_class s5p64x0_sysclass; |
83 | extern struct sysdev_class s5p6442_sysclass; | 83 | extern struct sysdev_class s5p6442_sysclass; |
84 | extern struct sysdev_class s5pv210_sysclass; | 84 | extern struct sysdev_class s5pv210_sysclass; |
85 | 85 | ||
diff --git a/arch/arm/plat-samsung/include/plat/devs.h b/arch/arm/plat-samsung/include/plat/devs.h index 85f6f23a510f..7d448e138792 100644 --- a/arch/arm/plat-samsung/include/plat/devs.h +++ b/arch/arm/plat-samsung/include/plat/devs.h | |||
@@ -67,13 +67,15 @@ extern struct platform_device s5pv210_device_spi0; | |||
67 | extern struct platform_device s5pv210_device_spi1; | 67 | extern struct platform_device s5pv210_device_spi1; |
68 | extern struct platform_device s5p6440_device_spi0; | 68 | extern struct platform_device s5p6440_device_spi0; |
69 | extern struct platform_device s5p6440_device_spi1; | 69 | extern struct platform_device s5p6440_device_spi1; |
70 | extern struct platform_device s5p6450_device_spi0; | ||
71 | extern struct platform_device s5p6450_device_spi1; | ||
70 | 72 | ||
71 | extern struct platform_device s3c_device_hwmon; | 73 | extern struct platform_device s3c_device_hwmon; |
72 | 74 | ||
73 | extern struct platform_device s3c_device_nand; | 75 | extern struct platform_device s3c_device_nand; |
74 | extern struct platform_device s3c_device_onenand; | 76 | extern struct platform_device s3c_device_onenand; |
75 | extern struct platform_device s3c64xx_device_onenand1; | 77 | extern struct platform_device s3c64xx_device_onenand1; |
76 | extern struct platform_device s5pc110_device_onenand; | 78 | extern struct platform_device s5p_device_onenand; |
77 | 79 | ||
78 | extern struct platform_device s3c_device_usbgadget; | 80 | extern struct platform_device s3c_device_usbgadget; |
79 | extern struct platform_device s3c_device_usb_hsotg; | 81 | extern struct platform_device s3c_device_usb_hsotg; |
@@ -95,6 +97,9 @@ extern struct platform_device s5p6442_device_spi; | |||
95 | extern struct platform_device s5p6440_device_pcm; | 97 | extern struct platform_device s5p6440_device_pcm; |
96 | extern struct platform_device s5p6440_device_iis; | 98 | extern struct platform_device s5p6440_device_iis; |
97 | 99 | ||
100 | extern struct platform_device s5p6450_device_iis0; | ||
101 | extern struct platform_device s5p6450_device_pcm0; | ||
102 | |||
98 | extern struct platform_device s5pc100_device_ac97; | 103 | extern struct platform_device s5pc100_device_ac97; |
99 | extern struct platform_device s5pc100_device_pcm0; | 104 | extern struct platform_device s5pc100_device_pcm0; |
100 | extern struct platform_device s5pc100_device_pcm1; | 105 | extern struct platform_device s5pc100_device_pcm1; |
diff --git a/arch/arm/plat-samsung/include/plat/s3c-dma-pl330.h b/arch/arm/plat-samsung/include/plat/s3c-dma-pl330.h index 5fe6721b57f7..810744213120 100644 --- a/arch/arm/plat-samsung/include/plat/s3c-dma-pl330.h +++ b/arch/arm/plat-samsung/include/plat/s3c-dma-pl330.h | |||
@@ -32,6 +32,12 @@ enum dma_ch { | |||
32 | DMACH_UART2_TX, | 32 | DMACH_UART2_TX, |
33 | DMACH_UART3_RX, | 33 | DMACH_UART3_RX, |
34 | DMACH_UART3_TX, | 34 | DMACH_UART3_TX, |
35 | DMACH_UART4_RX, | ||
36 | DMACH_UART4_TX, | ||
37 | DMACH_UART5_RX, | ||
38 | DMACH_UART5_TX, | ||
39 | DMACH_USI_RX, | ||
40 | DMACH_USI_TX, | ||
35 | DMACH_IRDA, | 41 | DMACH_IRDA, |
36 | DMACH_I2S0_RX, | 42 | DMACH_I2S0_RX, |
37 | DMACH_I2S0_TX, | 43 | DMACH_I2S0_TX, |
@@ -64,6 +70,20 @@ enum dma_ch { | |||
64 | DMACH_MSM_REQ2, | 70 | DMACH_MSM_REQ2, |
65 | DMACH_MSM_REQ1, | 71 | DMACH_MSM_REQ1, |
66 | DMACH_MSM_REQ0, | 72 | DMACH_MSM_REQ0, |
73 | DMACH_SLIMBUS0_RX, | ||
74 | DMACH_SLIMBUS0_TX, | ||
75 | DMACH_SLIMBUS0AUX_RX, | ||
76 | DMACH_SLIMBUS0AUX_TX, | ||
77 | DMACH_SLIMBUS1_RX, | ||
78 | DMACH_SLIMBUS1_TX, | ||
79 | DMACH_SLIMBUS2_RX, | ||
80 | DMACH_SLIMBUS2_TX, | ||
81 | DMACH_SLIMBUS3_RX, | ||
82 | DMACH_SLIMBUS3_TX, | ||
83 | DMACH_SLIMBUS4_RX, | ||
84 | DMACH_SLIMBUS4_TX, | ||
85 | DMACH_SLIMBUS5_RX, | ||
86 | DMACH_SLIMBUS5_TX, | ||
67 | /* END Marker, also used to denote a reserved channel */ | 87 | /* END Marker, also used to denote a reserved channel */ |
68 | DMACH_MAX, | 88 | DMACH_MAX, |
69 | }; | 89 | }; |
diff --git a/arch/arm/plat-samsung/include/plat/s3c64xx-spi.h b/arch/arm/plat-samsung/include/plat/s3c64xx-spi.h index e5aba8f95b79..ae8e802bdca8 100644 --- a/arch/arm/plat-samsung/include/plat/s3c64xx-spi.h +++ b/arch/arm/plat-samsung/include/plat/s3c64xx-spi.h | |||
@@ -65,7 +65,7 @@ struct s3c64xx_spi_info { | |||
65 | extern void s3c64xx_spi_set_info(int cntrlr, int src_clk_nr, int num_cs); | 65 | extern void s3c64xx_spi_set_info(int cntrlr, int src_clk_nr, int num_cs); |
66 | extern void s5pc100_spi_set_info(int cntrlr, int src_clk_nr, int num_cs); | 66 | extern void s5pc100_spi_set_info(int cntrlr, int src_clk_nr, int num_cs); |
67 | extern void s5pv210_spi_set_info(int cntrlr, int src_clk_nr, int num_cs); | 67 | extern void s5pv210_spi_set_info(int cntrlr, int src_clk_nr, int num_cs); |
68 | extern void s5p6440_spi_set_info(int cntrlr, int src_clk_nr, int num_cs); | 68 | extern void s5p64x0_spi_set_info(int cntrlr, int src_clk_nr, int num_cs); |
69 | extern void s5p6442_spi_set_info(int cntrlr, int src_clk_nr, int num_cs); | 69 | extern void s5p6442_spi_set_info(int cntrlr, int src_clk_nr, int num_cs); |
70 | 70 | ||
71 | #endif /* __S3C64XX_PLAT_SPI_H */ | 71 | #endif /* __S3C64XX_PLAT_SPI_H */ |