244 lines
6.3 KiB
Plaintext
244 lines
6.3 KiB
Plaintext
# 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_ALLOW_NO_STOP_TRANSACTIONS
|
|
bool "Allows I2C transfers with no STOP on the last transaction [DEPRECATED]"
|
|
depends on !I2C_NRFX_TWI
|
|
depends on !I2C_NRFX_TWIM
|
|
depends on !I2C_STM32
|
|
depends on !I2C_GD32
|
|
depends on !I2C_ESP32
|
|
depends on !I2C_DW
|
|
select DEPRECATED
|
|
help
|
|
Allow I2C transactions with no STOP on the last message. This is
|
|
unsupported and can leave the bus in an unexpected state. The option
|
|
will be removed in Zephyr 4.1.
|
|
|
|
config I2C_RTIO
|
|
bool "I2C RTIO API"
|
|
select EXPERIMENTAL
|
|
select RTIO
|
|
select RTIO_WORKQ
|
|
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.renesas_ra"
|
|
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 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
|