xref: /openbmc/linux/drivers/i2c/Kconfig (revision da3c6647)
11da177e4SLinus Torvalds#
2be53f9b2SArthur Othieno# I2C subsystem configuration
31da177e4SLinus Torvalds#
41da177e4SLinus Torvalds
5da3c6647SLan Tianyumenu "I2C support"
6da3c6647SLan Tianyu
7da3c6647SLan Tianyuconfig I2C
81da177e4SLinus Torvalds	tristate "I2C support"
9194684e5SMika Kuoppala	select RT_MUTEXES
101da177e4SLinus Torvalds	---help---
11622e040dSMichael Witten	  I2C (pronounce: I-squared-C) is a slow serial bus protocol used in
121da177e4SLinus Torvalds	  many micro controller applications and developed by Philips.  SMBus,
131da177e4SLinus Torvalds	  or System Management Bus is a subset of the I2C protocol.  More
141da177e4SLinus Torvalds	  information is contained in the directory <file:Documentation/i2c/>,
151da177e4SLinus Torvalds	  especially in the file called "summary" there.
161da177e4SLinus Torvalds
171da177e4SLinus Torvalds	  Both I2C and SMBus are supported here. You will need this for
181da177e4SLinus Torvalds	  hardware sensors support, and also for Video For Linux support.
191da177e4SLinus Torvalds
201da177e4SLinus Torvalds	  If you want I2C support, you should say Y here and also to the
211da177e4SLinus Torvalds	  specific driver for your bus adapter(s) below.
221da177e4SLinus Torvalds
231da177e4SLinus Torvalds	  This I2C support can also be built as a module.  If so, the module
241da177e4SLinus Torvalds	  will be called i2c-core.
251da177e4SLinus Torvalds
26da3c6647SLan Tianyuconfig I2C_ACPI
27da3c6647SLan Tianyu	bool "I2C ACPI support"
28da3c6647SLan Tianyu	select I2C
29da3c6647SLan Tianyu	depends on ACPI
30da3c6647SLan Tianyu	default y
31da3c6647SLan Tianyu	help
32da3c6647SLan Tianyu	  Say Y here if you want to enable ACPI I2C support. This includes support
33da3c6647SLan Tianyu	  for automatic enumeration of I2C slave devices and support for ACPI I2C
34da3c6647SLan Tianyu	  Operation Regions. Operation Regions allow firmware (BIOS) code to
35da3c6647SLan Tianyu	  access I2C slave devices, such as smart batteries through an I2C host
36da3c6647SLan Tianyu	  controller driver.
37da3c6647SLan Tianyu
3816538e6bSJan Engelhardtif I2C
3916538e6bSJan Engelhardt
409c1600edSDavid Brownellconfig I2C_BOARDINFO
419c1600edSDavid Brownell	boolean
429c1600edSDavid Brownell	default y
439c1600edSDavid Brownell
442bb5095aSJean Delvareconfig I2C_COMPAT
452bb5095aSJean Delvare	boolean "Enable compatibility bits for old user-space"
462bb5095aSJean Delvare	default y
472bb5095aSJean Delvare	help
482bb5095aSJean Delvare	  Say Y here if you intend to run lm-sensors 3.1.1 or older, or any
492bb5095aSJean Delvare	  other user-space package which expects i2c adapters to be class
502bb5095aSJean Delvare	  devices. If you don't know, say Y.
512bb5095aSJean Delvare
521da177e4SLinus Torvaldsconfig I2C_CHARDEV
531da177e4SLinus Torvalds	tristate "I2C device interface"
541da177e4SLinus Torvalds	help
551da177e4SLinus Torvalds	  Say Y here to use i2c-* device files, usually found in the /dev
561da177e4SLinus Torvalds	  directory on your system.  They make it possible to have user-space
571da177e4SLinus Torvalds	  programs use the I2C bus.  Information on how to do this is
581da177e4SLinus Torvalds	  contained in the file <file:Documentation/i2c/dev-interface>.
591da177e4SLinus Torvalds
601da177e4SLinus Torvalds	  This support is also available as a module.  If so, the module
611da177e4SLinus Torvalds	  will be called i2c-dev.
621da177e4SLinus Torvalds
630826374bSMichael Lawnickconfig I2C_MUX
640826374bSMichael Lawnick	tristate "I2C bus multiplexing support"
653ddb59d4SPeter Huewe	depends on HAS_IOMEM
660826374bSMichael Lawnick	help
670826374bSMichael Lawnick	  Say Y here if you want the I2C core to support the ability to
680826374bSMichael Lawnick	  handle multiplexed I2C bus topologies, by presenting each
690826374bSMichael Lawnick	  multiplexed segment as a I2C adapter.
700826374bSMichael Lawnick
710826374bSMichael Lawnick	  This support is also available as a module.  If so, the module
720826374bSMichael Lawnick	  will be called i2c-mux.
730826374bSMichael Lawnick
747f528135SMichael Lawnicksource drivers/i2c/muxes/Kconfig
757f528135SMichael Lawnick
768d24f8dcSJean Delvareconfig I2C_HELPER_AUTO
778d24f8dcSJean Delvare	bool "Autoselect pertinent helper modules"
788d24f8dcSJean Delvare	default y
798d24f8dcSJean Delvare	help
808d24f8dcSJean Delvare	  Some I2C bus drivers require so-called "I2C algorithm" modules
818d24f8dcSJean Delvare	  to work. These are basically software-only abstractions of generic
828d24f8dcSJean Delvare	  I2C interfaces. This option will autoselect them so that you don't
838d24f8dcSJean Delvare	  have to care.
848d24f8dcSJean Delvare
858d24f8dcSJean Delvare	  Unselect this only if you need to enable additional helper
868d24f8dcSJean Delvare	  modules, for example for use with external I2C bus drivers.
878d24f8dcSJean Delvare
888d24f8dcSJean Delvare	  In doubt, say Y.
898d24f8dcSJean Delvare
90e2ca3074SJean Delvareconfig I2C_SMBUS
91dfc518ddSArnaud Lacombe	tristate "SMBus-specific protocols" if !I2C_HELPER_AUTO
92e2ca3074SJean Delvare	help
93e2ca3074SJean Delvare	  Say Y here if you want support for SMBus extensions to the I2C
94e2ca3074SJean Delvare	  specification. At the moment, the only supported extension is
95e2ca3074SJean Delvare	  the SMBus alert protocol.
96e2ca3074SJean Delvare
97e2ca3074SJean Delvare	  This support is also available as a module.  If so, the module
98e2ca3074SJean Delvare	  will be called i2c-smbus.
99e2ca3074SJean Delvare
1001da177e4SLinus Torvaldssource drivers/i2c/algos/Kconfig
1011da177e4SLinus Torvaldssource drivers/i2c/busses/Kconfig
1021da177e4SLinus Torvalds
1033ddb59d4SPeter Hueweconfig I2C_STUB
1043ddb59d4SPeter Huewe	tristate "I2C/SMBus Test Stub"
105417e86ceSKees Cook	depends on m
1063ddb59d4SPeter Huewe	default 'n'
1073ddb59d4SPeter Huewe	help
1083ddb59d4SPeter Huewe	  This module may be useful to developers of SMBus client drivers,
1093ddb59d4SPeter Huewe	  especially for certain kinds of sensor chips.
1103ddb59d4SPeter Huewe
1113ddb59d4SPeter Huewe	  If you do build this module, be sure to read the notes and warnings
1123ddb59d4SPeter Huewe	  in <file:Documentation/i2c/i2c-stub>.
1133ddb59d4SPeter Huewe
1143ddb59d4SPeter Huewe	  If you don't know what to do here, definitely say N.
1153ddb59d4SPeter Huewe
1161da177e4SLinus Torvaldsconfig I2C_DEBUG_CORE
1171da177e4SLinus Torvalds	bool "I2C Core debugging messages"
1181da177e4SLinus Torvalds	help
1191da177e4SLinus Torvalds	  Say Y here if you want the I2C core to produce a bunch of debug
1201da177e4SLinus Torvalds	  messages to the system log.  Select this if you are having a
1211da177e4SLinus Torvalds	  problem with I2C support and want to see more of what is going on.
1221da177e4SLinus Torvalds
1231da177e4SLinus Torvaldsconfig I2C_DEBUG_ALGO
1241da177e4SLinus Torvalds	bool "I2C Algorithm debugging messages"
1251da177e4SLinus Torvalds	help
1261da177e4SLinus Torvalds	  Say Y here if you want the I2C algorithm drivers to produce a bunch
1271da177e4SLinus Torvalds	  of debug messages to the system log.  Select this if you are having
1281da177e4SLinus Torvalds	  a problem with I2C support and want to see more of what is going
1291da177e4SLinus Torvalds	  on.
1301da177e4SLinus Torvalds
1311da177e4SLinus Torvaldsconfig I2C_DEBUG_BUS
1321da177e4SLinus Torvalds	bool "I2C Bus debugging messages"
1333ddb59d4SPeter Huewe	depends on HAS_IOMEM
1341da177e4SLinus Torvalds	help
1351da177e4SLinus Torvalds	  Say Y here if you want the I2C bus drivers to produce a bunch of
1361da177e4SLinus Torvalds	  debug messages to the system log.  Select this if you are having
1371da177e4SLinus Torvalds	  a problem with I2C support and want to see more of what is going
1381da177e4SLinus Torvalds	  on.
1391da177e4SLinus Torvalds
14016538e6bSJan Engelhardtendif # I2C
141da3c6647SLan Tianyu
142da3c6647SLan Tianyuendmenu
143