# 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_S5P6442 || ARCH_S5PC100 || ARCH_S5PV210 || ARCH_S5PV310)
	default y
	select ARM_VIC if !ARCH_S5PV310
	select ARM_GIC if ARCH_S5PV310
	select NO_IOPORT
	select ARCH_REQUIRE_GPIOLIB
	select S3C_GPIO_TRACK
	select S5P_GPIO_DRVSTR
	select SAMSUNG_GPIOLIB_4BIT
	select S3C_GPIO_CFG_S3C64XX
	select S3C_GPIO_PULL_UPDOWN
	select S3C_GPIO_CFG_S3C24XX
	select PLAT_SAMSUNG
	select SAMSUNG_CLKSRC
	select SAMSUNG_IRQ_VIC_TIMER
	select SAMSUNG_IRQ_UART
	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_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_ONENAND
	bool
	help
	  Compile in platform device definition for OneNAND controller
