| # SPDX-License-Identifier: GPL-2.0-only |
| # |
| # I2C subsystem configuration |
| # |
| |
| menu "I2C support" |
| |
| config I2C |
| tristate "I2C support" |
| select RT_MUTEXES |
| select IRQ_DOMAIN |
| help |
| I2C (pronounce: I-squared-C) is a slow serial bus protocol used in |
| many micro controller applications and developed by Philips. SMBus, |
| or System Management Bus is a subset of the I2C protocol. More |
| information is contained in the directory <file:Documentation/i2c/>, |
| especially in the file called "summary" there. |
| |
| Both I2C and SMBus are supported here. You will need this for |
| hardware sensors support, and also for Video For Linux support. |
| |
| If you want I2C support, you should say Y here and also to the |
| specific driver for your bus adapter(s) below. |
| |
| This I2C support can also be built as a module. If so, the module |
| will be called i2c-core. |
| |
| config ACPI_I2C_OPREGION |
| bool "ACPI I2C Operation region support" |
| depends on I2C=y && ACPI |
| default y |
| help |
| Say Y here if you want to enable ACPI I2C operation region support. |
| Operation Regions allow firmware (BIOS) code to access I2C slave devices, |
| such as smart batteries through an I2C host controller driver. |
| |
| if I2C |
| |
| config I2C_BOARDINFO |
| bool |
| default y |
| |
| config I2C_CHARDEV |
| tristate "I2C device interface" |
| help |
| Say Y here to use i2c-* device files, usually found in the /dev |
| directory on your system. They make it possible to have user-space |
| programs use the I2C bus. Information on how to do this is |
| contained in the file <file:Documentation/i2c/dev-interface.rst>. |
| |
| This support is also available as a module. If so, the module |
| will be called i2c-dev. |
| |
| config I2C_MUX |
| tristate "I2C bus multiplexing support" |
| help |
| Say Y here if you want the I2C core to support the ability to |
| handle multiplexed I2C bus topologies, by presenting each |
| multiplexed segment as a I2C adapter. |
| |
| This support is also available as a module. If so, the module |
| will be called i2c-mux. |
| |
| source "drivers/i2c/muxes/Kconfig" |
| |
| config I2C_ATR |
| tristate "I2C Address Translator (ATR) support" if COMPILE_TEST |
| help |
| Enable support for I2C Address Translator (ATR) chips. |
| |
| An ATR allows accessing multiple I2C busses from a single |
| physical bus via address translation instead of bus selection as |
| i2c-muxes do. |
| |
| config I2C_HELPER_AUTO |
| bool "Autoselect pertinent helper modules" |
| default y |
| help |
| Some I2C bus drivers require so-called "I2C algorithm" modules |
| to work. These are basically software-only abstractions of generic |
| I2C interfaces. This option will autoselect them so that you don't |
| have to care. |
| |
| Unselect this only if you need to enable additional helper |
| modules, for example for use with external I2C bus drivers. |
| |
| In doubt, say Y. |
| |
| config I2C_SMBUS |
| tristate "SMBus-specific protocols" if !I2C_HELPER_AUTO |
| help |
| Say Y here if you want support for SMBus extensions to the I2C |
| specification. At the moment, two extensions are supported: |
| the SMBus Alert protocol and the SMBus Host Notify protocol. |
| |
| This support is also available as a module. If so, the module |
| will be called i2c-smbus. |
| |
| source "drivers/i2c/algos/Kconfig" |
| source "drivers/i2c/busses/Kconfig" |
| |
| config I2C_STUB |
| tristate "I2C/SMBus Test Stub" |
| depends on m |
| help |
| This module may be useful to developers of SMBus client drivers, |
| especially for certain kinds of sensor chips. |
| |
| If you do build this module, be sure to read the notes and warnings |
| in <file:Documentation/i2c/i2c-stub.rst>. |
| |
| If you don't know what to do here, definitely say N. |
| |
| config I2C_SLAVE |
| bool "I2C slave support" |
| help |
| This enables Linux to act as an I2C slave device. Note that your I2C |
| bus master driver also needs to support this functionality. Please |
| read Documentation/i2c/slave-interface.rst for further details. |
| |
| if I2C_SLAVE |
| |
| config I2C_SLAVE_EEPROM |
| tristate "I2C eeprom slave driver" |
| help |
| This backend makes Linux behave like an I2C EEPROM. Please read |
| Documentation/i2c/slave-eeprom-backend.rst for further details. |
| |
| config I2C_SLAVE_TESTUNIT |
| tristate "I2C testunit driver" |
| help |
| This backend can be used to trigger test cases for I2C bus masters |
| which require a remote device with certain capabilities, e.g. |
| multi-master, SMBus Host Notify, etc. Please read |
| Documentation/i2c/slave-testunit-backend.rst for further details. |
| |
| endif |
| |
| config I2C_DEBUG_CORE |
| bool "I2C Core debugging messages" |
| help |
| Say Y here if you want the I2C core to produce a bunch of debug |
| messages to the system log. Select this if you are having a |
| problem with I2C support and want to see more of what is going on. |
| |
| config I2C_DEBUG_ALGO |
| bool "I2C Algorithm debugging messages" |
| help |
| Say Y here if you want the I2C algorithm drivers to produce a bunch |
| of debug messages to the system log. Select this if you are having |
| a problem with I2C support and want to see more of what is going |
| on. |
| |
| config I2C_DEBUG_BUS |
| bool "I2C Bus debugging messages" |
| depends on HAS_IOMEM |
| help |
| Say Y here if you want the I2C bus drivers to produce a bunch of |
| debug messages to the system log. Select this if you are having |
| a problem with I2C support and want to see more of what is going |
| on. |
| |
| endif # I2C |
| |
| endmenu |