if ARCH_OMAP1

menu "TI OMAP1 specific features"

comment "OMAP Core Type"
	depends on ARCH_OMAP1

config ARCH_OMAP730
	depends on ARCH_OMAP1
	bool "OMAP730 Based System"
	select CPU_ARM926T
	select ARCH_OMAP_OTG

config ARCH_OMAP850
	depends on ARCH_OMAP1
	bool "OMAP850 Based System"
	select CPU_ARM926T
	select ARCH_OMAP_OTG

config ARCH_OMAP15XX
	depends on ARCH_OMAP1
	default y
	bool "OMAP15xx Based System"
	select CPU_ARM925T

config ARCH_OMAP16XX
	depends on ARCH_OMAP1
	bool "OMAP16xx Based System"
	select CPU_ARM926T
	select ARCH_OMAP_OTG

comment "OMAP Board Type"
	depends on ARCH_OMAP1

config MACH_OMAP_INNOVATOR
	bool "TI Innovator"
	depends on ARCH_OMAP1 && (ARCH_OMAP15XX || ARCH_OMAP16XX)
	select OMAP_MCBSP
	help
          TI OMAP 1510 or 1610 Innovator board support. Say Y here if you
          have such a board.

config MACH_OMAP_H2
	bool "TI H2 Support"
	depends on ARCH_OMAP1 && ARCH_OMAP16XX
	select OMAP_MCBSP
    	help
	  TI OMAP 1610/1611B H2 board support. Say Y here if you have such
	  a board.

config MACH_OMAP_H3
	bool "TI H3 Support"
	depends on ARCH_OMAP1 && ARCH_OMAP16XX
    	help
	  TI OMAP 1710 H3 board support. Say Y here if you have such
	  a board.

config MACH_OMAP_HTCWIZARD
	bool "HTC Wizard"
	depends on ARCH_OMAP850
	help
	  HTC Wizard smartphone support (AKA QTEK 9100, ...)

config MACH_HERALD
	bool "HTC Herald"
	depends on ARCH_OMAP850
	help
	  HTC Herald smartphone support (AKA T-Mobile Wing, ...)

config MACH_OMAP_OSK
	bool "TI OSK Support"
	depends on ARCH_OMAP1 && ARCH_OMAP16XX
	select OMAP_MCBSP
    	help
	  TI OMAP 5912 OSK (OMAP Starter Kit) board support. Say Y here
          if you have such a board.

config OMAP_OSK_MISTRAL
	bool "Mistral QVGA board Support"
	depends on MACH_OMAP_OSK
    	help
	  The OSK supports an optional add-on board with a Quarter-VGA
	  touchscreen, PDA-ish buttons, a resume button, bicolor LED,
	  and camera connector.  Say Y here if you have this board.

config MACH_OMAP_PERSEUS2
	bool "TI Perseus2"
	depends on ARCH_OMAP1 && ARCH_OMAP730
    	help
	  Support for TI OMAP 730 Perseus2 board. Say Y here if you have such
	  a board.

config MACH_OMAP_FSAMPLE
	bool "TI F-Sample"
	depends on ARCH_OMAP1 && ARCH_OMAP730
    	help
	  Support for TI OMAP 850 F-Sample board. Say Y here if you have such
	  a board.

config MACH_VOICEBLUE
	bool "Voiceblue"
	depends on ARCH_OMAP1 && ARCH_OMAP15XX
	help
	  Support for Voiceblue GSM/VoIP gateway. Say Y here if you have
	  such a board.

config MACH_OMAP_PALMTE
	bool "Palm Tungsten E"
	depends on ARCH_OMAP1 && ARCH_OMAP15XX
	help
	  Support for the Palm Tungsten E PDA.  To boot the kernel, you'll
	  need a PalmOS compatible bootloader; check out
	  http://palmtelinux.sourceforge.net/ for more information.
	  Say Y here if you have this PDA model, say N otherwise.

config MACH_OMAP_PALMZ71
	bool "Palm Zire71"
	depends on ARCH_OMAP1 && ARCH_OMAP15XX
	help
	 Support for the Palm Zire71 PDA. To boot the kernel,
	 you'll need a PalmOS compatible bootloader; check out
	 http://hackndev.com/palm/z71 for more information.
	 Say Y here if you have such a PDA, say N otherwise.

config MACH_OMAP_PALMTT
	bool "Palm Tungsten|T"
	depends on ARCH_OMAP1 && ARCH_OMAP15XX
	help
	  Support for the Palm Tungsten|T PDA. To boot the kernel, you'll
	  need a PalmOS compatible bootloader (Garux); check out
	  http://garux.sourceforge.net/ for more information.
	  Say Y here if you have this PDA model, say N otherwise.

config MACH_SX1
	bool "Siemens SX1"
	depends on ARCH_OMAP1 && ARCH_OMAP15XX
	help
	  Support for the Siemens SX1 phone. To boot the kernel,
	  you'll need a SX1 compatible bootloader; check out
	  http://forum.oslik.ru and
	  http://www.handhelds.org/moin/moin.cgi/SiemensSX1
	  for more information.
	  Say Y here if you have such a phone, say NO otherwise.

config MACH_NOKIA770
	bool "Nokia 770"
	depends on ARCH_OMAP1 && ARCH_OMAP16XX
	help
	  Support for the Nokia 770 Internet Tablet. Say Y here if you
	  have such a device.

config MACH_AMS_DELTA
	bool "Amstrad E3 (Delta)"
	depends on ARCH_OMAP1 && ARCH_OMAP15XX
	help
	  Support for the Amstrad E3 (codename Delta) videophone. Say Y here
	  if you have such a device.

config AMS_DELTA_FIQ
	bool "Fast Interrupt Request (FIQ) support for the E3"
	depends on MACH_AMS_DELTA
	select FIQ
	help
	  Provide a FIQ handler for the E3.
	  This allows for fast handling of interrupts generated
	  by the clock line of the E3 mailboard (or a PS/2 keyboard)
	  connected to the GPIO based external keyboard port.

config MACH_OMAP_GENERIC
	bool "Generic OMAP board"
	depends on ARCH_OMAP1 && (ARCH_OMAP15XX || ARCH_OMAP16XX)
	help
          Support for generic OMAP-1510, 1610 or 1710 board with
          no FPGA. Can be used as template for porting Linux to
          custom OMAP boards. Say Y here if you have a custom
          board.

comment "OMAP CPU Speed"
	depends on ARCH_OMAP1

config OMAP_CLOCKS_SET_BY_BOOTLOADER
	bool "OMAP clocks set by bootloader"
	depends on ARCH_OMAP1
	help
	  Enable this option to prevent the kernel from overriding the clock
	  frequencies programmed by bootloader for MPU, DSP, MMUs, TC,
	  internal LCD controller and MPU peripherals.

config OMAP_ARM_216MHZ
	bool "OMAP ARM 216 MHz CPU (1710 only)"
        depends on ARCH_OMAP1 && ARCH_OMAP16XX
        help
          Enable 216 MHz clock for OMAP1710 CPU. If unsure, say N.

config OMAP_ARM_195MHZ
	bool "OMAP ARM 195 MHz CPU"
	depends on ARCH_OMAP1 && (ARCH_OMAP730 || ARCH_OMAP850)
	help
          Enable 195MHz clock for OMAP CPU. If unsure, say N.

config OMAP_ARM_192MHZ
	bool "OMAP ARM 192 MHz CPU"
	depends on ARCH_OMAP1 && ARCH_OMAP16XX
	help
          Enable 192MHz clock for OMAP CPU. If unsure, say N.

config OMAP_ARM_182MHZ
	bool "OMAP ARM 182 MHz CPU"
	depends on ARCH_OMAP1 && (ARCH_OMAP730 || ARCH_OMAP850)
	help
          Enable 182MHz clock for OMAP CPU. If unsure, say N.

config OMAP_ARM_168MHZ
	bool "OMAP ARM 168 MHz CPU"
	depends on ARCH_OMAP1 && (ARCH_OMAP15XX || ARCH_OMAP16XX || ARCH_OMAP730 || ARCH_OMAP850)
	help
          Enable 168MHz clock for OMAP CPU. If unsure, say N.

config OMAP_ARM_150MHZ
	bool "OMAP ARM 150 MHz CPU"
	depends on ARCH_OMAP1 && ARCH_OMAP15XX
	help
	  Enable 150MHz clock for OMAP CPU. If unsure, say N.

config OMAP_ARM_120MHZ
	bool "OMAP ARM 120 MHz CPU"
	depends on ARCH_OMAP1 && (ARCH_OMAP15XX || ARCH_OMAP16XX || ARCH_OMAP730 || ARCH_OMAP850)
	help
          Enable 120MHz clock for OMAP CPU. If unsure, say N.

config OMAP_ARM_96MHZ
	bool "OMAP ARM 96 MHz CPU"
	depends on ARCH_OMAP1 && (ARCH_OMAP15XX || ARCH_OMAP16XX || ARCH_OMAP730 || ARCH_OMAP850)
	help
          Enable 96MHz clock for OMAP CPU. If unsure, say N.

config OMAP_ARM_60MHZ
	bool "OMAP ARM 60 MHz CPU"
	depends on ARCH_OMAP1 && (ARCH_OMAP15XX || ARCH_OMAP16XX || ARCH_OMAP730 || ARCH_OMAP850)
        default y
	help
          Enable 60MHz clock for OMAP CPU. If unsure, say Y.

config OMAP_ARM_30MHZ
	bool "OMAP ARM 30 MHz CPU"
	depends on ARCH_OMAP1 && (ARCH_OMAP15XX || ARCH_OMAP16XX || ARCH_OMAP730 || ARCH_OMAP850)
	help
          Enable 30MHz clock for OMAP CPU. If unsure, say N.

endmenu

endif
