blob: c0bcda7909027ba4f3e593a933bf937e99839cd0 [file] [log] [blame]
# 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