if ARCH_U300

menu "ST-Ericsson AB U300/U330/U335/U365 Platform"

comment "ST-Ericsson Mobile Platform Products"

config MACH_U300
	bool "U300"
	select PINCTRL
	select PINMUX_U300

comment "ST-Ericsson U300/U330/U335/U365 Feature Selections"

choice
	prompt "U300/U330/U335/U365 system type"
	default MACH_U300_BS2X
	---help---
	You need to select the target system, i.e. the
	U300/U330/U335/U365 board that you want to compile your kernel
	for.

config MACH_U300_BS2X
	bool "S26/S26/B25/B26 Test Products"
	depends on MACH_U300
	help
		Select this if you're developing on the
		S26/S25 test products. (Also works on
		B26/B25 big boards.)

config MACH_U300_BS330
	bool "S330/B330 Test Products"
	depends on MACH_U300
	help
		Select this if you're developing on the
		S330/B330 test products.

config MACH_U300_BS335
	bool "S335/B335 Test Products"
	depends on MACH_U300
	help
		Select this if you're developing on the
		S335/B335 test products.

config MACH_U300_BS365
	bool "S365/B365 Test Products"
	depends on MACH_U300
	help
		Select this if you're developing on the
		S365/B365 test products.

endchoice

choice
	prompt "Memory configuration"
	default MACH_U300_SINGLE_RAM
	---help---
	You have to config the kernel according to the physical memory
	configuration.

config MACH_U300_SINGLE_RAM
	bool "Single RAM"
	help
		Select this if you want support for Single RAM phones.

config MACH_U300_DUAL_RAM
	bool "Dual RAM"
	help
		Select this if you want support for Dual RAM phones.
		This is two RAM memories on different EMIFs.
endchoice

config U300_DEBUG
	bool "Debug support for U300"
	depends on PM
	help
		Debug support for U300 in sysfs, procfs etc.

config MACH_U300_SEMI_IS_SHARED
	bool "The SEMI is used by both the access and application side"
	depends on MACH_U300
	help
		This makes it possible to use the SEMI (Shared External
		Memory Interface) from both from access and application
		side.

config MACH_U300_SPIDUMMY
	bool "SSP/SPI dummy chip"
	select SPI
	select SPI_MASTER
	select SPI_PL022
	help
		This creates a small kernel module that creates a dummy
		SPI device to be used for loopback tests. Regularly used
		to test reference designs. If you're not testing SPI,
		you don't need it. Selecting this will activate the
		SPI framework and ARM PL022 support.

comment "All the settings below must match the bootloader's settings"

config MACH_U300_ACCESS_MEM_SIZE
       int "Access CPU memory allocation"
       range 7 25
       depends on MACH_U300_SINGLE_RAM
       default 13
       help
		How much memory in MiB that the Access side CPU has allocated

config MACH_U300_2MB_ALIGNMENT_FIX
       bool "2MiB alignment fix"
       depends on MACH_U300_SINGLE_RAM
       default y
       help
		If yes and the Access side CPU has allocated an odd size in
		MiB, this fix gives you one MiB extra that would otherwise be
		lost due to Linux 2 MiB alignment policy.

endmenu

endif
