# arch/arm/mach-s3c24xx/Kconfig
#
# Copyright (c) 2012 Samsung Electronics Co., Ltd.
#		http://www.samsung.com/
#
# Copyright 2007 Simtec Electronics
#
# Licensed under GPLv2

if ARCH_S3C24XX

config PLAT_S3C24XX
	def_bool y
	select ARCH_REQUIRE_GPIOLIB
	select NO_IOPORT
	select S3C_DEV_NAND
	select IRQ_DOMAIN
	help
	  Base platform code for any Samsung S3C24XX device

menu "SAMSUNG S3C24XX SoCs Support"

comment "S3C24XX SoCs"

config CPU_S3C2410
	bool "SAMSUNG S3C2410"
	default y
	select CPU_ARM920T
	select CPU_LLSERIAL_S3C2410
	select S3C2410_CLOCK
	select S3C2410_DMA if S3C24XX_DMA
	select ARM_S3C2410_CPUFREQ if ARM_S3C24XX_CPUFREQ
	select S3C2410_PM if PM
	select SAMSUNG_WDT_RESET
	help
	  Support for S3C2410 and S3C2410A family from the S3C24XX line
	  of Samsung Mobile CPUs.

config CPU_S3C2412
	bool "SAMSUNG S3C2412"
	select CPU_ARM926T
	select CPU_LLSERIAL_S3C2440
	select S3C2412_DMA if S3C24XX_DMA
	select S3C2412_PM if PM
	help
	  Support for the S3C2412 and S3C2413 SoCs from the S3C24XX line

config CPU_S3C2416
	bool "SAMSUNG S3C2416/S3C2450"
	select CPU_ARM926T
	select CPU_LLSERIAL_S3C2440
	select S3C2416_PM if PM
	select S3C2443_COMMON
	select S3C2443_DMA if S3C24XX_DMA
	select SAMSUNG_CLKSRC
	help
	  Support for the S3C2416 SoC from the S3C24XX line

config CPU_S3C2440
	bool "SAMSUNG S3C2440"
	select CPU_ARM920T
	select CPU_LLSERIAL_S3C2440
	select S3C2410_CLOCK
	select S3C2410_PM if PM
	select S3C2440_DMA if S3C24XX_DMA
	help
	  Support for S3C2440 Samsung Mobile CPU based systems.

config CPU_S3C2442
	bool "SAMSUNG S3C2442"
	select CPU_ARM920T
	select CPU_LLSERIAL_S3C2440
	select S3C2410_CLOCK
	select S3C2410_DMA if S3C24XX_DMA
	select S3C2410_PM if PM
	help
	  Support for S3C2442 Samsung Mobile CPU based systems.

config CPU_S3C244X
	def_bool y
	depends on CPU_S3C2440 || CPU_S3C2442
	select SAMSUNG_WDT_RESET

config CPU_S3C2443
	bool "SAMSUNG S3C2443"
	select CPU_ARM920T
	select CPU_LLSERIAL_S3C2440
	select S3C2443_COMMON
	select S3C2443_DMA if S3C24XX_DMA
	select SAMSUNG_CLKSRC
	help
	  Support for the S3C2443 SoC from the S3C24XX line

# common code

config S3C2410_CLOCK
	bool
	help
	  Clock code for the S3C2410, and similar processors which
	  is currently includes the S3C2410, S3C2440, S3C2442.

config S3C24XX_DCLK
	bool
	help
	  Clock code for supporting DCLK/CLKOUT on S3C24XX architectures

config S3C24XX_SMDK
	bool
	help
	  Common machine code for SMDK2410 and SMDK2440

config S3C24XX_SIMTEC_AUDIO
	bool
	depends on (ARCH_BAST || MACH_VR1000 || MACH_OSIRIS || MACH_ANUBIS)
	default y
	help
	  Add audio devices for common Simtec S3C24XX boards

config S3C24XX_SIMTEC_PM
	bool
	help
	  Common power management code for systems that are
	  compatible with the Simtec style of power management

config S3C24XX_SIMTEC_USB
	bool
	help
	  USB management code for common Simtec S3C24XX boards

config S3C24XX_SETUP_TS
	bool
	help
	  Compile in platform device definition for Samsung TouchScreen.

config S3C24XX_DMA
	bool "S3C2410 DMA support"
	select S3C_DMA
	help
	  S3C2410 DMA support. This is needed for drivers like sound which
	  use the S3C2410's DMA system to move data to and from the
	  peripheral blocks.

config S3C2410_DMA_DEBUG
	bool "S3C2410 DMA support debug"
	depends on S3C2410_DMA
	help
	  Enable debugging output for the DMA code. This option sends info
	  to the kernel log, at priority KERN_DEBUG.

config S3C2410_DMA
	bool
	depends on S3C24XX_DMA && (CPU_S3C2410 || CPU_S3C2442)
	help
	  DMA device selection for S3C2410 and compatible CPUs

config S3C2410_PM
	bool
	help
	  Power Management code common to S3C2410 and better

# low-level serial option nodes

config CPU_LLSERIAL_S3C2410_ONLY
	bool
	default y if CPU_LLSERIAL_S3C2410 && !CPU_LLSERIAL_S3C2440

config CPU_LLSERIAL_S3C2440_ONLY
	bool
	default y if CPU_LLSERIAL_S3C2440 && !CPU_LLSERIAL_S3C2410

config CPU_LLSERIAL_S3C2410
	bool
	help
	  Selected if there is an S3C2410 (or register compatible) serial
	  low-level implementation needed

config CPU_LLSERIAL_S3C2440
	bool
	help
	  Selected if there is an S3C2440 (or register compatible) serial
	  low-level implementation needed

config S3C24XX_PLL
	bool "Support CPUfreq changing of PLL frequency (EXPERIMENTAL)"
	depends on ARM_S3C24XX_CPUFREQ
	help
	  Compile in support for changing the PLL frequency from the
	  S3C24XX series CPUfreq driver. The PLL takes time to settle
	  after a frequency change, so by default it is not enabled.

	  This also means that the PLL tables for the selected CPU(s) will
	  be built which may increase the size of the kernel image.

# cpu frequency items common between s3c2410 and s3c2440/s3c2442

config S3C2410_IOTIMING
	bool
	depends on ARM_S3C24XX_CPUFREQ
	help
	  Internal node to select io timing code that is common to the s3c2410
	  and s3c2440/s3c2442 cpu frequency support.

config S3C2410_CPUFREQ_UTILS
       bool
       depends on ARM_S3C24XX_CPUFREQ
       help
         Internal node to select timing code that is common to the s3c2410
         and s3c2440/s3c244 cpu frequency support.

# cpu frequency support common to s3c2412, s3c2413 and s3c2442

config S3C2412_IOTIMING
	bool
	depends on ARM_S3C24XX_CPUFREQ && (CPU_S3C2412 || CPU_S3C2443)
	help
	  Intel node to select io timing code that is common to the s3c2412
	  and the s3c2443.

# cpu-specific sections

if CPU_S3C2410

config S3C2410_PLL
	bool
	depends on ARM_S3C2410_CPUFREQ && S3C24XX_PLL
	default y
	help
	  Select the PLL table for the S3C2410

config S3C24XX_SIMTEC_NOR
	bool
	help
	  Internal node to specify machine has simtec NOR mapping

config MACH_BAST_IDE
	bool
	select HAVE_PATA_PLATFORM
	help
	  Internal node for machines with an BAST style IDE
	  interface

comment "S3C2410 Boards"

#
# The "S3C2410 Boards" list is ordered alphabetically by option text.
# (without ARCH_ or MACH_)
#

config MACH_AML_M5900
	bool "AML M5900 Series"
	select S3C24XX_SIMTEC_PM if PM
	select S3C_DEV_USB_HOST
	help
	  Say Y here if you are using the American Microsystems M5900 Series
	  <http://www.amltd.com>

config ARCH_BAST
	bool "Simtec Electronics BAST (EB2410ITX)"
	select ISA
	select MACH_BAST_IDE
	select S3C2410_IOTIMING if ARM_S3C2410_CPUFREQ
	select S3C24XX_DCLK
	select S3C24XX_SIMTEC_NOR
	select S3C24XX_SIMTEC_PM if PM
	select S3C24XX_SIMTEC_USB
	select S3C_DEV_HWMON
	select S3C_DEV_NAND
	select S3C_DEV_USB_HOST
	help
	  Say Y here if you are using the Simtec Electronics EB2410ITX
	  development board (also known as BAST)

config BAST_PC104_IRQ
	bool "BAST PC104 IRQ support"
	depends on ARCH_BAST
	default y
	help
	  Say Y	here to enable the PC104 IRQ routing on the
	  Simtec BAST (EB2410ITX)

config ARCH_H1940
	bool "IPAQ H1940"
	select PM_H1940 if PM
	select S3C24XX_SETUP_TS
	select S3C_DEV_NAND
	select S3C_DEV_USB_HOST
	help
	  Say Y here if you are using the HP IPAQ H1940

config H1940BT
	tristate "Control the state of H1940 bluetooth chip"
	depends on ARCH_H1940
	select RFKILL
	help
	  This is a simple driver that is able to control
	  the state of built in bluetooth chip on h1940.

config PM_H1940
	bool
	help
	  Internal node for H1940 and related PM

config MACH_N30
	bool "Acer N30 family"
	select S3C_DEV_NAND
	select S3C_DEV_USB_HOST
	help
	  Say Y here if you want suppt for the Acer N30, Acer N35,
	  Navman PiN570, Yakumo AlphaX or Airis NC05 PDAs.

config MACH_OTOM
	bool "NexVision OTOM Board"
	select S3C_DEV_NAND
	select S3C_DEV_USB_HOST
	help
	  Say Y here if you are using the Nex Vision OTOM board

config MACH_QT2410
	bool "QT2410"
	select S3C_DEV_NAND
	select S3C_DEV_USB_HOST
	help
	  Say Y here if you are using the Armzone QT2410

config ARCH_SMDK2410
	bool "SMDK2410/A9M2410"
	select S3C24XX_SMDK
	select S3C_DEV_USB_HOST
	help
	  Say Y here if you are using the SMDK2410 or the derived module A9M2410
	  <http://www.fsforth.de>

config MACH_TCT_HAMMER
	bool "TCT Hammer Board"
	select S3C_DEV_USB_HOST
	help
	  Say Y here if you are using the TinCanTools Hammer Board
	  <http://www.tincantools.com>

config MACH_VR1000
	bool "Thorcom VR1000"
	select MACH_BAST_IDE
	select S3C24XX_DCLK
	select S3C24XX_SIMTEC_NOR
	select S3C24XX_SIMTEC_PM if PM
	select S3C24XX_SIMTEC_USB
	select S3C_DEV_USB_HOST
	help
	  Say Y here if you are using the Thorcom VR1000 board.

endif	# CPU_S3C2410

config S3C2412_PM_SLEEP
	bool
	help
	  Internal config node to apply sleep for S3C2412 power management.
	  Can be selected by another SoCs such as S3C2416 with similar
	  sleep procedure.

if CPU_S3C2412

config CPU_S3C2412_ONLY
	bool
	depends on !CPU_S3C2410 && !CPU_S3C2416 && !CPU_S3C2440 && \
		   !CPU_S3C2442 && !CPU_S3C2443
	default y

config S3C2412_DMA
	bool
	help
	  Internal config node for S3C2412 DMA support

config S3C2412_PM
	bool
	select S3C2412_PM_SLEEP
	select SAMSUNG_WAKEMASK
	help
	  Internal config node to apply S3C2412 power management

comment "S3C2412 Boards"

#
# The "S3C2412 Boards" list is ordered alphabetically by option text.
# (without ARCH_ or MACH_)
#

config MACH_JIVE
	bool "Logitech Jive"
	select S3C_DEV_NAND
	select S3C_DEV_USB_HOST
	help
	  Say Y here if you are using the Logitech Jive.

config MACH_JIVE_SHOW_BOOTLOADER
	bool "Allow access to bootloader partitions in MTD"
	depends on MACH_JIVE

config MACH_S3C2413
	bool
	help
	  Internal node for S3C2413 version of SMDK2413, so that
	  machine_is_s3c2413() will work when MACH_SMDK2413 is
	  selected

config MACH_SMDK2412
	bool "SMDK2412"
	select MACH_SMDK2413
	help
	  Say Y here if you are using an SMDK2412

	  Note, this shares support with SMDK2413, so will automatically
	  select MACH_SMDK2413.

config MACH_SMDK2413
	bool "SMDK2413"
	select MACH_S3C2413
	select S3C24XX_SMDK
	select S3C_DEV_NAND
	select S3C_DEV_USB_HOST
	help
	  Say Y here if you are using an SMDK2413

config MACH_VSTMS
	bool "VMSTMS"
	select S3C_DEV_NAND
	select S3C_DEV_USB_HOST
	help
	  Say Y here if you are using an VSTMS board

endif	# CPU_S3C2412

if CPU_S3C2416

config S3C2416_PM
	bool
	select S3C2412_PM_SLEEP
	help
	  Internal config node to apply S3C2416 power management

config S3C2416_SETUP_SDHCI
	bool
	select S3C2416_SETUP_SDHCI_GPIO
	help
	  Internal helper functions for S3C2416 based SDHCI systems

config S3C2416_SETUP_SDHCI_GPIO
	bool
	help
	  Common setup code for SDHCI gpio.

comment "S3C2416 Boards"

config MACH_SMDK2416
	bool "SMDK2416"
	select S3C2416_SETUP_SDHCI
	select S3C24XX_SMDK
	select S3C_DEV_FB
	select S3C_DEV_HSMMC
	select S3C_DEV_HSMMC1
	select S3C_DEV_NAND
	select S3C_DEV_USB_HOST
	help
	  Say Y here if you are using an SMDK2416

config MACH_S3C2416_DT
	bool "Samsung S3C2416 machine using devicetree"
	select CLKSRC_OF
	select USE_OF
	select PINCTRL
	select PINCTRL_S3C24XX
	help
	  Machine support for Samsung S3C2416 machines with device tree enabled.
	  Select this if a fdt blob is available for the S3C2416 SoC based board.
	  Note: This is under development and not all peripherals can be supported
	  with this machine file.

endif	# CPU_S3C2416

if CPU_S3C2440

config S3C2440_DMA
	bool
	help
	  Support for S3C2440 specific DMA code5A

config S3C2440_XTAL_12000000
	bool
	help
	  Indicate that the build needs to support 12MHz system
	  crystal.

config S3C2440_XTAL_16934400
	bool
	help
	  Indicate that the build needs to support 16.9344MHz system
	  crystal.

config S3C2440_PLL_12000000
	bool
	depends on ARM_S3C2440_CPUFREQ && S3C2440_XTAL_12000000
	default y if S3C24XX_PLL
	help
	  PLL tables for S3C2440 or S3C2442 CPUs with 12MHz crystals.

config S3C2440_PLL_16934400
	bool
	depends on ARM_S3C2440_CPUFREQ && S3C2440_XTAL_16934400
	default y if S3C24XX_PLL
	help
	  PLL tables for S3C2440 or S3C2442 CPUs with 16.934MHz crystals.

comment "S3C2440 Boards"

#
# The "S3C2440 Boards" list is ordered alphabetically by option text.
# (without ARCH_ or MACH_)
#

config MACH_ANUBIS
	bool "Simtec Electronics ANUBIS"
	select HAVE_PATA_PLATFORM
	select S3C2440_XTAL_12000000
	select S3C24XX_DCLK
	select S3C24XX_GPIO_EXTRA64
	select S3C24XX_SIMTEC_PM if PM
	select S3C_DEV_USB_HOST
	help
	  Say Y here if you are using the Simtec Electronics ANUBIS
	  development system

config MACH_AT2440EVB
	bool "Avantech AT2440EVB development board"
	select S3C_DEV_NAND
	select S3C_DEV_USB_HOST
	help
	  Say Y here if you are using the AT2440EVB development board

config MACH_MINI2440
	bool "MINI2440 development board"
	select EEPROM_AT24
	select LEDS_CLASS
	select LEDS_TRIGGERS
	select LEDS_TRIGGER_BACKLIGHT
	select NEW_LEDS
	select S3C_DEV_NAND
	select S3C_DEV_USB_HOST
	select S3C_SETUP_CAMIF
	help
	  Say Y here to select support for the MINI2440. Is a 10cm x 10cm board
	  available via various sources. It can come with a 3.5" or 7" touch LCD.

config MACH_NEXCODER_2440
	bool "NexVision NEXCODER 2440 Light Board"
	select S3C2440_XTAL_12000000
	select S3C_DEV_NAND
	select S3C_DEV_USB_HOST
	help
	  Say Y here if you are using the Nex Vision NEXCODER 2440 Light Board

config MACH_OSIRIS
	bool "Simtec IM2440D20 (OSIRIS) module"
	select S3C2410_IOTIMING if ARM_S3C2440_CPUFREQ
	select S3C2440_XTAL_12000000
	select S3C24XX_DCLK
	select S3C24XX_GPIO_EXTRA128
	select S3C24XX_SIMTEC_PM if PM
	select S3C_DEV_NAND
	select S3C_DEV_USB_HOST
	help
	  Say Y here if you are using the Simtec IM2440D20 module, also
	  known as the Osiris.

config MACH_OSIRIS_DVS
	tristate "Simtec IM2440D20 (OSIRIS) Dynamic Voltage Scaling driver"
	depends on MACH_OSIRIS
	select TPS65010
	help
	  Say Y/M here if you want to have dynamic voltage scaling support
	  on the Simtec IM2440D20 (OSIRIS) module via the TPS65011.

	  The DVS driver alters the voltage supplied to the ARM core
	  depending on the frequency it is running at. The driver itself
	  does not do any of the frequency alteration, which is left up
	  to the cpufreq driver.

config MACH_RX3715
	bool "HP iPAQ rx3715"
	select PM_H1940 if PM
	select S3C2440_XTAL_16934400
	select S3C_DEV_NAND
	help
	  Say Y here if you are using the HP iPAQ rx3715.

config ARCH_S3C2440
	bool "SMDK2440"
	select S3C2440_XTAL_16934400
	select S3C24XX_SMDK
	select S3C_DEV_NAND
	select S3C_DEV_USB_HOST
	help
	  Say Y here if you are using the SMDK2440.

config SMDK2440_CPU2440
	bool "SMDK2440 with S3C2440 CPU module"
	default y if ARCH_S3C2440
	select S3C2440_XTAL_16934400

endif	# CPU_S3C2440

if CPU_S3C2442

comment "S3C2442 Boards"

#
# The "S3C2442 Boards" list is ordered alphabetically by option text.
# (without ARCH_ or MACH_)
#

config MACH_NEO1973_GTA02
	bool "Openmoko GTA02 / Freerunner phone"
	select I2C
	select MFD_PCF50633
	select PCF50633_GPIO
	select POWER_SUPPLY
	select S3C24XX_PWM
	select S3C_DEV_USB_HOST
	help
	   Say Y here if you are using the Openmoko GTA02 / Freerunner GSM Phone

config MACH_RX1950
	bool "HP iPAQ rx1950"
	select I2C
	select PM_H1940 if PM
	select S3C2410_IOTIMING if ARM_S3C2440_CPUFREQ
	select S3C2440_XTAL_16934400
	select S3C24XX_DCLK
	select S3C24XX_PWM
	select S3C_DEV_NAND
	help
	   Say Y here if you're using HP iPAQ rx1950

endif	# CPU_S3C2442

if CPU_S3C2443 || CPU_S3C2416

config S3C2443_COMMON
	bool
	help
	  Common code for the S3C2443 and similar processors, which includes
	  the S3C2416 and S3C2450.

config S3C2443_DMA
	bool
	help
	  Internal config node for S3C2443 DMA support

config S3C2443_SETUP_SPI
	bool
	help
	  Common setup code for SPI GPIO configurations

endif	# CPU_S3C2443 || CPU_S3C2416

if CPU_S3C2443

comment "S3C2443 Boards"

config MACH_SMDK2443
	bool "SMDK2443"
	select S3C24XX_SMDK
	select S3C_DEV_HSMMC1
	help
	  Say Y here if you are using an SMDK2443

endif	# CPU_S3C2443

endmenu	# SAMSUNG S3C24XX SoCs Support

endif	# ARCH_S3C24XX
