11da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds# 2be53f9b2a08e647396ceaa004199ae4b032a9bd2Arthur Othieno# I2C subsystem configuration 31da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds# 41da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 5da3c6647ee08711c7edc28d7fea4ad69fc5ffccaLan Tianyumenu "I2C support" 6da3c6647ee08711c7edc28d7fea4ad69fc5ffccaLan Tianyu 7da3c6647ee08711c7edc28d7fea4ad69fc5ffccaLan Tianyuconfig I2C 81da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds tristate "I2C support" 9194684e596af4bdaebb424166d94a8aa528edfdaMika Kuoppala select RT_MUTEXES 101da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds ---help--- 11622e040d577dc8a7a6efbfa4f056448f62b4039aMichael Witten I2C (pronounce: I-squared-C) is a slow serial bus protocol used in 121da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds many micro controller applications and developed by Philips. SMBus, 131da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds or System Management Bus is a subset of the I2C protocol. More 141da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds information is contained in the directory <file:Documentation/i2c/>, 151da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds especially in the file called "summary" there. 161da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 171da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds Both I2C and SMBus are supported here. You will need this for 181da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds hardware sensors support, and also for Video For Linux support. 191da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 201da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds If you want I2C support, you should say Y here and also to the 211da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds specific driver for your bus adapter(s) below. 221da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 231da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds This I2C support can also be built as a module. If so, the module 241da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds will be called i2c-core. 251da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 26366047515c6eab2ff886bc28d1c2b0ad041d040aLan Tianyuconfig ACPI_I2C_OPREGION 27366047515c6eab2ff886bc28d1c2b0ad041d040aLan Tianyu bool "ACPI I2C Operation region support" 28366047515c6eab2ff886bc28d1c2b0ad041d040aLan Tianyu depends on I2C=y && ACPI 29da3c6647ee08711c7edc28d7fea4ad69fc5ffccaLan Tianyu default y 30da3c6647ee08711c7edc28d7fea4ad69fc5ffccaLan Tianyu help 31366047515c6eab2ff886bc28d1c2b0ad041d040aLan Tianyu Say Y here if you want to enable ACPI I2C operation region support. 32366047515c6eab2ff886bc28d1c2b0ad041d040aLan Tianyu Operation Regions allow firmware (BIOS) code to access I2C slave devices, 33366047515c6eab2ff886bc28d1c2b0ad041d040aLan Tianyu such as smart batteries through an I2C host controller driver. 34da3c6647ee08711c7edc28d7fea4ad69fc5ffccaLan Tianyu 3516538e6b32600f76ad212d42fc2b1f801e32ab4bJan Engelhardtif I2C 3616538e6b32600f76ad212d42fc2b1f801e32ab4bJan Engelhardt 379c1600eda42e52796f49b36cf15b9debcfd09beaDavid Brownellconfig I2C_BOARDINFO 389c1600eda42e52796f49b36cf15b9debcfd09beaDavid Brownell boolean 399c1600eda42e52796f49b36cf15b9debcfd09beaDavid Brownell default y 409c1600eda42e52796f49b36cf15b9debcfd09beaDavid Brownell 412bb5095affdb8d6e8646a5b8b5a35c1d6a28c3e7Jean Delvareconfig I2C_COMPAT 422bb5095affdb8d6e8646a5b8b5a35c1d6a28c3e7Jean Delvare boolean "Enable compatibility bits for old user-space" 432bb5095affdb8d6e8646a5b8b5a35c1d6a28c3e7Jean Delvare default y 442bb5095affdb8d6e8646a5b8b5a35c1d6a28c3e7Jean Delvare help 452bb5095affdb8d6e8646a5b8b5a35c1d6a28c3e7Jean Delvare Say Y here if you intend to run lm-sensors 3.1.1 or older, or any 462bb5095affdb8d6e8646a5b8b5a35c1d6a28c3e7Jean Delvare other user-space package which expects i2c adapters to be class 472bb5095affdb8d6e8646a5b8b5a35c1d6a28c3e7Jean Delvare devices. If you don't know, say Y. 482bb5095affdb8d6e8646a5b8b5a35c1d6a28c3e7Jean Delvare 491da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvaldsconfig I2C_CHARDEV 501da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds tristate "I2C device interface" 511da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds help 521da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds Say Y here to use i2c-* device files, usually found in the /dev 531da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds directory on your system. They make it possible to have user-space 541da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds programs use the I2C bus. Information on how to do this is 551da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds contained in the file <file:Documentation/i2c/dev-interface>. 561da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 571da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds This support is also available as a module. If so, the module 581da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds will be called i2c-dev. 591da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 600826374bff57411d239f2fcb15da3c35af0a93cdMichael Lawnickconfig I2C_MUX 610826374bff57411d239f2fcb15da3c35af0a93cdMichael Lawnick tristate "I2C bus multiplexing support" 623ddb59d4bcaeca8109ac5eb8ad17368e940ac05ePeter Huewe depends on HAS_IOMEM 630826374bff57411d239f2fcb15da3c35af0a93cdMichael Lawnick help 640826374bff57411d239f2fcb15da3c35af0a93cdMichael Lawnick Say Y here if you want the I2C core to support the ability to 650826374bff57411d239f2fcb15da3c35af0a93cdMichael Lawnick handle multiplexed I2C bus topologies, by presenting each 660826374bff57411d239f2fcb15da3c35af0a93cdMichael Lawnick multiplexed segment as a I2C adapter. 670826374bff57411d239f2fcb15da3c35af0a93cdMichael Lawnick 680826374bff57411d239f2fcb15da3c35af0a93cdMichael Lawnick This support is also available as a module. If so, the module 690826374bff57411d239f2fcb15da3c35af0a93cdMichael Lawnick will be called i2c-mux. 700826374bff57411d239f2fcb15da3c35af0a93cdMichael Lawnick 717f528135da9704d67db1f727162024b078e1cd8fMichael Lawnicksource drivers/i2c/muxes/Kconfig 727f528135da9704d67db1f727162024b078e1cd8fMichael Lawnick 738d24f8dcb7ead491704e274883b2c627062f6235Jean Delvareconfig I2C_HELPER_AUTO 748d24f8dcb7ead491704e274883b2c627062f6235Jean Delvare bool "Autoselect pertinent helper modules" 758d24f8dcb7ead491704e274883b2c627062f6235Jean Delvare default y 768d24f8dcb7ead491704e274883b2c627062f6235Jean Delvare help 778d24f8dcb7ead491704e274883b2c627062f6235Jean Delvare Some I2C bus drivers require so-called "I2C algorithm" modules 788d24f8dcb7ead491704e274883b2c627062f6235Jean Delvare to work. These are basically software-only abstractions of generic 798d24f8dcb7ead491704e274883b2c627062f6235Jean Delvare I2C interfaces. This option will autoselect them so that you don't 808d24f8dcb7ead491704e274883b2c627062f6235Jean Delvare have to care. 818d24f8dcb7ead491704e274883b2c627062f6235Jean Delvare 828d24f8dcb7ead491704e274883b2c627062f6235Jean Delvare Unselect this only if you need to enable additional helper 838d24f8dcb7ead491704e274883b2c627062f6235Jean Delvare modules, for example for use with external I2C bus drivers. 848d24f8dcb7ead491704e274883b2c627062f6235Jean Delvare 858d24f8dcb7ead491704e274883b2c627062f6235Jean Delvare In doubt, say Y. 868d24f8dcb7ead491704e274883b2c627062f6235Jean Delvare 87e2ca307439fb9df922c3e8891289a2ac05812fb7Jean Delvareconfig I2C_SMBUS 88dfc518dd6b5c5e00f98906eaa5c7d716d856c098Arnaud Lacombe tristate "SMBus-specific protocols" if !I2C_HELPER_AUTO 89e2ca307439fb9df922c3e8891289a2ac05812fb7Jean Delvare help 90e2ca307439fb9df922c3e8891289a2ac05812fb7Jean Delvare Say Y here if you want support for SMBus extensions to the I2C 91e2ca307439fb9df922c3e8891289a2ac05812fb7Jean Delvare specification. At the moment, the only supported extension is 92e2ca307439fb9df922c3e8891289a2ac05812fb7Jean Delvare the SMBus alert protocol. 93e2ca307439fb9df922c3e8891289a2ac05812fb7Jean Delvare 94e2ca307439fb9df922c3e8891289a2ac05812fb7Jean Delvare This support is also available as a module. If so, the module 95e2ca307439fb9df922c3e8891289a2ac05812fb7Jean Delvare will be called i2c-smbus. 96e2ca307439fb9df922c3e8891289a2ac05812fb7Jean Delvare 971da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvaldssource drivers/i2c/algos/Kconfig 981da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvaldssource drivers/i2c/busses/Kconfig 991da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 1003ddb59d4bcaeca8109ac5eb8ad17368e940ac05ePeter Hueweconfig I2C_STUB 1013ddb59d4bcaeca8109ac5eb8ad17368e940ac05ePeter Huewe tristate "I2C/SMBus Test Stub" 102417e86ce5ea8b87f864909f54f38a0b78aeb15b7Kees Cook depends on m 1033ddb59d4bcaeca8109ac5eb8ad17368e940ac05ePeter Huewe default 'n' 1043ddb59d4bcaeca8109ac5eb8ad17368e940ac05ePeter Huewe help 1053ddb59d4bcaeca8109ac5eb8ad17368e940ac05ePeter Huewe This module may be useful to developers of SMBus client drivers, 1063ddb59d4bcaeca8109ac5eb8ad17368e940ac05ePeter Huewe especially for certain kinds of sensor chips. 1073ddb59d4bcaeca8109ac5eb8ad17368e940ac05ePeter Huewe 1083ddb59d4bcaeca8109ac5eb8ad17368e940ac05ePeter Huewe If you do build this module, be sure to read the notes and warnings 1093ddb59d4bcaeca8109ac5eb8ad17368e940ac05ePeter Huewe in <file:Documentation/i2c/i2c-stub>. 1103ddb59d4bcaeca8109ac5eb8ad17368e940ac05ePeter Huewe 1113ddb59d4bcaeca8109ac5eb8ad17368e940ac05ePeter Huewe If you don't know what to do here, definitely say N. 1123ddb59d4bcaeca8109ac5eb8ad17368e940ac05ePeter Huewe 1131da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvaldsconfig I2C_DEBUG_CORE 1141da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds bool "I2C Core debugging messages" 1151da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds help 1161da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds Say Y here if you want the I2C core to produce a bunch of debug 1171da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds messages to the system log. Select this if you are having a 1181da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds problem with I2C support and want to see more of what is going on. 1191da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 1201da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvaldsconfig I2C_DEBUG_ALGO 1211da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds bool "I2C Algorithm debugging messages" 1221da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds help 1231da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds Say Y here if you want the I2C algorithm drivers to produce a bunch 1241da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds of debug messages to the system log. Select this if you are having 1251da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds a problem with I2C support and want to see more of what is going 1261da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds on. 1271da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 1281da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvaldsconfig I2C_DEBUG_BUS 1291da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds bool "I2C Bus debugging messages" 1303ddb59d4bcaeca8109ac5eb8ad17368e940ac05ePeter Huewe depends on HAS_IOMEM 1311da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds help 1321da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds Say Y here if you want the I2C bus drivers to produce a bunch of 1331da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds debug messages to the system log. Select this if you are having 1341da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds a problem with I2C support and want to see more of what is going 1351da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds on. 1361da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 13716538e6b32600f76ad212d42fc2b1f801e32ab4bJan Engelhardtendif # I2C 138da3c6647ee08711c7edc28d7fea4ad69fc5ffccaLan Tianyu 139da3c6647ee08711c7edc28d7fea4ad69fc5ffccaLan Tianyuendmenu 140