Free Electrons

Embedded Linux Experts

# Copyright 2008 Openmoko, Inc.
#	Simtec Electronics, Ben Dooks <ben@simtec.co.uk>
#
# Licensed under GPLv2
menuconfig ARCH_S3C64XX
	bool "Samsung S3C64XX"
	depends on ARCH_MULTI_V6
	select ARM_AMBA
	select ARM_VIC
	select CLKSRC_SAMSUNG_PWM
	select COMMON_CLK_SAMSUNG
	select GPIO_SAMSUNG if ATAGS
	select GPIOLIB
	select HAVE_S3C2410_I2C if I2C
	select HAVE_S3C2410_WATCHDOG if WATCHDOG
	select HAVE_TCM
	select PLAT_SAMSUNG
	select PM_GENERIC_DOMAINS if PM
	select S3C_DEV_NAND if ATAGS
	select S3C_GPIO_TRACK if ATAGS
	select SAMSUNG_ATAGS if ATAGS
	select SAMSUNG_WAKEMASK if PM
	select SAMSUNG_WDT_RESET
	help
	  Samsung S3C64XX series based systems

if ARCH_S3C64XX

# Configuration options for the S3C6410 CPU

config CPU_S3C6400
	bool
	help
	  Enable S3C6400 CPU support

config CPU_S3C6410
	bool
	help
	  Enable S3C6410 CPU support

config S3C64XX_PL080
	def_bool DMADEVICES
	select ARM_AMBA
	select AMBA_PL08X

config S3C64XX_SETUP_SDHCI
	bool
	select S3C64XX_SETUP_SDHCI_GPIO
	help
	  Internal configuration for default SDHCI setup for S3C6400 and
	  S3C6410 SoCs.

config S3C64XX_DEV_ONENAND1
	bool
	help
	  Compile in platform device definition for OneNAND1 controller

config SAMSUNG_DEV_BACKLIGHT
	bool
	depends on SAMSUNG_DEV_PWM
	help
	  Compile in platform device definition LCD backlight with PWM Timer

# platform specific device setup

config S3C64XX_SETUP_I2C0
	bool
	default y
	help
	  Common setup code for i2c bus 0.

	  Note, currently since i2c0 is always compiled, this setup helper
	  is always compiled with it.

config S3C64XX_SETUP_I2C1
	bool
	help
	  Common setup code for i2c bus 1.

config S3C64XX_SETUP_IDE
	bool
	help
	  Common setup code for S3C64XX IDE.

config S3C64XX_SETUP_FB_24BPP
	bool
	help
	  Common setup code for S3C64XX with an 24bpp RGB display helper.

config S3C64XX_SETUP_KEYPAD
	bool
	help
	  Common setup code for S3C64XX KEYPAD GPIO configurations

config S3C64XX_SETUP_SDHCI_GPIO
	bool
	help
	  Common setup code for S3C64XX SDHCI GPIO configurations

config S3C64XX_SETUP_SPI
	bool
	help
	 Common setup code for SPI GPIO configurations

config S3C64XX_SETUP_USB_PHY
	bool
	help
	  Common setup code for USB PHY controller

# S36400 Macchine support

config MACH_SMDK6400
       bool "SMDK6400"
	depends on ATAGS
	select CPU_S3C6400
	select S3C64XX_SETUP_SDHCI
	select S3C_DEV_HSMMC1
	help
	  Machine support for the Samsung SMDK6400

# S3C6410 machine support

config MACH_ANW6410
	bool "A&W6410"
	depends on ATAGS
	select CPU_S3C6410
	select S3C64XX_SETUP_FB_24BPP
	select S3C_DEV_FB
	help
	  Machine support for the A&W6410

config MACH_MINI6410
	bool "MINI6410"
	depends on ATAGS
	select CPU_S3C6410
	select S3C64XX_SETUP_FB_24BPP
	select S3C64XX_SETUP_SDHCI
	select S3C_DEV_FB
	select S3C_DEV_HSMMC
	select S3C_DEV_HSMMC1
	select S3C_DEV_NAND
	select S3C_DEV_USB_HOST
	select SAMSUNG_DEV_ADC
	select SAMSUNG_DEV_TS
	help
	  Machine support for the FriendlyARM MINI6410

config MACH_REAL6410
	bool "REAL6410"
	depends on ATAGS
	select CPU_S3C6410
	select S3C64XX_SETUP_FB_24BPP
	select S3C64XX_SETUP_SDHCI
	select S3C_DEV_FB
	select S3C_DEV_HSMMC
	select S3C_DEV_HSMMC1
	select S3C_DEV_NAND
	select S3C_DEV_USB_HOST
	select SAMSUNG_DEV_ADC
	select SAMSUNG_DEV_TS
	help
	  Machine support for the CoreWind REAL6410

config MACH_SMDK6410
	bool "SMDK6410"
	depends on ATAGS
	select CPU_S3C6410
	select HAVE_S3C2410_WATCHDOG if WATCHDOG
	select S3C64XX_SETUP_FB_24BPP
	select S3C64XX_SETUP_I2C1
	select S3C64XX_SETUP_IDE
	select S3C64XX_SETUP_KEYPAD
	select S3C64XX_SETUP_SDHCI
	select S3C64XX_SETUP_USB_PHY
	select S3C_DEV_FB
	select S3C_DEV_HSMMC
	select S3C_DEV_HSMMC1
	select S3C_DEV_I2C1
	select S3C_DEV_RTC
	select S3C_DEV_USB_HOST
	select S3C_DEV_USB_HSOTG
	select S3C_DEV_WDT
	select SAMSUNG_DEV_ADC
	select SAMSUNG_DEV_BACKLIGHT
	select SAMSUNG_DEV_IDE
	select SAMSUNG_DEV_KEYPAD
	select SAMSUNG_DEV_PWM
	select SAMSUNG_DEV_TS
	help
	  Machine support for the Samsung SMDK6410

# At least some of the SMDK6410s were shipped with the card detect
# for the MMC/SD slots connected to the same input. This means that
# either the boards need to be altered to have channel0 to an alternate
# configuration or that only one slot can be used.

choice
	prompt "SMDK6410 MMC/SD slot setup"
	depends on MACH_SMDK6410

config SMDK6410_SD_CH0
	bool "Use channel 0 only"
	depends on MACH_SMDK6410
	help
          Select CON7 (channel 0) as the MMC/SD slot, as
	  at least some SMDK6410 boards come with the
	  resistors fitted so that the card detects for
	  channels 0 and 1 are the same.

config SMDK6410_SD_CH1
	bool "Use channel 1 only"
	depends on MACH_SMDK6410
	help
          Select CON6 (channel 1) as the MMC/SD slot, as
	  at least some SMDK6410 boards come with the
	  resistors fitted so that the card detects for
	  channels 0 and 1 are the same.

endchoice

config SMDK6410_WM1190_EV1
	bool "Support Wolfson Microelectronics 1190-EV1 PMIC card"
	depends on MACH_SMDK6410
	depends on I2C=y
	select MFD_WM8350_I2C
	select REGULATOR
	select REGULATOR_WM8350
	help
	  The Wolfson Microelectronics 1190-EV1 is a WM835x based PMIC
	  and audio daughtercard for the Samsung SMDK6410 reference
	  platform.  Enabling this option will build support for this
	  module into the kernel.  The presence of the module will be
	  detected at runtime so the resulting kernel can be used
	  with or without the 1190-EV1 fitted.

config SMDK6410_WM1192_EV1
	bool "Support Wolfson Microelectronics 1192-EV1 PMIC card"
	depends on MACH_SMDK6410
	depends on I2C=y
	select MFD_WM831X
	select MFD_WM831X_I2C
	select REGULATOR
	select REGULATOR_WM831X
	help
	  The Wolfson Microelectronics 1192-EV1 is a WM831x based PMIC
	  daughtercard for the Samsung SMDK6410 reference platform.
	  Enabling this option will build support for this module into
	  the kernel.  The presence of the daughtercard will be
	  detected at runtime so the resulting kernel can be used
	  with or without the 1192-EV1 fitted.

config MACH_NCP
	bool "NCP"
	depends on ATAGS
	select CPU_S3C6410
	select S3C64XX_SETUP_I2C1
	select S3C_DEV_HSMMC1
	select S3C_DEV_I2C1
	help
          Machine support for the Samsung NCP

config MACH_HMT
	bool "Airgoo HMT"
	depends on ATAGS
	select CPU_S3C6410
	select S3C64XX_SETUP_FB_24BPP
	select S3C_DEV_FB
	select S3C_DEV_NAND
	select S3C_DEV_USB_HOST
	select SAMSUNG_DEV_PWM
	help
	  Machine support for the Airgoo HMT

config MACH_SMARTQ
	bool
	select CPU_S3C6410
	select S3C64XX_SETUP_FB_24BPP
	select S3C64XX_SETUP_SDHCI
	select S3C64XX_SETUP_USB_PHY
	select S3C_DEV_FB
	select S3C_DEV_HSMMC
	select S3C_DEV_HSMMC1
	select S3C_DEV_HSMMC2
	select S3C_DEV_HWMON
	select S3C_DEV_RTC
	select S3C_DEV_USB_HOST
	select S3C_DEV_USB_HSOTG
	select SAMSUNG_DEV_ADC
	select SAMSUNG_DEV_PWM
	select SAMSUNG_DEV_TS
	help
	    Shared machine support for SmartQ 5/7

config MACH_SMARTQ5
	bool "SmartQ 5"
	depends on ATAGS
	select MACH_SMARTQ
	help
	    Machine support for the SmartQ 5

config MACH_SMARTQ7
	bool "SmartQ 7"
	depends on ATAGS
	select MACH_SMARTQ
	help
	    Machine support for the SmartQ 7

config MACH_WLF_CRAGG_6410
	bool "Wolfson Cragganmore 6410"
	depends on ATAGS
	depends on I2C=y
	select CPU_S3C6410
	select LEDS_GPIO_REGISTER
	select S3C64XX_DEV_SPI0
	select S3C64XX_SETUP_FB_24BPP
	select S3C64XX_SETUP_I2C1
	select S3C64XX_SETUP_IDE
	select S3C64XX_SETUP_KEYPAD
	select S3C64XX_SETUP_SDHCI
	select S3C64XX_SETUP_SPI
	select S3C64XX_SETUP_USB_PHY
	select S3C_DEV_FB
	select S3C_DEV_HSMMC
	select S3C_DEV_HSMMC1
	select S3C_DEV_HSMMC2
	select S3C_DEV_I2C1
	select S3C_DEV_RTC
	select S3C_DEV_USB_HOST
	select S3C_DEV_USB_HSOTG
	select S3C_DEV_WDT
	select SAMSUNG_DEV_ADC
	select SAMSUNG_DEV_KEYPAD
	select SAMSUNG_DEV_PWM
	help
	  Machine support for the Wolfson Cragganmore S3C6410 variant.

config MACH_S3C64XX_DT
	bool "Samsung S3C6400/S3C6410 machine using Device Tree"
	select CLKSRC_OF
	select CPU_S3C6400
	select CPU_S3C6410
	select PINCTRL
	select PINCTRL_S3C64XX
	help
	  Machine support for Samsung S3C6400/S3C6410 machines with Device Tree
	  enabled.
	  Select this if a fdt blob is available for your S3C64XX SoC based
	  board.
	  Note: This is under development and not all peripherals can be
	  supported with this machine file.

endif