# SPDX-License-Identifier: GPL-2.0-only
#
# [31mCONFIG_I2C[0m subsystem configuration
#
menu "I2C support"
config [31mCONFIG_I2C[0m
tristate "I2C support"
select [31mCONFIG_RT_MUTEXES[0m
select [31mCONFIG_IRQ_DOMAIN[0m
---help---
[31mCONFIG_I2C[0m (pronounce: I-squared-[31mCONFIG_C[0m) 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 [31mCONFIG_I2C[0m protocol. More
information is contained in the directory <file:Documentation/i2c/>,
especially in the file called "summary" there.
Both [31mCONFIG_I2C[0m and SMBus are supported here. You will need this for
hardware sensors support, and also for Video For Linux support.
If you want [31mCONFIG_I2C[0m support, you should say Y here and also to the
specific driver for your bus adapter(s) below.
This [31mCONFIG_I2C[0m support can also be built as a module. If so, the module
will be called i2c-core.
config [31mCONFIG_ACPI_I2C_OPREGION[0m
bool "ACPI I2C Operation region support"
depends on [31mCONFIG_I2C[0m=y && [31mCONFIG_ACPI[0m
default y
help
Say Y here if you want to enable [31mCONFIG_ACPI[0m [31mCONFIG_I2C[0m operation region support.
Operation Regions allow firmware (BIOS) code to access [31mCONFIG_I2C[0m slave devices,
such as smart batteries through an [31mCONFIG_I2C[0m host controller driver.
if [31mCONFIG_I2C[0m
config [31mCONFIG_I2C_BOARDINFO[0m
bool
default y
config [31mCONFIG_I2C_COMPAT[0m
bool "Enable compatibility bits for old user-space"
default y
help
Say Y here if you intend to run lm-sensors 3.1.1 or older, or any
other user-space package which expects i2c adapters to be class
devices. If you don't know, say Y.
config [31mCONFIG_I2C_CHARDEV[0m
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 [31mCONFIG_I2C[0m 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 [31mCONFIG_I2C_MUX[0m
tristate "I2C bus multiplexing support"
help
Say Y here if you want the [31mCONFIG_I2C[0m core to support the ability to
handle multiplexed [31mCONFIG_I2C[0m bus topologies, by presenting each
multiplexed segment as a [31mCONFIG_I2C[0m adapter.
This support is also available as a module. If so, the module
will be called i2c-mux.
source "drivers/i2c/muxes/Kconfig"
config [31mCONFIG_I2C_HELPER_AUTO[0m
bool "Autoselect pertinent helper modules"
default y
help
Some [31mCONFIG_I2C[0m bus drivers require so-called "I2C algorithm" modules
to work. These are basically software-only abstractions of generic
[31mCONFIG_I2C[0m 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 [31mCONFIG_I2C[0m bus drivers.
In doubt, say Y.
config [31mCONFIG_I2C_SMBUS[0m
tristate "SMBus-specific protocols" if ![31mCONFIG_I2C_HELPER_AUTO[0m
help
Say Y here if you want support for SMBus extensions to the [31mCONFIG_I2C[0m
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 [31mCONFIG_I2C_STUB[0m
tristate "I2C/SMBus Test Stub"
depends on m
default 'n'
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 [31mCONFIG_I2C_SLAVE[0m
bool "I2C slave support"
if [31mCONFIG_I2C_SLAVE[0m
config [31mCONFIG_I2C_SLAVE_EEPROM[0m
tristate "I2C eeprom slave driver"
endif
config [31mCONFIG_I2C_DEBUG_CORE[0m
bool "I2C Core debugging messages"
help
Say Y here if you want the [31mCONFIG_I2C[0m core to produce a bunch of debug
messages to the system log. Select this if you are having a
problem with [31mCONFIG_I2C[0m support and want to see more of what is going on.
config [31mCONFIG_I2C_DEBUG_ALGO[0m
bool "I2C Algorithm debugging messages"
help
Say Y here if you want the [31mCONFIG_I2C[0m algorithm drivers to produce a bunch
of debug messages to the system log. Select this if you are having
a problem with [31mCONFIG_I2C[0m support and want to see more of what is going
on.
config [31mCONFIG_I2C_DEBUG_BUS[0m
bool "I2C Bus debugging messages"
depends on [31mCONFIG_HAS_IOMEM[0m
help
Say Y here if you want the [31mCONFIG_I2C[0m bus drivers to produce a bunch of
debug messages to the system log. Select this if you are having
a problem with [31mCONFIG_I2C[0m support and want to see more of what is going
on.
endif # [31mCONFIG_I2C[0m
endmenu