ARM: make mach/gpio.h headers optional
Most platforms don't need mach/gpio.h and it prevents multi-platform kernel images. Add CONFIG_NEED_MACH_GPIO_H and make platforns select it if they need gpio.h. This is platforms that define __GPIOLIB_COMPLEX or have lots of implicit includes pulled in by mach/gpio.h. at91 and omap have gpio clean-up pending and can drop CONFIG_NEED_MACH_GPIO_H once that is in. Signed-off-by: Rob Herring <rob.herring@calxeda.com> Cc: Russell King <linux@arm.linux.org.uk> Acked-by: Jason Cooper <jason@lakedaemon.net> Acked-by: Linus Walleij <linus.walleij@linaro.org>
This commit is contained in:
parent
ce91574c20
commit
01464226ac
|
@ -202,6 +202,13 @@ config ARM_PATCH_PHYS_VIRT
|
||||||
this feature (eg, building a kernel for a single machine) and
|
this feature (eg, building a kernel for a single machine) and
|
||||||
you need to shrink the kernel to the minimal size.
|
you need to shrink the kernel to the minimal size.
|
||||||
|
|
||||||
|
config NEED_MACH_GPIO_H
|
||||||
|
bool
|
||||||
|
help
|
||||||
|
Select this when mach/gpio.h is required to provide special
|
||||||
|
definitions for this platform. The need for mach/gpio.h should
|
||||||
|
be avoided when possible.
|
||||||
|
|
||||||
config NEED_MACH_IO_H
|
config NEED_MACH_IO_H
|
||||||
bool
|
bool
|
||||||
help
|
help
|
||||||
|
@ -345,6 +352,7 @@ config ARCH_AT91
|
||||||
select HAVE_CLK
|
select HAVE_CLK
|
||||||
select CLKDEV_LOOKUP
|
select CLKDEV_LOOKUP
|
||||||
select IRQ_DOMAIN
|
select IRQ_DOMAIN
|
||||||
|
select NEED_MACH_GPIO_H
|
||||||
select NEED_MACH_IO_H if PCCARD
|
select NEED_MACH_IO_H if PCCARD
|
||||||
help
|
help
|
||||||
This enables support for systems based on Atmel
|
This enables support for systems based on Atmel
|
||||||
|
@ -523,6 +531,7 @@ config ARCH_IOP32X
|
||||||
bool "IOP32x-based"
|
bool "IOP32x-based"
|
||||||
depends on MMU
|
depends on MMU
|
||||||
select CPU_XSCALE
|
select CPU_XSCALE
|
||||||
|
select NEED_MACH_GPIO_H
|
||||||
select NEED_MACH_IO_H
|
select NEED_MACH_IO_H
|
||||||
select NEED_RET_TO_USER
|
select NEED_RET_TO_USER
|
||||||
select PLAT_IOP
|
select PLAT_IOP
|
||||||
|
@ -536,6 +545,7 @@ config ARCH_IOP33X
|
||||||
bool "IOP33x-based"
|
bool "IOP33x-based"
|
||||||
depends on MMU
|
depends on MMU
|
||||||
select CPU_XSCALE
|
select CPU_XSCALE
|
||||||
|
select NEED_MACH_GPIO_H
|
||||||
select NEED_MACH_IO_H
|
select NEED_MACH_IO_H
|
||||||
select NEED_RET_TO_USER
|
select NEED_RET_TO_USER
|
||||||
select PLAT_IOP
|
select PLAT_IOP
|
||||||
|
@ -645,6 +655,7 @@ config ARCH_MMP
|
||||||
select PLAT_PXA
|
select PLAT_PXA
|
||||||
select SPARSE_IRQ
|
select SPARSE_IRQ
|
||||||
select GENERIC_ALLOCATOR
|
select GENERIC_ALLOCATOR
|
||||||
|
select NEED_MACH_GPIO_H
|
||||||
help
|
help
|
||||||
Support for Marvell's PXA168/PXA910(MMP) and MMP2 processor line.
|
Support for Marvell's PXA168/PXA910(MMP) and MMP2 processor line.
|
||||||
|
|
||||||
|
@ -733,6 +744,7 @@ config ARCH_PXA
|
||||||
select MULTI_IRQ_HANDLER
|
select MULTI_IRQ_HANDLER
|
||||||
select ARM_CPU_SUSPEND if PM
|
select ARM_CPU_SUSPEND if PM
|
||||||
select HAVE_IDE
|
select HAVE_IDE
|
||||||
|
select NEED_MACH_GPIO_H
|
||||||
help
|
help
|
||||||
Support for Intel/Marvell's PXA2xx/PXA3xx processor line.
|
Support for Intel/Marvell's PXA2xx/PXA3xx processor line.
|
||||||
|
|
||||||
|
@ -795,6 +807,7 @@ config ARCH_SA1100
|
||||||
select CLKDEV_LOOKUP
|
select CLKDEV_LOOKUP
|
||||||
select ARCH_REQUIRE_GPIOLIB
|
select ARCH_REQUIRE_GPIOLIB
|
||||||
select HAVE_IDE
|
select HAVE_IDE
|
||||||
|
select NEED_MACH_GPIO_H
|
||||||
select NEED_MACH_MEMORY_H
|
select NEED_MACH_MEMORY_H
|
||||||
select SPARSE_IRQ
|
select SPARSE_IRQ
|
||||||
help
|
help
|
||||||
|
@ -810,6 +823,7 @@ config ARCH_S3C24XX
|
||||||
select HAVE_S3C2410_I2C if I2C
|
select HAVE_S3C2410_I2C if I2C
|
||||||
select HAVE_S3C_RTC if RTC_CLASS
|
select HAVE_S3C_RTC if RTC_CLASS
|
||||||
select HAVE_S3C2410_WATCHDOG if WATCHDOG
|
select HAVE_S3C2410_WATCHDOG if WATCHDOG
|
||||||
|
select NEED_MACH_GPIO_H
|
||||||
select NEED_MACH_IO_H
|
select NEED_MACH_IO_H
|
||||||
help
|
help
|
||||||
Samsung S3C2410, S3C2412, S3C2413, S3C2416, S3C2440, S3C2442, S3C2443
|
Samsung S3C2410, S3C2412, S3C2413, S3C2416, S3C2440, S3C2442, S3C2443
|
||||||
|
@ -837,6 +851,7 @@ config ARCH_S3C64XX
|
||||||
select SAMSUNG_GPIOLIB_4BIT
|
select SAMSUNG_GPIOLIB_4BIT
|
||||||
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 NEED_MACH_GPIO_H
|
||||||
help
|
help
|
||||||
Samsung S3C64XX series based systems
|
Samsung S3C64XX series based systems
|
||||||
|
|
||||||
|
@ -851,6 +866,7 @@ config ARCH_S5P64X0
|
||||||
select GENERIC_CLOCKEVENTS
|
select GENERIC_CLOCKEVENTS
|
||||||
select HAVE_S3C2410_I2C if I2C
|
select HAVE_S3C2410_I2C if I2C
|
||||||
select HAVE_S3C_RTC if RTC_CLASS
|
select HAVE_S3C_RTC if RTC_CLASS
|
||||||
|
select NEED_MACH_GPIO_H
|
||||||
help
|
help
|
||||||
Samsung S5P64X0 CPU based systems, such as the Samsung SMDK6440,
|
Samsung S5P64X0 CPU based systems, such as the Samsung SMDK6440,
|
||||||
SMDK6450.
|
SMDK6450.
|
||||||
|
@ -865,6 +881,7 @@ config ARCH_S5PC100
|
||||||
select HAVE_S3C2410_I2C if I2C
|
select HAVE_S3C2410_I2C if I2C
|
||||||
select HAVE_S3C_RTC if RTC_CLASS
|
select HAVE_S3C_RTC if RTC_CLASS
|
||||||
select HAVE_S3C2410_WATCHDOG if WATCHDOG
|
select HAVE_S3C2410_WATCHDOG if WATCHDOG
|
||||||
|
select NEED_MACH_GPIO_H
|
||||||
help
|
help
|
||||||
Samsung S5PC100 series based systems
|
Samsung S5PC100 series based systems
|
||||||
|
|
||||||
|
@ -882,6 +899,7 @@ config ARCH_S5PV210
|
||||||
select HAVE_S3C2410_I2C if I2C
|
select HAVE_S3C2410_I2C if I2C
|
||||||
select HAVE_S3C_RTC if RTC_CLASS
|
select HAVE_S3C_RTC if RTC_CLASS
|
||||||
select HAVE_S3C2410_WATCHDOG if WATCHDOG
|
select HAVE_S3C2410_WATCHDOG if WATCHDOG
|
||||||
|
select NEED_MACH_GPIO_H
|
||||||
select NEED_MACH_MEMORY_H
|
select NEED_MACH_MEMORY_H
|
||||||
help
|
help
|
||||||
Samsung S5PV210/S5PC110 series based systems
|
Samsung S5PV210/S5PC110 series based systems
|
||||||
|
@ -899,6 +917,7 @@ config ARCH_EXYNOS
|
||||||
select HAVE_S3C_RTC if RTC_CLASS
|
select HAVE_S3C_RTC if RTC_CLASS
|
||||||
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 NEED_MACH_GPIO_H
|
||||||
select NEED_MACH_MEMORY_H
|
select NEED_MACH_MEMORY_H
|
||||||
help
|
help
|
||||||
Support for SAMSUNG's EXYNOS SoCs (EXYNOS4/5)
|
Support for SAMSUNG's EXYNOS SoCs (EXYNOS4/5)
|
||||||
|
@ -971,6 +990,7 @@ config ARCH_DAVINCI
|
||||||
select GENERIC_ALLOCATOR
|
select GENERIC_ALLOCATOR
|
||||||
select GENERIC_IRQ_CHIP
|
select GENERIC_IRQ_CHIP
|
||||||
select ARCH_HAS_HOLES_MEMORYMODEL
|
select ARCH_HAS_HOLES_MEMORYMODEL
|
||||||
|
select NEED_MACH_GPIO_H
|
||||||
help
|
help
|
||||||
Support for TI's DaVinci platform.
|
Support for TI's DaVinci platform.
|
||||||
|
|
||||||
|
@ -983,6 +1003,7 @@ config ARCH_OMAP
|
||||||
select CLKSRC_MMIO
|
select CLKSRC_MMIO
|
||||||
select GENERIC_CLOCKEVENTS
|
select GENERIC_CLOCKEVENTS
|
||||||
select ARCH_HAS_HOLES_MEMORYMODEL
|
select ARCH_HAS_HOLES_MEMORYMODEL
|
||||||
|
select NEED_MACH_GPIO_H
|
||||||
help
|
help
|
||||||
Support for TI's OMAP platform (OMAP1/2/3/4).
|
Support for TI's OMAP platform (OMAP1/2/3/4).
|
||||||
|
|
||||||
|
|
|
@ -6,7 +6,9 @@
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/* not all ARM platforms necessarily support this API ... */
|
/* not all ARM platforms necessarily support this API ... */
|
||||||
|
#ifdef CONFIG_NEED_MACH_GPIO_H
|
||||||
#include <mach/gpio.h>
|
#include <mach/gpio.h>
|
||||||
|
#endif
|
||||||
|
|
||||||
#ifndef __ARM_GPIOLIB_COMPLEX
|
#ifndef __ARM_GPIOLIB_COMPLEX
|
||||||
/* Note: this may rely upon the value of ARCH_NR_GPIOS set in mach/gpio.h */
|
/* Note: this may rely upon the value of ARCH_NR_GPIOS set in mach/gpio.h */
|
||||||
|
|
|
@ -1 +0,0 @@
|
||||||
/* empty */
|
|
|
@ -1 +0,0 @@
|
||||||
/* empty */
|
|
|
@ -1 +0,0 @@
|
||||||
/* empty */
|
|
|
@ -1,2 +0,0 @@
|
||||||
/* empty */
|
|
||||||
|
|
|
@ -1 +0,0 @@
|
||||||
/* empty */
|
|
|
@ -1 +0,0 @@
|
||||||
/* empty */
|
|
|
@ -1 +0,0 @@
|
||||||
/* empty */
|
|
|
@ -1,4 +0,0 @@
|
||||||
#ifndef __ASM_ARCH_GPIO_H
|
|
||||||
#define __ASM_ARCH_GPIO_H
|
|
||||||
|
|
||||||
#endif /* __ASM_ARCH_GPIO_H */
|
|
|
@ -1 +0,0 @@
|
||||||
/* empty */
|
|
|
@ -1 +0,0 @@
|
||||||
/* empty */
|
|
|
@ -1 +0,0 @@
|
||||||
/* empty */
|
|
|
@ -1 +0,0 @@
|
||||||
/* empty */
|
|
|
@ -1,19 +0,0 @@
|
||||||
/*
|
|
||||||
* arch/arm/mach-spear13xx/include/mach/gpio.h
|
|
||||||
*
|
|
||||||
* GPIO macros for SPEAr13xx machine family
|
|
||||||
*
|
|
||||||
* Copyright (C) 2012 ST Microelectronics
|
|
||||||
* Viresh Kumar <viresh.linux@gmail.com>
|
|
||||||
*
|
|
||||||
* This file is licensed under the terms of the GNU General Public
|
|
||||||
* License version 2. This program is licensed "as is" without any
|
|
||||||
* warranty of any kind, whether express or implied.
|
|
||||||
*/
|
|
||||||
|
|
||||||
#ifndef __MACH_GPIO_H
|
|
||||||
#define __MACH_GPIO_H
|
|
||||||
|
|
||||||
#include <plat/gpio.h>
|
|
||||||
|
|
||||||
#endif /* __MACH_GPIO_H */
|
|
|
@ -1,19 +0,0 @@
|
||||||
/*
|
|
||||||
* arch/arm/mach-spear3xx/include/mach/gpio.h
|
|
||||||
*
|
|
||||||
* GPIO macros for SPEAr3xx machine family
|
|
||||||
*
|
|
||||||
* Copyright (C) 2009 ST Microelectronics
|
|
||||||
* Viresh Kumar<viresh.linux@gmail.com>
|
|
||||||
*
|
|
||||||
* This file is licensed under the terms of the GNU General Public
|
|
||||||
* License version 2. This program is licensed "as is" without any
|
|
||||||
* warranty of any kind, whether express or implied.
|
|
||||||
*/
|
|
||||||
|
|
||||||
#ifndef __MACH_GPIO_H
|
|
||||||
#define __MACH_GPIO_H
|
|
||||||
|
|
||||||
#include <plat/gpio.h>
|
|
||||||
|
|
||||||
#endif /* __MACH_GPIO_H */
|
|
|
@ -1,19 +0,0 @@
|
||||||
/*
|
|
||||||
* arch/arm/mach-spear6xx/include/mach/gpio.h
|
|
||||||
*
|
|
||||||
* GPIO macros for SPEAr6xx machine family
|
|
||||||
*
|
|
||||||
* Copyright (C) 2009 ST Microelectronics
|
|
||||||
* Viresh Kumar <viresh.linux@gmail.com>
|
|
||||||
*
|
|
||||||
* This file is licensed under the terms of the GNU General Public
|
|
||||||
* License version 2. This program is licensed "as is" without any
|
|
||||||
* warranty of any kind, whether express or implied.
|
|
||||||
*/
|
|
||||||
|
|
||||||
#ifndef __MACH_GPIO_H
|
|
||||||
#define __MACH_GPIO_H
|
|
||||||
|
|
||||||
#include <plat/gpio.h>
|
|
||||||
|
|
||||||
#endif /* __MACH_GPIO_H */
|
|
|
@ -1 +0,0 @@
|
||||||
/* empty */
|
|
|
@ -1 +0,0 @@
|
||||||
/* empty */
|
|
|
@ -1,5 +0,0 @@
|
||||||
#ifndef __ASM_ARCH_GPIO_H
|
|
||||||
#define __ASM_ARCH_GPIO_H
|
|
||||||
|
|
||||||
|
|
||||||
#endif /* __ASM_ARCH_GPIO_H */
|
|
|
@ -1 +0,0 @@
|
||||||
/* empty */
|
|
|
@ -1 +0,0 @@
|
||||||
/* empty */
|
|
|
@ -1 +0,0 @@
|
||||||
/* empty */
|
|
|
@ -1 +0,0 @@
|
||||||
/* empty */
|
|
|
@ -1 +0,0 @@
|
||||||
/* empty */
|
|
Loading…
Reference in New Issue