# 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" 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.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" 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