forked from Qortal/Brooklyn
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
164 lines
5.1 KiB
164 lines
5.1 KiB
# 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_COMPAT |
|
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 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_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 eeprom 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
|
|
|