Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 01464226 authored by Rob Herring's avatar Rob Herring
Browse files

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: default avatarRob Herring <rob.herring@calxeda.com>
Cc: Russell King <linux@arm.linux.org.uk>
Acked-by: default avatarJason Cooper <jason@lakedaemon.net>
Acked-by: default avatarLinus Walleij <linus.walleij@linaro.org>
parent ce91574c
Loading
Loading
Loading
Loading
+21 −0
Original line number Diff line number Diff line
@@ -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).

+2 −0
Original line number Diff line number Diff line
@@ -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 */
+0 −1
Original line number Diff line number Diff line
/* empty */
+0 −1
Original line number Diff line number Diff line
/* empty */
+0 −1
Original line number Diff line number Diff line
/* empty */
Loading