drivers/i2c/Kconfig

Source file repositories/reference/linux-study-clean/drivers/i2c/Kconfig

File Facts

System
Linux kernel
Corpus path
drivers/i2c/Kconfig
Extension
[no extension]
Size
5233 bytes
Lines
166
Domain
Driver Families
Bucket
drivers/i2c
Inferred role
Driver Families: build/configuration rule
Status
atlas-only

Why This File Exists

Repeatable hardware-adapter layer. Deep compatibility for every driver is out of scope; this atlas records patterns, probe lifecycles, bus glue, IRQ/DMA usage, and links back to core abstractions.

Dependency Surface

Detected Declarations

Annotated Snippet

# 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.

Annotation

Implementation Notes