## SPDX-License-Identifier: GPL-2.0-only

config EC_GOOGLE_CHROMEEC
	bool
	select EC_SUPPORTS_DPTF_TEVT
	help
	  Google's Chrome EC

config EC_GOOGLE_CHROMEEC_ACPI_MEMMAP
	depends on EC_GOOGLE_CHROMEEC_LPC
	def_bool n
	help
	  When defined, ACPI accesses EC memmap data on ports 66h/62h. When
	  not defined, the memmap data is instead accessed on 900h-9ffh via
	  the LPC bus.

config EC_GOOGLE_CHROMEEC_ACPI_USB_PORT_POWER
	depends on EC_GOOGLE_CHROMEEC
	def_bool n
	help
	  Expose methods for enabling and disabling port power on individual USB
	  ports through the EC.

config EC_GOOGLE_CHROMEEC_BOARDID
	depends on EC_GOOGLE_CHROMEEC
	def_bool n
	help
	  Provides common routine for reading boardid from Chrome EC.

config EC_GOOGLE_CHROMEEC_I2C
	depends on EC_GOOGLE_CHROMEEC
	bool
	default n
	help
	  Google's Chrome EC via I2C bus.

config EC_GOOGLE_CHROMEEC_I2C_BUS
	depends on EC_GOOGLE_CHROMEEC_I2C
	hex "I2C bus for Google's Chrome EC"

config EC_GOOGLE_CHROMEEC_I2C_CHIP
	depends on EC_GOOGLE_CHROMEEC_I2C
	hex
	default 0x1e

config EC_GOOGLE_CHROMEEC_I2C_PROTO3
	depends on EC_GOOGLE_CHROMEEC_I2C
	bool
	default n
	help
	  Use only proto3 for i2c EC communication.

config EC_GOOGLE_CHROMEEC_ESPI
	depends on EC_GOOGLE_CHROMEEC && ARCH_X86  # Needs Plug-and-play.
	def_bool n
	select EC_GOOGLE_CHROMEEC_LPC
	help
	  Google Chrome EC via eSPI bus.

	  The EC communication code is the same between eSPI and LPC, so
	  this option simply enables the LPC EC code.  The eSPI device
	  still needs to correctly configure the bus transactions.

config EC_GOOGLE_CHROMEEC_LPC
	depends on EC_GOOGLE_CHROMEEC && ARCH_X86  # Needs Plug-and-play.
	def_bool n
	help
	  Google Chrome EC via LPC bus.

config EC_GOOGLE_CHROMEEC_MEC
	depends on EC_GOOGLE_CHROMEEC_LPC
	def_bool n
	select EC_GOOGLE_COMMON_MEC
	help
	  Microchip EC variant for LPC register access.

config EC_GOOGLE_CHROMEEC_PD
	depends on EC_GOOGLE_CHROMEEC
	def_bool n
	help
	  Indicates that Google's Chrome USB PD chip is present.

config EC_GOOGLE_CHROMEEC_SPI
	depends on EC_GOOGLE_CHROMEEC
	def_bool n
	help
	  Google's Chrome EC via SPI bus.

config EC_GOOGLE_CHROMEEC_SPI_BUS
	depends on EC_GOOGLE_CHROMEEC_SPI
	hex

config EC_GOOGLE_CHROMEEC_SPI_WAKEUP_DELAY_US
	depends on EC_GOOGLE_CHROMEEC_SPI
	int
	default 0
	help
	  Force delay after asserting /CS to allow EC to wakeup.

config EC_GOOGLE_CHROMEEC_SPI_CHIP
	depends on EC_GOOGLE_CHROMEEC_SPI
	hex
	default 0x0

config EC_GOOGLE_CHROMEEC_SKUID
	def_bool n
	help
	  Provides common routine for reporting the skuid to ChromeOS.

config EC_GOOGLE_CHROMEEC_BOARDNAME
	depends on EC_GOOGLE_CHROMEEC
	string "Chrome EC board name for EC"
	default ""
	help
	  The board name used in the Chrome EC code base to build
	  the EC firmware.  If set, the coreboot build with also
	  build the EC firmware and add it to the image.

config EC_GOOGLE_CHROMEEC_PD_BOARDNAME
	depends on EC_GOOGLE_CHROMEEC_PD
	string "Chrome EC board name for PD"
	default ""
	help
	  The board name used in the Chrome EC code base to build
	  the PD firmware.  If set, the coreboot build with also
	  build the EC firmware and add it to the image.

config EC_GOOGLE_CHROMEEC_RTC
	depends on EC_GOOGLE_CHROMEEC
	bool "Enable ChromeOS EC RTC"
	help
	  Enable support for the real-time clock on the ChromeOS EC. This
	  uses the EC_CMD_RTC_GET_VALUE command to read the current time.

choice
	prompt "Chrome EC firmware source"
	depends on EC_GOOGLE_CHROMEEC
	default EC_GOOGLE_CHROMEEC_FIRMWARE_BUILTIN if EC_GOOGLE_CHROMEEC_BOARDNAME != ""
	default EC_GOOGLE_CHROMEEC_FIRMWARE_NONE

	config EC_GOOGLE_CHROMEEC_FIRMWARE_NONE
	bool "No EC firmware is included"
	help
	  Disable building and including any EC firmware in the image.

	config EC_GOOGLE_CHROMEEC_FIRMWARE_EXTERNAL
	bool "External EC firmware is included"
	help
	  Include EC firmware binary in the image from an external source.
	  It is expected to be built externally.

	config EC_GOOGLE_CHROMEEC_FIRMWARE_BUILTIN
	bool "Builtin EC firmware is included"
	help
	  Build and include EC firmware binary in the image.

endchoice

config EC_GOOGLE_CHROMEEC_FIRMWARE_FILE
	string "Chrome EC firmware path and filename"
	depends on EC_GOOGLE_CHROMEEC_FIRMWARE_EXTERNAL
	help
	  The path and filename of the EC firmware file to use.

choice
	prompt "Chrome EC firmware source for PD"
	depends on EC_GOOGLE_CHROMEEC_PD
	default EC_GOOGLE_CHROMEEC_PD_FIRMWARE_BUILTIN if EC_GOOGLE_CHROMEEC_PD_BOARDNAME != ""
	default EC_GOOGLE_CHROMEEC_PD_FIRMWARE_NONE

	config EC_GOOGLE_CHROMEEC_PD_FIRMWARE_NONE
	bool "No PD firmware is included"
	help
	  Disable building and including any PD firmware in the image.

	config EC_GOOGLE_CHROMEEC_PD_FIRMWARE_EXTERNAL
	bool "External PD firmware is included"
	help
	  Include PD firmware binary in the image from an external source.
	  It is expected to be built externally.

	config EC_GOOGLE_CHROMEEC_PD_FIRMWARE_BUILTIN
	bool "Builtin PD firmware is included"
	help
	  Build and include PD firmware binary in the image.

endchoice

config EC_GOOGLE_CHROMEEC_PD_FIRMWARE_FILE
	string "Chrome EC firmware path and filename for PD"
	depends on EC_GOOGLE_CHROMEEC_PD_FIRMWARE_EXTERNAL
	help
	  The path and filename of the PD firmware file to use.

config EC_GOOGLE_CHROMEEC_SWITCHES
	depends on EC_GOOGLE_CHROMEEC && VBOOT
	bool
	help
	  Enable support for ChromeOS mode switches provided by the ChromeOS
	  EC.

config EC_GOOGLE_CHROMEEC_INCLUDE_SSFC_IN_FW_CONFIG
	depends on FW_CONFIG_SOURCE_CHROMEEC_CBI
	bool
	help
	  Fetch Second Source Factory Cache from CBI EEPROM and add it in the most significant
	  32 bits of firmware configuration.

config EC_GOOGLE_CHROMEEC_AUTO_FAN_CTRL
	depends on EC_GOOGLE_CHROMEEC
	bool "Enable automatic fan control"
	help
	  Put the fan in auto mode at boot.

source "src/ec/google/chromeec/*/Kconfig"
