Linux Audio

Check our new training course

Loading...
# I2C configuration options

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

#
# I2C options
#
menuconfig I2C
	bool "Inter-Integrated Circuit (I2C) bus drivers"
	help
	  Enable I2C Driver Configuration

if I2C

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

	  The I2C shell supports scanning, bus recovery, I2C read and write
	  operations.

config I2C_STATS
	bool "I2C device Stats"
	depends on STATS
	help
	  Enable I2C Stats.

config I2C_DUMP_MESSAGES
	bool "Log I2C transactions"
	depends on LOG
	depends on I2C_LOG_LEVEL_DBG
	help
	  Dump every I2C transaction to the system log as debug level log messages.

config I2C_DUMP_MESSAGES_ALLOWLIST
	bool "Use allowlist for logging of I2C transactions"
	depends on I2C_DUMP_MESSAGES
	depends on DT_HAS_ZEPHYR_I2C_DUMP_ALLOWLIST_ENABLED
	help
	  Use allowlist to specify which devices transactions should be logged.
	  The allowlist is defined in the devicetree using the compatible string of
	  "zephyr,i2c-dump-allowlist" and phandles to the devices that need to be traced.
	  Example of devicetree node:
	  i2c-dump-allowlist {
	    compatible = "zephyr,i2c-dump-allowlist";
	    devices = < &display0 >, < &sensor3 >;
	  };

config I2C_CALLBACK
	bool "I2C asynchronous callback API"
	help
	  API and implementations of i2c_transfer_cb.

config I2C_RTIO
	bool "I2C RTIO API"
	help
	  API and implementations of I2C for RTIO

# Include these first so that any properties (e.g. defaults) below can be
# overridden (by defining symbols in multiple locations)
source "drivers/i2c/Kconfig.b91"
source "drivers/i2c/Kconfig.cc13xx_cc26xx"
source "drivers/i2c/Kconfig.dw"
source "drivers/i2c/Kconfig.esp32"
source "drivers/i2c/target/Kconfig"
source "drivers/i2c/Kconfig.gpio"
source "drivers/i2c/Kconfig.xec"
source "drivers/i2c/Kconfig.nrfx"
source "drivers/i2c/Kconfig.i2c_emul"
source "drivers/i2c/Kconfig.it8xxx2"
source "drivers/i2c/Kconfig.sbcon"
source "drivers/i2c/Kconfig.sifive"
source "drivers/i2c/Kconfig.stm32"
source "drivers/i2c/Kconfig.sam0"
source "drivers/i2c/Kconfig.sam_twihs"
source "drivers/i2c/Kconfig.litex"
source "drivers/i2c/Kconfig.lpc11u6x"
source "drivers/i2c/Kconfig.npcx"
source "drivers/i2c/Kconfig.test"
source "drivers/i2c/Kconfig.rcar"
source "drivers/i2c/Kconfig.tca954x"
source "drivers/i2c/Kconfig.gd32"
source "drivers/i2c/Kconfig.ifx_cat1"
source "drivers/i2c/Kconfig.ifx_xmc4"
source "drivers/i2c/Kconfig.andes_atciic100"
source "drivers/i2c/Kconfig.sc18im704"
source "drivers/i2c/Kconfig.smartbond"
source "drivers/i2c/Kconfig.xilinx_axi"
source "drivers/i2c/Kconfig.mchp_mss"
source "drivers/i2c/Kconfig.sedi"
source "drivers/i2c/Kconfig.ambiq"
source "drivers/i2c/Kconfig.numaker"
source "drivers/i2c/Kconfig.mcux"

config I2C_INIT_PRIORITY
	int "Init priority"
	default KERNEL_INIT_PRIORITY_DEVICE
	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"
	default y
	depends on DT_HAS_SILABS_GECKO_I2C_ENABLED
	select SOC_GECKO_I2C
	help
	  Enable the SiLabs Gecko I2C bus driver.

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

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

config I2C_MCUX
	bool "MCUX I2C driver"
	default y
	depends on DT_HAS_NXP_KINETIS_I2C_ENABLED
	select PINCTRL
	help
	  Enable the mcux I2C driver.

config I2C_MCUX_FLEXCOMM
	bool "MCUX FLEXCOMM I2C driver"
	default y
	depends on DT_HAS_NXP_LPC_I2C_ENABLED
	select PINCTRL
	help
	  Enable the mcux flexcomm i2c driver.

config I2C_MCUX_LPI2C
	bool "MCUX LPI2C driver"
	default y
	depends on DT_HAS_NXP_IMX_LPI2C_ENABLED
	depends on CLOCK_CONTROL
	select PINCTRL
	help
	  Enable the mcux LPI2C driver.

config I2C_MCUX_LPI2C_BUS_RECOVERY
	bool "Bus recovery support"
	depends on I2C_MCUX_LPI2C && PINCTRL
	select I2C_BITBANG
	help
	  Enable LPI2C driver bus recovery support via GPIO bitbanging.

config I2C_IMX
	bool "i.MX I2C driver"
	default y
	depends on DT_HAS_FSL_IMX21_I2C_ENABLED
	help
	  Enable the i.MX I2C driver.

config I2C_CC32XX
	bool "CC32XX I2C driver"
	default y
	depends on DT_HAS_TI_CC32XX_I2C_ENABLED
	select PINCTRL
	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"
	default y
	depends on DT_HAS_ALTR_NIOS2_I2C_ENABLED
	help
	  Enable the Nios-II I2C driver.

config I2C_RV32M1_LPI2C
	bool "RV32M1 LPI2C driver"
	default y
	depends on DT_HAS_OPENISA_RV32M1_LPI2C_ENABLED
	depends on CLOCK_CONTROL
	select PINCTRL
	help
	  Enable the RV32M1 LPI2C driver.

config GPIO_I2C_SWITCH
	bool "GPIO controlled I2C bus switch"
	default y
	depends on DT_HAS_GPIO_I2C_SWITCH_ENABLED
	help
	  Enable GPIO controlled I2C bus switch driver.

endif # I2C