aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLinus Walleij <linus.walleij@linaro.org>2013-12-06 04:05:49 -0500
committerLinus Walleij <linus.walleij@linaro.org>2013-12-20 12:19:26 -0500
commitc67d0f29262bf6f863ce74d0756618bbd9ba80fd (patch)
tree323b95576f444c03d4525efcb65f0b6f1217f2d1
parente6ae9195909a51fb8c3a7e95c2568aefe9bc912f (diff)
ARM: s3c24xx: get rid of custom <mach/gpio.h>
This isolates the custom S3C24xx GPIO definition table to <linux/platform_data/gpio-samsung-s3x24xx.h> as this is used in a few different places in the kernel, removing the need to depend on the implicit inclusion of <mach/gpio.h> from <linux/gpio.h> and thus getting rid of a few nasty cross-dependencies. We also delete the nifty CONFIG_S3C24XX_GPIO_EXTRA stuff. The biggest this can ever be for the S3C24XX is CONFIG_S3C24XX_GPIO_EXTRA = 128, and then for CPU_S3C2443 or CPU_S3C2416 32*12 GPIOs are added, so 32*12+128 = 512 is the absolute roof value on this platform. So we set the size of ARCH_NR_GPIO to this and the GPIOs array will fit any S3C24XX platform, as per pattern from other archs. ChangeLog v2->v3: - Move the movement of the S3C64XX gpio.h file out of this patch and into the follow-up patch where it belongs. ChangeLog v1->v2: - Added an #ifdef ARCH_S3C24XX around the header inclusion in drivers/gpio/gpio-samsung.c as we would otherwise have colliding definitions when compiling S3C64XX. - Rename inclusion guard in the header file. Cc: Tomasz Figa <tomasz.figa@gmail.com> Cc: Sylwester Nawrocki <sylvester.nawrocki@gmail.com> Cc: Ben Dooks <ben-linux@fluff.org> Cc: linux-samsung-soc@vger.kernel.org Acked-by: Kukjin Kim <kgene.kim@samsung.com> Acked-by: Heiko Stuebner <heiko@sntech.de> Tested-by: Heiko Stuebner <heiko@sntech.de> Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
-rw-r--r--arch/arm/Kconfig3
-rw-r--r--arch/arm/mach-s3c24xx/Kconfig21
-rw-r--r--arch/arm/mach-s3c24xx/common-smdk.c2
-rw-r--r--arch/arm/mach-s3c24xx/h1940-bluetooth.c1
-rw-r--r--arch/arm/mach-s3c24xx/mach-amlm5900.c1
-rw-r--r--arch/arm/mach-s3c24xx/mach-anubis.c1
-rw-r--r--arch/arm/mach-s3c24xx/mach-at2440evb.c1
-rw-r--r--arch/arm/mach-s3c24xx/mach-bast.c1
-rw-r--r--arch/arm/mach-s3c24xx/mach-gta02.c1
-rw-r--r--arch/arm/mach-s3c24xx/mach-h1940.c1
-rw-r--r--arch/arm/mach-s3c24xx/mach-jive.c1
-rw-r--r--arch/arm/mach-s3c24xx/mach-mini2440.c1
-rw-r--r--arch/arm/mach-s3c24xx/mach-n30.c1
-rw-r--r--arch/arm/mach-s3c24xx/mach-nexcoder.c1
-rw-r--r--arch/arm/mach-s3c24xx/mach-osiris.c1
-rw-r--r--arch/arm/mach-s3c24xx/mach-qt2410.c1
-rw-r--r--arch/arm/mach-s3c24xx/mach-rx1950.c1
-rw-r--r--arch/arm/mach-s3c24xx/mach-rx3715.c1
-rw-r--r--arch/arm/mach-s3c24xx/mach-smdk2413.c1
-rw-r--r--arch/arm/mach-s3c24xx/mach-smdk2416.c1
-rw-r--r--arch/arm/mach-s3c24xx/mach-vr1000.c1
-rw-r--r--arch/arm/mach-s3c24xx/pm-s3c2410.c1
-rw-r--r--arch/arm/mach-s3c24xx/pm.c1
-rw-r--r--arch/arm/mach-s3c24xx/s3c2410.c1
-rw-r--r--arch/arm/mach-s3c24xx/s3c2416.c1
-rw-r--r--arch/arm/mach-s3c24xx/s3c2440.c1
-rw-r--r--arch/arm/mach-s3c24xx/s3c2442.c1
-rw-r--r--arch/arm/mach-s3c24xx/s3c2443.c1
-rw-r--r--arch/arm/mach-s3c24xx/setup-i2c.c1
-rw-r--r--arch/arm/mach-s3c24xx/setup-sdhci-gpio.c1
-rw-r--r--arch/arm/mach-s3c24xx/setup-ts.c1
-rw-r--r--arch/arm/mach-s3c24xx/simtec-usb.c1
-rw-r--r--arch/arm/plat-samsung/pm-gpio.c3
-rw-r--r--arch/arm/plat-samsung/setup-camif.c1
-rw-r--r--drivers/gpio/gpio-samsung.c3
-rw-r--r--drivers/mmc/host/s3cmci.c1
-rw-r--r--include/linux/platform_data/gpio-samsung-s3c24xx.h (renamed from arch/arm/mach-s3c24xx/include/mach/gpio.h)14
37 files changed, 42 insertions, 35 deletions
diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig
index c1f1a7eee953..6a26bcb3a63a 100644
--- a/arch/arm/Kconfig
+++ b/arch/arm/Kconfig
@@ -710,7 +710,6 @@ config ARCH_S3C24XX
710 select HAVE_S3C2410_WATCHDOG if WATCHDOG 710 select HAVE_S3C2410_WATCHDOG if WATCHDOG
711 select HAVE_S3C_RTC if RTC_CLASS 711 select HAVE_S3C_RTC if RTC_CLASS
712 select MULTI_IRQ_HANDLER 712 select MULTI_IRQ_HANDLER
713 select NEED_MACH_GPIO_H
714 select NEED_MACH_IO_H 713 select NEED_MACH_IO_H
715 select SAMSUNG_ATAGS 714 select SAMSUNG_ATAGS
716 help 715 help
@@ -1593,7 +1592,7 @@ config ARM_PSCI
1593config ARCH_NR_GPIO 1592config ARCH_NR_GPIO
1594 int 1593 int
1595 default 1024 if ARCH_SHMOBILE || ARCH_TEGRA 1594 default 1024 if ARCH_SHMOBILE || ARCH_TEGRA
1596 default 512 if ARCH_EXYNOS || ARCH_KEYSTONE || SOC_OMAP5 || SOC_DRA7XX 1595 default 512 if ARCH_EXYNOS || ARCH_KEYSTONE || SOC_OMAP5 || SOC_DRA7XX || ARCH_S3C24XX
1597 default 392 if ARCH_U8500 1596 default 392 if ARCH_U8500
1598 default 352 if ARCH_VT8500 1597 default 352 if ARCH_VT8500
1599 default 288 if ARCH_SUNXI 1598 default 288 if ARCH_SUNXI
diff --git a/arch/arm/mach-s3c24xx/Kconfig b/arch/arm/mach-s3c24xx/Kconfig
index 8f1d327e0cd1..d876431d64c0 100644
--- a/arch/arm/mach-s3c24xx/Kconfig
+++ b/arch/arm/mach-s3c24xx/Kconfig
@@ -180,27 +180,6 @@ config CPU_LLSERIAL_S3C2440
180 Selected if there is an S3C2440 (or register compatible) serial 180 Selected if there is an S3C2440 (or register compatible) serial
181 low-level implementation needed 181 low-level implementation needed
182 182
183# gpio configurations
184
185config S3C24XX_GPIO_EXTRA
186 int
187 default 128 if S3C24XX_GPIO_EXTRA128
188 default 64 if S3C24XX_GPIO_EXTRA64
189 default 16 if ARCH_H1940
190 default 0
191
192config S3C24XX_GPIO_EXTRA64
193 bool
194 help
195 Add an extra 64 gpio numbers to the available GPIO pool. This is
196 available for boards that need extra gpios for external devices.
197
198config S3C24XX_GPIO_EXTRA128
199 bool
200 help
201 Add an extra 128 gpio numbers to the available GPIO pool. This is
202 available for boards that need extra gpios for external devices.
203
204config S3C24XX_PLL 183config S3C24XX_PLL
205 bool "Support CPUfreq changing of PLL frequency (EXPERIMENTAL)" 184 bool "Support CPUfreq changing of PLL frequency (EXPERIMENTAL)"
206 depends on ARM_S3C24XX_CPUFREQ 185 depends on ARM_S3C24XX_CPUFREQ
diff --git a/arch/arm/mach-s3c24xx/common-smdk.c b/arch/arm/mach-s3c24xx/common-smdk.c
index 404444dd3840..0a84a9c9f429 100644
--- a/arch/arm/mach-s3c24xx/common-smdk.c
+++ b/arch/arm/mach-s3c24xx/common-smdk.c
@@ -38,7 +38,7 @@
38 38
39#include <mach/regs-gpio.h> 39#include <mach/regs-gpio.h>
40#include <linux/platform_data/leds-s3c24xx.h> 40#include <linux/platform_data/leds-s3c24xx.h>
41 41#include <linux/platform_data/gpio-samsung-s3c24xx.h>
42#include <linux/platform_data/mtd-nand-s3c2410.h> 42#include <linux/platform_data/mtd-nand-s3c2410.h>
43 43
44#include <plat/gpio-cfg.h> 44#include <plat/gpio-cfg.h>
diff --git a/arch/arm/mach-s3c24xx/h1940-bluetooth.c b/arch/arm/mach-s3c24xx/h1940-bluetooth.c
index 5b98bfd1df43..f2b859f4c894 100644
--- a/arch/arm/mach-s3c24xx/h1940-bluetooth.c
+++ b/arch/arm/mach-s3c24xx/h1940-bluetooth.c
@@ -18,6 +18,7 @@
18#include <linux/leds.h> 18#include <linux/leds.h>
19#include <linux/gpio.h> 19#include <linux/gpio.h>
20#include <linux/rfkill.h> 20#include <linux/rfkill.h>
21#include <linux/platform_data/gpio-samsung-s3c24xx.h>
21 22
22#include <mach/hardware.h> 23#include <mach/hardware.h>
23#include <mach/regs-gpio.h> 24#include <mach/regs-gpio.h>
diff --git a/arch/arm/mach-s3c24xx/mach-amlm5900.c b/arch/arm/mach-s3c24xx/mach-amlm5900.c
index e27b5c91b3db..530e9a624466 100644
--- a/arch/arm/mach-s3c24xx/mach-amlm5900.c
+++ b/arch/arm/mach-s3c24xx/mach-amlm5900.c
@@ -54,6 +54,7 @@
54#include <mach/regs-gpio.h> 54#include <mach/regs-gpio.h>
55 55
56#include <linux/platform_data/i2c-s3c2410.h> 56#include <linux/platform_data/i2c-s3c2410.h>
57#include <linux/platform_data/gpio-samsung-s3c24xx.h>
57#include <plat/devs.h> 58#include <plat/devs.h>
58#include <plat/cpu.h> 59#include <plat/cpu.h>
59#include <plat/gpio-cfg.h> 60#include <plat/gpio-cfg.h>
diff --git a/arch/arm/mach-s3c24xx/mach-anubis.c b/arch/arm/mach-s3c24xx/mach-anubis.c
index c1fb6c37867f..b60a248c033a 100644
--- a/arch/arm/mach-s3c24xx/mach-anubis.c
+++ b/arch/arm/mach-s3c24xx/mach-anubis.c
@@ -37,6 +37,7 @@
37#include <mach/regs-lcd.h> 37#include <mach/regs-lcd.h>
38#include <linux/platform_data/mtd-nand-s3c2410.h> 38#include <linux/platform_data/mtd-nand-s3c2410.h>
39#include <linux/platform_data/i2c-s3c2410.h> 39#include <linux/platform_data/i2c-s3c2410.h>
40#include <linux/platform_data/gpio-samsung-s3c24xx.h>
40 41
41#include <linux/mtd/mtd.h> 42#include <linux/mtd/mtd.h>
42#include <linux/mtd/nand.h> 43#include <linux/mtd/nand.h>
diff --git a/arch/arm/mach-s3c24xx/mach-at2440evb.c b/arch/arm/mach-s3c24xx/mach-at2440evb.c
index 6dfeeb7ef469..74401196b429 100644
--- a/arch/arm/mach-s3c24xx/mach-at2440evb.c
+++ b/arch/arm/mach-s3c24xx/mach-at2440evb.c
@@ -38,6 +38,7 @@
38#include <mach/regs-lcd.h> 38#include <mach/regs-lcd.h>
39#include <linux/platform_data/mtd-nand-s3c2410.h> 39#include <linux/platform_data/mtd-nand-s3c2410.h>
40#include <linux/platform_data/i2c-s3c2410.h> 40#include <linux/platform_data/i2c-s3c2410.h>
41#include <linux/platform_data/gpio-samsung-s3c24xx.h>
41 42
42#include <linux/mtd/mtd.h> 43#include <linux/mtd/mtd.h>
43#include <linux/mtd/nand.h> 44#include <linux/mtd/nand.h>
diff --git a/arch/arm/mach-s3c24xx/mach-bast.c b/arch/arm/mach-s3c24xx/mach-bast.c
index 22d6ae926d91..47fe7af87129 100644
--- a/arch/arm/mach-s3c24xx/mach-bast.c
+++ b/arch/arm/mach-s3c24xx/mach-bast.c
@@ -35,6 +35,7 @@
35#include <linux/platform_data/hwmon-s3c.h> 35#include <linux/platform_data/hwmon-s3c.h>
36#include <linux/platform_data/i2c-s3c2410.h> 36#include <linux/platform_data/i2c-s3c2410.h>
37#include <linux/platform_data/mtd-nand-s3c2410.h> 37#include <linux/platform_data/mtd-nand-s3c2410.h>
38#include <linux/platform_data/gpio-samsung-s3c24xx.h>
38 39
39#include <net/ax88796.h> 40#include <net/ax88796.h>
40 41
diff --git a/arch/arm/mach-s3c24xx/mach-gta02.c b/arch/arm/mach-s3c24xx/mach-gta02.c
index 13d8d073675a..c2c2ac78cea8 100644
--- a/arch/arm/mach-s3c24xx/mach-gta02.c
+++ b/arch/arm/mach-s3c24xx/mach-gta02.c
@@ -70,6 +70,7 @@
70#include <linux/platform_data/touchscreen-s3c2410.h> 70#include <linux/platform_data/touchscreen-s3c2410.h>
71#include <linux/platform_data/usb-ohci-s3c2410.h> 71#include <linux/platform_data/usb-ohci-s3c2410.h>
72#include <linux/platform_data/usb-s3c2410_udc.h> 72#include <linux/platform_data/usb-s3c2410_udc.h>
73#include <linux/platform_data/gpio-samsung-s3c24xx.h>
73 74
74#include <mach/fb.h> 75#include <mach/fb.h>
75#include <mach/hardware.h> 76#include <mach/hardware.h>
diff --git a/arch/arm/mach-s3c24xx/mach-h1940.c b/arch/arm/mach-s3c24xx/mach-h1940.c
index 952b6a040d1f..d25d8b18512c 100644
--- a/arch/arm/mach-s3c24xx/mach-h1940.c
+++ b/arch/arm/mach-s3c24xx/mach-h1940.c
@@ -46,6 +46,7 @@
46#include <linux/platform_data/mmc-s3cmci.h> 46#include <linux/platform_data/mmc-s3cmci.h>
47#include <linux/platform_data/touchscreen-s3c2410.h> 47#include <linux/platform_data/touchscreen-s3c2410.h>
48#include <linux/platform_data/usb-s3c2410_udc.h> 48#include <linux/platform_data/usb-s3c2410_udc.h>
49#include <linux/platform_data/gpio-samsung-s3c24xx.h>
49 50
50#include <sound/uda1380.h> 51#include <sound/uda1380.h>
51 52
diff --git a/arch/arm/mach-s3c24xx/mach-jive.c b/arch/arm/mach-s3c24xx/mach-jive.c
index 43c23e220f5b..434dbf231773 100644
--- a/arch/arm/mach-s3c24xx/mach-jive.c
+++ b/arch/arm/mach-s3c24xx/mach-jive.c
@@ -34,6 +34,7 @@
34#include <plat/regs-serial.h> 34#include <plat/regs-serial.h>
35#include <linux/platform_data/mtd-nand-s3c2410.h> 35#include <linux/platform_data/mtd-nand-s3c2410.h>
36#include <linux/platform_data/i2c-s3c2410.h> 36#include <linux/platform_data/i2c-s3c2410.h>
37#include <linux/platform_data/gpio-samsung-s3c24xx.h>
37 38
38#include <mach/regs-gpio.h> 39#include <mach/regs-gpio.h>
39#include <mach/regs-lcd.h> 40#include <mach/regs-lcd.h>
diff --git a/arch/arm/mach-s3c24xx/mach-mini2440.c b/arch/arm/mach-s3c24xx/mach-mini2440.c
index 4a18d49a63e0..48af11fc15fd 100644
--- a/arch/arm/mach-s3c24xx/mach-mini2440.c
+++ b/arch/arm/mach-s3c24xx/mach-mini2440.c
@@ -46,6 +46,7 @@
46#include <linux/platform_data/i2c-s3c2410.h> 46#include <linux/platform_data/i2c-s3c2410.h>
47#include <linux/platform_data/mmc-s3cmci.h> 47#include <linux/platform_data/mmc-s3cmci.h>
48#include <linux/platform_data/usb-s3c2410_udc.h> 48#include <linux/platform_data/usb-s3c2410_udc.h>
49#include <linux/platform_data/gpio-samsung-s3c24xx.h>
49 50
50#include <linux/mtd/mtd.h> 51#include <linux/mtd/mtd.h>
51#include <linux/mtd/nand.h> 52#include <linux/mtd/nand.h>
diff --git a/arch/arm/mach-s3c24xx/mach-n30.c b/arch/arm/mach-s3c24xx/mach-n30.c
index 2cb46c37c920..7fcb887f5289 100644
--- a/arch/arm/mach-s3c24xx/mach-n30.c
+++ b/arch/arm/mach-s3c24xx/mach-n30.c
@@ -42,6 +42,7 @@
42#include <asm/mach/map.h> 42#include <asm/mach/map.h>
43 43
44#include <linux/platform_data/i2c-s3c2410.h> 44#include <linux/platform_data/i2c-s3c2410.h>
45#include <linux/platform_data/gpio-samsung-s3c24xx.h>
45#include <plat/regs-serial.h> 46#include <plat/regs-serial.h>
46 47
47#include <plat/clock.h> 48#include <plat/clock.h>
diff --git a/arch/arm/mach-s3c24xx/mach-nexcoder.c b/arch/arm/mach-s3c24xx/mach-nexcoder.c
index 01f4354206f9..0f27ac44db09 100644
--- a/arch/arm/mach-s3c24xx/mach-nexcoder.c
+++ b/arch/arm/mach-s3c24xx/mach-nexcoder.c
@@ -39,6 +39,7 @@
39#include <mach/regs-gpio.h> 39#include <mach/regs-gpio.h>
40#include <plat/regs-serial.h> 40#include <plat/regs-serial.h>
41#include <linux/platform_data/i2c-s3c2410.h> 41#include <linux/platform_data/i2c-s3c2410.h>
42#include <linux/platform_data/gpio-samsung-s3c24xx.h>
42 43
43#include <plat/gpio-cfg.h> 44#include <plat/gpio-cfg.h>
44#include <plat/clock.h> 45#include <plat/clock.h>
diff --git a/arch/arm/mach-s3c24xx/mach-osiris.c b/arch/arm/mach-s3c24xx/mach-osiris.c
index 58d6fbe5bf1f..040b16aff93d 100644
--- a/arch/arm/mach-s3c24xx/mach-osiris.c
+++ b/arch/arm/mach-s3c24xx/mach-osiris.c
@@ -33,6 +33,7 @@
33 33
34#include <linux/platform_data/mtd-nand-s3c2410.h> 34#include <linux/platform_data/mtd-nand-s3c2410.h>
35#include <linux/platform_data/i2c-s3c2410.h> 35#include <linux/platform_data/i2c-s3c2410.h>
36#include <linux/platform_data/gpio-samsung-s3c24xx.h>
36 37
37#include <linux/mtd/mtd.h> 38#include <linux/mtd/mtd.h>
38#include <linux/mtd/nand.h> 39#include <linux/mtd/nand.h>
diff --git a/arch/arm/mach-s3c24xx/mach-qt2410.c b/arch/arm/mach-s3c24xx/mach-qt2410.c
index f8feaeadb55a..96c3bc858710 100644
--- a/arch/arm/mach-s3c24xx/mach-qt2410.c
+++ b/arch/arm/mach-s3c24xx/mach-qt2410.c
@@ -54,6 +54,7 @@
54#include <linux/platform_data/mtd-nand-s3c2410.h> 54#include <linux/platform_data/mtd-nand-s3c2410.h>
55#include <linux/platform_data/usb-s3c2410_udc.h> 55#include <linux/platform_data/usb-s3c2410_udc.h>
56#include <linux/platform_data/i2c-s3c2410.h> 56#include <linux/platform_data/i2c-s3c2410.h>
57#include <linux/platform_data/gpio-samsung-s3c24xx.h>
57 58
58#include <plat/gpio-cfg.h> 59#include <plat/gpio-cfg.h>
59#include <plat/devs.h> 60#include <plat/devs.h>
diff --git a/arch/arm/mach-s3c24xx/mach-rx1950.c b/arch/arm/mach-s3c24xx/mach-rx1950.c
index 034b7fe45c49..d492fb938bbb 100644
--- a/arch/arm/mach-s3c24xx/mach-rx1950.c
+++ b/arch/arm/mach-s3c24xx/mach-rx1950.c
@@ -45,6 +45,7 @@
45#include <linux/platform_data/mtd-nand-s3c2410.h> 45#include <linux/platform_data/mtd-nand-s3c2410.h>
46#include <linux/platform_data/touchscreen-s3c2410.h> 46#include <linux/platform_data/touchscreen-s3c2410.h>
47#include <linux/platform_data/usb-s3c2410_udc.h> 47#include <linux/platform_data/usb-s3c2410_udc.h>
48#include <linux/platform_data/gpio-samsung-s3c24xx.h>
48 49
49#include <sound/uda1380.h> 50#include <sound/uda1380.h>
50 51
diff --git a/arch/arm/mach-s3c24xx/mach-rx3715.c b/arch/arm/mach-s3c24xx/mach-rx3715.c
index 3bc6231d0a1f..319ed8033475 100644
--- a/arch/arm/mach-s3c24xx/mach-rx3715.c
+++ b/arch/arm/mach-s3c24xx/mach-rx3715.c
@@ -35,6 +35,7 @@
35#include <asm/mach/map.h> 35#include <asm/mach/map.h>
36 36
37#include <linux/platform_data/mtd-nand-s3c2410.h> 37#include <linux/platform_data/mtd-nand-s3c2410.h>
38#include <linux/platform_data/gpio-samsung-s3c24xx.h>
38 39
39#include <asm/irq.h> 40#include <asm/irq.h>
40#include <asm/mach-types.h> 41#include <asm/mach-types.h>
diff --git a/arch/arm/mach-s3c24xx/mach-smdk2413.c b/arch/arm/mach-s3c24xx/mach-smdk2413.c
index c9d31ef28dd1..86e25012b0c1 100644
--- a/arch/arm/mach-s3c24xx/mach-smdk2413.c
+++ b/arch/arm/mach-s3c24xx/mach-smdk2413.c
@@ -39,6 +39,7 @@
39 39
40#include <linux/platform_data/usb-s3c2410_udc.h> 40#include <linux/platform_data/usb-s3c2410_udc.h>
41#include <linux/platform_data/i2c-s3c2410.h> 41#include <linux/platform_data/i2c-s3c2410.h>
42#include <linux/platform_data/gpio-samsung-s3c24xx.h>
42#include <mach/fb.h> 43#include <mach/fb.h>
43 44
44#include <plat/clock.h> 45#include <plat/clock.h>
diff --git a/arch/arm/mach-s3c24xx/mach-smdk2416.c b/arch/arm/mach-s3c24xx/mach-smdk2416.c
index f88e672ad1e4..0cc691d01d60 100644
--- a/arch/arm/mach-s3c24xx/mach-smdk2416.c
+++ b/arch/arm/mach-s3c24xx/mach-smdk2416.c
@@ -41,6 +41,7 @@
41 41
42#include <linux/platform_data/leds-s3c24xx.h> 42#include <linux/platform_data/leds-s3c24xx.h>
43#include <linux/platform_data/i2c-s3c2410.h> 43#include <linux/platform_data/i2c-s3c2410.h>
44#include <linux/platform_data/gpio-samsung-s3c24xx.h>
44 45
45#include <plat/gpio-cfg.h> 46#include <plat/gpio-cfg.h>
46#include <plat/clock.h> 47#include <plat/clock.h>
diff --git a/arch/arm/mach-s3c24xx/mach-vr1000.c b/arch/arm/mach-s3c24xx/mach-vr1000.c
index 42e7187fed60..86e7ffdca33f 100644
--- a/arch/arm/mach-s3c24xx/mach-vr1000.c
+++ b/arch/arm/mach-s3c24xx/mach-vr1000.c
@@ -37,6 +37,7 @@
37#include <linux/platform_data/leds-s3c24xx.h> 37#include <linux/platform_data/leds-s3c24xx.h>
38#include <linux/platform_data/i2c-s3c2410.h> 38#include <linux/platform_data/i2c-s3c2410.h>
39#include <linux/platform_data/asoc-s3c24xx_simtec.h> 39#include <linux/platform_data/asoc-s3c24xx_simtec.h>
40#include <linux/platform_data/gpio-samsung-s3c24xx.h>
40 41
41#include <mach/hardware.h> 42#include <mach/hardware.h>
42#include <mach/regs-gpio.h> 43#include <mach/regs-gpio.h>
diff --git a/arch/arm/mach-s3c24xx/pm-s3c2410.c b/arch/arm/mach-s3c24xx/pm-s3c2410.c
index 2d82c4f116cd..e4cd56e8b90b 100644
--- a/arch/arm/mach-s3c24xx/pm-s3c2410.c
+++ b/arch/arm/mach-s3c24xx/pm-s3c2410.c
@@ -28,6 +28,7 @@
28#include <linux/syscore_ops.h> 28#include <linux/syscore_ops.h>
29#include <linux/gpio.h> 29#include <linux/gpio.h>
30#include <linux/io.h> 30#include <linux/io.h>
31#include <linux/platform_data/gpio-samsung-s3c24xx.h>
31 32
32#include <asm/mach-types.h> 33#include <asm/mach-types.h>
33 34
diff --git a/arch/arm/mach-s3c24xx/pm.c b/arch/arm/mach-s3c24xx/pm.c
index caa5b7211380..2baa887b28d2 100644
--- a/arch/arm/mach-s3c24xx/pm.c
+++ b/arch/arm/mach-s3c24xx/pm.c
@@ -34,6 +34,7 @@
34#include <linux/interrupt.h> 34#include <linux/interrupt.h>
35#include <linux/serial_core.h> 35#include <linux/serial_core.h>
36#include <linux/io.h> 36#include <linux/io.h>
37#include <linux/platform_data/gpio-samsung-s3c24xx.h>
37 38
38#include <plat/regs-serial.h> 39#include <plat/regs-serial.h>
39#include <mach/regs-clock.h> 40#include <mach/regs-clock.h>
diff --git a/arch/arm/mach-s3c24xx/s3c2410.c b/arch/arm/mach-s3c24xx/s3c2410.c
index 34676d1d5fec..db22f748ce8d 100644
--- a/arch/arm/mach-s3c24xx/s3c2410.c
+++ b/arch/arm/mach-s3c24xx/s3c2410.c
@@ -24,6 +24,7 @@
24#include <linux/platform_device.h> 24#include <linux/platform_device.h>
25#include <linux/reboot.h> 25#include <linux/reboot.h>
26#include <linux/io.h> 26#include <linux/io.h>
27#include <linux/platform_data/gpio-samsung-s3c24xx.h>
27 28
28#include <asm/mach/arch.h> 29#include <asm/mach/arch.h>
29#include <asm/mach/map.h> 30#include <asm/mach/map.h>
diff --git a/arch/arm/mach-s3c24xx/s3c2416.c b/arch/arm/mach-s3c24xx/s3c2416.c
index 9ef3ccfbe196..cb77880029f7 100644
--- a/arch/arm/mach-s3c24xx/s3c2416.c
+++ b/arch/arm/mach-s3c24xx/s3c2416.c
@@ -36,6 +36,7 @@
36#include <linux/clk.h> 36#include <linux/clk.h>
37#include <linux/io.h> 37#include <linux/io.h>
38#include <linux/reboot.h> 38#include <linux/reboot.h>
39#include <linux/platform_data/gpio-samsung-s3c24xx.h>
39 40
40#include <asm/mach/arch.h> 41#include <asm/mach/arch.h>
41#include <asm/mach/map.h> 42#include <asm/mach/map.h>
diff --git a/arch/arm/mach-s3c24xx/s3c2440.c b/arch/arm/mach-s3c24xx/s3c2440.c
index 5f9d6569475d..22e5dbdcbe8d 100644
--- a/arch/arm/mach-s3c24xx/s3c2440.c
+++ b/arch/arm/mach-s3c24xx/s3c2440.c
@@ -23,6 +23,7 @@
23#include <linux/gpio.h> 23#include <linux/gpio.h>
24#include <linux/clk.h> 24#include <linux/clk.h>
25#include <linux/io.h> 25#include <linux/io.h>
26#include <linux/platform_data/gpio-samsung-s3c24xx.h>
26 27
27#include <asm/mach/arch.h> 28#include <asm/mach/arch.h>
28#include <asm/mach/map.h> 29#include <asm/mach/map.h>
diff --git a/arch/arm/mach-s3c24xx/s3c2442.c b/arch/arm/mach-s3c24xx/s3c2442.c
index 6819961f6b19..4ba093b4e495 100644
--- a/arch/arm/mach-s3c24xx/s3c2442.c
+++ b/arch/arm/mach-s3c24xx/s3c2442.c
@@ -35,6 +35,7 @@
35#include <linux/gpio.h> 35#include <linux/gpio.h>
36#include <linux/clk.h> 36#include <linux/clk.h>
37#include <linux/io.h> 37#include <linux/io.h>
38#include <linux/platform_data/gpio-samsung-s3c24xx.h>
38 39
39#include <mach/hardware.h> 40#include <mach/hardware.h>
40#include <linux/atomic.h> 41#include <linux/atomic.h>
diff --git a/arch/arm/mach-s3c24xx/s3c2443.c b/arch/arm/mach-s3c24xx/s3c2443.c
index b6c71918b25c..faa1086924c4 100644
--- a/arch/arm/mach-s3c24xx/s3c2443.c
+++ b/arch/arm/mach-s3c24xx/s3c2443.c
@@ -23,6 +23,7 @@
23#include <linux/clk.h> 23#include <linux/clk.h>
24#include <linux/io.h> 24#include <linux/io.h>
25#include <linux/reboot.h> 25#include <linux/reboot.h>
26#include <linux/platform_data/gpio-samsung-s3c24xx.h>
26 27
27#include <asm/mach/arch.h> 28#include <asm/mach/arch.h>
28#include <asm/mach/map.h> 29#include <asm/mach/map.h>
diff --git a/arch/arm/mach-s3c24xx/setup-i2c.c b/arch/arm/mach-s3c24xx/setup-i2c.c
index 7b4f33332d19..3d1fd5ce24e5 100644
--- a/arch/arm/mach-s3c24xx/setup-i2c.c
+++ b/arch/arm/mach-s3c24xx/setup-i2c.c
@@ -17,6 +17,7 @@ struct platform_device;
17 17
18#include <plat/gpio-cfg.h> 18#include <plat/gpio-cfg.h>
19#include <linux/platform_data/i2c-s3c2410.h> 19#include <linux/platform_data/i2c-s3c2410.h>
20#include <linux/platform_data/gpio-samsung-s3c24xx.h>
20#include <mach/hardware.h> 21#include <mach/hardware.h>
21#include <mach/regs-gpio.h> 22#include <mach/regs-gpio.h>
22 23
diff --git a/arch/arm/mach-s3c24xx/setup-sdhci-gpio.c b/arch/arm/mach-s3c24xx/setup-sdhci-gpio.c
index f65cb3ef16ce..2835241f732a 100644
--- a/arch/arm/mach-s3c24xx/setup-sdhci-gpio.c
+++ b/arch/arm/mach-s3c24xx/setup-sdhci-gpio.c
@@ -18,6 +18,7 @@
18#include <linux/platform_device.h> 18#include <linux/platform_device.h>
19#include <linux/io.h> 19#include <linux/io.h>
20#include <linux/gpio.h> 20#include <linux/gpio.h>
21#include <linux/platform_data/gpio-samsung-s3c24xx.h>
21 22
22#include <mach/regs-gpio.h> 23#include <mach/regs-gpio.h>
23#include <plat/gpio-cfg.h> 24#include <plat/gpio-cfg.h>
diff --git a/arch/arm/mach-s3c24xx/setup-ts.c b/arch/arm/mach-s3c24xx/setup-ts.c
index 4e11affce3a8..1ea4056f6fdc 100644
--- a/arch/arm/mach-s3c24xx/setup-ts.c
+++ b/arch/arm/mach-s3c24xx/setup-ts.c
@@ -12,6 +12,7 @@
12 12
13#include <linux/kernel.h> 13#include <linux/kernel.h>
14#include <linux/gpio.h> 14#include <linux/gpio.h>
15#include <linux/platform_data/gpio-samsung-s3c24xx.h>
15 16
16struct platform_device; /* don't need the contents */ 17struct platform_device; /* don't need the contents */
17 18
diff --git a/arch/arm/mach-s3c24xx/simtec-usb.c b/arch/arm/mach-s3c24xx/simtec-usb.c
index 2ed2e32430dc..a007e5f16583 100644
--- a/arch/arm/mach-s3c24xx/simtec-usb.c
+++ b/arch/arm/mach-s3c24xx/simtec-usb.c
@@ -32,6 +32,7 @@
32#include <asm/irq.h> 32#include <asm/irq.h>
33 33
34#include <linux/platform_data/usb-ohci-s3c2410.h> 34#include <linux/platform_data/usb-ohci-s3c2410.h>
35#include <linux/platform_data/gpio-samsung-s3c24xx.h>
35#include <plat/devs.h> 36#include <plat/devs.h>
36 37
37#include "bast.h" 38#include "bast.h"
diff --git a/arch/arm/plat-samsung/pm-gpio.c b/arch/arm/plat-samsung/pm-gpio.c
index a8de3cfe2ee1..41fef6980230 100644
--- a/arch/arm/plat-samsung/pm-gpio.c
+++ b/arch/arm/plat-samsung/pm-gpio.c
@@ -19,6 +19,9 @@
19#include <linux/io.h> 19#include <linux/io.h>
20#include <linux/gpio.h> 20#include <linux/gpio.h>
21 21
22#ifdef CONFIG_ARCH_S3C24XX
23#include <linux/platform_data/gpio-samsung-s3c24xx.h>
24#endif
22#include <plat/gpio-core.h> 25#include <plat/gpio-core.h>
23#include <plat/pm.h> 26#include <plat/pm.h>
24 27
diff --git a/arch/arm/plat-samsung/setup-camif.c b/arch/arm/plat-samsung/setup-camif.c
index e01bf760af2c..70cf503c9a6b 100644
--- a/arch/arm/plat-samsung/setup-camif.c
+++ b/arch/arm/plat-samsung/setup-camif.c
@@ -9,6 +9,7 @@
9 */ 9 */
10 10
11#include <linux/gpio.h> 11#include <linux/gpio.h>
12#include <linux/platform_data/gpio-samsung-s3c24xx.h>
12#include <plat/gpio-cfg.h> 13#include <plat/gpio-cfg.h>
13 14
14/* Number of camera port pins, without FIELD */ 15/* Number of camera port pins, without FIELD */
diff --git a/drivers/gpio/gpio-samsung.c b/drivers/gpio/gpio-samsung.c
index 76e02b9460e6..268214c57799 100644
--- a/drivers/gpio/gpio-samsung.c
+++ b/drivers/gpio/gpio-samsung.c
@@ -27,6 +27,9 @@
27#include <linux/of.h> 27#include <linux/of.h>
28#include <linux/slab.h> 28#include <linux/slab.h>
29#include <linux/of_address.h> 29#include <linux/of_address.h>
30#ifdef CONFIG_ARCH_S3C24XX
31#include <linux/platform_data/gpio-samsung-s3c24xx.h>
32#endif
30 33
31#include <asm/irq.h> 34#include <asm/irq.h>
32 35
diff --git a/drivers/mmc/host/s3cmci.c b/drivers/mmc/host/s3cmci.c
index 2fce5ea5eb39..11ba3cbb0951 100644
--- a/drivers/mmc/host/s3cmci.c
+++ b/drivers/mmc/host/s3cmci.c
@@ -26,6 +26,7 @@
26#include <mach/dma.h> 26#include <mach/dma.h>
27 27
28#include <linux/platform_data/mmc-s3cmci.h> 28#include <linux/platform_data/mmc-s3cmci.h>
29#include <linux/platform_data/gpio-samsung-s3c24xx.h>
29 30
30#include "s3cmci.h" 31#include "s3cmci.h"
31 32
diff --git a/arch/arm/mach-s3c24xx/include/mach/gpio.h b/include/linux/platform_data/gpio-samsung-s3c24xx.h
index 14591563ca70..5ce750c84a14 100644
--- a/arch/arm/mach-s3c24xx/include/mach/gpio.h
+++ b/include/linux/platform_data/gpio-samsung-s3c24xx.h
@@ -14,16 +14,8 @@
14 * devices that need GPIO. 14 * devices that need GPIO.
15 */ 15 */
16 16
17#ifndef __MACH_GPIO_H 17#ifndef GPIO_SAMSUNG_S3C24XX_H
18#define __MACH_GPIO_H __FILE__ 18#define GPIO_SAMSUNG_S3C24XX_H
19
20#ifdef CONFIG_CPU_S3C244X
21#define ARCH_NR_GPIOS (32 * 9 + CONFIG_S3C24XX_GPIO_EXTRA)
22#elif defined(CONFIG_CPU_S3C2443) || defined(CONFIG_CPU_S3C2416)
23#define ARCH_NR_GPIOS (32 * 12 + CONFIG_S3C24XX_GPIO_EXTRA)
24#else
25#define ARCH_NR_GPIOS (256 + CONFIG_S3C24XX_GPIO_EXTRA)
26#endif
27 19
28/* 20/*
29 * GPIO sizes for various SoCs: 21 * GPIO sizes for various SoCs:
@@ -111,4 +103,4 @@ enum s3c_gpio_number {
111#define S3C_GPIO_END (S3C2410_GPH(0) + 32) 103#define S3C_GPIO_END (S3C2410_GPH(0) + 32)
112#endif 104#endif
113 105
114#endif /* __MACH_GPIO_H */ 106#endif /* GPIO_SAMSUNG_S3C24XX_H */