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
|
||||
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
|
||||
bool
|
||||
help
|
||||
|
@ -345,6 +352,7 @@ config ARCH_AT91
|
|||
select HAVE_CLK
|
||||
select CLKDEV_LOOKUP
|
||||
select IRQ_DOMAIN
|
||||
select NEED_MACH_GPIO_H
|
||||
select NEED_MACH_IO_H if PCCARD
|
||||
help
|
||||
This enables support for systems based on Atmel
|
||||
|
@ -523,6 +531,7 @@ config ARCH_IOP32X
|
|||
bool "IOP32x-based"
|
||||
depends on MMU
|
||||
select CPU_XSCALE
|
||||
select NEED_MACH_GPIO_H
|
||||
select NEED_MACH_IO_H
|
||||
select NEED_RET_TO_USER
|
||||
select PLAT_IOP
|
||||
|
@ -536,6 +545,7 @@ config ARCH_IOP33X
|
|||
bool "IOP33x-based"
|
||||
depends on MMU
|
||||
select CPU_XSCALE
|
||||
select NEED_MACH_GPIO_H
|
||||
select NEED_MACH_IO_H
|
||||
select NEED_RET_TO_USER
|
||||
select PLAT_IOP
|
||||
|
@ -645,6 +655,7 @@ config ARCH_MMP
|
|||
select PLAT_PXA
|
||||
select SPARSE_IRQ
|
||||
select GENERIC_ALLOCATOR
|
||||
select NEED_MACH_GPIO_H
|
||||
help
|
||||
Support for Marvell's PXA168/PXA910(MMP) and MMP2 processor line.
|
||||
|
||||
|
@ -733,6 +744,7 @@ config ARCH_PXA
|
|||
select MULTI_IRQ_HANDLER
|
||||
select ARM_CPU_SUSPEND if PM
|
||||
select HAVE_IDE
|
||||
select NEED_MACH_GPIO_H
|
||||
help
|
||||
Support for Intel/Marvell's PXA2xx/PXA3xx processor line.
|
||||
|
||||
|
@ -795,6 +807,7 @@ config ARCH_SA1100
|
|||
select CLKDEV_LOOKUP
|
||||
select ARCH_REQUIRE_GPIOLIB
|
||||
select HAVE_IDE
|
||||
select NEED_MACH_GPIO_H
|
||||
select NEED_MACH_MEMORY_H
|
||||
select SPARSE_IRQ
|
||||
help
|
||||
|
@ -810,6 +823,7 @@ config ARCH_S3C24XX
|
|||
select HAVE_S3C2410_I2C if I2C
|
||||
select HAVE_S3C_RTC if RTC_CLASS
|
||||
select HAVE_S3C2410_WATCHDOG if WATCHDOG
|
||||
select NEED_MACH_GPIO_H
|
||||
select NEED_MACH_IO_H
|
||||
help
|
||||
Samsung S3C2410, S3C2412, S3C2413, S3C2416, S3C2440, S3C2442, S3C2443
|
||||
|
@ -837,6 +851,7 @@ config ARCH_S3C64XX
|
|||
select SAMSUNG_GPIOLIB_4BIT
|
||||
select HAVE_S3C2410_I2C if I2C
|
||||
select HAVE_S3C2410_WATCHDOG if WATCHDOG
|
||||
select NEED_MACH_GPIO_H
|
||||
help
|
||||
Samsung S3C64XX series based systems
|
||||
|
||||
|
@ -851,6 +866,7 @@ config ARCH_S5P64X0
|
|||
select GENERIC_CLOCKEVENTS
|
||||
select HAVE_S3C2410_I2C if I2C
|
||||
select HAVE_S3C_RTC if RTC_CLASS
|
||||
select NEED_MACH_GPIO_H
|
||||
help
|
||||
Samsung S5P64X0 CPU based systems, such as the Samsung SMDK6440,
|
||||
SMDK6450.
|
||||
|
@ -865,6 +881,7 @@ config ARCH_S5PC100
|
|||
select HAVE_S3C2410_I2C if I2C
|
||||
select HAVE_S3C_RTC if RTC_CLASS
|
||||
select HAVE_S3C2410_WATCHDOG if WATCHDOG
|
||||
select NEED_MACH_GPIO_H
|
||||
help
|
||||
Samsung S5PC100 series based systems
|
||||
|
||||
|
@ -882,6 +899,7 @@ config ARCH_S5PV210
|
|||
select HAVE_S3C2410_I2C if I2C
|
||||
select HAVE_S3C_RTC if RTC_CLASS
|
||||
select HAVE_S3C2410_WATCHDOG if WATCHDOG
|
||||
select NEED_MACH_GPIO_H
|
||||
select NEED_MACH_MEMORY_H
|
||||
help
|
||||
Samsung S5PV210/S5PC110 series based systems
|
||||
|
@ -899,6 +917,7 @@ config ARCH_EXYNOS
|
|||
select HAVE_S3C_RTC if RTC_CLASS
|
||||
select HAVE_S3C2410_I2C if I2C
|
||||
select HAVE_S3C2410_WATCHDOG if WATCHDOG
|
||||
select NEED_MACH_GPIO_H
|
||||
select NEED_MACH_MEMORY_H
|
||||
help
|
||||
Support for SAMSUNG's EXYNOS SoCs (EXYNOS4/5)
|
||||
|
@ -971,6 +990,7 @@ config ARCH_DAVINCI
|
|||
select GENERIC_ALLOCATOR
|
||||
select GENERIC_IRQ_CHIP
|
||||
select ARCH_HAS_HOLES_MEMORYMODEL
|
||||
select NEED_MACH_GPIO_H
|
||||
help
|
||||
Support for TI's DaVinci platform.
|
||||
|
||||
|
@ -983,6 +1003,7 @@ config ARCH_OMAP
|
|||
select CLKSRC_MMIO
|
||||
select GENERIC_CLOCKEVENTS
|
||||
select ARCH_HAS_HOLES_MEMORYMODEL
|
||||
select NEED_MACH_GPIO_H
|
||||
help
|
||||
Support for TI's OMAP platform (OMAP1/2/3/4).
|
||||
|
||||
|
|
|
@ -6,7 +6,9 @@
|
|||
#endif
|
||||
|
||||
/* not all ARM platforms necessarily support this API ... */
|
||||
#ifdef CONFIG_NEED_MACH_GPIO_H
|
||||
#include <mach/gpio.h>
|
||||
#endif
|
||||
|
||||
#ifndef __ARM_GPIOLIB_COMPLEX
|
||||
/* 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