diff options
author | Kukjin Kim <kgene.kim@samsung.com> | 2010-10-25 02:57:16 -0400 |
---|---|---|
committer | Kukjin Kim <kgene.kim@samsung.com> | 2010-10-25 02:57:16 -0400 |
commit | 4d9374f39e40f7c7fc15acbfe01dceeee850509f (patch) | |
tree | 31ec5c2ae0ae753a7bdb5a34f3a607fdda2db6c6 /arch/arm/mach-s3c64xx | |
parent | dc6c0ca39daad44f3169656296ef81d39a6dc7f5 (diff) | |
parent | dff2126c548d54b040997257407a69a6cdf7a5b6 (diff) |
Merge branch 'next-gpio-update' into for-next
Diffstat (limited to 'arch/arm/mach-s3c64xx')
-rw-r--r-- | arch/arm/mach-s3c64xx/dev-audio.c | 64 | ||||
-rw-r--r-- | arch/arm/mach-s3c64xx/setup-fb-24bpp.c | 13 | ||||
-rw-r--r-- | arch/arm/mach-s3c64xx/setup-ide.c | 10 | ||||
-rw-r--r-- | arch/arm/mach-s3c64xx/setup-keypad.c | 15 | ||||
-rw-r--r-- | arch/arm/mach-s3c64xx/setup-sdhci-gpio.c | 41 |
5 files changed, 33 insertions, 110 deletions
diff --git a/arch/arm/mach-s3c64xx/dev-audio.c b/arch/arm/mach-s3c64xx/dev-audio.c index 9648fbc36eec..4a5c682a3727 100644 --- a/arch/arm/mach-s3c64xx/dev-audio.c +++ b/arch/arm/mach-s3c64xx/dev-audio.c | |||
@@ -22,44 +22,33 @@ | |||
22 | #include <plat/audio.h> | 22 | #include <plat/audio.h> |
23 | #include <plat/gpio-cfg.h> | 23 | #include <plat/gpio-cfg.h> |
24 | 24 | ||
25 | #include <mach/gpio-bank-c.h> | ||
26 | #include <mach/gpio-bank-d.h> | ||
27 | #include <mach/gpio-bank-e.h> | ||
28 | #include <mach/gpio-bank-h.h> | ||
29 | |||
30 | static int s3c64xx_i2sv3_cfg_gpio(struct platform_device *pdev) | 25 | static int s3c64xx_i2sv3_cfg_gpio(struct platform_device *pdev) |
31 | { | 26 | { |
27 | unsigned int base; | ||
28 | |||
32 | switch (pdev->id) { | 29 | switch (pdev->id) { |
33 | case 0: | 30 | case 0: |
34 | s3c_gpio_cfgpin(S3C64XX_GPD(0), S3C64XX_GPD0_I2S0_CLK); | 31 | base = S3C64XX_GPD(0); |
35 | s3c_gpio_cfgpin(S3C64XX_GPD(1), S3C64XX_GPD1_I2S0_CDCLK); | ||
36 | s3c_gpio_cfgpin(S3C64XX_GPD(2), S3C64XX_GPD2_I2S0_LRCLK); | ||
37 | s3c_gpio_cfgpin(S3C64XX_GPD(3), S3C64XX_GPD3_I2S0_DI); | ||
38 | s3c_gpio_cfgpin(S3C64XX_GPD(4), S3C64XX_GPD4_I2S0_D0); | ||
39 | break; | 32 | break; |
40 | case 1: | 33 | case 1: |
41 | s3c_gpio_cfgpin(S3C64XX_GPE(0), S3C64XX_GPE0_I2S1_CLK); | 34 | base = S3C64XX_GPE(0); |
42 | s3c_gpio_cfgpin(S3C64XX_GPE(1), S3C64XX_GPE1_I2S1_CDCLK); | 35 | break; |
43 | s3c_gpio_cfgpin(S3C64XX_GPE(2), S3C64XX_GPE2_I2S1_LRCLK); | ||
44 | s3c_gpio_cfgpin(S3C64XX_GPE(3), S3C64XX_GPE3_I2S1_DI); | ||
45 | s3c_gpio_cfgpin(S3C64XX_GPE(4), S3C64XX_GPE4_I2S1_D0); | ||
46 | default: | 36 | default: |
47 | printk(KERN_DEBUG "Invalid I2S Controller number!"); | 37 | printk(KERN_DEBUG "Invalid I2S Controller number!"); |
48 | return -EINVAL; | 38 | return -EINVAL; |
49 | } | 39 | } |
50 | 40 | ||
41 | s3c_gpio_cfgpin_range(base, 5, S3C_GPIO_SFN(3)); | ||
42 | |||
51 | return 0; | 43 | return 0; |
52 | } | 44 | } |
53 | 45 | ||
54 | static int s3c64xx_i2sv4_cfg_gpio(struct platform_device *pdev) | 46 | static int s3c64xx_i2sv4_cfg_gpio(struct platform_device *pdev) |
55 | { | 47 | { |
56 | s3c_gpio_cfgpin(S3C64XX_GPC(4), S3C64XX_GPC4_I2S_V40_DO0); | 48 | s3c_gpio_cfgpin(S3C64XX_GPC(4), S3C_GPIO_SFN(5)); |
57 | s3c_gpio_cfgpin(S3C64XX_GPC(5), S3C64XX_GPC5_I2S_V40_DO1); | 49 | s3c_gpio_cfgpin(S3C64XX_GPC(5), S3C_GPIO_SFN(5)); |
58 | s3c_gpio_cfgpin(S3C64XX_GPC(7), S3C64XX_GPC7_I2S_V40_DO2); | 50 | s3c_gpio_cfgpin(S3C64XX_GPC(7), S3C_GPIO_SFN(5)); |
59 | s3c_gpio_cfgpin(S3C64XX_GPH(6), S3C64XX_GPH6_I2S_V40_BCLK); | 51 | s3c_gpio_cfgpin_range(S3C64XX_GPH(6), 4, S3C_GPIO_SFN(5)); |
60 | s3c_gpio_cfgpin(S3C64XX_GPH(7), S3C64XX_GPH7_I2S_V40_CDCLK); | ||
61 | s3c_gpio_cfgpin(S3C64XX_GPH(8), S3C64XX_GPH8_I2S_V40_LRCLK); | ||
62 | s3c_gpio_cfgpin(S3C64XX_GPH(9), S3C64XX_GPH9_I2S_V40_DI); | ||
63 | 52 | ||
64 | return 0; | 53 | return 0; |
65 | } | 54 | } |
@@ -168,26 +157,21 @@ EXPORT_SYMBOL(s3c64xx_device_iisv4); | |||
168 | 157 | ||
169 | static int s3c64xx_pcm_cfg_gpio(struct platform_device *pdev) | 158 | static int s3c64xx_pcm_cfg_gpio(struct platform_device *pdev) |
170 | { | 159 | { |
160 | unsigned int base; | ||
161 | |||
171 | switch (pdev->id) { | 162 | switch (pdev->id) { |
172 | case 0: | 163 | case 0: |
173 | s3c_gpio_cfgpin(S3C64XX_GPD(0), S3C64XX_GPD0_PCM0_SCLK); | 164 | base = S3C64XX_GPD(0); |
174 | s3c_gpio_cfgpin(S3C64XX_GPD(1), S3C64XX_GPD1_PCM0_EXTCLK); | ||
175 | s3c_gpio_cfgpin(S3C64XX_GPD(2), S3C64XX_GPD2_PCM0_FSYNC); | ||
176 | s3c_gpio_cfgpin(S3C64XX_GPD(3), S3C64XX_GPD3_PCM0_SIN); | ||
177 | s3c_gpio_cfgpin(S3C64XX_GPD(4), S3C64XX_GPD4_PCM0_SOUT); | ||
178 | break; | 165 | break; |
179 | case 1: | 166 | case 1: |
180 | s3c_gpio_cfgpin(S3C64XX_GPE(0), S3C64XX_GPE0_PCM1_SCLK); | 167 | base = S3C64XX_GPE(0); |
181 | s3c_gpio_cfgpin(S3C64XX_GPE(1), S3C64XX_GPE1_PCM1_EXTCLK); | ||
182 | s3c_gpio_cfgpin(S3C64XX_GPE(2), S3C64XX_GPE2_PCM1_FSYNC); | ||
183 | s3c_gpio_cfgpin(S3C64XX_GPE(3), S3C64XX_GPE3_PCM1_SIN); | ||
184 | s3c_gpio_cfgpin(S3C64XX_GPE(4), S3C64XX_GPE4_PCM1_SOUT); | ||
185 | break; | 168 | break; |
186 | default: | 169 | default: |
187 | printk(KERN_DEBUG "Invalid PCM Controller number!"); | 170 | printk(KERN_DEBUG "Invalid PCM Controller number!"); |
188 | return -EINVAL; | 171 | return -EINVAL; |
189 | } | 172 | } |
190 | 173 | ||
174 | s3c_gpio_cfgpin_range(base, 5, S3C_GPIO_SFN(2)); | ||
191 | return 0; | 175 | return 0; |
192 | } | 176 | } |
193 | 177 | ||
@@ -261,24 +245,12 @@ EXPORT_SYMBOL(s3c64xx_device_pcm1); | |||
261 | 245 | ||
262 | static int s3c64xx_ac97_cfg_gpd(struct platform_device *pdev) | 246 | static int s3c64xx_ac97_cfg_gpd(struct platform_device *pdev) |
263 | { | 247 | { |
264 | s3c_gpio_cfgpin(S3C64XX_GPD(0), S3C64XX_GPD0_AC97_BITCLK); | 248 | return s3c_gpio_cfgpin_range(S3C64XX_GPD(0), 5, S3C_GPIO_SFN(4)); |
265 | s3c_gpio_cfgpin(S3C64XX_GPD(1), S3C64XX_GPD1_AC97_nRESET); | ||
266 | s3c_gpio_cfgpin(S3C64XX_GPD(2), S3C64XX_GPD2_AC97_SYNC); | ||
267 | s3c_gpio_cfgpin(S3C64XX_GPD(3), S3C64XX_GPD3_AC97_SDI); | ||
268 | s3c_gpio_cfgpin(S3C64XX_GPD(4), S3C64XX_GPD4_AC97_SDO); | ||
269 | |||
270 | return 0; | ||
271 | } | 249 | } |
272 | 250 | ||
273 | static int s3c64xx_ac97_cfg_gpe(struct platform_device *pdev) | 251 | static int s3c64xx_ac97_cfg_gpe(struct platform_device *pdev) |
274 | { | 252 | { |
275 | s3c_gpio_cfgpin(S3C64XX_GPE(0), S3C64XX_GPE0_AC97_BITCLK); | 253 | return s3c_gpio_cfgpin_range(S3C64XX_GPE(0), 5, S3C_GPIO_SFN(4)); |
276 | s3c_gpio_cfgpin(S3C64XX_GPE(1), S3C64XX_GPE1_AC97_nRESET); | ||
277 | s3c_gpio_cfgpin(S3C64XX_GPE(2), S3C64XX_GPE2_AC97_SYNC); | ||
278 | s3c_gpio_cfgpin(S3C64XX_GPE(3), S3C64XX_GPE3_AC97_SDI); | ||
279 | s3c_gpio_cfgpin(S3C64XX_GPE(4), S3C64XX_GPE4_AC97_SDO); | ||
280 | |||
281 | return 0; | ||
282 | } | 254 | } |
283 | 255 | ||
284 | static struct resource s3c64xx_ac97_resource[] = { | 256 | static struct resource s3c64xx_ac97_resource[] = { |
diff --git a/arch/arm/mach-s3c64xx/setup-fb-24bpp.c b/arch/arm/mach-s3c64xx/setup-fb-24bpp.c index 000736877df2..8f3091182f9c 100644 --- a/arch/arm/mach-s3c64xx/setup-fb-24bpp.c +++ b/arch/arm/mach-s3c64xx/setup-fb-24bpp.c | |||
@@ -23,15 +23,6 @@ | |||
23 | 23 | ||
24 | extern void s3c64xx_fb_gpio_setup_24bpp(void) | 24 | extern void s3c64xx_fb_gpio_setup_24bpp(void) |
25 | { | 25 | { |
26 | unsigned int gpio; | 26 | s3c_gpio_cfgrange_nopull(S3C64XX_GPI(0), 16, S3C_GPIO_SFN(2)); |
27 | 27 | s3c_gpio_cfgrange_nopull(S3C64XX_GPJ(0), 12, S3C_GPIO_SFN(2)); | |
28 | for (gpio = S3C64XX_GPI(0); gpio <= S3C64XX_GPI(15); gpio++) { | ||
29 | s3c_gpio_cfgpin(gpio, S3C_GPIO_SFN(2)); | ||
30 | s3c_gpio_setpull(gpio, S3C_GPIO_PULL_NONE); | ||
31 | } | ||
32 | |||
33 | for (gpio = S3C64XX_GPJ(0); gpio <= S3C64XX_GPJ(11); gpio++) { | ||
34 | s3c_gpio_cfgpin(gpio, S3C_GPIO_SFN(2)); | ||
35 | s3c_gpio_setpull(gpio, S3C_GPIO_PULL_NONE); | ||
36 | } | ||
37 | } | 28 | } |
diff --git a/arch/arm/mach-s3c64xx/setup-ide.c b/arch/arm/mach-s3c64xx/setup-ide.c index c12c315f33bc..de645e99ba97 100644 --- a/arch/arm/mach-s3c64xx/setup-ide.c +++ b/arch/arm/mach-s3c64xx/setup-ide.c | |||
@@ -21,7 +21,6 @@ | |||
21 | void s3c64xx_ide_setup_gpio(void) | 21 | void s3c64xx_ide_setup_gpio(void) |
22 | { | 22 | { |
23 | u32 reg; | 23 | u32 reg; |
24 | u32 gpio = 0; | ||
25 | 24 | ||
26 | reg = readl(S3C_MEM_SYS_CFG) & (~0x3f); | 25 | reg = readl(S3C_MEM_SYS_CFG) & (~0x3f); |
27 | 26 | ||
@@ -32,15 +31,12 @@ void s3c64xx_ide_setup_gpio(void) | |||
32 | s3c_gpio_cfgpin(S3C64XX_GPB(4), S3C_GPIO_SFN(4)); | 31 | s3c_gpio_cfgpin(S3C64XX_GPB(4), S3C_GPIO_SFN(4)); |
33 | 32 | ||
34 | /* Set XhiDATA[15:0] pins as CF Data[15:0] */ | 33 | /* Set XhiDATA[15:0] pins as CF Data[15:0] */ |
35 | for (gpio = S3C64XX_GPK(0); gpio <= S3C64XX_GPK(15); gpio++) | 34 | s3c_gpio_cfgpin_range(S3C64XX_GPK(0), 16, S3C_GPIO_SFN(5)); |
36 | s3c_gpio_cfgpin(gpio, S3C_GPIO_SFN(5)); | ||
37 | 35 | ||
38 | /* Set XhiADDR[2:0] pins as CF ADDR[2:0] */ | 36 | /* Set XhiADDR[2:0] pins as CF ADDR[2:0] */ |
39 | for (gpio = S3C64XX_GPL(0); gpio <= S3C64XX_GPL(2); gpio++) | 37 | s3c_gpio_cfgpin_range(S3C64XX_GPL(0), 3, S3C_GPIO_SFN(6)); |
40 | s3c_gpio_cfgpin(gpio, S3C_GPIO_SFN(6)); | ||
41 | 38 | ||
42 | /* Set Xhi ctrl pins as CF ctrl pins(IORDY, IOWR, IORD, CE[0:1]) */ | 39 | /* Set Xhi ctrl pins as CF ctrl pins(IORDY, IOWR, IORD, CE[0:1]) */ |
43 | s3c_gpio_cfgpin(S3C64XX_GPM(5), S3C_GPIO_SFN(1)); | 40 | s3c_gpio_cfgpin(S3C64XX_GPM(5), S3C_GPIO_SFN(1)); |
44 | for (gpio = S3C64XX_GPM(0); gpio <= S3C64XX_GPM(4); gpio++) | 41 | s3c_gpio_cfgpin_range(S3C64XX_GPM(0), 5, S3C_GPIO_SFN(6)); |
45 | s3c_gpio_cfgpin(gpio, S3C_GPIO_SFN(6)); | ||
46 | } | 42 | } |
diff --git a/arch/arm/mach-s3c64xx/setup-keypad.c b/arch/arm/mach-s3c64xx/setup-keypad.c index abc34e4e1a93..d1fd7228ee75 100644 --- a/arch/arm/mach-s3c64xx/setup-keypad.c +++ b/arch/arm/mach-s3c64xx/setup-keypad.c | |||
@@ -15,20 +15,9 @@ | |||
15 | 15 | ||
16 | void samsung_keypad_cfg_gpio(unsigned int rows, unsigned int cols) | 16 | void samsung_keypad_cfg_gpio(unsigned int rows, unsigned int cols) |
17 | { | 17 | { |
18 | unsigned int gpio; | ||
19 | unsigned int end; | ||
20 | |||
21 | /* Set all the necessary GPK pins to special-function 3: KP_ROW[x] */ | 18 | /* Set all the necessary GPK pins to special-function 3: KP_ROW[x] */ |
22 | end = S3C64XX_GPK(8 + rows); | 19 | s3c_gpio_cfgrange_nopull(S3C64XX_GPK(8), 8 + rows, S3C_GPIO_SFN(3)); |
23 | for (gpio = S3C64XX_GPK(8); gpio < end; gpio++) { | ||
24 | s3c_gpio_cfgpin(gpio, S3C_GPIO_SFN(3)); | ||
25 | s3c_gpio_setpull(gpio, S3C_GPIO_PULL_NONE); | ||
26 | } | ||
27 | 20 | ||
28 | /* Set all the necessary GPL pins to special-function 3: KP_COL[x] */ | 21 | /* Set all the necessary GPL pins to special-function 3: KP_COL[x] */ |
29 | end = S3C64XX_GPL(0 + cols); | 22 | s3c_gpio_cfgrange_nopull(S3C64XX_GPL(0), cols, S3C_GPIO_SFN(3)); |
30 | for (gpio = S3C64XX_GPL(0); gpio < end; gpio++) { | ||
31 | s3c_gpio_cfgpin(gpio, S3C_GPIO_SFN(3)); | ||
32 | s3c_gpio_setpull(gpio, S3C_GPIO_PULL_NONE); | ||
33 | } | ||
34 | } | 23 | } |
diff --git a/arch/arm/mach-s3c64xx/setup-sdhci-gpio.c b/arch/arm/mach-s3c64xx/setup-sdhci-gpio.c index 322359591374..6eac071afae2 100644 --- a/arch/arm/mach-s3c64xx/setup-sdhci-gpio.c +++ b/arch/arm/mach-s3c64xx/setup-sdhci-gpio.c | |||
@@ -24,16 +24,9 @@ | |||
24 | void s3c64xx_setup_sdhci0_cfg_gpio(struct platform_device *dev, int width) | 24 | void s3c64xx_setup_sdhci0_cfg_gpio(struct platform_device *dev, int width) |
25 | { | 25 | { |
26 | struct s3c_sdhci_platdata *pdata = dev->dev.platform_data; | 26 | struct s3c_sdhci_platdata *pdata = dev->dev.platform_data; |
27 | unsigned int gpio; | ||
28 | unsigned int end; | ||
29 | 27 | ||
30 | end = S3C64XX_GPG(2 + width); | 28 | /* Set all the necessary GPG pins to special-function 2 */ |
31 | 29 | s3c_gpio_cfgrange_nopull(S3C64XX_GPG(0), 2 + width, S3C_GPIO_SFN(2)); | |
32 | /* Set all the necessary GPG pins to special-function 0 */ | ||
33 | for (gpio = S3C64XX_GPG(0); gpio < end; gpio++) { | ||
34 | s3c_gpio_cfgpin(gpio, S3C_GPIO_SFN(2)); | ||
35 | s3c_gpio_setpull(gpio, S3C_GPIO_PULL_NONE); | ||
36 | } | ||
37 | 30 | ||
38 | if (pdata->cd_type == S3C_SDHCI_CD_INTERNAL) { | 31 | if (pdata->cd_type == S3C_SDHCI_CD_INTERNAL) { |
39 | s3c_gpio_setpull(S3C64XX_GPG(6), S3C_GPIO_PULL_UP); | 32 | s3c_gpio_setpull(S3C64XX_GPG(6), S3C_GPIO_PULL_UP); |
@@ -44,16 +37,9 @@ void s3c64xx_setup_sdhci0_cfg_gpio(struct platform_device *dev, int width) | |||
44 | void s3c64xx_setup_sdhci1_cfg_gpio(struct platform_device *dev, int width) | 37 | void s3c64xx_setup_sdhci1_cfg_gpio(struct platform_device *dev, int width) |
45 | { | 38 | { |
46 | struct s3c_sdhci_platdata *pdata = dev->dev.platform_data; | 39 | struct s3c_sdhci_platdata *pdata = dev->dev.platform_data; |
47 | unsigned int gpio; | ||
48 | unsigned int end; | ||
49 | 40 | ||
50 | end = S3C64XX_GPH(2 + width); | 41 | /* Set all the necessary GPH pins to special-function 2 */ |
51 | 42 | s3c_gpio_cfgrange_nopull(S3C64XX_GPH(0), 2 + width, S3C_GPIO_SFN(2)); | |
52 | /* Set all the necessary GPG pins to special-function 0 */ | ||
53 | for (gpio = S3C64XX_GPH(0); gpio < end; gpio++) { | ||
54 | s3c_gpio_cfgpin(gpio, S3C_GPIO_SFN(2)); | ||
55 | s3c_gpio_setpull(gpio, S3C_GPIO_PULL_NONE); | ||
56 | } | ||
57 | 43 | ||
58 | if (pdata->cd_type == S3C_SDHCI_CD_INTERNAL) { | 44 | if (pdata->cd_type == S3C_SDHCI_CD_INTERNAL) { |
59 | s3c_gpio_setpull(S3C64XX_GPG(6), S3C_GPIO_PULL_UP); | 45 | s3c_gpio_setpull(S3C64XX_GPG(6), S3C_GPIO_PULL_UP); |
@@ -63,20 +49,9 @@ void s3c64xx_setup_sdhci1_cfg_gpio(struct platform_device *dev, int width) | |||
63 | 49 | ||
64 | void s3c64xx_setup_sdhci2_cfg_gpio(struct platform_device *dev, int width) | 50 | void s3c64xx_setup_sdhci2_cfg_gpio(struct platform_device *dev, int width) |
65 | { | 51 | { |
66 | unsigned int gpio; | 52 | /* Set all the necessary GPH pins to special-function 3 */ |
67 | unsigned int end; | 53 | s3c_gpio_cfgrange_nopull(S3C64XX_GPH(6), width, S3C_GPIO_SFN(3)); |
68 | 54 | ||
69 | end = S3C64XX_GPH(6 + width); | 55 | /* Set all the necessary GPC pins to special-function 3 */ |
70 | 56 | s3c_gpio_cfgrange_nopull(S3C64XX_GPC(4), 2, S3C_GPIO_SFN(3)); | |
71 | /* Set all the necessary GPH pins to special-function 1 */ | ||
72 | for (gpio = S3C64XX_GPH(6); gpio < end; gpio++) { | ||
73 | s3c_gpio_cfgpin(gpio, S3C_GPIO_SFN(3)); | ||
74 | s3c_gpio_setpull(gpio, S3C_GPIO_PULL_NONE); | ||
75 | } | ||
76 | |||
77 | /* Set all the necessary GPC pins to special-function 1 */ | ||
78 | for (gpio = S3C64XX_GPC(4); gpio < S3C64XX_GPC(6); gpio++) { | ||
79 | s3c_gpio_cfgpin(gpio, S3C_GPIO_SFN(3)); | ||
80 | s3c_gpio_setpull(gpio, S3C_GPIO_PULL_NONE); | ||
81 | } | ||
82 | } | 57 | } |