if BOARD_LIPPERT_LITERUNNER_LX

config BOARD_SPECIFIC_OPTIONS # dummy
	def_bool y
	select ARCH_X86
	select CPU_AMD_GEODE_LX
	select NORTHBRIDGE_AMD_LX
	select SOUTHBRIDGE_AMD_CS5536
	select SUPERIO_ITE_IT8712F
	select HAVE_DEBUG_SMBUS
	select HAVE_PIRQ_TABLE
	select PIRQ_ROUTE
	select UDELAY_TSC
	# Board is equipped with a 1 MB SPI flash, however, due to limitations
	# of the IT8712F Super I/O, only the top 512 KB are directly mapped.
	select BOARD_ROMSIZE_KB_512
	select POWER_BUTTON_FORCE_ENABLE
	select PLL_MANUAL_CONFIG
	select CORE_GLIU_500_400

config MAINBOARD_DIR
	string
	default lippert/literunner-lx

config MAINBOARD_PART_NUMBER
	string
	default "Cool LiteRunner-LX"

config IRQ_SLOT_COUNT
	int
	default 5

config ONBOARD_UARTS_RS485
	bool "Switch on-board serial ports 1 & 2 to RS485"
	default n
	help
	  If selected, the first two on-board serial ports will operate in RS485
	  mode instead of RS232.

config ONBOARD_IDE_SLAVE
	bool "Make on-board CF socket act as Slave"
	default n
	help
	  If selected, the on-board Compact Flash card socket will act as IDE
	  Slave instead of Master.

config PLLMSRlo
	hex
	default 0x00de6001

endif # BOARD_LIPPERT_LITERUNNER_LX
