aboutsummaryrefslogtreecommitdiffstats
path: root/arch/arm/Kconfig
diff options
context:
space:
mode:
authorRob Herring <rob.herring@calxeda.com>2012-08-28 14:06:41 -0400
committerRob Herring <rob.herring@calxeda.com>2012-09-14 10:21:59 -0400
commit01464226ac6089bd6a33f9899cc792c2355ebf39 (patch)
tree8f241525ea0c3e39d9188299b091b39c04bcb295 /arch/arm/Kconfig
parentce91574c202b8581ad15bfb1427af824f462c3d2 (diff)
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>
Diffstat (limited to 'arch/arm/Kconfig')
-rw-r--r--arch/arm/Kconfig21
1 files changed, 21 insertions, 0 deletions
diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig
index c5f9ae5dbd1a..4f5652d7bfa0 100644
--- a/arch/arm/Kconfig
+++ b/arch/arm/Kconfig
@@ -202,6 +202,13 @@ config ARM_PATCH_PHYS_VIRT
202 this feature (eg, building a kernel for a single machine) and 202 this feature (eg, building a kernel for a single machine) and
203 you need to shrink the kernel to the minimal size. 203 you need to shrink the kernel to the minimal size.
204 204
205config NEED_MACH_GPIO_H
206 bool
207 help
208 Select this when mach/gpio.h is required to provide special
209 definitions for this platform. The need for mach/gpio.h should
210 be avoided when possible.
211
205config NEED_MACH_IO_H 212config NEED_MACH_IO_H
206 bool 213 bool
207 help 214 help
@@ -345,6 +352,7 @@ config ARCH_AT91
345 select HAVE_CLK 352 select HAVE_CLK
346 select CLKDEV_LOOKUP 353 select CLKDEV_LOOKUP
347 select IRQ_DOMAIN 354 select IRQ_DOMAIN
355 select NEED_MACH_GPIO_H
348 select NEED_MACH_IO_H if PCCARD 356 select NEED_MACH_IO_H if PCCARD
349 help 357 help
350 This enables support for systems based on Atmel 358 This enables support for systems based on Atmel
@@ -523,6 +531,7 @@ config ARCH_IOP32X
523 bool "IOP32x-based" 531 bool "IOP32x-based"
524 depends on MMU 532 depends on MMU
525 select CPU_XSCALE 533 select CPU_XSCALE
534 select NEED_MACH_GPIO_H
526 select NEED_MACH_IO_H 535 select NEED_MACH_IO_H
527 select NEED_RET_TO_USER 536 select NEED_RET_TO_USER
528 select PLAT_IOP 537 select PLAT_IOP
@@ -536,6 +545,7 @@ config ARCH_IOP33X
536 bool "IOP33x-based" 545 bool "IOP33x-based"
537 depends on MMU 546 depends on MMU
538 select CPU_XSCALE 547 select CPU_XSCALE
548 select NEED_MACH_GPIO_H
539 select NEED_MACH_IO_H 549 select NEED_MACH_IO_H
540 select NEED_RET_TO_USER 550 select NEED_RET_TO_USER
541 select PLAT_IOP 551 select PLAT_IOP
@@ -645,6 +655,7 @@ config ARCH_MMP
645 select PLAT_PXA 655 select PLAT_PXA
646 select SPARSE_IRQ 656 select SPARSE_IRQ
647 select GENERIC_ALLOCATOR 657 select GENERIC_ALLOCATOR
658 select NEED_MACH_GPIO_H
648 help 659 help
649 Support for Marvell's PXA168/PXA910(MMP) and MMP2 processor line. 660 Support for Marvell's PXA168/PXA910(MMP) and MMP2 processor line.
650 661
@@ -733,6 +744,7 @@ config ARCH_PXA
733 select MULTI_IRQ_HANDLER 744 select MULTI_IRQ_HANDLER
734 select ARM_CPU_SUSPEND if PM 745 select ARM_CPU_SUSPEND if PM
735 select HAVE_IDE 746 select HAVE_IDE
747 select NEED_MACH_GPIO_H
736 help 748 help
737 Support for Intel/Marvell's PXA2xx/PXA3xx processor line. 749 Support for Intel/Marvell's PXA2xx/PXA3xx processor line.
738 750
@@ -795,6 +807,7 @@ config ARCH_SA1100
795 select CLKDEV_LOOKUP 807 select CLKDEV_LOOKUP
796 select ARCH_REQUIRE_GPIOLIB 808 select ARCH_REQUIRE_GPIOLIB
797 select HAVE_IDE 809 select HAVE_IDE
810 select NEED_MACH_GPIO_H
798 select NEED_MACH_MEMORY_H 811 select NEED_MACH_MEMORY_H
799 select SPARSE_IRQ 812 select SPARSE_IRQ
800 help 813 help
@@ -810,6 +823,7 @@ config ARCH_S3C24XX
810 select HAVE_S3C2410_I2C if I2C 823 select HAVE_S3C2410_I2C if I2C
811 select HAVE_S3C_RTC if RTC_CLASS 824 select HAVE_S3C_RTC if RTC_CLASS
812 select HAVE_S3C2410_WATCHDOG if WATCHDOG 825 select HAVE_S3C2410_WATCHDOG if WATCHDOG
826 select NEED_MACH_GPIO_H
813 select NEED_MACH_IO_H 827 select NEED_MACH_IO_H
814 help 828 help
815 Samsung S3C2410, S3C2412, S3C2413, S3C2416, S3C2440, S3C2442, S3C2443 829 Samsung S3C2410, S3C2412, S3C2413, S3C2416, S3C2440, S3C2442, S3C2443
@@ -837,6 +851,7 @@ config ARCH_S3C64XX
837 select SAMSUNG_GPIOLIB_4BIT 851 select SAMSUNG_GPIOLIB_4BIT
838 select HAVE_S3C2410_I2C if I2C 852 select HAVE_S3C2410_I2C if I2C
839 select HAVE_S3C2410_WATCHDOG if WATCHDOG 853 select HAVE_S3C2410_WATCHDOG if WATCHDOG
854 select NEED_MACH_GPIO_H
840 help 855 help
841 Samsung S3C64XX series based systems 856 Samsung S3C64XX series based systems
842 857
@@ -851,6 +866,7 @@ config ARCH_S5P64X0
851 select GENERIC_CLOCKEVENTS 866 select GENERIC_CLOCKEVENTS
852 select HAVE_S3C2410_I2C if I2C 867 select HAVE_S3C2410_I2C if I2C
853 select HAVE_S3C_RTC if RTC_CLASS 868 select HAVE_S3C_RTC if RTC_CLASS
869 select NEED_MACH_GPIO_H
854 help 870 help
855 Samsung S5P64X0 CPU based systems, such as the Samsung SMDK6440, 871 Samsung S5P64X0 CPU based systems, such as the Samsung SMDK6440,
856 SMDK6450. 872 SMDK6450.
@@ -865,6 +881,7 @@ config ARCH_S5PC100
865 select HAVE_S3C2410_I2C if I2C 881 select HAVE_S3C2410_I2C if I2C
866 select HAVE_S3C_RTC if RTC_CLASS 882 select HAVE_S3C_RTC if RTC_CLASS
867 select HAVE_S3C2410_WATCHDOG if WATCHDOG 883 select HAVE_S3C2410_WATCHDOG if WATCHDOG
884 select NEED_MACH_GPIO_H
868 help 885 help
869 Samsung S5PC100 series based systems 886 Samsung S5PC100 series based systems
870 887
@@ -882,6 +899,7 @@ config ARCH_S5PV210
882 select HAVE_S3C2410_I2C if I2C 899 select HAVE_S3C2410_I2C if I2C
883 select HAVE_S3C_RTC if RTC_CLASS 900 select HAVE_S3C_RTC if RTC_CLASS
884 select HAVE_S3C2410_WATCHDOG if WATCHDOG 901 select HAVE_S3C2410_WATCHDOG if WATCHDOG
902 select NEED_MACH_GPIO_H
885 select NEED_MACH_MEMORY_H 903 select NEED_MACH_MEMORY_H
886 help 904 help
887 Samsung S5PV210/S5PC110 series based systems 905 Samsung S5PV210/S5PC110 series based systems
@@ -899,6 +917,7 @@ config ARCH_EXYNOS
899 select HAVE_S3C_RTC if RTC_CLASS 917 select HAVE_S3C_RTC if RTC_CLASS
900 select HAVE_S3C2410_I2C if I2C 918 select HAVE_S3C2410_I2C if I2C
901 select HAVE_S3C2410_WATCHDOG if WATCHDOG 919 select HAVE_S3C2410_WATCHDOG if WATCHDOG
920 select NEED_MACH_GPIO_H
902 select NEED_MACH_MEMORY_H 921 select NEED_MACH_MEMORY_H
903 help 922 help
904 Support for SAMSUNG's EXYNOS SoCs (EXYNOS4/5) 923 Support for SAMSUNG's EXYNOS SoCs (EXYNOS4/5)
@@ -971,6 +990,7 @@ config ARCH_DAVINCI
971 select GENERIC_ALLOCATOR 990 select GENERIC_ALLOCATOR
972 select GENERIC_IRQ_CHIP 991 select GENERIC_IRQ_CHIP
973 select ARCH_HAS_HOLES_MEMORYMODEL 992 select ARCH_HAS_HOLES_MEMORYMODEL
993 select NEED_MACH_GPIO_H
974 help 994 help
975 Support for TI's DaVinci platform. 995 Support for TI's DaVinci platform.
976 996
@@ -983,6 +1003,7 @@ config ARCH_OMAP
983 select CLKSRC_MMIO 1003 select CLKSRC_MMIO
984 select GENERIC_CLOCKEVENTS 1004 select GENERIC_CLOCKEVENTS
985 select ARCH_HAS_HOLES_MEMORYMODEL 1005 select ARCH_HAS_HOLES_MEMORYMODEL
1006 select NEED_MACH_GPIO_H
986 help 1007 help
987 Support for TI's OMAP platform (OMAP1/2/3/4). 1008 Support for TI's OMAP platform (OMAP1/2/3/4).
988 1009