8a6f71ccb6
The samsung-keypad driver is implicitly selected by ARCH_EXYNOS4 (why?), but this fails if CONFIG_INPUT is a loadable module: drivers/input/built-in.o: In function `samsung_keypad_remove': drivers/input/keyboard/samsung-keypad.c:461: undefined reference to `input_unregister_device' drivers/input/built-in.o: In function `samsung_keypad_irq': drivers/input/keyboard/samsung-keypad.c:137: undefined reference to `input_event' drivers/input/built-in.o: In function `samsung_keypad_irq': include/linux/input.h:389: undefined reference to `input_event' drivers/input/built-in.o: In function `samsung_keypad_probe': drivers/input/keyboard/samsung-keypad.c:358: undefined reference to `devm_input_allocate_device' drivers/input/built-in.o:(.debug_addr+0x34): undefined reference to `input_set_capability' This removes the 'select' as suggested by Krzysztof Kozlowski and instead enables the driver from the defconfig files. The problem does not happen on mainline kernels, as we don't normally build built-in input drivers when CONFIG_INPUT=m, but I am experimenting with a patch to change this, and the samsung keypad driver showed up as one example that was silently broken before. Signed-off-by: Arnd Bergmann <arnd@arndb.de> Link: https://lkml.org/lkml/2016/2/14/55 Signed-off-by: Krzysztof Kozlowski <k.kozlowski@samsung.com>
152 lines
3.0 KiB
Plaintext
152 lines
3.0 KiB
Plaintext
# arch/arm/mach-exynos/Kconfig
|
|
#
|
|
# Copyright (c) 2010-2011 Samsung Electronics Co., Ltd.
|
|
# http://www.samsung.com/
|
|
#
|
|
# Licensed under GPLv2
|
|
|
|
# Configuration options for the EXYNOS
|
|
|
|
menuconfig ARCH_EXYNOS
|
|
bool "Samsung EXYNOS"
|
|
depends on ARCH_MULTI_V7
|
|
select ARCH_HAS_BANDGAP
|
|
select ARCH_HAS_HOLES_MEMORYMODEL
|
|
select ARCH_REQUIRE_GPIOLIB
|
|
select ARM_AMBA
|
|
select ARM_GIC
|
|
select COMMON_CLK_SAMSUNG
|
|
select EXYNOS_THERMAL
|
|
select EXYNOS_PMU
|
|
select HAVE_ARM_SCU if SMP
|
|
select HAVE_S3C2410_I2C if I2C
|
|
select HAVE_S3C2410_WATCHDOG if WATCHDOG
|
|
select HAVE_S3C_RTC if RTC_CLASS
|
|
select PINCTRL
|
|
select PINCTRL_EXYNOS
|
|
select PM_GENERIC_DOMAINS if PM
|
|
select S5P_DEV_MFC
|
|
select SOC_SAMSUNG
|
|
select SRAM
|
|
select THERMAL
|
|
select THERMAL_OF
|
|
select MFD_SYSCON
|
|
select CLKSRC_EXYNOS_MCT
|
|
select POWER_RESET
|
|
select POWER_RESET_SYSCON
|
|
select POWER_RESET_SYSCON_POWEROFF
|
|
help
|
|
Support for SAMSUNG EXYNOS SoCs (EXYNOS4/5)
|
|
|
|
if ARCH_EXYNOS
|
|
|
|
config S5P_DEV_MFC
|
|
bool
|
|
help
|
|
Compile in setup memory (init) code for MFC
|
|
|
|
config ARCH_EXYNOS3
|
|
bool "SAMSUNG EXYNOS3"
|
|
select ARM_CPU_SUSPEND if PM
|
|
help
|
|
Samsung EXYNOS3 (Cortex-A7) SoC based systems
|
|
|
|
config ARCH_EXYNOS4
|
|
bool "SAMSUNG EXYNOS4"
|
|
default y
|
|
select ARM_CPU_SUSPEND if PM_SLEEP
|
|
select CLKSRC_SAMSUNG_PWM if CPU_EXYNOS4210
|
|
select CPU_EXYNOS4210
|
|
select GIC_NON_BANKED
|
|
select MIGHT_HAVE_CACHE_L2X0
|
|
help
|
|
Samsung EXYNOS4 (Cortex-A9) SoC based systems
|
|
|
|
config ARCH_EXYNOS5
|
|
bool "SAMSUNG EXYNOS5"
|
|
default y
|
|
help
|
|
Samsung EXYNOS5 (Cortex-A15/A7) SoC based systems
|
|
|
|
comment "EXYNOS SoCs"
|
|
|
|
config SOC_EXYNOS3250
|
|
bool "SAMSUNG EXYNOS3250"
|
|
default y
|
|
depends on ARCH_EXYNOS3
|
|
|
|
config CPU_EXYNOS4210
|
|
bool "SAMSUNG EXYNOS4210"
|
|
default y
|
|
depends on ARCH_EXYNOS4
|
|
|
|
config SOC_EXYNOS4212
|
|
bool "SAMSUNG EXYNOS4212"
|
|
default y
|
|
depends on ARCH_EXYNOS4
|
|
|
|
config SOC_EXYNOS4412
|
|
bool "SAMSUNG EXYNOS4412"
|
|
default y
|
|
depends on ARCH_EXYNOS4
|
|
|
|
config SOC_EXYNOS4415
|
|
bool "SAMSUNG EXYNOS4415"
|
|
default y
|
|
depends on ARCH_EXYNOS4
|
|
|
|
config SOC_EXYNOS5250
|
|
bool "SAMSUNG EXYNOS5250"
|
|
default y
|
|
depends on ARCH_EXYNOS5
|
|
|
|
config SOC_EXYNOS5260
|
|
bool "SAMSUNG EXYNOS5260"
|
|
default y
|
|
depends on ARCH_EXYNOS5
|
|
|
|
config SOC_EXYNOS5410
|
|
bool "SAMSUNG EXYNOS5410"
|
|
default y
|
|
depends on ARCH_EXYNOS5
|
|
|
|
config SOC_EXYNOS5420
|
|
bool "SAMSUNG EXYNOS5420"
|
|
default y
|
|
depends on ARCH_EXYNOS5
|
|
|
|
config SOC_EXYNOS5440
|
|
bool "SAMSUNG EXYNOS5440"
|
|
default y
|
|
depends on ARCH_EXYNOS5
|
|
select ARCH_DMA_ADDR_T_64BIT if ARM_LPAE
|
|
select HAVE_ARM_ARCH_TIMER
|
|
select AUTO_ZRELADDR
|
|
select MIGHT_HAVE_PCI
|
|
select PCI_DOMAINS if PCI
|
|
select PINCTRL_EXYNOS5440
|
|
select PM_OPP
|
|
help
|
|
Enable EXYNOS5440 SoC support
|
|
|
|
config SOC_EXYNOS5800
|
|
bool "SAMSUNG EXYNOS5800"
|
|
default y
|
|
depends on SOC_EXYNOS5420
|
|
|
|
config EXYNOS5420_MCPM
|
|
bool "Exynos5420 Multi-Cluster PM support"
|
|
depends on MCPM && SOC_EXYNOS5420
|
|
select ARM_CCI400_PORT_CTRL
|
|
select ARM_CPU_SUSPEND
|
|
help
|
|
This is needed to provide CPU and cluster power management
|
|
on Exynos5420 implementing big.LITTLE.
|
|
|
|
config EXYNOS_CPU_SUSPEND
|
|
bool
|
|
select ARM_CPU_SUSPEND
|
|
default PM_SLEEP || ARM_EXYNOS_CPUIDLE
|
|
|
|
endif
|