
config BOARD_GOOGLE_BASEBOARD_REEF
	def_bool n
	select SOC_INTEL_APOLLOLAKE
	select BOARD_ROMSIZE_KB_16384
	select DRIVERS_GENERIC_MAX98357A
	select DRIVERS_I2C_DA7219
	select DRIVERS_I2C_GENERIC
	select DRIVERS_I2C_HID
	select DRIVERS_PS2_KEYBOARD
	select EC_GOOGLE_CHROMEEC
	select EC_GOOGLE_CHROMEEC_LPC
	select HAVE_ACPI_RESUME
	select HAVE_ACPI_TABLES
	select I2C_TPM
	select MAINBOARD_HAS_CHROMEOS
	select MAINBOARD_HAS_I2C_TPM_CR50
	select TPM2
	select GOOGLE_SMBIOS_MAINBOARD_VERSION
	select DRIVERS_INTEL_WIFI
	select USE_SAR
	select SAR_ENABLE
	select DSAR_ENABLE

if BOARD_GOOGLE_BASEBOARD_REEF

config BASEBOARD_REEF_LAPTOP
	def_bool n
	select SYSTEM_TYPE_LAPTOP

config DRIVER_TPM_I2C_BUS
	hex
	default 0x2

config DRIVER_TPM_I2C_ADDR
	hex
	default 0x50

config TPM_TIS_ACPI_INTERRUPT
	int
	default 60 # GPE0_DW1_28

config VBOOT
	select EC_GOOGLE_CHROMEEC_SWITCHES
	select HAS_RECOVERY_MRC_CACHE
	select MRC_CLEAR_NORMAL_CACHE_ON_RECOVERY_RETRAIN
	select VBOOT_LID_SWITCH if BASEBOARD_REEF_LAPTOP

config MAINBOARD_DIR
	string
	default google/reef

config VARIANT_DIR
	string
	default "reef" if BOARD_GOOGLE_REEF
	default "pyro" if BOARD_GOOGLE_PYRO
	default "sand" if BOARD_GOOGLE_SAND
	default "snappy" if BOARD_GOOGLE_SNAPPY
	default "nasher" if BOARD_GOOGLE_NASHER
	default "coral" if BOARD_GOOGLE_CORAL

config DEVICETREE
	string
	default "variants/pyro/devicetree.cb" if BOARD_GOOGLE_PYRO
	default "variants/sand/devicetree.cb" if BOARD_GOOGLE_SAND
	default "variants/snappy/devicetree.cb" if BOARD_GOOGLE_SNAPPY
	default "variants/baseboard/devicetree.cb"

config MAINBOARD_PART_NUMBER
	string
	default "Reef" if BOARD_GOOGLE_REEF
	default "Pyro" if BOARD_GOOGLE_PYRO
	default "Sand" if BOARD_GOOGLE_SAND
	default "Snappy" if BOARD_GOOGLE_SNAPPY
	default "Nasher" if BOARD_GOOGLE_NASHER
	default "Coral" if BOARD_GOOGLE_CORAL

config MAINBOARD_FAMILY
	string
	default "Google_Reef"

config GBB_HWID
	string
	depends on CHROMEOS
	default "REEF TEST 3240" if BOARD_GOOGLE_REEF
	default "PYRO TEST 0290" if BOARD_GOOGLE_PYRO
	default "SAND TEST 1904" if BOARD_GOOGLE_SAND
	default "SNAPPY TEST 1088" if BOARD_GOOGLE_SNAPPY
	default "NASHER TEST 4258" if BOARD_GOOGLE_NASHER
	default "CORAL TEST 8594" if BOARD_GOOGLE_CORAL

config MAX_CPUS
	int
	default 8

config UART_FOR_CONSOLE
	int
	default 2

config INCLUDE_NHLT_BLOBS
	bool "Include blobs for audio."
	select NHLT_DMIC_4CH_16B
	select NHLT_DA7219
	select NHLT_MAX98357

config PRERAM_CBMEM_CONSOLE_SIZE
	hex
	default 0xe00 if CHROMEOS
	default 0xc00

endif # BOARD_GOOGLE_REEF
