#
# For a description of the syntax of this configuration file,
# see misc/tools/kconfig-language.txt.
#

comment "LPC31xx Configuration Options"

choice
	prompt "LPC31 Chip Selection"
	default ARCH_CHIP_LPC3131
	depends on ARCH_CHIP_LPC31XX

config ARCH_CHIP_LPC3130
	bool "LPC3130"
	select ARCH_HAVE_EXTNAND
	select ARCH_HAVE_EXTSRAM0
	select ARCH_HAVE_EXTSRAM1
	select ARCH_HAVE_EXTDRAM

config ARCH_CHIP_LPC3131
	bool "LPC3131"
	select ARCH_HAVE_EXTNAND
	select ARCH_HAVE_EXTSRAM0
	select ARCH_HAVE_EXTSRAM1
	select ARCH_HAVE_EXTDRAM

config ARCH_CHIP_LPC3152
	bool "LPC3152"
	select ARCH_HAVE_EXTNAND
	select ARCH_HAVE_EXTSRAM0
	select ARCH_HAVE_EXTSRAM1
	select ARCH_HAVE_EXTDRAM

config ARCH_CHIP_LPC3154
	bool "LPC3154"
	select ARCH_HAVE_EXTNAND
	select ARCH_HAVE_EXTSRAM0
	select ARCH_HAVE_EXTSRAM1
	select ARCH_HAVE_EXTDRAM

endchoice # LPC31xx Configuration Options

choice
	prompt "Toolchain Selection"
	default LPC31_BUILDROOT if !HOST_WINDOWS
	default LPC31_CODESOURCERYW if HOST_WINDOWS
	depends on ARCH_CHIP_LPC31XX

config LPC31_CODESOURCERYW
	bool "CodeSourcery GNU toolchain under Windows"
	depends on HOST_WINDOWS

config LPC31_CODESOURCERYL
	bool "CodeSourcery GNU toolchain under Linux"
	depends on HOST_LINUX

config LPC31_DEVKITARM
	bool "devkitARM GNU toolchain"
	depends on HOST_WINDOWS

config LPC31_BUILDROOT
	bool "Buildroot"
	depends on !WINDOWS_NATIVE

endchoice # Toolchain Selection

config LPC31_SDRAMHCLK
	int "External SDRAM HCLK"
	depends on LPC31_EXTSDRAM
	---help---
		The SDRAM HCLK may be specified here (if not, it will be calculated).

menu "LPC31xx Peripheral Support"

config LPC31_UART
	bool "UART"
	default n
	select ARCH_HAVE_UART

config LPC31_SPI
	bool "SPI"
	default n

config LPC31_USB
	bool "USB"
	default n

config LPC31_MCI
	bool "MCI"
	default n
	select ARCH_HAVE_SDIO

endmenu # LPC31xx Peripheral Support

menu "External Memory Configuration"

config ARCH_HAVE_EXTNAND
	bool

config ARCH_HAVE_EXTDRAM
	bool

config ARCH_HAVE_EXTSRAM0
	bool

config ARCH_HAVE_EXTSRAM1
	bool

config LPC31_EXTNAND
	bool "Configure external NAND"
	default n
	depends on ARCH_HAVE_EXTNAND
	---help---
		Configure external NAND memory and, if applicable, map then external
		NAND into the memory map.

if LPC31_EXTNAND

config LPC31_EXTNANDSIZE
	int "External NAND size"
	default 0
	---help---
		Size of the external NAND in bytes.

endif # LPC31_EXTNAND

config LPC31_EXTDRAM
	bool "Configure external DRAM"
	default n
	depends on ARCH_HAVE_EXTDRAM
	---help---
		Configure external DRAM memory and, if applicable, map then external
		DRAM into the memory map.

if LPC31_EXTDRAM

config LPC31_EXTDRAMSIZE
	int "External SDRAM size"
	default 0
	---help---
		Size of the external SDRAM in bytes.

choice
	prompt "SDRAM Width Selection"
	default LPC31_SDRAM_16BIT

config LPC31_SDRAM_8BIT
	bool "8-bit"

config LPC31_SDRAM_16BIT
	bool "16-bit"

config LPC31_SDRAM_32BIT
	bool "32-bit"

endchoice # SDRAM Width Selection

config LPC31_EXTDRAMHEAP
	bool "Add external SDRAM to the heap"
	default y
	---help---
		Add the external SDRAM into the heap.

endif # LPC31_EXTDRAM

config LPC31_EXTSRAM0
	bool "Configure external SRAM (Bank 0)"
	default n
	depends on ARCH_HAVE_EXTSRAM0
	---help---
		Configure external SRAM Bank 0 memory and, if applicable, map then
		external SRAM Bank 0 into the memory map.

if LPC31_EXTSRAM0

config LPC31_EXTSRAM0SIZE
	int "External SRAM size"
	default 0
	---help---
		Size of the external SRAM Bank 0 in bytes.

config LPC31_EXTSRAM0HEAP
	bool "Add external SRAM (Bank 0) to the heap"
	default y
	---help---
		Add external SRAM Bank 0 into the heap.

endif # LPC31_EXTSRAM0

config LPC31_EXTSRAM1
	bool "Configure external SRAM (Bank 1)"
	default n
	depends on ARCH_HAVE_EXTSRAM1
	---help---
		Configure external SRAM Bank 1 memory and, if applicable, map then
		external SRAM Bank 1 into the memory map.

if LPC31_EXTSRAM1

config LPC31_EXTSRAM1SIZE
	int "External SRAM1 size"
	default 0
	---help---
		Size of the external SRAM Bank 1 in bytes.

config LPC31_EXTSRAM1HEAP
	bool "Add external SRAM (Bank 1) to the heap"
	default y
	---help---
		Add external SRAM Bank 1 into the heap.

endif # LPC31_EXTSRAM1
endmenu # External Memory Configuration

menu "LPC31xx UART Configuration"
	depends on LPC31_UART

config LPC31_UART_DIVADDVAL
	int "BAUD pre-scaler divisor"
	---help---
		BAUD pre-scaler divisor

config LPC31_UART_DIVISOR
	int "BAUD divisor"
	---help---
		BAUD divisor

config LPC31_UART_MULVAL
	int "BAUD multiplier"
	---help---
		BAUD multiplier

endmenu # LPC31xx UART Configuration

menu "USB device driver options"

config LPC31_USBDEV_EP0_MAXSIZE
	int "EP0 Max packet size"
	depends on USBDEV
	default 64
	---help---
		Endpoint 0 maximum packet size.  Default: 64

config LPC31_USBDEV_FRAME_INTERRUPT
	bool "USB frame interrupt"
	depends on USBDEV
	default n
	---help---
		Handle USB Start-Of-Frame events.  Enable reading SOF from interrupt
		handler vs. simply reading on demand. Probably a bad idea... Unless
		there is some issue with sampling the SOF from hardware asynchronously.

config LPC31_USBDEV_DMA
	bool "Enable USB device DMA"
	depends on USBDEV
	default n
	---help---
		Enable lpc31xx-specific DMA support

config LPC31_USBDEV_REGDEBUG
	bool "Register level debug"
	depends on USBDEV && DEBUG
	default n
	---help---
		Output detailed register-level USB device debug information.  Requires also DEBUG.

endmenu # USB device driver options

menu "SPI device driver options"

config LPC31_SPI_REGDEBUG
	bool "SPI Register level debug"
	depends on LPC31_SPI && DEBUG
	default n
	---help---
		Output detailed register-level SPI device debug information.  Requires also DEBUG.

endmenu # SPI device driver options
