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