forked from Minki/linux
bb9055b274
These continue the multiplatform support for exynos, adding support for building most of the essential drivers (clocksource, clk, irqchip) when combined with other platforms. As a result, it should become really easy to add full multiplatform exynos support in 3.11, although we don't yet enable it for 3.10. The changes were not included in the earlier multiplatform series in order to avoid clashes with the other Exynos updates. This also includes work from Tomasz Figa to fix the pwm clocksource code on Exynos, which is not strictly required for multiplatform, but related to the other patches in this set and needed as a bug fix for at least one board. -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.12 (GNU/Linux) iQIVAwUAUYgmgWCrR//JCVInAQIp6A//cb87A7biCHo0hd64v7RtX2dIvYTc8ZDh 7O9yH7NuAtbSI7FF7cVQGGK6nCRqmwO2SM/KLFgbt2MF36FLgQKKZhJIDM/qB4jb 3DCHHH814eqExf4MFfZL4Yxl4FaMqxzSwYX8fD28GmpeVxLeHjh0yQCKmPejz5MW WgkMcBJS3IPqbhhKMcMZmXteLrEzEm43Uj6dxkZP7RbinyuWzHvx3IWWv4gQ6ITz 3jcCvZC5JWBo9MEPH43vlmOd8qsAn0OvkbtbYiy2Tre5VerqOgbEEXU2U0A2zUSj YTmRvwIGsIylL2EkVsJTkMj8KJ8TAHZjHyNUY8m2UzWuS+9EdZjf6rXeKIdUz9Wa 0dmiWJEOEvejk0RnHEJm7anmKp7a9YHFkFSRnHbLOAXAMkUZWWcVAMZ4UbDK8RtF RX6R+ga9tR8R7aBLIzqYyfSHaZ7xUpF6nSBOM4GNVNKtViJv3PENWVQrm2GHcQ9w +4IMUqXO/5IRvuHW93l+oN8tENDTF0cR0+S7t0R6Vuuh7OebRt9TAE421Hrvt+7p gI5tvhEeV3o1CMmXWod8X1jxY/1OrONG7wX/x07ymiRnXSd+sZ0CPkYyWultKNw8 bCAsnOP2aFpO1RB0XEC5y8FZ5uSfcQ7Ngu2kyAP7mEXV6qbSHgmb+lyxf2G8ftL2 Rn0M7nbLcz4= =FY7+ -----END PGP SIGNATURE----- Merge tag 'multiplatform-for-linus-2' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc Pull late ARM Exynos multiplatform changes from Arnd Bergmann: "These continue the multiplatform support for exynos, adding support for building most of the essential drivers (clocksource, clk, irqchip) when combined with other platforms. As a result, it should become really easy to add full multiplatform exynos support in 3.11, although we don't yet enable it for 3.10. The changes were not included in the earlier multiplatform series in order to avoid clashes with the other Exynos updates. This also includes work from Tomasz Figa to fix the pwm clocksource code on Exynos, which is not strictly required for multiplatform, but related to the other patches in this set and needed as a bug fix for at least one board." * tag 'multiplatform-for-linus-2' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc: (22 commits) ARM: dts: exynops4210: really add universal_c210 dts ARM: dts: exynos4210: Add basic dts file for universal_c210 board ARM: dts: exynos4: Add node for PWM device ARM: SAMSUNG: Do not register legacy timer interrupts on Exynos clocksource: samsung_pwm_timer: Work around rounding errors in clockevents core clocksource: samsung_pwm_timer: Correct programming of clock events clocksource: samsung_pwm_timer: Use proper clockevents max_delta clocksource: samsung_pwm_timer: Add support for non-DT platforms clocksource: samsung_pwm_timer: Drop unused samsung_pwm struct clocksource: samsung_pwm_timer: Keep all driver data in a structure clocksource: samsung_pwm_timer: Make PWM spinlock global clocksource: samsung_pwm_timer: Let platforms select the driver Documentation: Add device tree bindings for Samsung PWM timers clocksource: add samsung pwm timer driver irqchip: exynos: look up irq using irq_find_mapping irqchip: exynos: pass irq_base from platform irqchip: exynos: localize irq lookup for ATAGS irqchip: exynos: allocate combiner_data dynamically irqchip: exynos: pass max combiner number to combiner_init ARM: exynos: add missing properties for combiner IRQs ...
499 lines
11 KiB
Plaintext
499 lines
11 KiB
Plaintext
# arch/arm/plat-samsung/Kconfig
|
|
#
|
|
# Copyright 2009 Simtec Electronics
|
|
#
|
|
# Licensed under GPLv2
|
|
|
|
config PLAT_SAMSUNG
|
|
bool
|
|
depends on PLAT_S3C24XX || ARCH_S3C64XX || PLAT_S5P
|
|
default y
|
|
select GENERIC_IRQ_CHIP
|
|
select NO_IOPORT
|
|
help
|
|
Base platform code for all Samsung SoC based systems
|
|
|
|
config PLAT_S5P
|
|
bool
|
|
depends on (ARCH_S5P64X0 || ARCH_S5PC100 || ARCH_S5PV210 || ARCH_EXYNOS)
|
|
default y
|
|
select ARCH_REQUIRE_GPIOLIB
|
|
select ARM_GIC if ARCH_EXYNOS
|
|
select ARM_VIC if !ARCH_EXYNOS
|
|
select GIC_NON_BANKED if ARCH_EXYNOS4
|
|
select NO_IOPORT
|
|
select PLAT_SAMSUNG
|
|
select S3C_GPIO_TRACK
|
|
select S5P_GPIO_DRVSTR
|
|
select SAMSUNG_CLKSRC if !COMMON_CLK
|
|
select SAMSUNG_GPIOLIB_4BIT
|
|
select SAMSUNG_IRQ_VIC_TIMER
|
|
help
|
|
Base platform code for Samsung's S5P series SoC.
|
|
|
|
if PLAT_SAMSUNG
|
|
|
|
# boot configurations
|
|
|
|
comment "Boot options"
|
|
|
|
config S3C_BOOT_ERROR_RESET
|
|
bool "S3C Reboot on decompression error"
|
|
help
|
|
Say y here to use the watchdog to reset the system if the
|
|
kernel decompressor detects an error during decompression.
|
|
|
|
config S3C_BOOT_UART_FORCE_FIFO
|
|
bool "Force UART FIFO on during boot process"
|
|
default y
|
|
help
|
|
Say Y here to force the UART FIFOs on during the kernel
|
|
uncompressor
|
|
|
|
|
|
config S3C_LOWLEVEL_UART_PORT
|
|
int "S3C UART to use for low-level messages"
|
|
default 0
|
|
help
|
|
Choice of which UART port to use for the low-level messages,
|
|
such as the `Uncompressing...` at start time. The value of
|
|
this configuration should be between zero and two. The port
|
|
must have been initialised by the boot-loader before use.
|
|
|
|
# timer options
|
|
|
|
config SAMSUNG_HRT
|
|
bool
|
|
select SAMSUNG_DEV_PWM
|
|
help
|
|
Use the High Resolution timer support
|
|
|
|
# clock options
|
|
|
|
config SAMSUNG_CLOCK
|
|
bool
|
|
default y if !COMMON_CLK
|
|
|
|
config SAMSUNG_CLKSRC
|
|
bool
|
|
help
|
|
Select the clock code for the clksrc implementation
|
|
used by newer systems such as the S3C64XX.
|
|
|
|
config S5P_CLOCK
|
|
def_bool (ARCH_S5P64X0 || ARCH_S5PC100 || ARCH_S5PV210)
|
|
help
|
|
Support common clock part for ARCH_S5P and ARCH_EXYNOS SoCs
|
|
|
|
# options for IRQ support
|
|
|
|
config SAMSUNG_IRQ_VIC_TIMER
|
|
bool
|
|
help
|
|
Internal configuration to build the VIC timer interrupt code.
|
|
|
|
config S5P_IRQ
|
|
def_bool (ARCH_S5P64X0 || ARCH_S5PC100 || ARCH_S5PV210)
|
|
help
|
|
Support common interrupt part for ARCH_S5P SoCs
|
|
|
|
config S5P_EXT_INT
|
|
bool
|
|
help
|
|
Use the external interrupts (other than GPIO interrupts.)
|
|
Note: Do not choose this for S5P6440 and S5P6450.
|
|
|
|
config S5P_GPIO_INT
|
|
bool
|
|
help
|
|
Common code for the GPIO interrupts (other than external interrupts.)
|
|
|
|
# options for gpio configuration support
|
|
|
|
config SAMSUNG_GPIOLIB_4BIT
|
|
bool
|
|
help
|
|
GPIOlib file contains the 4 bit modification functions for gpio
|
|
configuration. GPIOlib shall be compiled only for S3C64XX and S5P
|
|
series of processors.
|
|
|
|
config S5P_GPIO_DRVSTR
|
|
bool
|
|
help
|
|
Internal configuration to get and set correct GPIO driver strength
|
|
helper
|
|
|
|
config SAMSUNG_GPIO_EXTRA
|
|
int "Number of additional GPIO pins"
|
|
default 128 if SAMSUNG_GPIO_EXTRA128
|
|
default 64 if SAMSUNG_GPIO_EXTRA64
|
|
default 0
|
|
help
|
|
Use additional GPIO space in addition to the GPIO's the SOC
|
|
provides. This allows expanding the GPIO space for use with
|
|
GPIO expanders.
|
|
|
|
config SAMSUNG_GPIO_EXTRA64
|
|
bool
|
|
|
|
config SAMSUNG_GPIO_EXTRA128
|
|
bool
|
|
|
|
config S3C_GPIO_SPACE
|
|
int "Space between gpio banks"
|
|
default 0
|
|
help
|
|
Add a number of spare GPIO entries between each bank for debugging
|
|
purposes. This allows any problems where an counter overflows from
|
|
one bank to another to be caught, at the expense of using a little
|
|
more memory.
|
|
|
|
config S3C_GPIO_TRACK
|
|
bool
|
|
help
|
|
Internal configuration option to enable the s3c specific gpio
|
|
chip tracking if the platform requires it.
|
|
|
|
# uart options
|
|
|
|
config S5P_DEV_UART
|
|
def_bool y
|
|
depends on (ARCH_S5P64X0 || ARCH_S5PC100 || ARCH_S5PV210)
|
|
|
|
# ADC driver
|
|
|
|
config S3C_ADC
|
|
bool "ADC common driver support"
|
|
help
|
|
Core support for the ADC block found in the Samsung SoC systems
|
|
for drivers such as the touchscreen and hwmon to use to share
|
|
this resource.
|
|
|
|
# device definitions to compile in
|
|
|
|
config S3C_DEV_HSMMC
|
|
bool
|
|
help
|
|
Compile in platform device definitions for HSMMC code
|
|
|
|
config S3C_DEV_HSMMC1
|
|
bool
|
|
help
|
|
Compile in platform device definitions for HSMMC channel 1
|
|
|
|
config S3C_DEV_HSMMC2
|
|
bool
|
|
help
|
|
Compile in platform device definitions for HSMMC channel 2
|
|
|
|
config S3C_DEV_HSMMC3
|
|
bool
|
|
help
|
|
Compile in platform device definitions for HSMMC channel 3
|
|
|
|
config S3C_DEV_HWMON
|
|
bool
|
|
help
|
|
Compile in platform device definitions for HWMON
|
|
|
|
config S3C_DEV_I2C1
|
|
bool
|
|
help
|
|
Compile in platform device definitions for I2C channel 1
|
|
|
|
config S3C_DEV_I2C2
|
|
bool
|
|
help
|
|
Compile in platform device definitions for I2C channel 2
|
|
|
|
config S3C_DEV_I2C3
|
|
bool
|
|
help
|
|
Compile in platform device definition for I2C controller 3
|
|
|
|
config S3C_DEV_I2C4
|
|
bool
|
|
help
|
|
Compile in platform device definition for I2C controller 4
|
|
|
|
config S3C_DEV_I2C5
|
|
bool
|
|
help
|
|
Compile in platform device definition for I2C controller 5
|
|
|
|
config S3C_DEV_I2C6
|
|
bool
|
|
help
|
|
Compile in platform device definition for I2C controller 6
|
|
|
|
config S3C_DEV_I2C7
|
|
bool
|
|
help
|
|
Compile in platform device definition for I2C controller 7
|
|
|
|
config S3C_DEV_FB
|
|
bool
|
|
help
|
|
Compile in platform device definition for framebuffer
|
|
|
|
config S3C_DEV_USB_HOST
|
|
bool
|
|
help
|
|
Compile in platform device definition for USB host.
|
|
|
|
config S3C_DEV_USB_HSOTG
|
|
bool
|
|
help
|
|
Compile in platform device definition for USB high-speed OtG
|
|
|
|
config S3C_DEV_WDT
|
|
bool
|
|
default y if ARCH_S3C24XX
|
|
help
|
|
Complie in platform device definition for Watchdog Timer
|
|
|
|
config S3C_DEV_NAND
|
|
bool
|
|
help
|
|
Compile in platform device definition for NAND controller
|
|
|
|
config S3C_DEV_ONENAND
|
|
bool
|
|
help
|
|
Compile in platform device definition for OneNAND controller
|
|
|
|
config S3C_DEV_RTC
|
|
bool
|
|
help
|
|
Complie in platform device definition for RTC
|
|
|
|
config SAMSUNG_DEV_ADC
|
|
bool
|
|
help
|
|
Compile in platform device definition for ADC controller
|
|
|
|
config SAMSUNG_DEV_IDE
|
|
bool
|
|
help
|
|
Compile in platform device definitions for IDE
|
|
|
|
config S3C64XX_DEV_SPI0
|
|
bool
|
|
help
|
|
Compile in platform device definitions for S3C64XX's type
|
|
SPI controller 0
|
|
|
|
config S3C64XX_DEV_SPI1
|
|
bool
|
|
help
|
|
Compile in platform device definitions for S3C64XX's type
|
|
SPI controller 1
|
|
|
|
config S3C64XX_DEV_SPI2
|
|
bool
|
|
help
|
|
Compile in platform device definitions for S3C64XX's type
|
|
SPI controller 2
|
|
|
|
config SAMSUNG_DEV_TS
|
|
bool
|
|
help
|
|
Common in platform device definitions for touchscreen device
|
|
|
|
config SAMSUNG_DEV_KEYPAD
|
|
bool
|
|
help
|
|
Compile in platform device definitions for keypad
|
|
|
|
config SAMSUNG_DEV_PWM
|
|
bool
|
|
default y if ARCH_S3C24XX
|
|
help
|
|
Compile in platform device definition for PWM Timer
|
|
|
|
config SAMSUNG_DEV_BACKLIGHT
|
|
bool
|
|
depends on SAMSUNG_DEV_PWM
|
|
help
|
|
Compile in platform device definition LCD backlight with PWM Timer
|
|
|
|
config S5P_DEV_CSIS0
|
|
bool
|
|
help
|
|
Compile in platform device definitions for MIPI-CSIS channel 0
|
|
|
|
config S5P_DEV_CSIS1
|
|
bool
|
|
help
|
|
Compile in platform device definitions for MIPI-CSIS channel 1
|
|
|
|
config S5P_DEV_FIMC0
|
|
bool
|
|
help
|
|
Compile in platform device definitions for FIMC controller 0
|
|
|
|
config S5P_DEV_FIMC1
|
|
bool
|
|
help
|
|
Compile in platform device definitions for FIMC controller 1
|
|
|
|
config S5P_DEV_FIMC2
|
|
bool
|
|
help
|
|
Compile in platform device definitions for FIMC controller 2
|
|
|
|
config S5P_DEV_FIMC3
|
|
bool
|
|
help
|
|
Compile in platform device definitions for FIMC controller 3
|
|
|
|
config S5P_DEV_FIMD0
|
|
bool
|
|
help
|
|
Compile in platform device definitions for FIMD controller 0
|
|
|
|
config S5P_DEV_G2D
|
|
bool
|
|
help
|
|
Compile in platform device definitions for G2D device
|
|
|
|
config S5P_DEV_I2C_HDMIPHY
|
|
bool
|
|
help
|
|
Compile in platform device definitions for I2C HDMIPHY controller
|
|
|
|
config S5P_DEV_JPEG
|
|
bool
|
|
help
|
|
Compile in platform device definitions for JPEG codec
|
|
|
|
config S5P_DEV_MFC
|
|
bool
|
|
help
|
|
Compile in setup memory (init) code for MFC
|
|
|
|
config S5P_DEV_ONENAND
|
|
bool
|
|
help
|
|
Compile in platform device definition for OneNAND controller
|
|
|
|
config S5P_DEV_TV
|
|
bool
|
|
help
|
|
Compile in platform device definition for TV interface
|
|
|
|
config S5P_DEV_USB_EHCI
|
|
bool
|
|
help
|
|
Compile in platform device definition for USB EHCI
|
|
|
|
config S3C24XX_PWM
|
|
bool "PWM device support"
|
|
select PWM
|
|
select PWM_SAMSUNG
|
|
help
|
|
Support for exporting the PWM timer blocks via the pwm device
|
|
system
|
|
|
|
config S5P_SETUP_MIPIPHY
|
|
bool
|
|
help
|
|
Compile in common setup code for MIPI-CSIS and MIPI-DSIM devices
|
|
|
|
config S3C_SETUP_CAMIF
|
|
bool
|
|
help
|
|
Compile in common setup code for S3C CAMIF devices
|
|
|
|
# DMA
|
|
|
|
config S3C_DMA
|
|
bool
|
|
help
|
|
Internal configuration for S3C DMA core
|
|
|
|
config SAMSUNG_DMADEV
|
|
bool
|
|
select ARM_AMBA
|
|
select DMADEVICES
|
|
select PL330_DMA if (ARCH_EXYNOS5 || ARCH_EXYNOS4 || CPU_S5PV210 || CPU_S5PC100 || \
|
|
CPU_S5P6450 || CPU_S5P6440)
|
|
help
|
|
Use DMA device engine for PL330 DMAC.
|
|
|
|
comment "Power management"
|
|
|
|
config SAMSUNG_PM_DEBUG
|
|
bool "S3C2410 PM Suspend debug"
|
|
depends on PM
|
|
select DEBUG_LL
|
|
help
|
|
Say Y here if you want verbose debugging from the PM Suspend and
|
|
Resume code. See <file:Documentation/arm/Samsung-S3C24XX/Suspend.txt>
|
|
for more information.
|
|
|
|
config S3C_PM_DEBUG_LED_SMDK
|
|
bool "SMDK LED suspend/resume debugging"
|
|
depends on PM && (MACH_SMDK6410)
|
|
help
|
|
Say Y here to enable the use of the SMDK LEDs on the baseboard
|
|
for debugging of the state of the suspend and resume process.
|
|
|
|
Note, this currently only works for S3C64XX based SMDK boards.
|
|
|
|
config SAMSUNG_PM_CHECK
|
|
bool "S3C2410 PM Suspend Memory CRC"
|
|
depends on PM && CRC32
|
|
help
|
|
Enable the PM code's memory area checksum over sleep. This option
|
|
will generate CRCs of all blocks of memory, and store them before
|
|
going to sleep. The blocks are then checked on resume for any
|
|
errors.
|
|
|
|
Note, this can take several seconds depending on memory size
|
|
and CPU speed.
|
|
|
|
See <file:Documentation/arm/Samsung-S3C24XX/Suspend.txt>
|
|
|
|
config SAMSUNG_PM_CHECK_CHUNKSIZE
|
|
int "S3C2410 PM Suspend CRC Chunksize (KiB)"
|
|
depends on PM && SAMSUNG_PM_CHECK
|
|
default 64
|
|
help
|
|
Set the chunksize in Kilobytes of the CRC for checking memory
|
|
corruption over suspend and resume. A smaller value will mean that
|
|
the CRC data block will take more memory, but wil identify any
|
|
faults with better precision.
|
|
|
|
See <file:Documentation/arm/Samsung-S3C24XX/Suspend.txt>
|
|
|
|
config SAMSUNG_WAKEMASK
|
|
bool
|
|
depends on PM
|
|
help
|
|
Compile support for wakeup-mask controls found on the S3C6400
|
|
and above. This code allows a set of interrupt to wakeup-mask
|
|
mappings. See <plat/wakeup-mask.h>
|
|
|
|
config S5P_PM
|
|
bool
|
|
help
|
|
Common code for power management support on S5P and newer SoCs
|
|
Note: Do not select this for S5P6440 and S5P6450.
|
|
|
|
config S5P_SLEEP
|
|
bool
|
|
help
|
|
Internal config node to apply common S5P sleep management code.
|
|
Can be selected by S5P and newer SoCs with similar sleep procedure.
|
|
|
|
config DEBUG_S3C_UART
|
|
depends on PLAT_SAMSUNG
|
|
int
|
|
default "0" if DEBUG_S3C_UART0
|
|
default "1" if DEBUG_S3C_UART1
|
|
default "2" if DEBUG_S3C_UART2
|
|
default "3" if DEBUG_S3C_UART3
|
|
|
|
endif
|