diff options
author | Glenn Elliott <gelliott@cs.unc.edu> | 2012-03-04 19:47:13 -0500 |
---|---|---|
committer | Glenn Elliott <gelliott@cs.unc.edu> | 2012-03-04 19:47:13 -0500 |
commit | c71c03bda1e86c9d5198c5d83f712e695c4f2a1e (patch) | |
tree | ecb166cb3e2b7e2adb3b5e292245fefd23381ac8 /arch/arm/plat-samsung/include | |
parent | ea53c912f8a86a8567697115b6a0d8152beee5c8 (diff) | |
parent | 6a00f206debf8a5c8899055726ad127dbeeed098 (diff) |
Merge branch 'mpi-master' into wip-k-fmlpwip-k-fmlp
Conflicts:
litmus/sched_cedf.c
Diffstat (limited to 'arch/arm/plat-samsung/include')
22 files changed, 438 insertions, 55 deletions
diff --git a/arch/arm/plat-samsung/include/plat/adc.h b/arch/arm/plat-samsung/include/plat/adc.h index e8382c7be10b..b258a08de591 100644 --- a/arch/arm/plat-samsung/include/plat/adc.h +++ b/arch/arm/plat-samsung/include/plat/adc.h | |||
@@ -1,7 +1,7 @@ | |||
1 | /* arch/arm/plat-samsung/include/plat/adc.h | 1 | /* arch/arm/plat-samsung/include/plat/adc.h |
2 | * | 2 | * |
3 | * Copyright (c) 2008 Simtec Electronics | 3 | * Copyright (c) 2008 Simtec Electronics |
4 | * http://armlinux.simnte.co.uk/ | 4 | * http://armlinux.simtec.co.uk/ |
5 | * Ben Dooks <ben@simtec.co.uk> | 5 | * Ben Dooks <ben@simtec.co.uk> |
6 | * | 6 | * |
7 | * S3C ADC driver information | 7 | * S3C ADC driver information |
diff --git a/arch/arm/plat-samsung/include/plat/audio.h b/arch/arm/plat-samsung/include/plat/audio.h index e32f9edfd4b7..a0826ed2f9fe 100644 --- a/arch/arm/plat-samsung/include/plat/audio.h +++ b/arch/arm/plat-samsung/include/plat/audio.h | |||
@@ -16,10 +16,43 @@ | |||
16 | #define S3C64XX_AC97_GPE 1 | 16 | #define S3C64XX_AC97_GPE 1 |
17 | extern void s3c64xx_ac97_setup_gpio(int); | 17 | extern void s3c64xx_ac97_setup_gpio(int); |
18 | 18 | ||
19 | /* | ||
20 | * The machine init code calls s5p*_spdif_setup_gpio with | ||
21 | * one of these defines in order to select appropriate bank | ||
22 | * of GPIO for S/PDIF pins | ||
23 | */ | ||
24 | #define S5PC100_SPDIF_GPD 0 | ||
25 | #define S5PC100_SPDIF_GPG3 1 | ||
26 | extern void s5pc100_spdif_setup_gpio(int); | ||
27 | |||
28 | struct samsung_i2s { | ||
29 | /* If the Primary DAI has 5.1 Channels */ | ||
30 | #define QUIRK_PRI_6CHAN (1 << 0) | ||
31 | /* If the I2S block has a Stereo Overlay Channel */ | ||
32 | #define QUIRK_SEC_DAI (1 << 1) | ||
33 | /* | ||
34 | * If the I2S block has no internal prescalar or MUX (I2SMOD[10] bit) | ||
35 | * The Machine driver must provide suitably set clock to the I2S block. | ||
36 | */ | ||
37 | #define QUIRK_NO_MUXPSR (1 << 2) | ||
38 | #define QUIRK_NEED_RSTCLR (1 << 3) | ||
39 | /* Quirks of the I2S controller */ | ||
40 | u32 quirks; | ||
41 | |||
42 | /* | ||
43 | * Array of clock names that can be used to generate I2S signals. | ||
44 | * Also corresponds to clocks of I2SMOD[10] | ||
45 | */ | ||
46 | const char **src_clk; | ||
47 | }; | ||
48 | |||
19 | /** | 49 | /** |
20 | * struct s3c_audio_pdata - common platform data for audio device drivers | 50 | * struct s3c_audio_pdata - common platform data for audio device drivers |
21 | * @cfg_gpio: Callback function to setup mux'ed pins in I2S/PCM/AC97 mode | 51 | * @cfg_gpio: Callback function to setup mux'ed pins in I2S/PCM/AC97 mode |
22 | */ | 52 | */ |
23 | struct s3c_audio_pdata { | 53 | struct s3c_audio_pdata { |
24 | int (*cfg_gpio)(struct platform_device *); | 54 | int (*cfg_gpio)(struct platform_device *); |
55 | union { | ||
56 | struct samsung_i2s i2s; | ||
57 | } type; | ||
25 | }; | 58 | }; |
diff --git a/arch/arm/plat-samsung/include/plat/clock.h b/arch/arm/plat-samsung/include/plat/clock.h index 0fbcd0effd8e..983c578b8276 100644 --- a/arch/arm/plat-samsung/include/plat/clock.h +++ b/arch/arm/plat-samsung/include/plat/clock.h | |||
@@ -21,7 +21,7 @@ struct clk; | |||
21 | * @set_parent: set the clock's parent, see clk_set_parent(). | 21 | * @set_parent: set the clock's parent, see clk_set_parent(). |
22 | * | 22 | * |
23 | * Group the common clock implementations together so that we | 23 | * Group the common clock implementations together so that we |
24 | * don't have to keep setting the same fiels again. We leave | 24 | * don't have to keep setting the same fields again. We leave |
25 | * enable in struct clk. | 25 | * enable in struct clk. |
26 | * | 26 | * |
27 | * Adding an extra layer of indirection into the process should | 27 | * Adding an extra layer of indirection into the process should |
@@ -47,6 +47,9 @@ struct clk { | |||
47 | 47 | ||
48 | struct clk_ops *ops; | 48 | struct clk_ops *ops; |
49 | int (*enable)(struct clk *, int enable); | 49 | int (*enable)(struct clk *, int enable); |
50 | #if defined(CONFIG_PM_DEBUG) && defined(CONFIG_DEBUG_FS) | ||
51 | struct dentry *dent; /* For visible tree hierarchy */ | ||
52 | #endif | ||
50 | }; | 53 | }; |
51 | 54 | ||
52 | /* other clocks which may be registered by board support */ | 55 | /* other clocks which may be registered by board support */ |
diff --git a/arch/arm/plat-samsung/include/plat/cpu.h b/arch/arm/plat-samsung/include/plat/cpu.h index 6412933d6fbb..c0a5741b23e6 100644 --- a/arch/arm/plat-samsung/include/plat/cpu.h +++ b/arch/arm/plat-samsung/include/plat/cpu.h | |||
@@ -68,6 +68,12 @@ extern void s3c24xx_init_uartdevs(char *name, | |||
68 | struct sys_timer; | 68 | struct sys_timer; |
69 | extern struct sys_timer s3c24xx_timer; | 69 | extern struct sys_timer s3c24xx_timer; |
70 | 70 | ||
71 | extern struct syscore_ops s3c2410_pm_syscore_ops; | ||
72 | extern struct syscore_ops s3c2412_pm_syscore_ops; | ||
73 | extern struct syscore_ops s3c2416_pm_syscore_ops; | ||
74 | extern struct syscore_ops s3c244x_pm_syscore_ops; | ||
75 | extern struct syscore_ops s3c64xx_irq_syscore_ops; | ||
76 | |||
71 | /* system device classes */ | 77 | /* system device classes */ |
72 | 78 | ||
73 | extern struct sysdev_class s3c2410_sysclass; | 79 | extern struct sysdev_class s3c2410_sysclass; |
@@ -79,9 +85,9 @@ extern struct sysdev_class s3c2442_sysclass; | |||
79 | extern struct sysdev_class s3c2443_sysclass; | 85 | extern struct sysdev_class s3c2443_sysclass; |
80 | extern struct sysdev_class s3c6410_sysclass; | 86 | extern struct sysdev_class s3c6410_sysclass; |
81 | extern struct sysdev_class s3c64xx_sysclass; | 87 | extern struct sysdev_class s3c64xx_sysclass; |
82 | extern struct sysdev_class s5p6440_sysclass; | 88 | extern struct sysdev_class s5p64x0_sysclass; |
83 | extern struct sysdev_class s5p6442_sysclass; | ||
84 | extern struct sysdev_class s5pv210_sysclass; | 89 | extern struct sysdev_class s5pv210_sysclass; |
90 | extern struct sysdev_class exynos4_sysclass; | ||
85 | 91 | ||
86 | extern void (*s5pc1xx_idle)(void); | 92 | extern void (*s5pc1xx_idle)(void); |
87 | 93 | ||
diff --git a/arch/arm/plat-samsung/include/plat/debug-macro.S b/arch/arm/plat-samsung/include/plat/debug-macro.S index dc6efd90e8ff..207e275362a8 100644 --- a/arch/arm/plat-samsung/include/plat/debug-macro.S +++ b/arch/arm/plat-samsung/include/plat/debug-macro.S | |||
@@ -11,7 +11,7 @@ | |||
11 | 11 | ||
12 | #include <plat/regs-serial.h> | 12 | #include <plat/regs-serial.h> |
13 | 13 | ||
14 | /* The S5PV210/S5PC110 and S5P6442 implementations are as belows. */ | 14 | /* The S5PV210/S5PC110 implementations are as belows. */ |
15 | 15 | ||
16 | .macro fifo_level_s5pv210 rd, rx | 16 | .macro fifo_level_s5pv210 rd, rx |
17 | ldr \rd, [ \rx, # S3C2410_UFSTAT ] | 17 | ldr \rd, [ \rx, # S3C2410_UFSTAT ] |
diff --git a/arch/arm/plat-samsung/include/plat/devs.h b/arch/arm/plat-samsung/include/plat/devs.h index 85f6f23a510f..e3b31c26ac3e 100644 --- a/arch/arm/plat-samsung/include/plat/devs.h +++ b/arch/arm/plat-samsung/include/plat/devs.h | |||
@@ -1,5 +1,8 @@ | |||
1 | /* arch/arm/plat-samsung/include/plat/devs.h | 1 | /* arch/arm/plat-samsung/include/plat/devs.h |
2 | * | 2 | * |
3 | * Copyright (c) 2011 Samsung Electronics Co., Ltd. | ||
4 | * http://www.samsung.com | ||
5 | * | ||
3 | * Copyright (c) 2004 Simtec Electronics | 6 | * Copyright (c) 2004 Simtec Electronics |
4 | * Ben Dooks <ben@simtec.co.uk> | 7 | * Ben Dooks <ben@simtec.co.uk> |
5 | * | 8 | * |
@@ -9,6 +12,10 @@ | |||
9 | * it under the terms of the GNU General Public License version 2 as | 12 | * it under the terms of the GNU General Public License version 2 as |
10 | * published by the Free Software Foundation. | 13 | * published by the Free Software Foundation. |
11 | */ | 14 | */ |
15 | |||
16 | #ifndef __PLAT_DEVS_H | ||
17 | #define __PLAT_DEVS_H __FILE__ | ||
18 | |||
12 | #include <linux/platform_device.h> | 19 | #include <linux/platform_device.h> |
13 | 20 | ||
14 | struct s3c24xx_uart_resources { | 21 | struct s3c24xx_uart_resources { |
@@ -32,6 +39,8 @@ extern struct platform_device s3c64xx_device_iisv4; | |||
32 | extern struct platform_device s3c64xx_device_spi0; | 39 | extern struct platform_device s3c64xx_device_spi0; |
33 | extern struct platform_device s3c64xx_device_spi1; | 40 | extern struct platform_device s3c64xx_device_spi1; |
34 | 41 | ||
42 | extern struct platform_device samsung_asoc_dma; | ||
43 | |||
35 | extern struct platform_device s3c64xx_device_pcm0; | 44 | extern struct platform_device s3c64xx_device_pcm0; |
36 | extern struct platform_device s3c64xx_device_pcm1; | 45 | extern struct platform_device s3c64xx_device_pcm1; |
37 | 46 | ||
@@ -46,6 +55,11 @@ extern struct platform_device s3c_device_wdt; | |||
46 | extern struct platform_device s3c_device_i2c0; | 55 | extern struct platform_device s3c_device_i2c0; |
47 | extern struct platform_device s3c_device_i2c1; | 56 | extern struct platform_device s3c_device_i2c1; |
48 | extern struct platform_device s3c_device_i2c2; | 57 | extern struct platform_device s3c_device_i2c2; |
58 | extern struct platform_device s3c_device_i2c3; | ||
59 | extern struct platform_device s3c_device_i2c4; | ||
60 | extern struct platform_device s3c_device_i2c5; | ||
61 | extern struct platform_device s3c_device_i2c6; | ||
62 | extern struct platform_device s3c_device_i2c7; | ||
49 | extern struct platform_device s3c_device_rtc; | 63 | extern struct platform_device s3c_device_rtc; |
50 | extern struct platform_device s3c_device_adc; | 64 | extern struct platform_device s3c_device_adc; |
51 | extern struct platform_device s3c_device_sdi; | 65 | extern struct platform_device s3c_device_sdi; |
@@ -65,17 +79,18 @@ extern struct platform_device s5pc100_device_spi1; | |||
65 | extern struct platform_device s5pc100_device_spi2; | 79 | extern struct platform_device s5pc100_device_spi2; |
66 | extern struct platform_device s5pv210_device_spi0; | 80 | extern struct platform_device s5pv210_device_spi0; |
67 | extern struct platform_device s5pv210_device_spi1; | 81 | extern struct platform_device s5pv210_device_spi1; |
68 | extern struct platform_device s5p6440_device_spi0; | 82 | extern struct platform_device s5p64x0_device_spi0; |
69 | extern struct platform_device s5p6440_device_spi1; | 83 | extern struct platform_device s5p64x0_device_spi1; |
70 | 84 | ||
71 | extern struct platform_device s3c_device_hwmon; | 85 | extern struct platform_device s3c_device_hwmon; |
72 | 86 | ||
73 | extern struct platform_device s3c_device_nand; | 87 | extern struct platform_device s3c_device_nand; |
74 | extern struct platform_device s3c_device_onenand; | 88 | extern struct platform_device s3c_device_onenand; |
75 | extern struct platform_device s3c64xx_device_onenand1; | 89 | extern struct platform_device s3c64xx_device_onenand1; |
76 | extern struct platform_device s5pc110_device_onenand; | 90 | extern struct platform_device s5p_device_onenand; |
77 | 91 | ||
78 | extern struct platform_device s3c_device_usbgadget; | 92 | extern struct platform_device s3c_device_usbgadget; |
93 | extern struct platform_device s3c_device_usb_hsudc; | ||
79 | extern struct platform_device s3c_device_usb_hsotg; | 94 | extern struct platform_device s3c_device_usb_hsotg; |
80 | 95 | ||
81 | extern struct platform_device s5pv210_device_ac97; | 96 | extern struct platform_device s5pv210_device_ac97; |
@@ -85,28 +100,48 @@ extern struct platform_device s5pv210_device_pcm2; | |||
85 | extern struct platform_device s5pv210_device_iis0; | 100 | extern struct platform_device s5pv210_device_iis0; |
86 | extern struct platform_device s5pv210_device_iis1; | 101 | extern struct platform_device s5pv210_device_iis1; |
87 | extern struct platform_device s5pv210_device_iis2; | 102 | extern struct platform_device s5pv210_device_iis2; |
88 | 103 | extern struct platform_device s5pv210_device_spdif; | |
89 | extern struct platform_device s5p6442_device_pcm0; | 104 | |
90 | extern struct platform_device s5p6442_device_pcm1; | 105 | extern struct platform_device exynos4_device_ac97; |
91 | extern struct platform_device s5p6442_device_iis0; | 106 | extern struct platform_device exynos4_device_pcm0; |
92 | extern struct platform_device s5p6442_device_iis1; | 107 | extern struct platform_device exynos4_device_pcm1; |
93 | extern struct platform_device s5p6442_device_spi; | 108 | extern struct platform_device exynos4_device_pcm2; |
109 | extern struct platform_device exynos4_device_i2s0; | ||
110 | extern struct platform_device exynos4_device_i2s1; | ||
111 | extern struct platform_device exynos4_device_i2s2; | ||
112 | extern struct platform_device exynos4_device_spdif; | ||
113 | extern struct platform_device exynos4_device_pd[]; | ||
114 | extern struct platform_device exynos4_device_ahci; | ||
94 | 115 | ||
95 | extern struct platform_device s5p6440_device_pcm; | 116 | extern struct platform_device s5p6440_device_pcm; |
96 | extern struct platform_device s5p6440_device_iis; | 117 | extern struct platform_device s5p6440_device_iis; |
97 | 118 | ||
119 | extern struct platform_device s5p6450_device_iis0; | ||
120 | extern struct platform_device s5p6450_device_iis1; | ||
121 | extern struct platform_device s5p6450_device_iis2; | ||
122 | extern struct platform_device s5p6450_device_pcm0; | ||
123 | |||
98 | extern struct platform_device s5pc100_device_ac97; | 124 | extern struct platform_device s5pc100_device_ac97; |
99 | extern struct platform_device s5pc100_device_pcm0; | 125 | extern struct platform_device s5pc100_device_pcm0; |
100 | extern struct platform_device s5pc100_device_pcm1; | 126 | extern struct platform_device s5pc100_device_pcm1; |
101 | extern struct platform_device s5pc100_device_iis0; | 127 | extern struct platform_device s5pc100_device_iis0; |
102 | extern struct platform_device s5pc100_device_iis1; | 128 | extern struct platform_device s5pc100_device_iis1; |
103 | extern struct platform_device s5pc100_device_iis2; | 129 | extern struct platform_device s5pc100_device_iis2; |
130 | extern struct platform_device s5pc100_device_spdif; | ||
104 | 131 | ||
105 | extern struct platform_device samsung_device_keypad; | 132 | extern struct platform_device samsung_device_keypad; |
106 | 133 | ||
107 | extern struct platform_device s5p_device_fimc0; | 134 | extern struct platform_device s5p_device_fimc0; |
108 | extern struct platform_device s5p_device_fimc1; | 135 | extern struct platform_device s5p_device_fimc1; |
109 | extern struct platform_device s5p_device_fimc2; | 136 | extern struct platform_device s5p_device_fimc2; |
137 | extern struct platform_device s5p_device_fimc3; | ||
138 | |||
139 | extern struct platform_device s5p_device_mipi_csis0; | ||
140 | extern struct platform_device s5p_device_mipi_csis1; | ||
141 | |||
142 | extern struct platform_device s5p_device_ehci; | ||
143 | |||
144 | extern struct platform_device exynos4_device_sysmmu; | ||
110 | 145 | ||
111 | /* s3c2440 specific devices */ | 146 | /* s3c2440 specific devices */ |
112 | 147 | ||
@@ -128,3 +163,5 @@ extern struct platform_device s3c_device_ac97; | |||
128 | */ | 163 | */ |
129 | extern void *s3c_set_platdata(void *pd, size_t pdsize, | 164 | extern void *s3c_set_platdata(void *pd, size_t pdsize, |
130 | struct platform_device *pdev); | 165 | struct platform_device *pdev); |
166 | |||
167 | #endif /* __PLAT_DEVS_H */ | ||
diff --git a/arch/arm/plat-samsung/include/plat/dma.h b/arch/arm/plat-samsung/include/plat/dma.h index 2e8f8c6560d7..8c273b7a6f56 100644 --- a/arch/arm/plat-samsung/include/plat/dma.h +++ b/arch/arm/plat-samsung/include/plat/dma.h | |||
@@ -42,6 +42,7 @@ struct s3c2410_dma_client { | |||
42 | }; | 42 | }; |
43 | 43 | ||
44 | struct s3c2410_dma_chan; | 44 | struct s3c2410_dma_chan; |
45 | enum dma_ch; | ||
45 | 46 | ||
46 | /* s3c2410_dma_cbfn_t | 47 | /* s3c2410_dma_cbfn_t |
47 | * | 48 | * |
@@ -62,7 +63,7 @@ typedef int (*s3c2410_dma_opfn_t)(struct s3c2410_dma_chan *, | |||
62 | * request a dma channel exclusivley | 63 | * request a dma channel exclusivley |
63 | */ | 64 | */ |
64 | 65 | ||
65 | extern int s3c2410_dma_request(unsigned int channel, | 66 | extern int s3c2410_dma_request(enum dma_ch channel, |
66 | struct s3c2410_dma_client *, void *dev); | 67 | struct s3c2410_dma_client *, void *dev); |
67 | 68 | ||
68 | 69 | ||
@@ -71,14 +72,14 @@ extern int s3c2410_dma_request(unsigned int channel, | |||
71 | * change the state of the dma channel | 72 | * change the state of the dma channel |
72 | */ | 73 | */ |
73 | 74 | ||
74 | extern int s3c2410_dma_ctrl(unsigned int channel, enum s3c2410_chan_op op); | 75 | extern int s3c2410_dma_ctrl(enum dma_ch channel, enum s3c2410_chan_op op); |
75 | 76 | ||
76 | /* s3c2410_dma_setflags | 77 | /* s3c2410_dma_setflags |
77 | * | 78 | * |
78 | * set the channel's flags to a given state | 79 | * set the channel's flags to a given state |
79 | */ | 80 | */ |
80 | 81 | ||
81 | extern int s3c2410_dma_setflags(unsigned int channel, | 82 | extern int s3c2410_dma_setflags(enum dma_ch channel, |
82 | unsigned int flags); | 83 | unsigned int flags); |
83 | 84 | ||
84 | /* s3c2410_dma_free | 85 | /* s3c2410_dma_free |
@@ -86,7 +87,7 @@ extern int s3c2410_dma_setflags(unsigned int channel, | |||
86 | * free the dma channel (will also abort any outstanding operations) | 87 | * free the dma channel (will also abort any outstanding operations) |
87 | */ | 88 | */ |
88 | 89 | ||
89 | extern int s3c2410_dma_free(unsigned int channel, struct s3c2410_dma_client *); | 90 | extern int s3c2410_dma_free(enum dma_ch channel, struct s3c2410_dma_client *); |
90 | 91 | ||
91 | /* s3c2410_dma_enqueue | 92 | /* s3c2410_dma_enqueue |
92 | * | 93 | * |
@@ -95,7 +96,7 @@ extern int s3c2410_dma_free(unsigned int channel, struct s3c2410_dma_client *); | |||
95 | * drained before the buffer is given to the DMA system. | 96 | * drained before the buffer is given to the DMA system. |
96 | */ | 97 | */ |
97 | 98 | ||
98 | extern int s3c2410_dma_enqueue(unsigned int channel, void *id, | 99 | extern int s3c2410_dma_enqueue(enum dma_ch channel, void *id, |
99 | dma_addr_t data, int size); | 100 | dma_addr_t data, int size); |
100 | 101 | ||
101 | /* s3c2410_dma_config | 102 | /* s3c2410_dma_config |
@@ -103,14 +104,14 @@ extern int s3c2410_dma_enqueue(unsigned int channel, void *id, | |||
103 | * configure the dma channel | 104 | * configure the dma channel |
104 | */ | 105 | */ |
105 | 106 | ||
106 | extern int s3c2410_dma_config(unsigned int channel, int xferunit); | 107 | extern int s3c2410_dma_config(enum dma_ch channel, int xferunit); |
107 | 108 | ||
108 | /* s3c2410_dma_devconfig | 109 | /* s3c2410_dma_devconfig |
109 | * | 110 | * |
110 | * configure the device we're talking to | 111 | * configure the device we're talking to |
111 | */ | 112 | */ |
112 | 113 | ||
113 | extern int s3c2410_dma_devconfig(unsigned int channel, | 114 | extern int s3c2410_dma_devconfig(enum dma_ch channel, |
114 | enum s3c2410_dmasrc source, unsigned long devaddr); | 115 | enum s3c2410_dmasrc source, unsigned long devaddr); |
115 | 116 | ||
116 | /* s3c2410_dma_getposition | 117 | /* s3c2410_dma_getposition |
@@ -118,10 +119,10 @@ extern int s3c2410_dma_devconfig(unsigned int channel, | |||
118 | * get the position that the dma transfer is currently at | 119 | * get the position that the dma transfer is currently at |
119 | */ | 120 | */ |
120 | 121 | ||
121 | extern int s3c2410_dma_getposition(unsigned int channel, | 122 | extern int s3c2410_dma_getposition(enum dma_ch channel, |
122 | dma_addr_t *src, dma_addr_t *dest); | 123 | dma_addr_t *src, dma_addr_t *dest); |
123 | 124 | ||
124 | extern int s3c2410_dma_set_opfn(unsigned int, s3c2410_dma_opfn_t rtn); | 125 | extern int s3c2410_dma_set_opfn(enum dma_ch, s3c2410_dma_opfn_t rtn); |
125 | extern int s3c2410_dma_set_buffdone_fn(unsigned int, s3c2410_dma_cbfn_t rtn); | 126 | extern int s3c2410_dma_set_buffdone_fn(enum dma_ch, s3c2410_dma_cbfn_t rtn); |
126 | 127 | ||
127 | 128 | ||
diff --git a/arch/arm/plat-samsung/include/plat/fimc-core.h b/arch/arm/plat-samsung/include/plat/fimc-core.h index 81a3bfeeccad..945a99d59563 100644 --- a/arch/arm/plat-samsung/include/plat/fimc-core.h +++ b/arch/arm/plat-samsung/include/plat/fimc-core.h | |||
@@ -38,6 +38,11 @@ static inline void s3c_fimc_setname(int id, char *name) | |||
38 | s5p_device_fimc2.name = name; | 38 | s5p_device_fimc2.name = name; |
39 | break; | 39 | break; |
40 | #endif | 40 | #endif |
41 | #ifdef CONFIG_S5P_DEV_FIMC3 | ||
42 | case 3: | ||
43 | s5p_device_fimc3.name = name; | ||
44 | break; | ||
45 | #endif | ||
41 | } | 46 | } |
42 | } | 47 | } |
43 | 48 | ||
diff --git a/arch/arm/plat-samsung/include/plat/gpio-cfg-helpers.h b/arch/arm/plat-samsung/include/plat/gpio-cfg-helpers.h index 3e21c75feefa..3ad8386599c3 100644 --- a/arch/arm/plat-samsung/include/plat/gpio-cfg-helpers.h +++ b/arch/arm/plat-samsung/include/plat/gpio-cfg-helpers.h | |||
@@ -42,6 +42,12 @@ static inline int s3c_gpio_do_setpull(struct s3c_gpio_chip *chip, | |||
42 | return (chip->config->set_pull)(chip, off, pull); | 42 | return (chip->config->set_pull)(chip, off, pull); |
43 | } | 43 | } |
44 | 44 | ||
45 | static inline s3c_gpio_pull_t s3c_gpio_do_getpull(struct s3c_gpio_chip *chip, | ||
46 | unsigned int off) | ||
47 | { | ||
48 | return chip->config->get_pull(chip, off); | ||
49 | } | ||
50 | |||
45 | /** | 51 | /** |
46 | * s3c_gpio_setcfg_s3c24xx - S3C24XX style GPIO configuration. | 52 | * s3c_gpio_setcfg_s3c24xx - S3C24XX style GPIO configuration. |
47 | * @chip: The gpio chip that is being configured. | 53 | * @chip: The gpio chip that is being configured. |
@@ -108,7 +114,7 @@ extern unsigned s3c_gpio_getcfg_s3c24xx_a(struct s3c_gpio_chip *chip, | |||
108 | * of control per GPIO, generally in the form of: | 114 | * of control per GPIO, generally in the form of: |
109 | * 0000 = Input | 115 | * 0000 = Input |
110 | * 0001 = Output | 116 | * 0001 = Output |
111 | * others = Special functions (dependant on bank) | 117 | * others = Special functions (dependent on bank) |
112 | * | 118 | * |
113 | * Note, since the code to deal with the case where there are two control | 119 | * Note, since the code to deal with the case where there are two control |
114 | * registers instead of one, we do not have a separate set of functions for | 120 | * registers instead of one, we do not have a separate set of functions for |
@@ -204,6 +210,17 @@ extern s3c_gpio_pull_t s3c_gpio_getpull_1up(struct s3c_gpio_chip *chip, | |||
204 | unsigned int off); | 210 | unsigned int off); |
205 | 211 | ||
206 | /** | 212 | /** |
213 | * s3c_gpio_getpull_1down() - Get configuration for choice of down or none | ||
214 | * @chip: The gpio chip that the GPIO pin belongs to | ||
215 | * @off: The offset to the pin to get the configuration of. | ||
216 | * | ||
217 | * This helper function reads the state of the pull-down resistor for the | ||
218 | * given GPIO in the same case as s3c_gpio_setpull_1down. | ||
219 | */ | ||
220 | extern s3c_gpio_pull_t s3c_gpio_getpull_1down(struct s3c_gpio_chip *chip, | ||
221 | unsigned int off); | ||
222 | |||
223 | /** | ||
207 | * s3c_gpio_setpull_s3c2443() - Pull configuration for s3c2443. | 224 | * s3c_gpio_setpull_s3c2443() - Pull configuration for s3c2443. |
208 | * @chip: The gpio chip that is being configured. | 225 | * @chip: The gpio chip that is being configured. |
209 | * @off: The offset for the GPIO being configured. | 226 | * @off: The offset for the GPIO being configured. |
@@ -227,7 +244,7 @@ extern int s3c_gpio_setpull_s3c2443(struct s3c_gpio_chip *chip, | |||
227 | * This helper function reads the state of the pull-{up,down} resistor for the | 244 | * This helper function reads the state of the pull-{up,down} resistor for the |
228 | * given GPIO in the same case as s3c_gpio_setpull_upown. | 245 | * given GPIO in the same case as s3c_gpio_setpull_upown. |
229 | */ | 246 | */ |
230 | extern s3c_gpio_pull_t s3c_gpio_getpull_s3c24xx(struct s3c_gpio_chip *chip, | 247 | extern s3c_gpio_pull_t s3c_gpio_getpull_s3c2443(struct s3c_gpio_chip *chip, |
231 | unsigned int off); | 248 | unsigned int off); |
232 | 249 | ||
233 | #endif /* __PLAT_GPIO_CFG_HELPERS_H */ | 250 | #endif /* __PLAT_GPIO_CFG_HELPERS_H */ |
diff --git a/arch/arm/plat-samsung/include/plat/gpio-cfg.h b/arch/arm/plat-samsung/include/plat/gpio-cfg.h index 1c6b92947c5d..1762dcb4cb9e 100644 --- a/arch/arm/plat-samsung/include/plat/gpio-cfg.h +++ b/arch/arm/plat-samsung/include/plat/gpio-cfg.h | |||
@@ -108,11 +108,24 @@ extern int s3c_gpio_cfgpin(unsigned int pin, unsigned int to); | |||
108 | */ | 108 | */ |
109 | extern unsigned s3c_gpio_getcfg(unsigned int pin); | 109 | extern unsigned s3c_gpio_getcfg(unsigned int pin); |
110 | 110 | ||
111 | /** | ||
112 | * s3c_gpio_cfgpin_range() - Change the GPIO function for configuring pin range | ||
113 | * @start: The pin number to start at | ||
114 | * @nr: The number of pins to configure from @start. | ||
115 | * @cfg: The configuration for the pin's function | ||
116 | * | ||
117 | * Call s3c_gpio_cfgpin() for the @nr pins starting at @start. | ||
118 | * | ||
119 | * @sa s3c_gpio_cfgpin. | ||
120 | */ | ||
121 | extern int s3c_gpio_cfgpin_range(unsigned int start, unsigned int nr, | ||
122 | unsigned int cfg); | ||
123 | |||
111 | /* Define values for the pull-{up,down} available for each gpio pin. | 124 | /* Define values for the pull-{up,down} available for each gpio pin. |
112 | * | 125 | * |
113 | * These values control the state of the weak pull-{up,down} resistors | 126 | * These values control the state of the weak pull-{up,down} resistors |
114 | * available on most pins on the S3C series. Not all chips support both | 127 | * available on most pins on the S3C series. Not all chips support both |
115 | * up or down settings, and it may be dependant on the chip that is being | 128 | * up or down settings, and it may be dependent on the chip that is being |
116 | * used to whether the particular mode is available. | 129 | * used to whether the particular mode is available. |
117 | */ | 130 | */ |
118 | #define S3C_GPIO_PULL_NONE ((__force s3c_gpio_pull_t)0x00) | 131 | #define S3C_GPIO_PULL_NONE ((__force s3c_gpio_pull_t)0x00) |
@@ -125,7 +138,7 @@ extern unsigned s3c_gpio_getcfg(unsigned int pin); | |||
125 | * @pull: The configuration for the pull resistor. | 138 | * @pull: The configuration for the pull resistor. |
126 | * | 139 | * |
127 | * This function sets the state of the pull-{up,down} resistor for the | 140 | * This function sets the state of the pull-{up,down} resistor for the |
128 | * specified pin. It will return 0 if successfull, or a negative error | 141 | * specified pin. It will return 0 if successful, or a negative error |
129 | * code if the pin cannot support the requested pull setting. | 142 | * code if the pin cannot support the requested pull setting. |
130 | * | 143 | * |
131 | * @pull is one of S3C_GPIO_PULL_NONE, S3C_GPIO_PULL_DOWN or S3C_GPIO_PULL_UP. | 144 | * @pull is one of S3C_GPIO_PULL_NONE, S3C_GPIO_PULL_DOWN or S3C_GPIO_PULL_UP. |
@@ -140,6 +153,31 @@ extern int s3c_gpio_setpull(unsigned int pin, s3c_gpio_pull_t pull); | |||
140 | */ | 153 | */ |
141 | extern s3c_gpio_pull_t s3c_gpio_getpull(unsigned int pin); | 154 | extern s3c_gpio_pull_t s3c_gpio_getpull(unsigned int pin); |
142 | 155 | ||
156 | /* configure `all` aspects of an gpio */ | ||
157 | |||
158 | /** | ||
159 | * s3c_gpio_cfgall_range() - configure range of gpio functtion and pull. | ||
160 | * @start: The gpio number to start at. | ||
161 | * @nr: The number of gpio to configure from @start. | ||
162 | * @cfg: The configuration to use | ||
163 | * @pull: The pull setting to use. | ||
164 | * | ||
165 | * Run s3c_gpio_cfgpin() and s3c_gpio_setpull() over the gpio range starting | ||
166 | * @gpio and running for @size. | ||
167 | * | ||
168 | * @sa s3c_gpio_cfgpin | ||
169 | * @sa s3c_gpio_setpull | ||
170 | * @sa s3c_gpio_cfgpin_range | ||
171 | */ | ||
172 | extern int s3c_gpio_cfgall_range(unsigned int start, unsigned int nr, | ||
173 | unsigned int cfg, s3c_gpio_pull_t pull); | ||
174 | |||
175 | static inline int s3c_gpio_cfgrange_nopull(unsigned int pin, unsigned int size, | ||
176 | unsigned int cfg) | ||
177 | { | ||
178 | return s3c_gpio_cfgall_range(pin, size, cfg, S3C_GPIO_PULL_NONE); | ||
179 | } | ||
180 | |||
143 | /* Define values for the drvstr available for each gpio pin. | 181 | /* Define values for the drvstr available for each gpio pin. |
144 | * | 182 | * |
145 | * These values control the value of the output signal driver strength, | 183 | * These values control the value of the output signal driver strength, |
@@ -164,9 +202,43 @@ extern s5p_gpio_drvstr_t s5p_gpio_get_drvstr(unsigned int pin); | |||
164 | * @drvstr: The new value of the driver strength | 202 | * @drvstr: The new value of the driver strength |
165 | * | 203 | * |
166 | * This function sets the driver strength value for the specified pin. | 204 | * This function sets the driver strength value for the specified pin. |
167 | * It will return 0 if successfull, or a negative error code if the pin | 205 | * It will return 0 if successful, or a negative error code if the pin |
168 | * cannot support the requested setting. | 206 | * cannot support the requested setting. |
169 | */ | 207 | */ |
170 | extern int s5p_gpio_set_drvstr(unsigned int pin, s5p_gpio_drvstr_t drvstr); | 208 | extern int s5p_gpio_set_drvstr(unsigned int pin, s5p_gpio_drvstr_t drvstr); |
171 | 209 | ||
210 | /** | ||
211 | * s5p_register_gpio_interrupt() - register interrupt support for a gpio group | ||
212 | * @pin: The pin number from the group to be registered | ||
213 | * | ||
214 | * This function registers gpio interrupt support for the group that the | ||
215 | * specified pin belongs to. | ||
216 | * | ||
217 | * The total number of gpio pins is quite large ob s5p series. Registering | ||
218 | * irq support for all of them would be a resource waste. Because of that the | ||
219 | * interrupt support for standard gpio pins is registered dynamically. | ||
220 | * | ||
221 | * It will return the irq number of the interrupt that has been registered | ||
222 | * or -ENOMEM if no more gpio interrupts can be registered. It is allowed | ||
223 | * to call this function more than once for the same gpio group (the group | ||
224 | * will be registered only once). | ||
225 | */ | ||
226 | extern int s5p_register_gpio_interrupt(int pin); | ||
227 | |||
228 | /** s5p_register_gpioint_bank() - add gpio bank for further gpio interrupt | ||
229 | * registration (see s5p_register_gpio_interrupt function) | ||
230 | * @chain_irq: chained irq number for the gpio int handler for this bank | ||
231 | * @start: start gpio group number of this bank | ||
232 | * @nr_groups: number of gpio groups handled by this bank | ||
233 | * | ||
234 | * This functions registers initial information about gpio banks that | ||
235 | * can be later used by the s5p_register_gpio_interrupt() function to | ||
236 | * enable support for gpio interrupt for particular gpio group. | ||
237 | */ | ||
238 | #ifdef CONFIG_S5P_GPIO_INT | ||
239 | extern int s5p_register_gpioint_bank(int chain_irq, int start, int nr_groups); | ||
240 | #else | ||
241 | #define s5p_register_gpioint_bank(chain_irq, start, nr_groups) do { } while (0) | ||
242 | #endif | ||
243 | |||
172 | #endif /* __PLAT_GPIO_CFG_H */ | 244 | #endif /* __PLAT_GPIO_CFG_H */ |
diff --git a/arch/arm/plat-samsung/include/plat/gpio-core.h b/arch/arm/plat-samsung/include/plat/gpio-core.h index e358c7da8480..8cad4cf19c3c 100644 --- a/arch/arm/plat-samsung/include/plat/gpio-core.h +++ b/arch/arm/plat-samsung/include/plat/gpio-core.h | |||
@@ -43,6 +43,8 @@ struct s3c_gpio_cfg; | |||
43 | * struct s3c_gpio_chip - wrapper for specific implementation of gpio | 43 | * struct s3c_gpio_chip - wrapper for specific implementation of gpio |
44 | * @chip: The chip structure to be exported via gpiolib. | 44 | * @chip: The chip structure to be exported via gpiolib. |
45 | * @base: The base pointer to the gpio configuration registers. | 45 | * @base: The base pointer to the gpio configuration registers. |
46 | * @group: The group register number for gpio interrupt support. | ||
47 | * @irq_base: The base irq number. | ||
46 | * @config: special function and pull-resistor control information. | 48 | * @config: special function and pull-resistor control information. |
47 | * @lock: Lock for exclusive access to this gpio bank. | 49 | * @lock: Lock for exclusive access to this gpio bank. |
48 | * @pm_save: Save information for suspend/resume support. | 50 | * @pm_save: Save information for suspend/resume support. |
@@ -63,6 +65,8 @@ struct s3c_gpio_chip { | |||
63 | struct s3c_gpio_cfg *config; | 65 | struct s3c_gpio_cfg *config; |
64 | struct s3c_gpio_pm *pm; | 66 | struct s3c_gpio_pm *pm; |
65 | void __iomem *base; | 67 | void __iomem *base; |
68 | int irq_base; | ||
69 | int group; | ||
66 | spinlock_t lock; | 70 | spinlock_t lock; |
67 | #ifdef CONFIG_PM | 71 | #ifdef CONFIG_PM |
68 | u32 pm_save[4]; | 72 | u32 pm_save[4]; |
@@ -104,7 +108,7 @@ extern void s3c_gpiolib_add(struct s3c_gpio_chip *chip); | |||
104 | * of control per GPIO, generally in the form of: | 108 | * of control per GPIO, generally in the form of: |
105 | * 0000 = Input | 109 | * 0000 = Input |
106 | * 0001 = Output | 110 | * 0001 = Output |
107 | * others = Special functions (dependant on bank) | 111 | * others = Special functions (dependent on bank) |
108 | * | 112 | * |
109 | * Note, since the code to deal with the case where there are two control | 113 | * Note, since the code to deal with the case where there are two control |
110 | * registers instead of one, we do not have a separate set of function | 114 | * registers instead of one, we do not have a separate set of function |
@@ -114,10 +118,23 @@ extern void samsung_gpiolib_add_4bit_chips(struct s3c_gpio_chip *chip, | |||
114 | int nr_chips); | 118 | int nr_chips); |
115 | extern void samsung_gpiolib_add_4bit2_chips(struct s3c_gpio_chip *chip, | 119 | extern void samsung_gpiolib_add_4bit2_chips(struct s3c_gpio_chip *chip, |
116 | int nr_chips); | 120 | int nr_chips); |
121 | extern void samsung_gpiolib_add_2bit_chips(struct s3c_gpio_chip *chip, | ||
122 | int nr_chips); | ||
117 | 123 | ||
118 | extern void samsung_gpiolib_add_4bit(struct s3c_gpio_chip *chip); | 124 | extern void samsung_gpiolib_add_4bit(struct s3c_gpio_chip *chip); |
119 | extern void samsung_gpiolib_add_4bit2(struct s3c_gpio_chip *chip); | 125 | extern void samsung_gpiolib_add_4bit2(struct s3c_gpio_chip *chip); |
120 | 126 | ||
127 | |||
128 | /** | ||
129 | * samsung_gpiolib_to_irq - convert gpio pin to irq number | ||
130 | * @chip: The gpio chip that the pin belongs to. | ||
131 | * @offset: The offset of the pin in the chip. | ||
132 | * | ||
133 | * This helper returns the irq number calculated from the chip->irq_base and | ||
134 | * the provided offset. | ||
135 | */ | ||
136 | extern int samsung_gpiolib_to_irq(struct gpio_chip *chip, unsigned int offset); | ||
137 | |||
121 | /* exported for core SoC support to change */ | 138 | /* exported for core SoC support to change */ |
122 | extern struct s3c_gpio_cfg s3c24xx_gpiocfg_default; | 139 | extern struct s3c_gpio_cfg s3c24xx_gpiocfg_default; |
123 | 140 | ||
diff --git a/arch/arm/plat-samsung/include/plat/iic.h b/arch/arm/plat-samsung/include/plat/iic.h index 133308bf595d..1543da8f85c1 100644 --- a/arch/arm/plat-samsung/include/plat/iic.h +++ b/arch/arm/plat-samsung/include/plat/iic.h | |||
@@ -55,10 +55,20 @@ struct s3c2410_platform_i2c { | |||
55 | extern void s3c_i2c0_set_platdata(struct s3c2410_platform_i2c *i2c); | 55 | extern void s3c_i2c0_set_platdata(struct s3c2410_platform_i2c *i2c); |
56 | extern void s3c_i2c1_set_platdata(struct s3c2410_platform_i2c *i2c); | 56 | extern void s3c_i2c1_set_platdata(struct s3c2410_platform_i2c *i2c); |
57 | extern void s3c_i2c2_set_platdata(struct s3c2410_platform_i2c *i2c); | 57 | extern void s3c_i2c2_set_platdata(struct s3c2410_platform_i2c *i2c); |
58 | extern void s3c_i2c3_set_platdata(struct s3c2410_platform_i2c *i2c); | ||
59 | extern void s3c_i2c4_set_platdata(struct s3c2410_platform_i2c *i2c); | ||
60 | extern void s3c_i2c5_set_platdata(struct s3c2410_platform_i2c *i2c); | ||
61 | extern void s3c_i2c6_set_platdata(struct s3c2410_platform_i2c *i2c); | ||
62 | extern void s3c_i2c7_set_platdata(struct s3c2410_platform_i2c *i2c); | ||
58 | 63 | ||
59 | /* defined by architecture to configure gpio */ | 64 | /* defined by architecture to configure gpio */ |
60 | extern void s3c_i2c0_cfg_gpio(struct platform_device *dev); | 65 | extern void s3c_i2c0_cfg_gpio(struct platform_device *dev); |
61 | extern void s3c_i2c1_cfg_gpio(struct platform_device *dev); | 66 | extern void s3c_i2c1_cfg_gpio(struct platform_device *dev); |
62 | extern void s3c_i2c2_cfg_gpio(struct platform_device *dev); | 67 | extern void s3c_i2c2_cfg_gpio(struct platform_device *dev); |
68 | extern void s3c_i2c3_cfg_gpio(struct platform_device *dev); | ||
69 | extern void s3c_i2c4_cfg_gpio(struct platform_device *dev); | ||
70 | extern void s3c_i2c5_cfg_gpio(struct platform_device *dev); | ||
71 | extern void s3c_i2c6_cfg_gpio(struct platform_device *dev); | ||
72 | extern void s3c_i2c7_cfg_gpio(struct platform_device *dev); | ||
63 | 73 | ||
64 | #endif /* __ASM_ARCH_IIC_H */ | 74 | #endif /* __ASM_ARCH_IIC_H */ |
diff --git a/arch/arm/plat-samsung/include/plat/irq-vic-timer.h b/arch/arm/plat-samsung/include/plat/irq-vic-timer.h index a90b53431b5b..5b9c42fd32d7 100644 --- a/arch/arm/plat-samsung/include/plat/irq-vic-timer.h +++ b/arch/arm/plat-samsung/include/plat/irq-vic-timer.h | |||
@@ -10,4 +10,4 @@ | |||
10 | * published by the Free Software Foundation. | 10 | * published by the Free Software Foundation. |
11 | */ | 11 | */ |
12 | 12 | ||
13 | extern void s3c_init_vic_timer_irq(unsigned int vic, unsigned int timer); | 13 | extern void s3c_init_vic_timer_irq(unsigned int num, unsigned int timer_irq); |
diff --git a/arch/arm/plat-samsung/include/plat/map-base.h b/arch/arm/plat-samsung/include/plat/map-base.h index 250be311c85b..3ffac4d2e4f0 100644 --- a/arch/arm/plat-samsung/include/plat/map-base.h +++ b/arch/arm/plat-samsung/include/plat/map-base.h | |||
@@ -14,7 +14,7 @@ | |||
14 | #ifndef __ASM_PLAT_MAP_H | 14 | #ifndef __ASM_PLAT_MAP_H |
15 | #define __ASM_PLAT_MAP_H __FILE__ | 15 | #define __ASM_PLAT_MAP_H __FILE__ |
16 | 16 | ||
17 | /* Fit all our registers in at 0xF4000000 upwards, trying to use as | 17 | /* Fit all our registers in at 0xF6000000 upwards, trying to use as |
18 | * little of the VA space as possible so vmalloc and friends have a | 18 | * little of the VA space as possible so vmalloc and friends have a |
19 | * better chance of getting memory. | 19 | * better chance of getting memory. |
20 | * | 20 | * |
@@ -22,7 +22,7 @@ | |||
22 | * an single MOVS instruction (ie, only 8 bits of set data) | 22 | * an single MOVS instruction (ie, only 8 bits of set data) |
23 | */ | 23 | */ |
24 | 24 | ||
25 | #define S3C_ADDR_BASE (0xF4000000) | 25 | #define S3C_ADDR_BASE 0xF6000000 |
26 | 26 | ||
27 | #ifndef __ASSEMBLY__ | 27 | #ifndef __ASSEMBLY__ |
28 | #define S3C_ADDR(x) ((void __iomem __force *)S3C_ADDR_BASE + (x)) | 28 | #define S3C_ADDR(x) ((void __iomem __force *)S3C_ADDR_BASE + (x)) |
diff --git a/arch/arm/plat-samsung/include/plat/nand-core.h b/arch/arm/plat-samsung/include/plat/nand-core.h new file mode 100644 index 000000000000..6de20789a95e --- /dev/null +++ b/arch/arm/plat-samsung/include/plat/nand-core.h | |||
@@ -0,0 +1,28 @@ | |||
1 | /* arch/arm/plat-samsung/include/plat/nand-core.h | ||
2 | * | ||
3 | * Copyright (c) 2010 Samsung Electronics Co., Ltd. | ||
4 | * http://www.samsung.com/ | ||
5 | * | ||
6 | * S3C - Nand Controller core functions | ||
7 | * | ||
8 | * This program is free software; you can redistribute it and/or modify | ||
9 | * it under the terms of the GNU General Public License version 2 as | ||
10 | * published by the Free Software Foundation. | ||
11 | */ | ||
12 | |||
13 | #ifndef __ASM_ARCH_NAND_CORE_H | ||
14 | #define __ASM_ARCH_NAND_CORE_H __FILE__ | ||
15 | |||
16 | /* These functions are only for use with the core support code, such as | ||
17 | * the cpu specific initialisation code | ||
18 | */ | ||
19 | |||
20 | /* re-define device name depending on support. */ | ||
21 | static inline void s3c_nand_setname(char *name) | ||
22 | { | ||
23 | #ifdef CONFIG_S3C_DEV_NAND | ||
24 | s3c_device_nand.name = name; | ||
25 | #endif | ||
26 | } | ||
27 | |||
28 | #endif /* __ASM_ARCH_NAND_CORE_H */ | ||
diff --git a/arch/arm/plat-samsung/include/plat/pd.h b/arch/arm/plat-samsung/include/plat/pd.h new file mode 100644 index 000000000000..abb4bc32716a --- /dev/null +++ b/arch/arm/plat-samsung/include/plat/pd.h | |||
@@ -0,0 +1,30 @@ | |||
1 | /* linux/arch/arm/plat-samsung/include/plat/pd.h | ||
2 | * | ||
3 | * Copyright (c) 2010-2011 Samsung Electronics Co., Ltd. | ||
4 | * http://www.samsung.com | ||
5 | * | ||
6 | * This program is free software; you can redistribute it and/or modify | ||
7 | * it under the terms of the GNU General Public License version 2 as | ||
8 | * published by the Free Software Foundation. | ||
9 | */ | ||
10 | |||
11 | #ifndef __ASM_PLAT_SAMSUNG_PD_H | ||
12 | #define __ASM_PLAT_SAMSUNG_PD_H __FILE__ | ||
13 | |||
14 | struct samsung_pd_info { | ||
15 | int (*enable)(struct device *dev); | ||
16 | int (*disable)(struct device *dev); | ||
17 | void __iomem *base; | ||
18 | }; | ||
19 | |||
20 | enum exynos4_pd_block { | ||
21 | PD_MFC, | ||
22 | PD_G3D, | ||
23 | PD_LCD0, | ||
24 | PD_LCD1, | ||
25 | PD_TV, | ||
26 | PD_CAM, | ||
27 | PD_GPS | ||
28 | }; | ||
29 | |||
30 | #endif /* __ASM_PLAT_SAMSUNG_PD_H */ | ||
diff --git a/arch/arm/plat-samsung/include/plat/pm.h b/arch/arm/plat-samsung/include/plat/pm.h index 245836d91931..7fb6f6be8c81 100644 --- a/arch/arm/plat-samsung/include/plat/pm.h +++ b/arch/arm/plat-samsung/include/plat/pm.h | |||
@@ -15,6 +15,10 @@ | |||
15 | * management | 15 | * management |
16 | */ | 16 | */ |
17 | 17 | ||
18 | #include <linux/irq.h> | ||
19 | |||
20 | struct sys_device; | ||
21 | |||
18 | #ifdef CONFIG_PM | 22 | #ifdef CONFIG_PM |
19 | 23 | ||
20 | extern __init int s3c_pm_init(void); | 24 | extern __init int s3c_pm_init(void); |
@@ -48,13 +52,11 @@ extern unsigned char pm_uart_udivslot; /* true to save UART UDIVSLOT */ | |||
48 | 52 | ||
49 | /* from sleep.S */ | 53 | /* from sleep.S */ |
50 | 54 | ||
51 | extern int s3c_cpu_save(unsigned long *saveblk); | 55 | extern int s3c_cpu_save(unsigned long *saveblk, long); |
52 | extern void s3c_cpu_resume(void); | 56 | extern void s3c_cpu_resume(void); |
53 | 57 | ||
54 | extern void s3c2410_cpu_suspend(void); | 58 | extern void s3c2410_cpu_suspend(void); |
55 | 59 | ||
56 | extern unsigned long s3c_sleep_save_phys; | ||
57 | |||
58 | /* sleep save info */ | 60 | /* sleep save info */ |
59 | 61 | ||
60 | /** | 62 | /** |
@@ -100,15 +102,17 @@ extern void s3c_pm_do_restore(struct sleep_save *ptr, int count); | |||
100 | extern void s3c_pm_do_restore_core(struct sleep_save *ptr, int count); | 102 | extern void s3c_pm_do_restore_core(struct sleep_save *ptr, int count); |
101 | 103 | ||
102 | #ifdef CONFIG_PM | 104 | #ifdef CONFIG_PM |
103 | extern int s3c_irqext_wake(unsigned int irqno, unsigned int state); | 105 | extern int s3c_irqext_wake(struct irq_data *data, unsigned int state); |
104 | extern int s3c24xx_irq_suspend(struct sys_device *dev, pm_message_t state); | 106 | extern int s3c24xx_irq_suspend(void); |
105 | extern int s3c24xx_irq_resume(struct sys_device *dev); | 107 | extern void s3c24xx_irq_resume(void); |
106 | #else | 108 | #else |
107 | #define s3c_irqext_wake NULL | 109 | #define s3c_irqext_wake NULL |
108 | #define s3c24xx_irq_suspend NULL | 110 | #define s3c24xx_irq_suspend NULL |
109 | #define s3c24xx_irq_resume NULL | 111 | #define s3c24xx_irq_resume NULL |
110 | #endif | 112 | #endif |
111 | 113 | ||
114 | extern struct syscore_ops s3c24xx_irq_syscore_ops; | ||
115 | |||
112 | /* PM debug functions */ | 116 | /* PM debug functions */ |
113 | 117 | ||
114 | #ifdef CONFIG_SAMSUNG_PM_DEBUG | 118 | #ifdef CONFIG_SAMSUNG_PM_DEBUG |
@@ -177,13 +181,5 @@ extern void s3c_pm_restore_gpios(void); | |||
177 | */ | 181 | */ |
178 | extern void s3c_pm_save_gpios(void); | 182 | extern void s3c_pm_save_gpios(void); |
179 | 183 | ||
180 | /** | ||
181 | * s3c_pm_cb_flushcache - callback for assembly code | ||
182 | * | ||
183 | * Callback to issue flush_cache_all() as this call is | ||
184 | * not a directly callable object. | ||
185 | */ | ||
186 | extern void s3c_pm_cb_flushcache(void); | ||
187 | |||
188 | extern void s3c_pm_save_core(void); | 184 | extern void s3c_pm_save_core(void); |
189 | extern void s3c_pm_restore_core(void); | 185 | extern void s3c_pm_restore_core(void); |
diff --git a/arch/arm/plat-samsung/include/plat/regs-serial.h b/arch/arm/plat-samsung/include/plat/regs-serial.h index 788837e99cb3..116edfe120b9 100644 --- a/arch/arm/plat-samsung/include/plat/regs-serial.h +++ b/arch/arm/plat-samsung/include/plat/regs-serial.h | |||
@@ -194,7 +194,7 @@ | |||
194 | #define S3C64XX_UINTSP 0x34 | 194 | #define S3C64XX_UINTSP 0x34 |
195 | #define S3C64XX_UINTM 0x38 | 195 | #define S3C64XX_UINTM 0x38 |
196 | 196 | ||
197 | /* Following are specific to S5PV210 and S5P6442 */ | 197 | /* Following are specific to S5PV210 */ |
198 | #define S5PV210_UCON_CLKMASK (1<<10) | 198 | #define S5PV210_UCON_CLKMASK (1<<10) |
199 | #define S5PV210_UCON_PCLK (0<<10) | 199 | #define S5PV210_UCON_PCLK (0<<10) |
200 | #define S5PV210_UCON_UCLK (1<<10) | 200 | #define S5PV210_UCON_UCLK (1<<10) |
@@ -224,6 +224,8 @@ | |||
224 | #define S5PV210_UFSTAT_RXMASK (255<<0) | 224 | #define S5PV210_UFSTAT_RXMASK (255<<0) |
225 | #define S5PV210_UFSTAT_RXSHIFT (0) | 225 | #define S5PV210_UFSTAT_RXSHIFT (0) |
226 | 226 | ||
227 | #define NO_NEED_CHECK_CLKSRC 1 | ||
228 | |||
227 | #ifndef __ASSEMBLY__ | 229 | #ifndef __ASSEMBLY__ |
228 | 230 | ||
229 | /* struct s3c24xx_uart_clksrc | 231 | /* struct s3c24xx_uart_clksrc |
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..4c16fa3621bb 100644 --- a/arch/arm/plat-samsung/include/plat/s3c64xx-spi.h +++ b/arch/arm/plat-samsung/include/plat/s3c64xx-spi.h | |||
@@ -32,15 +32,19 @@ struct s3c64xx_spi_csinfo { | |||
32 | * struct s3c64xx_spi_info - SPI Controller defining structure | 32 | * struct s3c64xx_spi_info - SPI Controller defining structure |
33 | * @src_clk_nr: Clock source index for the CLK_CFG[SPI_CLKSEL] field. | 33 | * @src_clk_nr: Clock source index for the CLK_CFG[SPI_CLKSEL] field. |
34 | * @src_clk_name: Platform name of the corresponding clock. | 34 | * @src_clk_name: Platform name of the corresponding clock. |
35 | * @clk_from_cmu: If the SPI clock/prescalar control block is present | ||
36 | * by the platform's clock-management-unit and not in SPI controller. | ||
35 | * @num_cs: Number of CS this controller emulates. | 37 | * @num_cs: Number of CS this controller emulates. |
36 | * @cfg_gpio: Configure pins for this SPI controller. | 38 | * @cfg_gpio: Configure pins for this SPI controller. |
37 | * @fifo_lvl_mask: All tx fifo_lvl fields start at offset-6 | 39 | * @fifo_lvl_mask: All tx fifo_lvl fields start at offset-6 |
38 | * @rx_lvl_offset: Depends on tx fifo_lvl field and bus number | 40 | * @rx_lvl_offset: Depends on tx fifo_lvl field and bus number |
39 | * @high_speed: If the controller supports HIGH_SPEED_EN bit | 41 | * @high_speed: If the controller supports HIGH_SPEED_EN bit |
42 | * @tx_st_done: Depends on tx fifo_lvl field | ||
40 | */ | 43 | */ |
41 | struct s3c64xx_spi_info { | 44 | struct s3c64xx_spi_info { |
42 | int src_clk_nr; | 45 | int src_clk_nr; |
43 | char *src_clk_name; | 46 | char *src_clk_name; |
47 | bool clk_from_cmu; | ||
44 | 48 | ||
45 | int num_cs; | 49 | int num_cs; |
46 | 50 | ||
@@ -50,6 +54,7 @@ struct s3c64xx_spi_info { | |||
50 | int fifo_lvl_mask; | 54 | int fifo_lvl_mask; |
51 | int rx_lvl_offset; | 55 | int rx_lvl_offset; |
52 | int high_speed; | 56 | int high_speed; |
57 | int tx_st_done; | ||
53 | }; | 58 | }; |
54 | 59 | ||
55 | /** | 60 | /** |
@@ -65,7 +70,6 @@ struct s3c64xx_spi_info { | |||
65 | extern void s3c64xx_spi_set_info(int cntrlr, int src_clk_nr, int num_cs); | 70 | 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); | 71 | 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); | 72 | 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); | 73 | 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); | ||
70 | 74 | ||
71 | #endif /* __S3C64XX_PLAT_SPI_H */ | 75 | #endif /* __S3C64XX_PLAT_SPI_H */ |
diff --git a/arch/arm/plat-samsung/include/plat/sdhci.h b/arch/arm/plat-samsung/include/plat/sdhci.h index 30844c263d03..058e09654fe8 100644 --- a/arch/arm/plat-samsung/include/plat/sdhci.h +++ b/arch/arm/plat-samsung/include/plat/sdhci.h | |||
@@ -1,4 +1,7 @@ | |||
1 | /* linux/arch/arm/plat-s3c/include/plat/sdhci.h | 1 | /* linux/arch/arm/plat-samsung/include/plat/sdhci.h |
2 | * | ||
3 | * Copyright (c) 2011 Samsung Electronics Co., Ltd. | ||
4 | * http://www.samsung.com | ||
2 | * | 5 | * |
3 | * Copyright 2008 Openmoko, Inc. | 6 | * Copyright 2008 Openmoko, Inc. |
4 | * Copyright 2008 Simtec Electronics | 7 | * Copyright 2008 Simtec Electronics |
@@ -28,11 +31,17 @@ enum cd_types { | |||
28 | S3C_SDHCI_CD_PERMANENT, /* no CD line, card permanently wired to host */ | 31 | S3C_SDHCI_CD_PERMANENT, /* no CD line, card permanently wired to host */ |
29 | }; | 32 | }; |
30 | 33 | ||
34 | enum clk_types { | ||
35 | S3C_SDHCI_CLK_DIV_INTERNAL, /* use mmc internal clock divider */ | ||
36 | S3C_SDHCI_CLK_DIV_EXTERNAL, /* use external clock divider */ | ||
37 | }; | ||
38 | |||
31 | /** | 39 | /** |
32 | * struct s3c_sdhci_platdata() - Platform device data for Samsung SDHCI | 40 | * struct s3c_sdhci_platdata() - Platform device data for Samsung SDHCI |
33 | * @max_width: The maximum number of data bits supported. | 41 | * @max_width: The maximum number of data bits supported. |
34 | * @host_caps: Standard MMC host capabilities bit field. | 42 | * @host_caps: Standard MMC host capabilities bit field. |
35 | * @cd_type: Type of Card Detection method (see cd_types enum above) | 43 | * @cd_type: Type of Card Detection method (see cd_types enum above) |
44 | * @clk_type: Type of clock divider method (see clk_types enum above) | ||
36 | * @ext_cd_init: Initialize external card detect subsystem. Called on | 45 | * @ext_cd_init: Initialize external card detect subsystem. Called on |
37 | * sdhci-s3c driver probe when cd_type == S3C_SDHCI_CD_EXTERNAL. | 46 | * sdhci-s3c driver probe when cd_type == S3C_SDHCI_CD_EXTERNAL. |
38 | * notify_func argument is a callback to the sdhci-s3c driver | 47 | * notify_func argument is a callback to the sdhci-s3c driver |
@@ -48,7 +57,7 @@ enum cd_types { | |||
48 | * @cfg_gpio: Configure the GPIO for a specific card bit-width | 57 | * @cfg_gpio: Configure the GPIO for a specific card bit-width |
49 | * @cfg_card: Configure the interface for a specific card and speed. This | 58 | * @cfg_card: Configure the interface for a specific card and speed. This |
50 | * is necessary the controllers and/or GPIO blocks require the | 59 | * is necessary the controllers and/or GPIO blocks require the |
51 | * changing of driver-strength and other controls dependant on | 60 | * changing of driver-strength and other controls dependent on |
52 | * the card and speed of operation. | 61 | * the card and speed of operation. |
53 | * | 62 | * |
54 | * Initialisation data specific to either the machine or the platform | 63 | * Initialisation data specific to either the machine or the platform |
@@ -59,6 +68,7 @@ struct s3c_sdhci_platdata { | |||
59 | unsigned int max_width; | 68 | unsigned int max_width; |
60 | unsigned int host_caps; | 69 | unsigned int host_caps; |
61 | enum cd_types cd_type; | 70 | enum cd_types cd_type; |
71 | enum clk_types clk_type; | ||
62 | 72 | ||
63 | char **clocks; /* set of clock sources */ | 73 | char **clocks; /* set of clock sources */ |
64 | 74 | ||
@@ -98,8 +108,10 @@ extern struct s3c_sdhci_platdata s3c_hsmmc1_def_platdata; | |||
98 | extern struct s3c_sdhci_platdata s3c_hsmmc2_def_platdata; | 108 | extern struct s3c_sdhci_platdata s3c_hsmmc2_def_platdata; |
99 | extern struct s3c_sdhci_platdata s3c_hsmmc3_def_platdata; | 109 | extern struct s3c_sdhci_platdata s3c_hsmmc3_def_platdata; |
100 | 110 | ||
101 | /* Helper function availablity */ | 111 | /* Helper function availability */ |
102 | 112 | ||
113 | extern void s3c2416_setup_sdhci0_cfg_gpio(struct platform_device *, int w); | ||
114 | extern void s3c2416_setup_sdhci1_cfg_gpio(struct platform_device *, int w); | ||
103 | extern void s3c64xx_setup_sdhci0_cfg_gpio(struct platform_device *, int w); | 115 | extern void s3c64xx_setup_sdhci0_cfg_gpio(struct platform_device *, int w); |
104 | extern void s3c64xx_setup_sdhci1_cfg_gpio(struct platform_device *, int w); | 116 | extern void s3c64xx_setup_sdhci1_cfg_gpio(struct platform_device *, int w); |
105 | extern void s5pc100_setup_sdhci0_cfg_gpio(struct platform_device *, int w); | 117 | extern void s5pc100_setup_sdhci0_cfg_gpio(struct platform_device *, int w); |
@@ -110,7 +122,44 @@ extern void s5pv210_setup_sdhci0_cfg_gpio(struct platform_device *, int w); | |||
110 | extern void s5pv210_setup_sdhci1_cfg_gpio(struct platform_device *, int w); | 122 | extern void s5pv210_setup_sdhci1_cfg_gpio(struct platform_device *, int w); |
111 | extern void s5pv210_setup_sdhci2_cfg_gpio(struct platform_device *, int w); | 123 | extern void s5pv210_setup_sdhci2_cfg_gpio(struct platform_device *, int w); |
112 | extern void s5pv210_setup_sdhci3_cfg_gpio(struct platform_device *, int w); | 124 | extern void s5pv210_setup_sdhci3_cfg_gpio(struct platform_device *, int w); |
125 | extern void exynos4_setup_sdhci0_cfg_gpio(struct platform_device *, int w); | ||
126 | extern void exynos4_setup_sdhci1_cfg_gpio(struct platform_device *, int w); | ||
127 | extern void exynos4_setup_sdhci2_cfg_gpio(struct platform_device *, int w); | ||
128 | extern void exynos4_setup_sdhci3_cfg_gpio(struct platform_device *, int w); | ||
129 | |||
130 | /* S3C2416 SDHCI setup */ | ||
131 | |||
132 | #ifdef CONFIG_S3C2416_SETUP_SDHCI | ||
133 | extern char *s3c2416_hsmmc_clksrcs[4]; | ||
134 | |||
135 | extern void s3c2416_setup_sdhci_cfg_card(struct platform_device *dev, | ||
136 | void __iomem *r, | ||
137 | struct mmc_ios *ios, | ||
138 | struct mmc_card *card); | ||
139 | |||
140 | static inline void s3c2416_default_sdhci0(void) | ||
141 | { | ||
142 | #ifdef CONFIG_S3C_DEV_HSMMC | ||
143 | s3c_hsmmc0_def_platdata.clocks = s3c2416_hsmmc_clksrcs; | ||
144 | s3c_hsmmc0_def_platdata.cfg_gpio = s3c2416_setup_sdhci0_cfg_gpio; | ||
145 | s3c_hsmmc0_def_platdata.cfg_card = s3c2416_setup_sdhci_cfg_card; | ||
146 | #endif /* CONFIG_S3C_DEV_HSMMC */ | ||
147 | } | ||
148 | |||
149 | static inline void s3c2416_default_sdhci1(void) | ||
150 | { | ||
151 | #ifdef CONFIG_S3C_DEV_HSMMC1 | ||
152 | s3c_hsmmc1_def_platdata.clocks = s3c2416_hsmmc_clksrcs; | ||
153 | s3c_hsmmc1_def_platdata.cfg_gpio = s3c2416_setup_sdhci1_cfg_gpio; | ||
154 | s3c_hsmmc1_def_platdata.cfg_card = s3c2416_setup_sdhci_cfg_card; | ||
155 | #endif /* CONFIG_S3C_DEV_HSMMC1 */ | ||
156 | } | ||
157 | |||
158 | #else | ||
159 | static inline void s3c2416_default_sdhci0(void) { } | ||
160 | static inline void s3c2416_default_sdhci1(void) { } | ||
113 | 161 | ||
162 | #endif /* CONFIG_S3C2416_SETUP_SDHCI */ | ||
114 | /* S3C64XX SDHCI setup */ | 163 | /* S3C64XX SDHCI setup */ |
115 | 164 | ||
116 | #ifdef CONFIG_S3C64XX_SETUP_SDHCI | 165 | #ifdef CONFIG_S3C64XX_SETUP_SDHCI |
@@ -288,4 +337,57 @@ static inline void s5pv210_default_sdhci3(void) { } | |||
288 | 337 | ||
289 | #endif /* CONFIG_S5PV210_SETUP_SDHCI */ | 338 | #endif /* CONFIG_S5PV210_SETUP_SDHCI */ |
290 | 339 | ||
340 | /* EXYNOS4 SDHCI setup */ | ||
341 | #ifdef CONFIG_EXYNOS4_SETUP_SDHCI | ||
342 | extern char *exynos4_hsmmc_clksrcs[4]; | ||
343 | |||
344 | extern void exynos4_setup_sdhci_cfg_card(struct platform_device *dev, | ||
345 | void __iomem *r, | ||
346 | struct mmc_ios *ios, | ||
347 | struct mmc_card *card); | ||
348 | |||
349 | static inline void exynos4_default_sdhci0(void) | ||
350 | { | ||
351 | #ifdef CONFIG_S3C_DEV_HSMMC | ||
352 | s3c_hsmmc0_def_platdata.clocks = exynos4_hsmmc_clksrcs; | ||
353 | s3c_hsmmc0_def_platdata.cfg_gpio = exynos4_setup_sdhci0_cfg_gpio; | ||
354 | s3c_hsmmc0_def_platdata.cfg_card = exynos4_setup_sdhci_cfg_card; | ||
355 | #endif | ||
356 | } | ||
357 | |||
358 | static inline void exynos4_default_sdhci1(void) | ||
359 | { | ||
360 | #ifdef CONFIG_S3C_DEV_HSMMC1 | ||
361 | s3c_hsmmc1_def_platdata.clocks = exynos4_hsmmc_clksrcs; | ||
362 | s3c_hsmmc1_def_platdata.cfg_gpio = exynos4_setup_sdhci1_cfg_gpio; | ||
363 | s3c_hsmmc1_def_platdata.cfg_card = exynos4_setup_sdhci_cfg_card; | ||
364 | #endif | ||
365 | } | ||
366 | |||
367 | static inline void exynos4_default_sdhci2(void) | ||
368 | { | ||
369 | #ifdef CONFIG_S3C_DEV_HSMMC2 | ||
370 | s3c_hsmmc2_def_platdata.clocks = exynos4_hsmmc_clksrcs; | ||
371 | s3c_hsmmc2_def_platdata.cfg_gpio = exynos4_setup_sdhci2_cfg_gpio; | ||
372 | s3c_hsmmc2_def_platdata.cfg_card = exynos4_setup_sdhci_cfg_card; | ||
373 | #endif | ||
374 | } | ||
375 | |||
376 | static inline void exynos4_default_sdhci3(void) | ||
377 | { | ||
378 | #ifdef CONFIG_S3C_DEV_HSMMC3 | ||
379 | s3c_hsmmc3_def_platdata.clocks = exynos4_hsmmc_clksrcs; | ||
380 | s3c_hsmmc3_def_platdata.cfg_gpio = exynos4_setup_sdhci3_cfg_gpio; | ||
381 | s3c_hsmmc3_def_platdata.cfg_card = exynos4_setup_sdhci_cfg_card; | ||
382 | #endif | ||
383 | } | ||
384 | |||
385 | #else | ||
386 | static inline void exynos4_default_sdhci0(void) { } | ||
387 | static inline void exynos4_default_sdhci1(void) { } | ||
388 | static inline void exynos4_default_sdhci2(void) { } | ||
389 | static inline void exynos4_default_sdhci3(void) { } | ||
390 | |||
391 | #endif /* CONFIG_EXYNOS4_SETUP_SDHCI */ | ||
392 | |||
291 | #endif /* __PLAT_S3C_SDHCI_H */ | 393 | #endif /* __PLAT_S3C_SDHCI_H */ |
diff --git a/arch/arm/plat-samsung/include/plat/uncompress.h b/arch/arm/plat-samsung/include/plat/uncompress.h index 7d6ed7263d57..ee48e12a1e72 100644 --- a/arch/arm/plat-samsung/include/plat/uncompress.h +++ b/arch/arm/plat-samsung/include/plat/uncompress.h | |||
@@ -18,8 +18,8 @@ typedef unsigned int upf_t; /* cannot include linux/serial_core.h */ | |||
18 | 18 | ||
19 | /* uart setup */ | 19 | /* uart setup */ |
20 | 20 | ||
21 | static unsigned int fifo_mask; | 21 | unsigned int fifo_mask; |
22 | static unsigned int fifo_max; | 22 | unsigned int fifo_max; |
23 | 23 | ||
24 | /* forward declerations */ | 24 | /* forward declerations */ |
25 | 25 | ||