if ARCH_OMAP2PLUS

menu "TI OMAP2/3/4 Specific Features"

config ARCH_OMAP2PLUS_TYPICAL
	bool "Typical OMAP configuration"
	default y
	select AEABI
	select REGULATOR
	select PM
	select PM_RUNTIME
	select VFP
	select NEON if ARCH_OMAP3 || ARCH_OMAP4
	select SERIAL_OMAP
	select SERIAL_OMAP_CONSOLE
	select I2C
	select I2C_OMAP
	select MFD_SUPPORT
	help
	  Compile a kernel suitable for booting most boards

config ARCH_OMAP2
	bool "TI OMAP2"
	depends on ARCH_OMAP2PLUS
	default y
	select CPU_V6

config ARCH_OMAP3
	bool "TI OMAP3"
	depends on ARCH_OMAP2PLUS
	default y
	select CPU_V7
	select USB_ARCH_HAS_EHCI
	select ARM_L1_CACHE_SHIFT_6 if !ARCH_OMAP4
	select ARCH_HAS_OPP
	select PM_OPP if PM

config ARCH_OMAP4
	bool "TI OMAP4"
	default y
	depends on ARCH_OMAP2PLUS
	select CPU_V7
	select ARM_GIC
	select PL310_ERRATA_588369
	select ARM_ERRATA_720789
	select ARCH_HAS_OPP
	select PM_OPP if PM

config ARCH_TI81XX
	bool "TI 81XX"
	depends on ARCH_OMAP2PLUS
	default n
	select CPU_V7
	select ARM_L1_CACHE_SHIFT_6 if !ARCH_OMAP4
	select ARCH_SUPPORTS_MSI

comment "OMAP Core Type"
	depends on ARCH_OMAP2

config ARCH_OMAP2420
	bool "OMAP2420 support"
	depends on ARCH_OMAP2
	select OMAP_DM_TIMER
	select ARCH_OMAP_OTG

config ARCH_OMAP2430
	bool "OMAP2430 support"
	depends on ARCH_OMAP2
	select ARCH_OMAP_OTG

config ARCH_OMAP3430
	bool "OMAP3430 support"
	depends on ARCH_OMAP3
	select ARCH_OMAP_OTG

config ARCH_TI816X
	bool "TI816X support"
	depends on ARCH_TI81XX
	default y

config ARCH_TI814X
	bool "TI814X support"
	depends on ARCH_TI81XX
	default y

config OMAP_PACKAGE_ZAF
       bool

config OMAP_PACKAGE_ZAC
       bool

config OMAP_PACKAGE_CBC
       bool

config OMAP_PACKAGE_CBB
       bool

config OMAP_PACKAGE_CUS
       bool

config OMAP_PACKAGE_CBP
       bool

config OMAP_PACKAGE_CBL
       bool

config OMAP_PACKAGE_CBS
       bool

comment "OMAP Board Type"
	depends on ARCH_OMAP2PLUS

config MACH_OMAP_GENERIC
	bool "Generic OMAP board"
	depends on ARCH_OMAP2

config MACH_OMAP2_TUSB6010
	bool
	depends on ARCH_OMAP2 && ARCH_OMAP2420
	default y if MACH_NOKIA_N8X0

config MACH_OMAP_H4
	bool "OMAP 2420 H4 board"
	depends on ARCH_OMAP2420
	select OMAP_PACKAGE_ZAF
	select OMAP_DEBUG_DEVICES

config MACH_OMAP_APOLLON
	bool "OMAP 2420 Apollon board"
	depends on ARCH_OMAP2420
	select OMAP_PACKAGE_ZAC

config MACH_OMAP_2430SDP
	bool "OMAP 2430 SDP board"
	depends on ARCH_OMAP2430
	select OMAP_PACKAGE_ZAC

config MACH_OMAP3_BEAGLE
	bool "OMAP3 BEAGLE board"
	depends on ARCH_OMAP3
	select OMAP_PACKAGE_CBB

config MACH_DEVKIT8000
	bool "DEVKIT8000 board"
	depends on ARCH_OMAP3
	select OMAP_PACKAGE_CUS

config MACH_OMAP_LDP
	bool "OMAP3 LDP board"
	depends on ARCH_OMAP3
	select OMAP_PACKAGE_CBB

config MACH_OMAP3530_LV_SOM
	bool "OMAP3 Logic 3530 LV SOM board"
	depends on ARCH_OMAP3
	select OMAP_PACKAGE_CBB
	default y
	help
	 Support for the LogicPD OMAP3530 SOM Development kit
	 for full description please see the products webpage at
	 http://www.logicpd.com/products/development-kits/texas-instruments-zoom%E2%84%A2-omap35x-development-kit

config MACH_OMAP3_TORPEDO
	bool "OMAP3 Logic 35x Torpedo board"
	depends on ARCH_OMAP3
	select OMAP_PACKAGE_CBB
	default y
	help
	 Support for the LogicPD OMAP35x Torpedo Development kit
	 for full description please see the products webpage at
	 http://www.logicpd.com/products/development-kits/zoom-omap35x-torpedo-development-kit

config MACH_OVERO
	bool "Gumstix Overo board"
	depends on ARCH_OMAP3
	select OMAP_PACKAGE_CBB

config MACH_OMAP3EVM
	bool "OMAP 3530 EVM board"
	depends on ARCH_OMAP3
	select OMAP_PACKAGE_CBB

 config MACH_DIAMOND
 	bool "Nest Labs Diamond board"
 	depends on ARCH_OMAP3 
	select GENERIC_CMOS_UPDATE
	select OMAP_PACKAGE_CUS

choice
	prompt "Nest Labs Diamond Board Type"
	depends on MACH_DIAMOND
	default MACH_DIAMOND_BOARD_MULTI

config MACH_DIAMOND_BOARD_DEVELOPMENT
        bool "Development Board"
	help
	  This configures and builds a kernel that will support
	  the revision 0, A, B and C Diamond development boards.

	  Select this if you want to build a kernel for these boards.

config MACH_DIAMOND_BOARD_PROTOTYPE
        bool "Prototype Board"
	help
	  This configures and builds a kernel that will support the
	  Diamond prototype board.

	  Select this if you want to build a kernel for this board.

config MACH_DIAMOND_BOARD_EVT
        bool "EVT Board"
	help
	  This configures and builds a kernel that will support the
	  Diamond EVT board.

	  Select this if you want to build a kernel for this board.

config MACH_DIAMOND_BOARD_MULTI
        bool "Multiple Boards"
	help
	  This configures and builds a kernel that will support any
	  Diamond board.

	  Select this if you want to build a kernel for any board.
endchoice

config MACH_J49
	bool "Nest Labs J49 board"
 	depends on ARCH_OMAP3 
	select GENERIC_CMOS_UPDATE
	select OMAP_PACKAGE_CUS

choice
	prompt "Nest Labs J49 Board Type"
	depends on MACH_J49
	default MACH_J49_BOARD_MULTI

config MACH_J49_BOARD_PROTOTYPE
        bool "Prototype Board"
	help
	  This configures and builds a kernel that will support the
	  J49 prototype board.

	  Select this if you want to build a kernel for this board.

config MACH_J49_BOARD_EVT
        bool "EVT Board"
	help
	  This configures and builds a kernel that will support the
	  J49 EVT board.

	  Select this if you want to build a kernel for this board.

config MACH_J49_BOARD_DVT
        bool "DVT Board"
	help
	  This configures and builds a kernel that will support the
	  J49 DVT board.

	  Select this if you want to build a kernel for this board.

config MACH_J49_BOARD_PVT
        bool "PVT Board"
	help
	  This configures and builds a kernel that will support the
	  J49 PVT board.

	  Select this if you want to build a kernel for this board.

config MACH_J49_BOARD_MULTI
        bool "Multiple Boards"
	help
	  This configures and builds a kernel that will support any
	  J49 board.

	  Select this if you want to build a kernel for any board.
endchoice

config MACH_OMAP3517EVM
	bool "OMAP3517/ AM3517 EVM board"
	depends on ARCH_OMAP3
	default y
	select OMAP_PACKAGE_CBB

config MACH_CRANEBOARD
	bool "AM3517/05 CRANE board"
	depends on ARCH_OMAP3
	select OMAP_PACKAGE_CBB

config MACH_OMAP3_PANDORA
	bool "OMAP3 Pandora"
	depends on ARCH_OMAP3
	default y
	select OMAP_PACKAGE_CBB
	select REGULATOR_FIXED_VOLTAGE

config MACH_OMAP3_TOUCHBOOK
	bool "OMAP3 Touch Book"
	depends on ARCH_OMAP3
	default y
	select BACKLIGHT_CLASS_DEVICE

config MACH_OMAP_3430SDP
	bool "OMAP 3430 SDP board"
	depends on ARCH_OMAP3
	default y
	select OMAP_PACKAGE_CBB

config MACH_NOKIA_N800
       bool

config MACH_NOKIA_N810
       bool

config MACH_NOKIA_N810_WIMAX
       bool

config MACH_NOKIA_N8X0
	bool "Nokia N800/N810"
	depends on ARCH_OMAP2420
	default y
	select OMAP_PACKAGE_ZAC
	select MACH_NOKIA_N800
	select MACH_NOKIA_N810
	select MACH_NOKIA_N810_WIMAX

config MACH_NOKIA_RM680
	bool "Nokia RM-680 board"
	depends on ARCH_OMAP3
	default y
	select OMAP_PACKAGE_CBB

config MACH_NOKIA_RX51
	bool "Nokia RX-51 board"
	depends on ARCH_OMAP3
	default y
	select OMAP_PACKAGE_CBB

config MACH_OMAP_ZOOM2
	bool "OMAP3 Zoom2 board"
	depends on ARCH_OMAP3
	default y
	select OMAP_PACKAGE_CBB
	select SERIAL_CORE_CONSOLE
	select REGULATOR_FIXED_VOLTAGE

config MACH_OMAP_ZOOM3
	bool "OMAP3630 Zoom3 board"
	depends on ARCH_OMAP3
	default y
	select OMAP_PACKAGE_CBP
	select SERIAL_CORE_CONSOLE
	select REGULATOR_FIXED_VOLTAGE

config MACH_CM_T35
	bool "CompuLab CM-T35 module"
	depends on ARCH_OMAP3
	default y
	select OMAP_PACKAGE_CUS

config MACH_CM_T3517
	bool "CompuLab CM-T3517 module"
	depends on ARCH_OMAP3
	default y
	select OMAP_PACKAGE_CBB

config MACH_IGEP0020
	bool "IGEP v2 board"
	depends on ARCH_OMAP3
	default y
	select OMAP_PACKAGE_CBB

config MACH_IGEP0030
	bool "IGEP OMAP3 module"
	depends on ARCH_OMAP3
	default y
	select OMAP_PACKAGE_CBB

config MACH_SBC3530
	bool "OMAP3 SBC STALKER board"
	depends on ARCH_OMAP3
	default y
	select OMAP_PACKAGE_CUS

config MACH_OMAP_3630SDP
	bool "OMAP3630 SDP board"
	depends on ARCH_OMAP3
	default y
	select OMAP_PACKAGE_CBP

config MACH_OMAP_4430SDP
	bool "OMAP 4430 SDP board"
	default y
	depends on ARCH_OMAP4
	select OMAP_PACKAGE_CBL
	select OMAP_PACKAGE_CBS

config MACH_OMAP4_PANDA
	bool "OMAP4 Panda Board"
	default y
	depends on ARCH_OMAP4
	select OMAP_PACKAGE_CBL
	select OMAP_PACKAGE_CBS

comment "TI81XX Board Type"
	depends on ARCH_TI81XX

config MACH_TI8148EVM
	bool "TI8148 Evaluation Module"
	default y
	depends on ARCH_TI814X

config MACH_TI8168EVM
	bool "TI8168 Evaluation Module"
	default y
	depends on ARCH_TI816X

config OMAP3_EMU
	bool "OMAP3 debugging peripherals"
	depends on ARCH_OMAP3
	select OC_ETM
	help
	  Say Y here to enable debugging hardware of omap3

config OMAP3_SDRC_AC_TIMING
	bool "Enable SDRC AC timing register changes"
	depends on ARCH_OMAP3
	default n
	help
	  If you know that none of your system initiators will attempt to
	  access SDRAM during CORE DVFS, select Y here.  This should boost
	  SDRAM performance at lower CORE OPPs.  There are relatively few
	  users who will wish to say yes at this point - almost everyone will
	  wish to say no.  Selecting yes without understanding what is
	  going on could result in system crashes;

endmenu

endif
