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