# I2C configuration options

# Copyright (c) 2015 Intel Corporation
# SPDX-License-Identifier: Apache-2.0

#
# I2C options
#
menuconfig I2C
	bool "I2C Drivers"
	help
	  Enable I2C Driver Configuration

if I2C

config I2C_SHELL
	bool "Enable I2C Shell"
	default n
	depends on SHELL
	help
	  Enable I2C Shell.

	  The I2C shell currently support scanning and bus recovery.

config I2C_SLAVE
	bool "Enable I2C Slave"
	default n
	help
	  Enable I2C Slave.

	  The I2C shell currently support scanning and bus recovery.

config I2C_ASYNC
	bool "Enable I2C asynchronous interfaces"
	default n
	help
	  If you say Y here, you will get support the I2C asynchronous interfaces.

config I2C_ASYNC_MSG_INTERNAL_BUFFER
	bool "Enable I2C message use internal TX/RX buffer to transfer"
	default n
	depends on I2C_ASYNC
	help
	  If you say Y here, I2C async interfaces will copy tx/rx data into internal buffer to transfer.
	  Otherwise, it is necessary that user buffer shall be a global address.

# Include these first so that any properties (e.g. defaults) below can be
# overridden (by defining symbols in multiple locations)
source "drivers/i2c/Kconfig.acts"

config I2C_INIT_PRIORITY
	int "Init priority"
	default 20
	help
	  I2C device driver initialization priority.


module = I2C
module-str = i2c
source "subsys/logging/Kconfig.template.log_config"

config I2C_GECKO
	bool "Gecko I2C driver"
	depends on HAS_SILABS_GECKO
	select SOC_GECKO_I2C
	help
	  Enable the SiLabs Gecko I2C bus driver.

config I2C_SAM_TWIHS
	bool "Atmel SAM (TWIHS) I2C driver"
	depends on SOC_FAMILY_SAM
	help
	  Enable Atmel SAM MCU Family (TWIHS) I2C bus driver.

config I2C_SAM_TWIM
	bool "Atmel SAM (TWIM) I2C driver"
	depends on SOC_SERIES_SAM4L
	help
	  Enable Atmel SAM MCU Family (TWIM) I2C bus driver.

config I2C_SAM_TWI
	bool "Atmel SAM (TWI) I2C driver"
	depends on SOC_FAMILY_SAM
	help
	  Enable Atmel SAM MCU Family (TWI) I2C bus driver.

config I2C_MCUX
	bool "MCUX I2C driver"
	depends on HAS_MCUX
	help
	  Enable the mcux I2C driver.

config I2C_MCUX_FLEXCOMM
	bool "MCUX FLEXCOMM I2C driver"
	depends on HAS_MCUX_FLEXCOMM
	help
	  Enable the mcux flexcomm i2c driver.

config I2C_MCUX_LPI2C
	bool "MCUX LPI2C driver"
	depends on HAS_MCUX_LPI2C && CLOCK_CONTROL
	help
	  Enable the mcux LPI2C driver.

config I2C_IMX
	bool "i.MX I2C driver"
	depends on HAS_IMX_I2C
	help
	  Enable the i.MX I2C driver.

config I2C_CC32XX
	bool "CC32XX I2C driver"
	depends on SOC_SERIES_CC32XX
	help
	  Enable the CC32XX I2C driver.

config I2C_BITBANG
	bool
	help
	  Enable library used for software driven (bit banging) I2C support

config I2C_NIOS2
	bool "Nios-II I2C driver"
	depends on HAS_ALTERA_HAL
	help
	  Enable the Nios-II I2C driver.

config I2C_RV32M1_LPI2C
	bool "RV32M1 LPI2C driver"
	depends on HAS_RV32M1_LPI2C && CLOCK_CONTROL
	help
	  Enable the RV32M1 LPI2C driver.

endif # I2C