Commit | Line | Data |
---|---|---|
ec8f24b7 | 1 | # SPDX-License-Identifier: GPL-2.0-only |
1da177e4 | 2 | # |
be53f9b2 | 3 | # I2C subsystem configuration |
1da177e4 LT |
4 | # |
5 | ||
da3c6647 LT |
6 | menu "I2C support" |
7 | ||
8 | config I2C | |
1da177e4 | 9 | tristate "I2C support" |
194684e5 | 10 | select RT_MUTEXES |
4d5538f5 | 11 | select IRQ_DOMAIN |
a7f7f624 | 12 | help |
622e040d | 13 | I2C (pronounce: I-squared-C) is a slow serial bus protocol used in |
1da177e4 LT |
14 | many micro controller applications and developed by Philips. SMBus, |
15 | or System Management Bus is a subset of the I2C protocol. More | |
16 | information is contained in the directory <file:Documentation/i2c/>, | |
17 | especially in the file called "summary" there. | |
18 | ||
19 | Both I2C and SMBus are supported here. You will need this for | |
20 | hardware sensors support, and also for Video For Linux support. | |
21 | ||
22 | If you want I2C support, you should say Y here and also to the | |
23 | specific driver for your bus adapter(s) below. | |
24 | ||
25 | This I2C support can also be built as a module. If so, the module | |
26 | will be called i2c-core. | |
27 | ||
36604751 LT |
28 | config ACPI_I2C_OPREGION |
29 | bool "ACPI I2C Operation region support" | |
30 | depends on I2C=y && ACPI | |
da3c6647 LT |
31 | default y |
32 | help | |
36604751 LT |
33 | Say Y here if you want to enable ACPI I2C operation region support. |
34 | Operation Regions allow firmware (BIOS) code to access I2C slave devices, | |
35 | such as smart batteries through an I2C host controller driver. | |
da3c6647 | 36 | |
16538e6b JE |
37 | if I2C |
38 | ||
9c1600ed | 39 | config I2C_BOARDINFO |
6341e62b | 40 | bool |
9c1600ed DB |
41 | default y |
42 | ||
2bb5095a | 43 | config I2C_COMPAT |
6341e62b | 44 | bool "Enable compatibility bits for old user-space" |
2bb5095a JD |
45 | default y |
46 | help | |
47 | Say Y here if you intend to run lm-sensors 3.1.1 or older, or any | |
48 | other user-space package which expects i2c adapters to be class | |
49 | devices. If you don't know, say Y. | |
50 | ||
1da177e4 LT |
51 | config I2C_CHARDEV |
52 | tristate "I2C device interface" | |
1da177e4 LT |
53 | help |
54 | Say Y here to use i2c-* device files, usually found in the /dev | |
55 | directory on your system. They make it possible to have user-space | |
56 | programs use the I2C bus. Information on how to do this is | |
ccf988b6 | 57 | contained in the file <file:Documentation/i2c/dev-interface.rst>. |
1da177e4 LT |
58 | |
59 | This support is also available as a module. If so, the module | |
60 | will be called i2c-dev. | |
61 | ||
0826374b ML |
62 | config I2C_MUX |
63 | tristate "I2C bus multiplexing support" | |
0826374b ML |
64 | help |
65 | Say Y here if you want the I2C core to support the ability to | |
66 | handle multiplexed I2C bus topologies, by presenting each | |
67 | multiplexed segment as a I2C adapter. | |
68 | ||
69 | This support is also available as a module. If so, the module | |
70 | will be called i2c-mux. | |
71 | ||
8636a1f9 | 72 | source "drivers/i2c/muxes/Kconfig" |
7f528135 | 73 | |
8d24f8dc JD |
74 | config I2C_HELPER_AUTO |
75 | bool "Autoselect pertinent helper modules" | |
76 | default y | |
77 | help | |
78 | Some I2C bus drivers require so-called "I2C algorithm" modules | |
79 | to work. These are basically software-only abstractions of generic | |
80 | I2C interfaces. This option will autoselect them so that you don't | |
81 | have to care. | |
82 | ||
83 | Unselect this only if you need to enable additional helper | |
84 | modules, for example for use with external I2C bus drivers. | |
85 | ||
86 | In doubt, say Y. | |
87 | ||
e2ca3074 | 88 | config I2C_SMBUS |
dfc518dd | 89 | tristate "SMBus-specific protocols" if !I2C_HELPER_AUTO |
e2ca3074 JD |
90 | help |
91 | Say Y here if you want support for SMBus extensions to the I2C | |
d380a204 JD |
92 | specification. At the moment, two extensions are supported: |
93 | the SMBus Alert protocol and the SMBus Host Notify protocol. | |
e2ca3074 JD |
94 | |
95 | This support is also available as a module. If so, the module | |
96 | will be called i2c-smbus. | |
97 | ||
8636a1f9 MY |
98 | source "drivers/i2c/algos/Kconfig" |
99 | source "drivers/i2c/busses/Kconfig" | |
1da177e4 | 100 | |
3ddb59d4 PH |
101 | config I2C_STUB |
102 | tristate "I2C/SMBus Test Stub" | |
417e86ce | 103 | depends on m |
3ddb59d4 PH |
104 | default 'n' |
105 | help | |
106 | This module may be useful to developers of SMBus client drivers, | |
107 | especially for certain kinds of sensor chips. | |
108 | ||
109 | If you do build this module, be sure to read the notes and warnings | |
ccf988b6 | 110 | in <file:Documentation/i2c/i2c-stub.rst>. |
3ddb59d4 PH |
111 | |
112 | If you don't know what to do here, definitely say N. | |
113 | ||
389be323 WS |
114 | config I2C_SLAVE |
115 | bool "I2C slave support" | |
116 | ||
117 | if I2C_SLAVE | |
118 | ||
119 | config I2C_SLAVE_EEPROM | |
120 | tristate "I2C eeprom slave driver" | |
121 | ||
122 | endif | |
123 | ||
1da177e4 LT |
124 | config I2C_DEBUG_CORE |
125 | bool "I2C Core debugging messages" | |
1da177e4 LT |
126 | help |
127 | Say Y here if you want the I2C core to produce a bunch of debug | |
128 | messages to the system log. Select this if you are having a | |
129 | problem with I2C support and want to see more of what is going on. | |
130 | ||
131 | config I2C_DEBUG_ALGO | |
132 | bool "I2C Algorithm debugging messages" | |
1da177e4 LT |
133 | help |
134 | Say Y here if you want the I2C algorithm drivers to produce a bunch | |
135 | of debug messages to the system log. Select this if you are having | |
136 | a problem with I2C support and want to see more of what is going | |
137 | on. | |
138 | ||
139 | config I2C_DEBUG_BUS | |
140 | bool "I2C Bus debugging messages" | |
3ddb59d4 | 141 | depends on HAS_IOMEM |
1da177e4 LT |
142 | help |
143 | Say Y here if you want the I2C bus drivers to produce a bunch of | |
144 | debug messages to the system log. Select this if you are having | |
145 | a problem with I2C support and want to see more of what is going | |
146 | on. | |
147 | ||
16538e6b | 148 | endif # I2C |
da3c6647 LT |
149 | |
150 | endmenu |