if BOARD_LENOVO_X200 || BOARD_LENOVO_X301

config BOARD_SPECIFIC_OPTIONS
	def_bool y
	select SYSTEM_TYPE_LAPTOP
	select CPU_INTEL_SOCKET_BGA956
	select NORTHBRIDGE_INTEL_GM45
	select SOUTHBRIDGE_INTEL_I82801IX
	select EC_LENOVO_PMH7
	select EC_LENOVO_H8
	select H8_HAS_BAT_TRESHOLDS_IMPL
	select NO_UART_ON_SUPERIO
	select BOARD_ROMSIZE_KB_8192
	select DRIVERS_GENERIC_IOAPIC
	select HAVE_MP_TABLE
	select HAVE_ACPI_TABLES
	select EC_ACPI
	select HAVE_OPTION_TABLE
	select HAVE_CMOS_DEFAULT
	select HAVE_ACPI_RESUME
	select INTEL_INT15
	select SUPERIO_NSC_PC87382
	select DRIVERS_LENOVO_WACOM
	select MAINBOARD_HAS_LIBGFXINIT
	select MAINBOARD_USES_IFD_GBE_REGION

config VBOOT
	select VBOOT_VBNV_CMOS
	select GBB_FLAG_DISABLE_LID_SHUTDOWN
	select GBB_FLAG_DISABLE_PD_SOFTWARE_SYNC
	select GBB_FLAG_DISABLE_EC_SOFTWARE_SYNC
	select GBB_FLAG_DISABLE_FWMP

config VBOOT_SLOTS_RW_A
	default y

config VBOOT_VBNV_OFFSET
	hex
	default 0x82

config FMDFILE
	string
	default "src/mainboard/$(CONFIG_MAINBOARD_DIR)/vboot-rwa.fmd" if VBOOT

config MAINBOARD_DIR
	string
	default "lenovo/x200"

config VARIANT_DIR
	string
	default "x200" if BOARD_LENOVO_X200
	default "x301" if BOARD_LENOVO_X301

config MAINBOARD_PART_NUMBER
	string
	default "ThinkPad X200" if BOARD_LENOVO_X200
	default "ThinkPad X301" if BOARD_LENOVO_X301

config OVERRIDE_DEVICETREE
	string
	default "variants/$(CONFIG_VARIANT_DIR)/overridetree.cb"

config USBDEBUG_HCD_INDEX
	int
	default 2

config CBFS_SIZE
	hex
	default 0x200000

config PS2K_EISAID
	default "LEN0010" if BOARD_LENOVO_X200

config PS2M_EISAID
	default "IBM3780" if BOARD_LENOVO_X200

endif # BOARD_LENOVO_X200 || BOARD_LENOVO_X301
