##
## This file is part of the coreboot project.
##
## Copyright (C) 2012 Ricardo Martins <rasmartins@gmail.com>
##
## This program is free software; you can redistribute it and/or
## modify it under the terms of the GNU General Public License as
## published by the Free Software Foundation; version 2 of
## the License.
##
## This program is distributed in the hope that it will be useful,
## but WITHOUT ANY WARRANTY; without even the implied warranty of
## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
## GNU General Public License for more details.
##

if BOARD_IEI_PM_LX2_800_R10

config BOARD_SPECIFIC_OPTIONS
	def_bool y
	select CPU_AMD_GEODE_LX
	select NORTHBRIDGE_AMD_LX
	select SOUTHBRIDGE_AMD_CS5536
	select SUPERIO_SMSC_SMSCSUPERIO
	select HAVE_PIRQ_TABLE
	select PIRQ_ROUTE
	select BOARD_ROMSIZE_KB_512
	select POWER_BUTTON_FORCE_ENABLE
	select PLL_MANUAL_CONFIG
	select CORE_GLIU_500_266

config MAINBOARD_DIR
	string
	default iei/pm-lx2-800-r10

config MAINBOARD_PART_NUMBER
	string
	default "PM-LX2-800-R10"

config IRQ_SLOT_COUNT
	int
	default 3

config PLLMSRlo
	hex
	default 0x07de0000

endif # BOARD_IEI_PM_LX2_800_R10
