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: Tomasz Figa <t.figa@samsung.com> [for changes in mach-s3c64xx] Acked-by: Tomasz Figa <t.figa@samsung.com> Tested-by: Mark Brown <broonie@linaro.org> Acked-by: Kukjin Kim <kgene.kim@samsung.com> Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
This commit is contained in:
		
					parent
					
						
							
								c67d0f2926
							
						
					
				
			
			
				commit
				
					
						41c3548e6d
					
				
			
		
					 26 changed files with 33 additions and 10 deletions
				
			
		|  | @ -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 | ||||||
| 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 | ||||||
| 	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 | ||||||
| 	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 | ||||||
| 	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 @@ | ||||||
| #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 @@ | ||||||
| #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 @@ | ||||||
| 
 | 
 | ||||||
| #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 @@ | ||||||
| 
 | 
 | ||||||
| #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 @@ | ||||||
| 
 | 
 | ||||||
| #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 @@ | ||||||
| 
 | 
 | ||||||
| #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 @@ | ||||||
| #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 @@ | ||||||
| #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 @@ | ||||||
| #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 @@ | ||||||
| #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 @@ | ||||||
| #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 @@ | ||||||
| #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 @@ | ||||||
| #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 @@ | ||||||
| #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 @@ | ||||||
| #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 @@ | ||||||
| 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 @@ | ||||||
| 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 @@ | ||||||
| #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 @@ | ||||||
| */ | */ | ||||||
| 
 | 
 | ||||||
| #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 @@ | ||||||
| #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 @@ | ||||||
|  */ |  */ | ||||||
| 
 | 
 | ||||||
| #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 @@ | ||||||
| #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 @@ | ||||||
| #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> | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
|  | @ -1,5 +1,4 @@ | ||||||
| /* 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 @@ | ||||||
|  * 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 { | ||||||
| /* 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) |  | ||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue
	
	 Linus Walleij
				Linus Walleij