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>
This commit is contained in:
parent
e6ae919590
commit
c67d0f2926
37 changed files with 42 additions and 35 deletions
|
@ -710,7 +710,6 @@ config ARCH_S3C24XX
|
|||
select HAVE_S3C2410_WATCHDOG if WATCHDOG
|
||||
select HAVE_S3C_RTC if RTC_CLASS
|
||||
select MULTI_IRQ_HANDLER
|
||||
select NEED_MACH_GPIO_H
|
||||
select NEED_MACH_IO_H
|
||||
select SAMSUNG_ATAGS
|
||||
help
|
||||
|
@ -1593,7 +1592,7 @@ config ARM_PSCI
|
|||
config ARCH_NR_GPIO
|
||||
int
|
||||
default 1024 if ARCH_SHMOBILE || ARCH_TEGRA
|
||||
default 512 if ARCH_EXYNOS || ARCH_KEYSTONE || SOC_OMAP5 || SOC_DRA7XX
|
||||
default 512 if ARCH_EXYNOS || ARCH_KEYSTONE || SOC_OMAP5 || SOC_DRA7XX || ARCH_S3C24XX
|
||||
default 392 if ARCH_U8500
|
||||
default 352 if ARCH_VT8500
|
||||
default 288 if ARCH_SUNXI
|
||||
|
|
|
@ -180,27 +180,6 @@ config CPU_LLSERIAL_S3C2440
|
|||
Selected if there is an S3C2440 (or register compatible) serial
|
||||
low-level implementation needed
|
||||
|
||||
# gpio configurations
|
||||
|
||||
config S3C24XX_GPIO_EXTRA
|
||||
int
|
||||
default 128 if S3C24XX_GPIO_EXTRA128
|
||||
default 64 if S3C24XX_GPIO_EXTRA64
|
||||
default 16 if ARCH_H1940
|
||||
default 0
|
||||
|
||||
config S3C24XX_GPIO_EXTRA64
|
||||
bool
|
||||
help
|
||||
Add an extra 64 gpio numbers to the available GPIO pool. This is
|
||||
available for boards that need extra gpios for external devices.
|
||||
|
||||
config S3C24XX_GPIO_EXTRA128
|
||||
bool
|
||||
help
|
||||
Add an extra 128 gpio numbers to the available GPIO pool. This is
|
||||
available for boards that need extra gpios for external devices.
|
||||
|
||||
config S3C24XX_PLL
|
||||
bool "Support CPUfreq changing of PLL frequency (EXPERIMENTAL)"
|
||||
depends on ARM_S3C24XX_CPUFREQ
|
||||
|
|
|
@ -38,7 +38,7 @@
|
|||
|
||||
#include <mach/regs-gpio.h>
|
||||
#include <linux/platform_data/leds-s3c24xx.h>
|
||||
|
||||
#include <linux/platform_data/gpio-samsung-s3c24xx.h>
|
||||
#include <linux/platform_data/mtd-nand-s3c2410.h>
|
||||
|
||||
#include <plat/gpio-cfg.h>
|
||||
|
|
|
@ -18,6 +18,7 @@
|
|||
#include <linux/leds.h>
|
||||
#include <linux/gpio.h>
|
||||
#include <linux/rfkill.h>
|
||||
#include <linux/platform_data/gpio-samsung-s3c24xx.h>
|
||||
|
||||
#include <mach/hardware.h>
|
||||
#include <mach/regs-gpio.h>
|
||||
|
|
|
@ -54,6 +54,7 @@
|
|||
#include <mach/regs-gpio.h>
|
||||
|
||||
#include <linux/platform_data/i2c-s3c2410.h>
|
||||
#include <linux/platform_data/gpio-samsung-s3c24xx.h>
|
||||
#include <plat/devs.h>
|
||||
#include <plat/cpu.h>
|
||||
#include <plat/gpio-cfg.h>
|
||||
|
|
|
@ -37,6 +37,7 @@
|
|||
#include <mach/regs-lcd.h>
|
||||
#include <linux/platform_data/mtd-nand-s3c2410.h>
|
||||
#include <linux/platform_data/i2c-s3c2410.h>
|
||||
#include <linux/platform_data/gpio-samsung-s3c24xx.h>
|
||||
|
||||
#include <linux/mtd/mtd.h>
|
||||
#include <linux/mtd/nand.h>
|
||||
|
|
|
@ -38,6 +38,7 @@
|
|||
#include <mach/regs-lcd.h>
|
||||
#include <linux/platform_data/mtd-nand-s3c2410.h>
|
||||
#include <linux/platform_data/i2c-s3c2410.h>
|
||||
#include <linux/platform_data/gpio-samsung-s3c24xx.h>
|
||||
|
||||
#include <linux/mtd/mtd.h>
|
||||
#include <linux/mtd/nand.h>
|
||||
|
|
|
@ -35,6 +35,7 @@
|
|||
#include <linux/platform_data/hwmon-s3c.h>
|
||||
#include <linux/platform_data/i2c-s3c2410.h>
|
||||
#include <linux/platform_data/mtd-nand-s3c2410.h>
|
||||
#include <linux/platform_data/gpio-samsung-s3c24xx.h>
|
||||
|
||||
#include <net/ax88796.h>
|
||||
|
||||
|
|
|
@ -70,6 +70,7 @@
|
|||
#include <linux/platform_data/touchscreen-s3c2410.h>
|
||||
#include <linux/platform_data/usb-ohci-s3c2410.h>
|
||||
#include <linux/platform_data/usb-s3c2410_udc.h>
|
||||
#include <linux/platform_data/gpio-samsung-s3c24xx.h>
|
||||
|
||||
#include <mach/fb.h>
|
||||
#include <mach/hardware.h>
|
||||
|
|
|
@ -46,6 +46,7 @@
|
|||
#include <linux/platform_data/mmc-s3cmci.h>
|
||||
#include <linux/platform_data/touchscreen-s3c2410.h>
|
||||
#include <linux/platform_data/usb-s3c2410_udc.h>
|
||||
#include <linux/platform_data/gpio-samsung-s3c24xx.h>
|
||||
|
||||
#include <sound/uda1380.h>
|
||||
|
||||
|
|
|
@ -34,6 +34,7 @@
|
|||
#include <plat/regs-serial.h>
|
||||
#include <linux/platform_data/mtd-nand-s3c2410.h>
|
||||
#include <linux/platform_data/i2c-s3c2410.h>
|
||||
#include <linux/platform_data/gpio-samsung-s3c24xx.h>
|
||||
|
||||
#include <mach/regs-gpio.h>
|
||||
#include <mach/regs-lcd.h>
|
||||
|
|
|
@ -46,6 +46,7 @@
|
|||
#include <linux/platform_data/i2c-s3c2410.h>
|
||||
#include <linux/platform_data/mmc-s3cmci.h>
|
||||
#include <linux/platform_data/usb-s3c2410_udc.h>
|
||||
#include <linux/platform_data/gpio-samsung-s3c24xx.h>
|
||||
|
||||
#include <linux/mtd/mtd.h>
|
||||
#include <linux/mtd/nand.h>
|
||||
|
|
|
@ -42,6 +42,7 @@
|
|||
#include <asm/mach/map.h>
|
||||
|
||||
#include <linux/platform_data/i2c-s3c2410.h>
|
||||
#include <linux/platform_data/gpio-samsung-s3c24xx.h>
|
||||
#include <plat/regs-serial.h>
|
||||
|
||||
#include <plat/clock.h>
|
||||
|
|
|
@ -39,6 +39,7 @@
|
|||
#include <mach/regs-gpio.h>
|
||||
#include <plat/regs-serial.h>
|
||||
#include <linux/platform_data/i2c-s3c2410.h>
|
||||
#include <linux/platform_data/gpio-samsung-s3c24xx.h>
|
||||
|
||||
#include <plat/gpio-cfg.h>
|
||||
#include <plat/clock.h>
|
||||
|
|
|
@ -33,6 +33,7 @@
|
|||
|
||||
#include <linux/platform_data/mtd-nand-s3c2410.h>
|
||||
#include <linux/platform_data/i2c-s3c2410.h>
|
||||
#include <linux/platform_data/gpio-samsung-s3c24xx.h>
|
||||
|
||||
#include <linux/mtd/mtd.h>
|
||||
#include <linux/mtd/nand.h>
|
||||
|
|
|
@ -54,6 +54,7 @@
|
|||
#include <linux/platform_data/mtd-nand-s3c2410.h>
|
||||
#include <linux/platform_data/usb-s3c2410_udc.h>
|
||||
#include <linux/platform_data/i2c-s3c2410.h>
|
||||
#include <linux/platform_data/gpio-samsung-s3c24xx.h>
|
||||
|
||||
#include <plat/gpio-cfg.h>
|
||||
#include <plat/devs.h>
|
||||
|
|
|
@ -45,6 +45,7 @@
|
|||
#include <linux/platform_data/mtd-nand-s3c2410.h>
|
||||
#include <linux/platform_data/touchscreen-s3c2410.h>
|
||||
#include <linux/platform_data/usb-s3c2410_udc.h>
|
||||
#include <linux/platform_data/gpio-samsung-s3c24xx.h>
|
||||
|
||||
#include <sound/uda1380.h>
|
||||
|
||||
|
|
|
@ -35,6 +35,7 @@
|
|||
#include <asm/mach/map.h>
|
||||
|
||||
#include <linux/platform_data/mtd-nand-s3c2410.h>
|
||||
#include <linux/platform_data/gpio-samsung-s3c24xx.h>
|
||||
|
||||
#include <asm/irq.h>
|
||||
#include <asm/mach-types.h>
|
||||
|
|
|
@ -39,6 +39,7 @@
|
|||
|
||||
#include <linux/platform_data/usb-s3c2410_udc.h>
|
||||
#include <linux/platform_data/i2c-s3c2410.h>
|
||||
#include <linux/platform_data/gpio-samsung-s3c24xx.h>
|
||||
#include <mach/fb.h>
|
||||
|
||||
#include <plat/clock.h>
|
||||
|
|
|
@ -41,6 +41,7 @@
|
|||
|
||||
#include <linux/platform_data/leds-s3c24xx.h>
|
||||
#include <linux/platform_data/i2c-s3c2410.h>
|
||||
#include <linux/platform_data/gpio-samsung-s3c24xx.h>
|
||||
|
||||
#include <plat/gpio-cfg.h>
|
||||
#include <plat/clock.h>
|
||||
|
|
|
@ -37,6 +37,7 @@
|
|||
#include <linux/platform_data/leds-s3c24xx.h>
|
||||
#include <linux/platform_data/i2c-s3c2410.h>
|
||||
#include <linux/platform_data/asoc-s3c24xx_simtec.h>
|
||||
#include <linux/platform_data/gpio-samsung-s3c24xx.h>
|
||||
|
||||
#include <mach/hardware.h>
|
||||
#include <mach/regs-gpio.h>
|
||||
|
|
|
@ -28,6 +28,7 @@
|
|||
#include <linux/syscore_ops.h>
|
||||
#include <linux/gpio.h>
|
||||
#include <linux/io.h>
|
||||
#include <linux/platform_data/gpio-samsung-s3c24xx.h>
|
||||
|
||||
#include <asm/mach-types.h>
|
||||
|
||||
|
|
|
@ -34,6 +34,7 @@
|
|||
#include <linux/interrupt.h>
|
||||
#include <linux/serial_core.h>
|
||||
#include <linux/io.h>
|
||||
#include <linux/platform_data/gpio-samsung-s3c24xx.h>
|
||||
|
||||
#include <plat/regs-serial.h>
|
||||
#include <mach/regs-clock.h>
|
||||
|
|
|
@ -24,6 +24,7 @@
|
|||
#include <linux/platform_device.h>
|
||||
#include <linux/reboot.h>
|
||||
#include <linux/io.h>
|
||||
#include <linux/platform_data/gpio-samsung-s3c24xx.h>
|
||||
|
||||
#include <asm/mach/arch.h>
|
||||
#include <asm/mach/map.h>
|
||||
|
|
|
@ -36,6 +36,7 @@
|
|||
#include <linux/clk.h>
|
||||
#include <linux/io.h>
|
||||
#include <linux/reboot.h>
|
||||
#include <linux/platform_data/gpio-samsung-s3c24xx.h>
|
||||
|
||||
#include <asm/mach/arch.h>
|
||||
#include <asm/mach/map.h>
|
||||
|
|
|
@ -23,6 +23,7 @@
|
|||
#include <linux/gpio.h>
|
||||
#include <linux/clk.h>
|
||||
#include <linux/io.h>
|
||||
#include <linux/platform_data/gpio-samsung-s3c24xx.h>
|
||||
|
||||
#include <asm/mach/arch.h>
|
||||
#include <asm/mach/map.h>
|
||||
|
|
|
@ -35,6 +35,7 @@
|
|||
#include <linux/gpio.h>
|
||||
#include <linux/clk.h>
|
||||
#include <linux/io.h>
|
||||
#include <linux/platform_data/gpio-samsung-s3c24xx.h>
|
||||
|
||||
#include <mach/hardware.h>
|
||||
#include <linux/atomic.h>
|
||||
|
|
|
@ -23,6 +23,7 @@
|
|||
#include <linux/clk.h>
|
||||
#include <linux/io.h>
|
||||
#include <linux/reboot.h>
|
||||
#include <linux/platform_data/gpio-samsung-s3c24xx.h>
|
||||
|
||||
#include <asm/mach/arch.h>
|
||||
#include <asm/mach/map.h>
|
||||
|
|
|
@ -17,6 +17,7 @@ struct platform_device;
|
|||
|
||||
#include <plat/gpio-cfg.h>
|
||||
#include <linux/platform_data/i2c-s3c2410.h>
|
||||
#include <linux/platform_data/gpio-samsung-s3c24xx.h>
|
||||
#include <mach/hardware.h>
|
||||
#include <mach/regs-gpio.h>
|
||||
|
||||
|
|
|
@ -18,6 +18,7 @@
|
|||
#include <linux/platform_device.h>
|
||||
#include <linux/io.h>
|
||||
#include <linux/gpio.h>
|
||||
#include <linux/platform_data/gpio-samsung-s3c24xx.h>
|
||||
|
||||
#include <mach/regs-gpio.h>
|
||||
#include <plat/gpio-cfg.h>
|
||||
|
|
|
@ -12,6 +12,7 @@
|
|||
|
||||
#include <linux/kernel.h>
|
||||
#include <linux/gpio.h>
|
||||
#include <linux/platform_data/gpio-samsung-s3c24xx.h>
|
||||
|
||||
struct platform_device; /* don't need the contents */
|
||||
|
||||
|
|
|
@ -32,6 +32,7 @@
|
|||
#include <asm/irq.h>
|
||||
|
||||
#include <linux/platform_data/usb-ohci-s3c2410.h>
|
||||
#include <linux/platform_data/gpio-samsung-s3c24xx.h>
|
||||
#include <plat/devs.h>
|
||||
|
||||
#include "bast.h"
|
||||
|
|
|
@ -19,6 +19,9 @@
|
|||
#include <linux/io.h>
|
||||
#include <linux/gpio.h>
|
||||
|
||||
#ifdef CONFIG_ARCH_S3C24XX
|
||||
#include <linux/platform_data/gpio-samsung-s3c24xx.h>
|
||||
#endif
|
||||
#include <plat/gpio-core.h>
|
||||
#include <plat/pm.h>
|
||||
|
||||
|
|
|
@ -9,6 +9,7 @@
|
|||
*/
|
||||
|
||||
#include <linux/gpio.h>
|
||||
#include <linux/platform_data/gpio-samsung-s3c24xx.h>
|
||||
#include <plat/gpio-cfg.h>
|
||||
|
||||
/* Number of camera port pins, without FIELD */
|
||||
|
|
|
@ -27,6 +27,9 @@
|
|||
#include <linux/of.h>
|
||||
#include <linux/slab.h>
|
||||
#include <linux/of_address.h>
|
||||
#ifdef CONFIG_ARCH_S3C24XX
|
||||
#include <linux/platform_data/gpio-samsung-s3c24xx.h>
|
||||
#endif
|
||||
|
||||
#include <asm/irq.h>
|
||||
|
||||
|
|
|
@ -26,6 +26,7 @@
|
|||
#include <mach/dma.h>
|
||||
|
||||
#include <linux/platform_data/mmc-s3cmci.h>
|
||||
#include <linux/platform_data/gpio-samsung-s3c24xx.h>
|
||||
|
||||
#include "s3cmci.h"
|
||||
|
||||
|
|
|
@ -14,16 +14,8 @@
|
|||
* devices that need GPIO.
|
||||
*/
|
||||
|
||||
#ifndef __MACH_GPIO_H
|
||||
#define __MACH_GPIO_H __FILE__
|
||||
|
||||
#ifdef CONFIG_CPU_S3C244X
|
||||
#define ARCH_NR_GPIOS (32 * 9 + CONFIG_S3C24XX_GPIO_EXTRA)
|
||||
#elif defined(CONFIG_CPU_S3C2443) || defined(CONFIG_CPU_S3C2416)
|
||||
#define ARCH_NR_GPIOS (32 * 12 + CONFIG_S3C24XX_GPIO_EXTRA)
|
||||
#else
|
||||
#define ARCH_NR_GPIOS (256 + CONFIG_S3C24XX_GPIO_EXTRA)
|
||||
#endif
|
||||
#ifndef GPIO_SAMSUNG_S3C24XX_H
|
||||
#define GPIO_SAMSUNG_S3C24XX_H
|
||||
|
||||
/*
|
||||
* GPIO sizes for various SoCs:
|
||||
|
@ -111,4 +103,4 @@ enum s3c_gpio_number {
|
|||
#define S3C_GPIO_END (S3C2410_GPH(0) + 32)
|
||||
#endif
|
||||
|
||||
#endif /* __MACH_GPIO_H */
|
||||
#endif /* GPIO_SAMSUNG_S3C24XX_H */
|
Loading…
Reference in a new issue