# arch/arm/plat-s5p/Kconfig
#
# Copyright (c) 2009 Samsung Electronics Co., Ltd.
#		http://www.samsung.com/
#
# Licensed under GPLv2

config PLAT_S5P
	bool
	depends on (ARCH_S5P64X0 || ARCH_S5PC100 || ARCH_S5PV210 || ARCH_EXYNOS)
	default y
	select ARM_VIC if !ARCH_EXYNOS4
	select ARM_GIC if ARCH_EXYNOS4
	select NO_IOPORT
	select ARCH_REQUIRE_GPIOLIB
	select S3C_GPIO_TRACK
	select S5P_GPIO_DRVSTR
	select SAMSUNG_GPIOLIB_4BIT
	select PLAT_SAMSUNG
	select SAMSUNG_CLKSRC
	select SAMSUNG_IRQ_VIC_TIMER
	help
	  Base platform code for Samsung's S5P series SoC.

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.)

config S5P_HRT
	bool
	select SAMSUNG_DEV_PWM
	help
	  Use the High Resolution timer support

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.

comment "System MMU"

config S5P_SYSTEM_MMU
	bool "S5P SYSTEM MMU"
	depends on ARCH_EXYNOS4
	help
	  Say Y here if you want to enable System MMU

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 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_I2C_HDMIPHY
	bool
	help
	  Compile in platform device definitions for I2C HDMIPHY controller

config S5P_DEV_MFC
	bool
	help
	  Compile in platform device definitions for MFC

config S5P_DEV_ONENAND
	bool
	help
	  Compile in platform device definition for OneNAND controller

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_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 S5P_SETUP_MIPIPHY
	bool
	help
	  Compile in common setup code for MIPI-CSIS and MIPI-DSIM devices
