1# I2C configuration options 2 3# Copyright (c) 2015 Intel Corporation 4# SPDX-License-Identifier: Apache-2.0 5 6# 7# I2C options 8# 9menuconfig I2C 10 bool "Inter-Integrated Circuit (I2C) bus drivers" 11 help 12 Enable I2C Driver Configuration 13 14if I2C 15 16config I2C_SHELL 17 bool "I2C Shell" 18 depends on SHELL 19 help 20 Enable I2C Shell. 21 22 The I2C shell supports scanning, bus recovery, I2C read and write 23 operations. 24 25config I2C_STATS 26 bool "I2C device Stats" 27 depends on STATS 28 help 29 Enable I2C Stats. 30 31config I2C_DUMP_MESSAGES 32 bool "Log I2C transactions" 33 depends on LOG 34 depends on I2C_LOG_LEVEL_DBG 35 help 36 Dump every I2C transaction to the system log as debug level log messages. 37 38config I2C_DUMP_MESSAGES_ALLOWLIST 39 bool "Use allowlist for logging of I2C transactions" 40 depends on I2C_DUMP_MESSAGES 41 depends on DT_HAS_ZEPHYR_I2C_DUMP_ALLOWLIST_ENABLED 42 help 43 Use allowlist to specify which devices transactions should be logged. 44 The allowlist is defined in the devicetree using the compatible string of 45 "zephyr,i2c-dump-allowlist" and phandles to the devices that need to be traced. 46 Example of devicetree node: 47 i2c-dump-allowlist { 48 compatible = "zephyr,i2c-dump-allowlist"; 49 devices = < &display0 >, < &sensor3 >; 50 }; 51 52config I2C_CALLBACK 53 bool "I2C asynchronous callback API" 54 help 55 API and implementations of i2c_transfer_cb. 56 57config I2C_RTIO 58 bool "I2C RTIO API" 59 help 60 API and implementations of I2C for RTIO 61 62# Include these first so that any properties (e.g. defaults) below can be 63# overridden (by defining symbols in multiple locations) 64source "drivers/i2c/Kconfig.b91" 65source "drivers/i2c/Kconfig.cc13xx_cc26xx" 66source "drivers/i2c/Kconfig.dw" 67source "drivers/i2c/Kconfig.esp32" 68source "drivers/i2c/target/Kconfig" 69source "drivers/i2c/Kconfig.gpio" 70source "drivers/i2c/Kconfig.xec" 71source "drivers/i2c/Kconfig.nrfx" 72source "drivers/i2c/Kconfig.i2c_emul" 73source "drivers/i2c/Kconfig.it8xxx2" 74source "drivers/i2c/Kconfig.sbcon" 75source "drivers/i2c/Kconfig.sifive" 76source "drivers/i2c/Kconfig.stm32" 77source "drivers/i2c/Kconfig.sam0" 78source "drivers/i2c/Kconfig.sam_twihs" 79source "drivers/i2c/Kconfig.litex" 80source "drivers/i2c/Kconfig.lpc11u6x" 81source "drivers/i2c/Kconfig.npcx" 82source "drivers/i2c/Kconfig.test" 83source "drivers/i2c/Kconfig.rcar" 84source "drivers/i2c/Kconfig.tca954x" 85source "drivers/i2c/Kconfig.gd32" 86source "drivers/i2c/Kconfig.ifx_cat1" 87source "drivers/i2c/Kconfig.ifx_xmc4" 88source "drivers/i2c/Kconfig.andes_atciic100" 89source "drivers/i2c/Kconfig.sc18im704" 90source "drivers/i2c/Kconfig.smartbond" 91source "drivers/i2c/Kconfig.xilinx_axi" 92source "drivers/i2c/Kconfig.mchp_mss" 93source "drivers/i2c/Kconfig.sedi" 94source "drivers/i2c/Kconfig.ambiq" 95source "drivers/i2c/Kconfig.numaker" 96source "drivers/i2c/Kconfig.mcux" 97 98config I2C_INIT_PRIORITY 99 int "Init priority" 100 default KERNEL_INIT_PRIORITY_DEVICE 101 help 102 I2C device driver initialization priority. 103 104 105module = I2C 106module-str = i2c 107source "subsys/logging/Kconfig.template.log_config" 108 109config I2C_GECKO 110 bool "Gecko I2C driver" 111 default y 112 depends on DT_HAS_SILABS_GECKO_I2C_ENABLED 113 select SOC_GECKO_I2C 114 help 115 Enable the SiLabs Gecko I2C bus driver. 116 117config I2C_SAM_TWIM 118 bool "Atmel SAM (TWIM) I2C driver" 119 default y 120 depends on DT_HAS_ATMEL_SAM_I2C_TWIM_ENABLED 121 help 122 Enable Atmel SAM MCU Family (TWIM) I2C bus driver. 123 124config I2C_SAM_TWI 125 bool "Atmel SAM (TWI) I2C driver" 126 default y 127 depends on DT_HAS_ATMEL_SAM_I2C_TWI_ENABLED 128 help 129 Enable Atmel SAM MCU Family (TWI) I2C bus driver. 130 131config I2C_MCUX 132 bool "MCUX I2C driver" 133 default y 134 depends on DT_HAS_NXP_KINETIS_I2C_ENABLED 135 select PINCTRL 136 help 137 Enable the mcux I2C driver. 138 139config I2C_MCUX_FLEXCOMM 140 bool "MCUX FLEXCOMM I2C driver" 141 default y 142 depends on DT_HAS_NXP_LPC_I2C_ENABLED 143 select PINCTRL 144 help 145 Enable the mcux flexcomm i2c driver. 146 147config I2C_MCUX_LPI2C 148 bool "MCUX LPI2C driver" 149 default y 150 depends on DT_HAS_NXP_IMX_LPI2C_ENABLED 151 depends on CLOCK_CONTROL 152 select PINCTRL 153 help 154 Enable the mcux LPI2C driver. 155 156config I2C_MCUX_LPI2C_BUS_RECOVERY 157 bool "Bus recovery support" 158 depends on I2C_MCUX_LPI2C && PINCTRL 159 select I2C_BITBANG 160 help 161 Enable LPI2C driver bus recovery support via GPIO bitbanging. 162 163config I2C_IMX 164 bool "i.MX I2C driver" 165 default y 166 depends on DT_HAS_FSL_IMX21_I2C_ENABLED 167 help 168 Enable the i.MX I2C driver. 169 170config I2C_CC32XX 171 bool "CC32XX I2C driver" 172 default y 173 depends on DT_HAS_TI_CC32XX_I2C_ENABLED 174 select PINCTRL 175 help 176 Enable the CC32XX I2C driver. 177 178config I2C_BITBANG 179 bool 180 help 181 Enable library used for software driven (bit banging) I2C support 182 183config I2C_NIOS2 184 bool "Nios-II I2C driver" 185 default y 186 depends on DT_HAS_ALTR_NIOS2_I2C_ENABLED 187 help 188 Enable the Nios-II I2C driver. 189 190config I2C_RV32M1_LPI2C 191 bool "RV32M1 LPI2C driver" 192 default y 193 depends on DT_HAS_OPENISA_RV32M1_LPI2C_ENABLED 194 depends on CLOCK_CONTROL 195 select PINCTRL 196 help 197 Enable the RV32M1 LPI2C driver. 198 199config GPIO_I2C_SWITCH 200 bool "GPIO controlled I2C bus switch" 201 default y 202 depends on DT_HAS_GPIO_I2C_SWITCH_ENABLED 203 help 204 Enable GPIO controlled I2C bus switch driver. 205 206endif # I2C 207