Linux Audio

Check our new training course

Embedded Linux Audio

Check our new training course
with Creative Commons CC-BY-SA
lecture materials

Bootlin logo

Elixir Cross Referencer

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 HAS_I2C_RTIO
	bool
	help
	  This option must be selected by I2C controller drivers that optionally implement the RTIO
	  interface.

config I2C_RTIO
	bool "I2C RTIO API"
	depends on HAS_I2C_RTIO
	select RTIO
	help
	  API and implementations of I2C for RTIO

if I2C_RTIO
config I2C_RTIO_SQ_SIZE
	int "Submission queue size for blocking calls"
	default 4
	help
	  Blocking i2c calls when I2C_RTIO is enabled are copied into a per driver
	  submission queue. The queue depth determines the number of possible i2c_msg
	  structs that may be in the array given to i2c_transfer. A sensible default
	  is going to be 4 given the device address, register address, and a value
	  to be read or written.

config I2C_RTIO_CQ_SIZE
	int "Completion queue size for blocking calls"
	default 4
	help
	  Blocking i2c calls when I2C_RTIO is enabled are copied into a per driver
	  submission queue. The queue depth determines the number of possible i2c_msg
	  structs that may be in the array given to i2c_transfer. A sensible default
	  is going to be 4 given the device address, register address, and a value
	  to be read or written.

endif # I2C_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.bcm_iproc"
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"
source "drivers/i2c/Kconfig.ene"
source "drivers/i2c/Kconfig.max32"

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_LPI2C
	bool "MCUX LPI2C driver"
	default y
	depends on DT_HAS_NXP_IMX_LPI2C_ENABLED
	depends on CLOCK_CONTROL
	select HAS_I2C_RTIO
	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