if ARCH_U300

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

comment "ST-Ericsson Mobile Platform Products"

config MACH_U300
	bool "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 memorys 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
