Commit 41c3548e authored by Linus Walleij's avatar Linus Walleij

ARM: s3c64xx: get rid of custom <mach/gpio.h>

This isolates the custom S3C64xx GPIO definition table to
<linux/platform_data/gpio-samsung-s3x64xx.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.

Also delete the CONFIG_SAMSUNG_GPIO_EXTRA stuff. Instead
roof the number of GPIOs for this platform:
First sum up all the GPIO banks from A to Q: 187 GPIOs.
Add the 16 "board GPIOs" and the roof for SAMSUNG_GPIO_EXTRA,
128, so in total maximum 187+16+128 = 331 GPIOs, so let's
take the same roof as for S3C24XX: 512. This way we can do
away with the GPIO calculation macros for GPIO_BOARD_START,
BOARD_NR_GPIOS and the definition of ARCH_NR_GPIOS.

Cc: Mark Brown <broonie@kernel.org>
[on Mini6410 board]
Tested-by: default avatarTomasz Figa <t.figa@samsung.com>
[for changes in mach-s3c64xx]
Acked-by: default avatarTomasz Figa <t.figa@samsung.com>
Tested-by: default avatarMark Brown <broonie@linaro.org>
Acked-by: default avatarKukjin Kim <kgene.kim@samsung.com>
Signed-off-by: default avatarLinus Walleij <linus.walleij@linaro.org>
parent c67d0f29
...@@ -732,7 +732,6 @@ config ARCH_S3C64XX ...@@ -732,7 +732,6 @@ config ARCH_S3C64XX
select HAVE_S3C2410_I2C if I2C select HAVE_S3C2410_I2C if I2C
select HAVE_S3C2410_WATCHDOG if WATCHDOG select HAVE_S3C2410_WATCHDOG if WATCHDOG
select HAVE_TCM select HAVE_TCM
select NEED_MACH_GPIO_H
select NO_IOPORT select NO_IOPORT
select PLAT_SAMSUNG select PLAT_SAMSUNG
select PM_GENERIC_DOMAINS select PM_GENERIC_DOMAINS
...@@ -1592,7 +1591,7 @@ config ARM_PSCI ...@@ -1592,7 +1591,7 @@ config ARM_PSCI
config ARCH_NR_GPIO config ARCH_NR_GPIO
int int
default 1024 if ARCH_SHMOBILE || ARCH_TEGRA default 1024 if ARCH_SHMOBILE || ARCH_TEGRA
default 512 if ARCH_EXYNOS || ARCH_KEYSTONE || SOC_OMAP5 || SOC_DRA7XX || ARCH_S3C24XX default 512 if ARCH_EXYNOS || ARCH_KEYSTONE || SOC_OMAP5 || SOC_DRA7XX || ARCH_S3C24XX || ARCH_S3C64XX
default 392 if ARCH_U8500 default 392 if ARCH_U8500
default 352 if ARCH_VT8500 default 352 if ARCH_VT8500
default 288 if ARCH_SUNXI default 288 if ARCH_SUNXI
......
...@@ -192,7 +192,6 @@ config SMDK6410_WM1190_EV1 ...@@ -192,7 +192,6 @@ config SMDK6410_WM1190_EV1
select MFD_WM8350_I2C select MFD_WM8350_I2C
select REGULATOR select REGULATOR
select REGULATOR_WM8350 select REGULATOR_WM8350
select SAMSUNG_GPIO_EXTRA64
help help
The Wolfson Microelectronics 1190-EV1 is a WM835x based PMIC The Wolfson Microelectronics 1190-EV1 is a WM835x based PMIC
and audio daughtercard for the Samsung SMDK6410 reference and audio daughtercard for the Samsung SMDK6410 reference
...@@ -208,7 +207,6 @@ config SMDK6410_WM1192_EV1 ...@@ -208,7 +207,6 @@ config SMDK6410_WM1192_EV1
select MFD_WM831X_I2C select MFD_WM831X_I2C
select REGULATOR select REGULATOR
select REGULATOR_WM831X select REGULATOR_WM831X
select SAMSUNG_GPIO_EXTRA64
help help
The Wolfson Microelectronics 1192-EV1 is a WM831x based PMIC The Wolfson Microelectronics 1192-EV1 is a WM831x based PMIC
daughtercard for the Samsung SMDK6410 reference platform. daughtercard for the Samsung SMDK6410 reference platform.
...@@ -294,7 +292,6 @@ config MACH_WLF_CRAGG_6410 ...@@ -294,7 +292,6 @@ config MACH_WLF_CRAGG_6410
select SAMSUNG_DEV_ADC select SAMSUNG_DEV_ADC
select SAMSUNG_DEV_KEYPAD select SAMSUNG_DEV_KEYPAD
select SAMSUNG_DEV_PWM select SAMSUNG_DEV_PWM
select SAMSUNG_GPIO_EXTRA128
help help
Machine support for the Wolfson Cragganmore S3C6410 variant. Machine support for the Wolfson Cragganmore S3C6410 variant.
......
...@@ -32,6 +32,7 @@ ...@@ -32,6 +32,7 @@
#include <linux/irq.h> #include <linux/irq.h>
#include <linux/gpio.h> #include <linux/gpio.h>
#include <linux/irqchip/arm-vic.h> #include <linux/irqchip/arm-vic.h>
#include <linux/platform_data/gpio-samsung-s3c64xx.h>
#include <clocksource/samsung_pwm.h> #include <clocksource/samsung_pwm.h>
#include <asm/mach/arch.h> #include <asm/mach/arch.h>
......
...@@ -11,7 +11,7 @@ ...@@ -11,7 +11,7 @@
#ifndef MACH_CRAG6410_H #ifndef MACH_CRAG6410_H
#define MACH_CRAG6410_H #define MACH_CRAG6410_H
#include <linux/gpio.h> #include <linux/platform_data/gpio-samsung-s3c64xx.h>
#define GLENFARCLAS_PMIC_IRQ_BASE IRQ_BOARD_START #define GLENFARCLAS_PMIC_IRQ_BASE IRQ_BOARD_START
......
...@@ -21,6 +21,7 @@ ...@@ -21,6 +21,7 @@
#include <plat/devs.h> #include <plat/devs.h>
#include <linux/platform_data/asoc-s3c.h> #include <linux/platform_data/asoc-s3c.h>
#include <linux/platform_data/gpio-samsung-s3c64xx.h>
#include <plat/gpio-cfg.h> #include <plat/gpio-cfg.h>
static int s3c64xx_i2s_cfg_gpio(struct platform_device *pdev) static int s3c64xx_i2s_cfg_gpio(struct platform_device *pdev)
......
...@@ -43,6 +43,7 @@ ...@@ -43,6 +43,7 @@
#include <plat/regs-serial.h> #include <plat/regs-serial.h>
#include <linux/platform_data/i2c-s3c2410.h> #include <linux/platform_data/i2c-s3c2410.h>
#include <linux/platform_data/gpio-samsung-s3c64xx.h>
#include <plat/fb.h> #include <plat/fb.h>
#include <plat/clock.h> #include <plat/clock.h>
......
...@@ -32,6 +32,7 @@ ...@@ -32,6 +32,7 @@
#include <linux/platform_data/pca953x.h> #include <linux/platform_data/pca953x.h>
#include <linux/platform_data/s3c-hsotg.h> #include <linux/platform_data/s3c-hsotg.h>
#include <linux/platform_data/gpio-samsung-s3c64xx.h>
#include <video/platform_lcd.h> #include <video/platform_lcd.h>
......
...@@ -35,6 +35,7 @@ ...@@ -35,6 +35,7 @@
#include <plat/regs-serial.h> #include <plat/regs-serial.h>
#include <linux/platform_data/i2c-s3c2410.h> #include <linux/platform_data/i2c-s3c2410.h>
#include <linux/platform_data/gpio-samsung-s3c64xx.h>
#include <plat/fb.h> #include <plat/fb.h>
#include <linux/platform_data/mtd-nand-s3c2410.h> #include <linux/platform_data/mtd-nand-s3c2410.h>
......
...@@ -38,6 +38,7 @@ ...@@ -38,6 +38,7 @@
#include <linux/platform_data/mtd-nand-s3c2410.h> #include <linux/platform_data/mtd-nand-s3c2410.h>
#include <plat/regs-serial.h> #include <plat/regs-serial.h>
#include <linux/platform_data/touchscreen-s3c2410.h> #include <linux/platform_data/touchscreen-s3c2410.h>
#include <linux/platform_data/gpio-samsung-s3c64xx.h>
#include <video/platform_lcd.h> #include <video/platform_lcd.h>
#include <video/samsung_fimd.h> #include <video/samsung_fimd.h>
......
...@@ -39,6 +39,7 @@ ...@@ -39,6 +39,7 @@
#include <linux/platform_data/mtd-nand-s3c2410.h> #include <linux/platform_data/mtd-nand-s3c2410.h>
#include <plat/regs-serial.h> #include <plat/regs-serial.h>
#include <linux/platform_data/touchscreen-s3c2410.h> #include <linux/platform_data/touchscreen-s3c2410.h>
#include <linux/platform_data/gpio-samsung-s3c64xx.h>
#include <video/platform_lcd.h> #include <video/platform_lcd.h>
#include <video/samsung_fimd.h> #include <video/samsung_fimd.h>
......
...@@ -36,6 +36,7 @@ ...@@ -36,6 +36,7 @@
#include <linux/platform_data/usb-ohci-s3c2410.h> #include <linux/platform_data/usb-ohci-s3c2410.h>
#include <plat/sdhci.h> #include <plat/sdhci.h>
#include <linux/platform_data/touchscreen-s3c2410.h> #include <linux/platform_data/touchscreen-s3c2410.h>
#include <linux/platform_data/gpio-samsung-s3c64xx.h>
#include <video/platform_lcd.h> #include <video/platform_lcd.h>
#include <plat/samsung-time.h> #include <plat/samsung-time.h>
......
...@@ -16,6 +16,7 @@ ...@@ -16,6 +16,7 @@
#include <linux/input.h> #include <linux/input.h>
#include <linux/leds.h> #include <linux/leds.h>
#include <linux/platform_device.h> #include <linux/platform_device.h>
#include <linux/platform_data/gpio-samsung-s3c64xx.h>
#include <asm/mach-types.h> #include <asm/mach-types.h>
#include <asm/mach/arch.h> #include <asm/mach/arch.h>
......
...@@ -16,6 +16,7 @@ ...@@ -16,6 +16,7 @@
#include <linux/input.h> #include <linux/input.h>
#include <linux/leds.h> #include <linux/leds.h>
#include <linux/platform_device.h> #include <linux/platform_device.h>
#include <linux/platform_data/gpio-samsung-s3c64xx.h>
#include <asm/mach-types.h> #include <asm/mach-types.h>
#include <asm/mach/arch.h> #include <asm/mach/arch.h>
......
...@@ -35,6 +35,7 @@ ...@@ -35,6 +35,7 @@
#include <plat/devs.h> #include <plat/devs.h>
#include <plat/cpu.h> #include <plat/cpu.h>
#include <linux/platform_data/i2c-s3c2410.h> #include <linux/platform_data/i2c-s3c2410.h>
#include <linux/platform_data/gpio-samsung-s3c64xx.h>
#include <plat/samsung-time.h> #include <plat/samsung-time.h>
#include "common.h" #include "common.h"
......
...@@ -31,6 +31,7 @@ ...@@ -31,6 +31,7 @@
#include <linux/regulator/machine.h> #include <linux/regulator/machine.h>
#include <linux/pwm_backlight.h> #include <linux/pwm_backlight.h>
#include <linux/platform_data/s3c-hsotg.h> #include <linux/platform_data/s3c-hsotg.h>
#include <linux/platform_data/gpio-samsung-s3c64xx.h>
#ifdef CONFIG_SMDK6410_WM1190_EV1 #ifdef CONFIG_SMDK6410_WM1190_EV1
#include <linux/mfd/wm8350/core.h> #include <linux/mfd/wm8350/core.h>
......
...@@ -18,6 +18,7 @@ ...@@ -18,6 +18,7 @@
#include <linux/io.h> #include <linux/io.h>
#include <linux/gpio.h> #include <linux/gpio.h>
#include <linux/pm_domain.h> #include <linux/pm_domain.h>
#include <linux/platform_data/gpio-samsung-s3c64xx.h>
#include <mach/map.h> #include <mach/map.h>
#include <mach/irqs.h> #include <mach/irqs.h>
......
...@@ -16,6 +16,7 @@ ...@@ -16,6 +16,7 @@
#include <linux/types.h> #include <linux/types.h>
#include <linux/fb.h> #include <linux/fb.h>
#include <linux/gpio.h> #include <linux/gpio.h>
#include <linux/platform_data/gpio-samsung-s3c64xx.h>
#include <plat/fb.h> #include <plat/fb.h>
#include <plat/gpio-cfg.h> #include <plat/gpio-cfg.h>
......
...@@ -19,6 +19,7 @@ ...@@ -19,6 +19,7 @@
struct platform_device; /* don't need the contents */ struct platform_device; /* don't need the contents */
#include <linux/platform_data/i2c-s3c2410.h> #include <linux/platform_data/i2c-s3c2410.h>
#include <linux/platform_data/gpio-samsung-s3c64xx.h>
#include <plat/gpio-cfg.h> #include <plat/gpio-cfg.h>
void s3c_i2c0_cfg_gpio(struct platform_device *dev) void s3c_i2c0_cfg_gpio(struct platform_device *dev)
......
...@@ -19,6 +19,7 @@ ...@@ -19,6 +19,7 @@
struct platform_device; /* don't need the contents */ struct platform_device; /* don't need the contents */
#include <linux/platform_data/i2c-s3c2410.h> #include <linux/platform_data/i2c-s3c2410.h>
#include <linux/platform_data/gpio-samsung-s3c64xx.h>
#include <plat/gpio-cfg.h> #include <plat/gpio-cfg.h>
void s3c_i2c1_cfg_gpio(struct platform_device *dev) void s3c_i2c1_cfg_gpio(struct platform_device *dev)
......
...@@ -18,6 +18,7 @@ ...@@ -18,6 +18,7 @@
#include <mach/regs-clock.h> #include <mach/regs-clock.h>
#include <plat/gpio-cfg.h> #include <plat/gpio-cfg.h>
#include <linux/platform_data/ata-samsung_cf.h> #include <linux/platform_data/ata-samsung_cf.h>
#include <linux/platform_data/gpio-samsung-s3c64xx.h>
void s3c64xx_ide_setup_gpio(void) void s3c64xx_ide_setup_gpio(void)
{ {
......
...@@ -11,6 +11,7 @@ ...@@ -11,6 +11,7 @@
*/ */
#include <linux/gpio.h> #include <linux/gpio.h>
#include <linux/platform_data/gpio-samsung-s3c64xx.h>
#include <plat/gpio-cfg.h> #include <plat/gpio-cfg.h>
#include <plat/keypad.h> #include <plat/keypad.h>
......
...@@ -17,6 +17,7 @@ ...@@ -17,6 +17,7 @@
#include <linux/platform_device.h> #include <linux/platform_device.h>
#include <linux/io.h> #include <linux/io.h>
#include <linux/gpio.h> #include <linux/gpio.h>
#include <linux/platform_data/gpio-samsung-s3c64xx.h>
#include <plat/gpio-cfg.h> #include <plat/gpio-cfg.h>
#include <plat/sdhci.h> #include <plat/sdhci.h>
......
...@@ -9,6 +9,7 @@ ...@@ -9,6 +9,7 @@
*/ */
#include <linux/gpio.h> #include <linux/gpio.h>
#include <linux/platform_data/gpio-samsung-s3c64xx.h>
#include <plat/gpio-cfg.h> #include <plat/gpio-cfg.h>
#ifdef CONFIG_S3C64XX_DEV_SPI0 #ifdef CONFIG_S3C64XX_DEV_SPI0
......
...@@ -22,6 +22,9 @@ ...@@ -22,6 +22,9 @@
#ifdef CONFIG_ARCH_S3C24XX #ifdef CONFIG_ARCH_S3C24XX
#include <linux/platform_data/gpio-samsung-s3c24xx.h> #include <linux/platform_data/gpio-samsung-s3c24xx.h>
#endif #endif
#ifdef CONFIG_ARCH_S3C64XX
#include <linux/platform_data/gpio-samsung-s3c64xx.h>
#endif
#include <plat/gpio-core.h> #include <plat/gpio-core.h>
#include <plat/pm.h> #include <plat/pm.h>
......
...@@ -30,6 +30,9 @@ ...@@ -30,6 +30,9 @@
#ifdef CONFIG_ARCH_S3C24XX #ifdef CONFIG_ARCH_S3C24XX
#include <linux/platform_data/gpio-samsung-s3c24xx.h> #include <linux/platform_data/gpio-samsung-s3c24xx.h>
#endif #endif
#ifdef CONFIG_ARCH_S3C64XX
#include <linux/platform_data/gpio-samsung-s3c64xx.h>
#endif
#include <asm/irq.h> #include <asm/irq.h>
......
/* arch/arm/mach-s3c6400/include/mach/gpio.h /*
*
* Copyright 2008 Openmoko, Inc. * Copyright 2008 Openmoko, Inc.
* Copyright 2008 Simtec Electronics * Copyright 2008 Simtec Electronics
* http://armlinux.simtec.co.uk/ * http://armlinux.simtec.co.uk/
...@@ -12,6 +11,9 @@ ...@@ -12,6 +11,9 @@
* published by the Free Software Foundation. * published by the Free Software Foundation.
*/ */
#ifndef GPIO_SAMSUNG_S3C64XX_H
#define GPIO_SAMSUNG_S3C64XX_H
/* GPIO bank sizes */ /* GPIO bank sizes */
#define S3C64XX_GPIO_A_NR (8) #define S3C64XX_GPIO_A_NR (8)
#define S3C64XX_GPIO_B_NR (7) #define S3C64XX_GPIO_B_NR (7)
...@@ -88,6 +90,5 @@ enum s3c_gpio_number { ...@@ -88,6 +90,5 @@ enum s3c_gpio_number {
/* define the number of gpios we need to the one after the GPQ() range */ /* define the number of gpios we need to the one after the GPQ() range */
#define GPIO_BOARD_START (S3C64XX_GPQ(S3C64XX_GPIO_Q_NR) + 1) #define GPIO_BOARD_START (S3C64XX_GPQ(S3C64XX_GPIO_Q_NR) + 1)
#define BOARD_NR_GPIOS (16 + CONFIG_SAMSUNG_GPIO_EXTRA) #endif /* GPIO_SAMSUNG_S3C64XX_H */
#define ARCH_NR_GPIOS (GPIO_BOARD_START + BOARD_NR_GPIOS)
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment