# Copyright (c) 2020 ITE Corporation. All Rights Reserved.
# SPDX-License-Identifier: Apache-2.0

config I2C_ITE_IT8XXX2
	bool "ITE IT8XXX2 I2C driver"
	default y
	depends on DT_HAS_ITE_IT8XXX2_I2C_ENABLED
	select PINCTRL
	help
	  Enable I2C support on it8xxx2_evb.
	  Supported Speeds: 100kHz, 400kHz and 1MHz.
	  This driver supports repeated start.

if I2C_ITE_IT8XXX2

config I2C_IT8XXX2_FIFO_MODE
	bool "IT8XXX2 I2C FIFO mode"
	default y
	help
	  This is an option to enable FIFO mode which can reduce
	  the time between each byte to improve the I2C bus clock
	  stretching during I2C transaction.
	  The I2C controller supports two 32-bytes FIFOs,
	  FIFO1 supports channel A. FIFO2 supports channel B.
	  I2C FIFO mode of it8xxx2 can support I2C APIs including:
	  i2c_write(), i2c_read(), i2c_burst_read.

endif # I2C_ITE_IT8XXX2

config I2C_ITE_ENHANCE
	bool "ITE IT8XXX2 I2C enhance driver"
	default y
	depends on DT_HAS_ITE_ENHANCE_I2C_ENABLED
	select PINCTRL
	help
	  This option can enable the enhance I2C
	  of IT8XXX2 and support three channels.

if I2C_ITE_ENHANCE

config I2C_IT8XXX2_CQ_MODE
	bool "IT8XXX2 I2C command queue mode"
	default y
	select SOC_IT8XXX2_CPU_IDLE_GATING
	help
	  This is an option to enable command queue mode which can
	  reduce the time between each byte to improve the I2C bus
	  clock stretching during I2C transaction.
	  I2C command queue mode of it8xxx2 can support I2C APIs
	  including: i2c_write(), i2c_read(), i2c_burst_read.

config I2C_CQ_MODE_MAX_PAYLOAD_SIZE
	int "It is allowed to configure the size up to 2K bytes."
	range 32 2048
	default 64
	help
	  This is the command queue mode payload size which size
	  up to 2k bytes.

endif # I2C_ITE_ENHANCE

if I2C_TARGET

config I2C_TARGET_IT8XXX2_MAX_BUF_SIZE
	int "It is allowed to configure the size up to 2044 bytes."
	range 4 2044
	default 256

config I2C_TARGET_BUFFER_MODE
	default y

endif # I2C_TARGET
