[PATCH v2 6/6] ARM: make mach/gpio.h headers optional
Jason Cooper
jason at lakedaemon.net
Fri Sep 7 11:04:57 EDT 2012
On Thu, Sep 06, 2012 at 02:42:43PM -0500, Rob Herring wrote:
> From: Rob Herring <rob.herring at calxeda.com>
>
> 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 at calxeda.com>
> Cc: Russell King <linux at arm.linux.org.uk>
For -dove, -kirkwood, and -orion5x,
Acked-by: Jason Cooper <jason at lakedaemon.net>
thx,
Jason.
> ---
> arch/arm/Kconfig | 21 +++++++++++++++++++++
> arch/arm/include/asm/gpio.h | 2 ++
> arch/arm/mach-dove/include/mach/gpio.h | 1 -
> arch/arm/mach-ep93xx/include/mach/gpio.h | 1 -
> arch/arm/mach-highbank/include/mach/gpio.h | 1 -
> arch/arm/mach-ixp4xx/include/mach/gpio.h | 2 --
> arch/arm/mach-kirkwood/include/mach/gpio.h | 1 -
> arch/arm/mach-msm/include/mach/gpio.h | 1 -
> arch/arm/mach-mxs/include/mach/gpio.h | 1 -
> arch/arm/mach-nomadik/include/mach/gpio.h | 4 ----
> arch/arm/mach-orion5x/include/mach/gpio.h | 1 -
> arch/arm/mach-picoxcell/include/mach/gpio.h | 1 -
> arch/arm/mach-realview/include/mach/gpio.h | 1 -
> arch/arm/mach-shmobile/include/mach/gpio.h | 1 -
> arch/arm/mach-spear13xx/include/mach/gpio.h | 19 -------------------
> arch/arm/mach-spear3xx/include/mach/gpio.h | 19 -------------------
> arch/arm/mach-spear6xx/include/mach/gpio.h | 19 -------------------
> arch/arm/mach-tegra/include/mach/gpio.h | 1 -
> arch/arm/mach-u300/include/mach/gpio.h | 1 -
> arch/arm/mach-ux500/include/mach/gpio.h | 5 -----
> arch/arm/mach-versatile/include/mach/gpio.h | 1 -
> arch/arm/mach-vexpress/include/mach/gpio.h | 1 -
> arch/arm/mach-vt8500/include/mach/gpio.h | 1 -
> arch/arm/plat-mxc/include/mach/gpio.h | 1 -
> arch/arm/plat-spear/include/plat/gpio.h | 1 -
> 25 files changed, 23 insertions(+), 85 deletions(-)
> delete mode 100644 arch/arm/mach-dove/include/mach/gpio.h
> delete mode 100644 arch/arm/mach-ep93xx/include/mach/gpio.h
> delete mode 100644 arch/arm/mach-highbank/include/mach/gpio.h
> delete mode 100644 arch/arm/mach-ixp4xx/include/mach/gpio.h
> delete mode 100644 arch/arm/mach-kirkwood/include/mach/gpio.h
> delete mode 100644 arch/arm/mach-msm/include/mach/gpio.h
> delete mode 100644 arch/arm/mach-mxs/include/mach/gpio.h
> delete mode 100644 arch/arm/mach-nomadik/include/mach/gpio.h
> delete mode 100644 arch/arm/mach-orion5x/include/mach/gpio.h
> delete mode 100644 arch/arm/mach-picoxcell/include/mach/gpio.h
> delete mode 100644 arch/arm/mach-realview/include/mach/gpio.h
> delete mode 100644 arch/arm/mach-shmobile/include/mach/gpio.h
> delete mode 100644 arch/arm/mach-spear13xx/include/mach/gpio.h
> delete mode 100644 arch/arm/mach-spear3xx/include/mach/gpio.h
> delete mode 100644 arch/arm/mach-spear6xx/include/mach/gpio.h
> delete mode 100644 arch/arm/mach-tegra/include/mach/gpio.h
> delete mode 100644 arch/arm/mach-u300/include/mach/gpio.h
> delete mode 100644 arch/arm/mach-ux500/include/mach/gpio.h
> delete mode 100644 arch/arm/mach-versatile/include/mach/gpio.h
> delete mode 100644 arch/arm/mach-vexpress/include/mach/gpio.h
> delete mode 100644 arch/arm/mach-vt8500/include/mach/gpio.h
> delete mode 100644 arch/arm/plat-mxc/include/mach/gpio.h
> delete mode 100644 arch/arm/plat-spear/include/plat/gpio.h
>
> diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig
> index c5f9ae5..4f5652d 100644
> --- a/arch/arm/Kconfig
> +++ b/arch/arm/Kconfig
> @@ -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).
>
> diff --git a/arch/arm/include/asm/gpio.h b/arch/arm/include/asm/gpio.h
> index c402e9b..477e020 100644
> --- a/arch/arm/include/asm/gpio.h
> +++ b/arch/arm/include/asm/gpio.h
> @@ -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 */
> diff --git a/arch/arm/mach-dove/include/mach/gpio.h b/arch/arm/mach-dove/include/mach/gpio.h
> deleted file mode 100644
> index 40a8c17..0000000
> --- a/arch/arm/mach-dove/include/mach/gpio.h
> +++ /dev/null
> @@ -1 +0,0 @@
> -/* empty */
> diff --git a/arch/arm/mach-ep93xx/include/mach/gpio.h b/arch/arm/mach-ep93xx/include/mach/gpio.h
> deleted file mode 100644
> index 40a8c17..0000000
> --- a/arch/arm/mach-ep93xx/include/mach/gpio.h
> +++ /dev/null
> @@ -1 +0,0 @@
> -/* empty */
> diff --git a/arch/arm/mach-highbank/include/mach/gpio.h b/arch/arm/mach-highbank/include/mach/gpio.h
> deleted file mode 100644
> index 40a8c17..0000000
> --- a/arch/arm/mach-highbank/include/mach/gpio.h
> +++ /dev/null
> @@ -1 +0,0 @@
> -/* empty */
> diff --git a/arch/arm/mach-ixp4xx/include/mach/gpio.h b/arch/arm/mach-ixp4xx/include/mach/gpio.h
> deleted file mode 100644
> index ef37f26..0000000
> --- a/arch/arm/mach-ixp4xx/include/mach/gpio.h
> +++ /dev/null
> @@ -1,2 +0,0 @@
> -/* empty */
> -
> diff --git a/arch/arm/mach-kirkwood/include/mach/gpio.h b/arch/arm/mach-kirkwood/include/mach/gpio.h
> deleted file mode 100644
> index 40a8c17..0000000
> --- a/arch/arm/mach-kirkwood/include/mach/gpio.h
> +++ /dev/null
> @@ -1 +0,0 @@
> -/* empty */
> diff --git a/arch/arm/mach-msm/include/mach/gpio.h b/arch/arm/mach-msm/include/mach/gpio.h
> deleted file mode 100644
> index 40a8c17..0000000
> --- a/arch/arm/mach-msm/include/mach/gpio.h
> +++ /dev/null
> @@ -1 +0,0 @@
> -/* empty */
> diff --git a/arch/arm/mach-mxs/include/mach/gpio.h b/arch/arm/mach-mxs/include/mach/gpio.h
> deleted file mode 100644
> index 40a8c17..0000000
> --- a/arch/arm/mach-mxs/include/mach/gpio.h
> +++ /dev/null
> @@ -1 +0,0 @@
> -/* empty */
> diff --git a/arch/arm/mach-nomadik/include/mach/gpio.h b/arch/arm/mach-nomadik/include/mach/gpio.h
> deleted file mode 100644
> index efdde0a..0000000
> --- a/arch/arm/mach-nomadik/include/mach/gpio.h
> +++ /dev/null
> @@ -1,4 +0,0 @@
> -#ifndef __ASM_ARCH_GPIO_H
> -#define __ASM_ARCH_GPIO_H
> -
> -#endif /* __ASM_ARCH_GPIO_H */
> diff --git a/arch/arm/mach-orion5x/include/mach/gpio.h b/arch/arm/mach-orion5x/include/mach/gpio.h
> deleted file mode 100644
> index 40a8c17..0000000
> --- a/arch/arm/mach-orion5x/include/mach/gpio.h
> +++ /dev/null
> @@ -1 +0,0 @@
> -/* empty */
> diff --git a/arch/arm/mach-picoxcell/include/mach/gpio.h b/arch/arm/mach-picoxcell/include/mach/gpio.h
> deleted file mode 100644
> index 40a8c17..0000000
> --- a/arch/arm/mach-picoxcell/include/mach/gpio.h
> +++ /dev/null
> @@ -1 +0,0 @@
> -/* empty */
> diff --git a/arch/arm/mach-realview/include/mach/gpio.h b/arch/arm/mach-realview/include/mach/gpio.h
> deleted file mode 100644
> index 40a8c17..0000000
> --- a/arch/arm/mach-realview/include/mach/gpio.h
> +++ /dev/null
> @@ -1 +0,0 @@
> -/* empty */
> diff --git a/arch/arm/mach-shmobile/include/mach/gpio.h b/arch/arm/mach-shmobile/include/mach/gpio.h
> deleted file mode 100644
> index 40a8c17..0000000
> --- a/arch/arm/mach-shmobile/include/mach/gpio.h
> +++ /dev/null
> @@ -1 +0,0 @@
> -/* empty */
> diff --git a/arch/arm/mach-spear13xx/include/mach/gpio.h b/arch/arm/mach-spear13xx/include/mach/gpio.h
> deleted file mode 100644
> index 85f1763..0000000
> --- a/arch/arm/mach-spear13xx/include/mach/gpio.h
> +++ /dev/null
> @@ -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 at 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 */
> diff --git a/arch/arm/mach-spear3xx/include/mach/gpio.h b/arch/arm/mach-spear3xx/include/mach/gpio.h
> deleted file mode 100644
> index 2ac74c6..0000000
> --- a/arch/arm/mach-spear3xx/include/mach/gpio.h
> +++ /dev/null
> @@ -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 at 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 */
> diff --git a/arch/arm/mach-spear6xx/include/mach/gpio.h b/arch/arm/mach-spear6xx/include/mach/gpio.h
> deleted file mode 100644
> index d42cefc..0000000
> --- a/arch/arm/mach-spear6xx/include/mach/gpio.h
> +++ /dev/null
> @@ -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 at 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 */
> diff --git a/arch/arm/mach-tegra/include/mach/gpio.h b/arch/arm/mach-tegra/include/mach/gpio.h
> deleted file mode 100644
> index 40a8c17..0000000
> --- a/arch/arm/mach-tegra/include/mach/gpio.h
> +++ /dev/null
> @@ -1 +0,0 @@
> -/* empty */
> diff --git a/arch/arm/mach-u300/include/mach/gpio.h b/arch/arm/mach-u300/include/mach/gpio.h
> deleted file mode 100644
> index 40a8c17..0000000
> --- a/arch/arm/mach-u300/include/mach/gpio.h
> +++ /dev/null
> @@ -1 +0,0 @@
> -/* empty */
> diff --git a/arch/arm/mach-ux500/include/mach/gpio.h b/arch/arm/mach-ux500/include/mach/gpio.h
> deleted file mode 100644
> index c01ef66..0000000
> --- a/arch/arm/mach-ux500/include/mach/gpio.h
> +++ /dev/null
> @@ -1,5 +0,0 @@
> -#ifndef __ASM_ARCH_GPIO_H
> -#define __ASM_ARCH_GPIO_H
> -
> -
> -#endif /* __ASM_ARCH_GPIO_H */
> diff --git a/arch/arm/mach-versatile/include/mach/gpio.h b/arch/arm/mach-versatile/include/mach/gpio.h
> deleted file mode 100644
> index 40a8c17..0000000
> --- a/arch/arm/mach-versatile/include/mach/gpio.h
> +++ /dev/null
> @@ -1 +0,0 @@
> -/* empty */
> diff --git a/arch/arm/mach-vexpress/include/mach/gpio.h b/arch/arm/mach-vexpress/include/mach/gpio.h
> deleted file mode 100644
> index 40a8c17..0000000
> --- a/arch/arm/mach-vexpress/include/mach/gpio.h
> +++ /dev/null
> @@ -1 +0,0 @@
> -/* empty */
> diff --git a/arch/arm/mach-vt8500/include/mach/gpio.h b/arch/arm/mach-vt8500/include/mach/gpio.h
> deleted file mode 100644
> index 40a8c17..0000000
> --- a/arch/arm/mach-vt8500/include/mach/gpio.h
> +++ /dev/null
> @@ -1 +0,0 @@
> -/* empty */
> diff --git a/arch/arm/plat-mxc/include/mach/gpio.h b/arch/arm/plat-mxc/include/mach/gpio.h
> deleted file mode 100644
> index 40a8c17..0000000
> --- a/arch/arm/plat-mxc/include/mach/gpio.h
> +++ /dev/null
> @@ -1 +0,0 @@
> -/* empty */
> diff --git a/arch/arm/plat-spear/include/plat/gpio.h b/arch/arm/plat-spear/include/plat/gpio.h
> deleted file mode 100644
> index 40a8c17..0000000
> --- a/arch/arm/plat-spear/include/plat/gpio.h
> +++ /dev/null
> @@ -1 +0,0 @@
> -/* empty */
> --
> 1.7.9.5
>
>
> _______________________________________________
> linux-arm-kernel mailing list
> linux-arm-kernel at lists.infradead.org
> http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
More information about the linux-arm-kernel
mailing list