blob: bbc670492e3f47ac0ca4a63388f526394374c74c [file] [log] [blame]
xjb04a4022021-11-25 15:01:52 +08001#
2# Sensor device configuration
3#
4
5menu "I2C Hardware Bus support"
6 depends on HAS_IOMEM
7
8comment "PC SMBus host controller drivers"
9 depends on PCI
10
11config I2C_ALI1535
12 tristate "ALI 1535"
13 depends on PCI
14 help
15 If you say yes to this option, support will be included for the SMB
16 Host controller on Acer Labs Inc. (ALI) M1535 South Bridges. The SMB
17 controller is part of the 7101 device, which is an ACPI-compliant
18 Power Management Unit (PMU).
19
20 This driver can also be built as a module. If so, the module
21 will be called i2c-ali1535.
22
23config I2C_ALI1563
24 tristate "ALI 1563"
25 depends on PCI
26 help
27 If you say yes to this option, support will be included for the SMB
28 Host controller on Acer Labs Inc. (ALI) M1563 South Bridges. The SMB
29 controller is part of the 7101 device, which is an ACPI-compliant
30 Power Management Unit (PMU).
31
32 This driver can also be built as a module. If so, the module
33 will be called i2c-ali1563.
34
35config I2C_ALI15X3
36 tristate "ALI 15x3"
37 depends on PCI
38 help
39 If you say yes to this option, support will be included for the
40 Acer Labs Inc. (ALI) M1514 and M1543 motherboard I2C interfaces.
41
42 This driver can also be built as a module. If so, the module
43 will be called i2c-ali15x3.
44
45config I2C_AMD756
46 tristate "AMD 756/766/768/8111 and nVidia nForce"
47 depends on PCI
48 help
49 If you say yes to this option, support will be included for the AMD
50 756/766/768 mainboard I2C interfaces. The driver also includes
51 support for the first (SMBus 1.0) I2C interface of the AMD 8111 and
52 the nVidia nForce I2C interface.
53
54 This driver can also be built as a module. If so, the module
55 will be called i2c-amd756.
56
57config I2C_AMD756_S4882
58 tristate "SMBus multiplexing on the Tyan S4882"
59 depends on I2C_AMD756 && X86
60 help
61 Enabling this option will add specific SMBus support for the Tyan
62 S4882 motherboard. On this 4-CPU board, the SMBus is multiplexed
63 over 8 different channels, where the various memory module EEPROMs
64 and temperature sensors live. Saying yes here will give you access
65 to these in addition to the trunk.
66
67 This driver can also be built as a module. If so, the module
68 will be called i2c-amd756-s4882.
69
70config I2C_AMD8111
71 tristate "AMD 8111"
72 depends on PCI
73 help
74 If you say yes to this option, support will be included for the
75 second (SMBus 2.0) AMD 8111 mainboard I2C interface.
76
77 This driver can also be built as a module. If so, the module
78 will be called i2c-amd8111.
79
80config I2C_HIX5HD2
81 tristate "Hix5hd2 high-speed I2C driver"
82 depends on ARCH_HISI || ARCH_HIX5HD2 || COMPILE_TEST
83 help
84 Say Y here to include support for the high-speed I2C controller
85 used in HiSilicon hix5hd2 SoCs.
86
87 This driver can also be built as a module. If so, the module
88 will be called i2c-hix5hd2.
89
90config I2C_I801
91 tristate "Intel 82801 (ICH/PCH)"
92 depends on PCI
93 select CHECK_SIGNATURE if X86 && DMI
94 select I2C_SMBUS
95 help
96 If you say yes to this option, support will be included for the Intel
97 801 family of mainboard I2C interfaces. Specifically, the following
98 versions of the chipset are supported:
99 82801AA
100 82801AB
101 82801BA
102 82801CA/CAM
103 82801DB
104 82801EB/ER (ICH5/ICH5R)
105 6300ESB
106 ICH6
107 ICH7
108 ESB2
109 ICH8
110 ICH9
111 EP80579 (Tolapai)
112 ICH10
113 5/3400 Series (PCH)
114 6 Series (PCH)
115 Patsburg (PCH)
116 DH89xxCC (PCH)
117 Panther Point (PCH)
118 Lynx Point (PCH)
119 Avoton (SOC)
120 Wellsburg (PCH)
121 Coleto Creek (PCH)
122 Wildcat Point (PCH)
123 BayTrail (SOC)
124 Braswell (SOC)
125 Sunrise Point (PCH)
126 Kaby Lake (PCH)
127 DNV (SOC)
128 Broxton (SOC)
129 Lewisburg (PCH)
130 Gemini Lake (SOC)
131 Cannon Lake (PCH)
132 Cedar Fork (PCH)
133 Ice Lake (PCH)
134 Comet Lake (PCH)
135
136 This driver can also be built as a module. If so, the module
137 will be called i2c-i801.
138
139config I2C_ISCH
140 tristate "Intel SCH SMBus 1.0"
141 depends on PCI
142 select LPC_SCH
143 help
144 Say Y here if you want to use SMBus controller on the Intel SCH
145 based systems.
146
147 This driver can also be built as a module. If so, the module
148 will be called i2c-isch.
149
150config I2C_ISMT
151 tristate "Intel iSMT SMBus Controller"
152 depends on PCI && X86
153 help
154 If you say yes to this option, support will be included for the Intel
155 iSMT SMBus host controller interface.
156
157 This driver can also be built as a module. If so, the module will be
158 called i2c-ismt.
159
160config I2C_PIIX4
161 tristate "Intel PIIX4 and compatible (ATI/AMD/Serverworks/Broadcom/SMSC)"
162 depends on PCI
163 help
164 If you say yes to this option, support will be included for the Intel
165 PIIX4 family of mainboard I2C interfaces. Specifically, the following
166 versions of the chipset are supported (note that Serverworks is part
167 of Broadcom):
168 Intel PIIX4
169 Intel 440MX
170 ATI IXP200
171 ATI IXP300
172 ATI IXP400
173 ATI SB600
174 ATI SB700/SP5100
175 ATI SB800
176 AMD Hudson-2
177 AMD ML
178 AMD CZ
179 Serverworks OSB4
180 Serverworks CSB5
181 Serverworks CSB6
182 Serverworks HT-1000
183 Serverworks HT-1100
184 SMSC Victory66
185
186 Some AMD chipsets contain two PIIX4-compatible SMBus
187 controllers. This driver will attempt to use both controllers
188 on the SB700/SP5100, if they have been initialized by the BIOS.
189
190 This driver can also be built as a module. If so, the module
191 will be called i2c-piix4.
192
193config I2C_CHT_WC
194 tristate "Intel Cherry Trail Whiskey Cove PMIC smbus controller"
195 depends on INTEL_SOC_PMIC_CHTWC
196 help
197 If you say yes to this option, support will be included for the
198 SMBus controller found in the Intel Cherry Trail Whiskey Cove PMIC
199 found on some Intel Cherry Trail systems.
200
201 Note this controller is hooked up to a TI bq24292i charger-IC,
202 combined with a FUSB302 Type-C port-controller as such it is advised
203 to also select CONFIG_TYPEC_FUSB302=m.
204
205config I2C_NFORCE2
206 tristate "Nvidia nForce2, nForce3 and nForce4"
207 depends on PCI
208 help
209 If you say yes to this option, support will be included for the Nvidia
210 nForce2, nForce3 and nForce4 families of mainboard I2C interfaces.
211
212 This driver can also be built as a module. If so, the module
213 will be called i2c-nforce2.
214
215config I2C_NFORCE2_S4985
216 tristate "SMBus multiplexing on the Tyan S4985"
217 depends on I2C_NFORCE2 && X86
218 help
219 Enabling this option will add specific SMBus support for the Tyan
220 S4985 motherboard. On this 4-CPU board, the SMBus is multiplexed
221 over 4 different channels, where the various memory module EEPROMs
222 live. Saying yes here will give you access to these in addition
223 to the trunk.
224
225 This driver can also be built as a module. If so, the module
226 will be called i2c-nforce2-s4985.
227
228config I2C_SIS5595
229 tristate "SiS 5595"
230 depends on PCI
231 help
232 If you say yes to this option, support will be included for the
233 SiS5595 SMBus (a subset of I2C) interface.
234
235 This driver can also be built as a module. If so, the module
236 will be called i2c-sis5595.
237
238config I2C_SIS630
239 tristate "SiS 630/730/964"
240 depends on PCI
241 help
242 If you say yes to this option, support will be included for the
243 SiS630, SiS730 and SiS964 SMBus (a subset of I2C) interface.
244
245 This driver can also be built as a module. If so, the module
246 will be called i2c-sis630.
247
248config I2C_SIS96X
249 tristate "SiS 96x"
250 depends on PCI
251 help
252 If you say yes to this option, support will be included for the SiS
253 96x SMBus (a subset of I2C) interfaces. Specifically, the following
254 chipsets are supported:
255 645/961
256 645DX/961
257 645DX/962
258 648/961
259 650/961
260 735
261 745
262
263 This driver can also be built as a module. If so, the module
264 will be called i2c-sis96x.
265
266config I2C_VIA
267 tristate "VIA VT82C586B"
268 depends on PCI
269 select I2C_ALGOBIT
270 help
271 If you say yes to this option, support will be included for the VIA
272 82C586B I2C interface
273
274 This driver can also be built as a module. If so, the module
275 will be called i2c-via.
276
277config I2C_VIAPRO
278 tristate "VIA VT82C596/82C686/82xx and CX700/VX8xx/VX900"
279 depends on PCI
280 help
281 If you say yes to this option, support will be included for the VIA
282 VT82C596 and later SMBus interface. Specifically, the following
283 chipsets are supported:
284 VT82C596A/B
285 VT82C686A/B
286 VT8231
287 VT8233/A
288 VT8235
289 VT8237R/A/S
290 VT8251
291 CX700
292 VX800/VX820
293 VX855/VX875
294 VX900
295
296 This driver can also be built as a module. If so, the module
297 will be called i2c-viapro.
298
299if ACPI
300
301comment "ACPI drivers"
302
303config I2C_SCMI
304 tristate "SMBus Control Method Interface"
305 help
306 This driver supports the SMBus Control Method Interface. It needs the
307 BIOS to declare ACPI control methods as described in the SMBus Control
308 Method Interface specification.
309
310 To compile this driver as a module, choose M here:
311 the module will be called i2c-scmi.
312
313endif # ACPI
314
315comment "Mac SMBus host controller drivers"
316 depends on PPC_CHRP || PPC_PMAC
317
318config I2C_HYDRA
319 tristate "CHRP Apple Hydra Mac I/O I2C interface"
320 depends on PCI && PPC_CHRP
321 select I2C_ALGOBIT
322 help
323 This supports the use of the I2C interface in the Apple Hydra Mac
324 I/O chip on some CHRP machines (e.g. the LongTrail). Say Y if you
325 have such a machine.
326
327 This support is also available as a module. If so, the module
328 will be called i2c-hydra.
329
330config I2C_POWERMAC
331 tristate "Powermac I2C interface"
332 depends on PPC_PMAC
333 default y
334 help
335 This exposes the various PowerMac i2c interfaces to the linux i2c
336 layer and to userland. It is used by various drivers on the PowerMac
337 platform, and should generally be enabled.
338
339 This support is also available as a module. If so, the module
340 will be called i2c-powermac.
341
342comment "I2C system bus drivers (mostly embedded / system-on-chip)"
343
344config I2C_ALTERA
345 tristate "Altera Soft IP I2C"
346 depends on (ARCH_SOCFPGA || NIOS2) && OF
347 help
348 If you say yes to this option, support will be included for the
349 Altera Soft IP I2C interfaces on SoCFPGA and Nios2 architectures.
350
351 This driver can also be built as a module. If so, the module
352 will be called i2c-altera.
353
354config I2C_ASPEED
355 tristate "Aspeed I2C Controller"
356 depends on ARCH_ASPEED || COMPILE_TEST
357 help
358 If you say yes to this option, support will be included for the
359 Aspeed I2C controller.
360
361 This driver can also be built as a module. If so, the module
362 will be called i2c-aspeed.
363
364config I2C_AT91
365 tristate "Atmel AT91 I2C Two-Wire interface (TWI)"
366 depends on ARCH_AT91
367 help
368 This supports the use of the I2C interface on Atmel AT91
369 processors.
370
371 A serious problem is that there is no documented way to issue
372 repeated START conditions for more than two messages, as needed
373 to support combined I2C messages. Use the i2c-gpio driver
374 unless your system can cope with this limitation.
375
376 Caution! at91rm9200, at91sam9261, at91sam9260, at91sam9263 devices
377 don't have clock stretching in transmission mode. For that reason,
378 you can encounter underrun issues causing premature stop sendings if
379 the latency to fill the transmission register is too long. If you
380 are facing this situation, use the i2c-gpio driver.
381
382config I2C_AU1550
383 tristate "Au1550/Au1200/Au1300 SMBus interface"
384 depends on MIPS_ALCHEMY
385 help
386 If you say yes to this option, support will be included for the
387 Au1550/Au1200/Au1300 SMBus interface.
388
389 This driver can also be built as a module. If so, the module
390 will be called i2c-au1550.
391
392config I2C_AXXIA
393 tristate "Axxia I2C controller"
394 depends on ARCH_AXXIA || COMPILE_TEST
395 default ARCH_AXXIA
396 help
397 Say yes if you want to support the I2C bus on Axxia platforms.
398
399 Please note that this controller is limited to transfers of maximum
400 255 bytes in length. Any attempt to to a larger transfer will return
401 an error.
402
403config I2C_BCM2835
404 tristate "Broadcom BCM2835 I2C controller"
405 depends on ARCH_BCM2835
406 help
407 If you say yes to this option, support will be included for the
408 BCM2835 I2C controller.
409
410 If you don't know what to do here, say N.
411
412 This support is also available as a module. If so, the module
413 will be called i2c-bcm2835.
414
415config I2C_BCM_IPROC
416 tristate "Broadcom iProc I2C controller"
417 depends on ARCH_BCM_IPROC || COMPILE_TEST
418 default ARCH_BCM_IPROC
419 help
420 If you say yes to this option, support will be included for the
421 Broadcom iProc I2C controller.
422
423 If you don't know what to do here, say N.
424
425config I2C_BCM_KONA
426 tristate "BCM Kona I2C adapter"
427 depends on ARCH_BCM_MOBILE
428 default y
429 help
430 If you say yes to this option, support will be included for the
431 I2C interface on the Broadcom Kona family of processors.
432
433 If you do not need KONA I2C interface, say N.
434
435config I2C_BRCMSTB
436 tristate "BRCM Settop/DSL I2C controller"
437 depends on ARCH_BRCMSTB || BMIPS_GENERIC || ARCH_BCM_63XX || \
438 COMPILE_TEST
439 default y
440 help
441 If you say yes to this option, support will be included for the
442 I2C interface on the Broadcom Settop/DSL SoCs.
443
444 If you do not need I2C interface, say N.
445
446config I2C_CADENCE
447 tristate "Cadence I2C Controller"
448 depends on ARCH_ZYNQ || ARM64 || XTENSA
449 help
450 Say yes here to select Cadence I2C Host Controller. This controller is
451 e.g. used by Xilinx Zynq.
452
453config I2C_CBUS_GPIO
454 tristate "CBUS I2C driver"
455 depends on GPIOLIB || COMPILE_TEST
456 help
457 Support for CBUS access using I2C API. Mostly relevant for Nokia
458 Internet Tablets (770, N800 and N810).
459
460 This driver can also be built as a module. If so, the module
461 will be called i2c-cbus-gpio.
462
463config I2C_CPM
464 tristate "Freescale CPM1 or CPM2 (MPC8xx/826x)"
465 depends on CPM1 || CPM2
466 help
467 This supports the use of the I2C interface on Freescale
468 processors with CPM1 or CPM2.
469
470 This driver can also be built as a module. If so, the module
471 will be called i2c-cpm.
472
473config I2C_DAVINCI
474 tristate "DaVinci I2C driver"
475 depends on ARCH_DAVINCI || ARCH_KEYSTONE
476 help
477 Support for TI DaVinci I2C controller driver.
478
479 This driver can also be built as a module. If so, the module
480 will be called i2c-davinci.
481
482 Please note that this driver might be needed to bring up other
483 devices such as DaVinci NIC.
484 For details please see http://www.ti.com/davinci
485
486config I2C_DESIGNWARE_CORE
487 tristate
488
489config I2C_DESIGNWARE_PLATFORM
490 tristate "Synopsys DesignWare Platform"
491 select I2C_DESIGNWARE_CORE
492 depends on (ACPI && COMMON_CLK) || !ACPI
493 help
494 If you say yes to this option, support will be included for the
495 Synopsys DesignWare I2C adapter.
496
497 This driver can also be built as a module. If so, the module
498 will be called i2c-designware-platform.
499
500config I2C_DESIGNWARE_SLAVE
501 bool "Synopsys DesignWare Slave"
502 select I2C_SLAVE
503 depends on I2C_DESIGNWARE_PLATFORM
504 help
505 If you say yes to this option, support will be included for the
506 Synopsys DesignWare I2C slave adapter.
507
508 This is not a standalone module, this module compiles together with
509 i2c-designware-core.
510
511config I2C_DESIGNWARE_PCI
512 tristate "Synopsys DesignWare PCI"
513 depends on PCI
514 select I2C_DESIGNWARE_CORE
515 help
516 If you say yes to this option, support will be included for the
517 Synopsys DesignWare I2C adapter. Only master mode is supported.
518
519 This driver can also be built as a module. If so, the module
520 will be called i2c-designware-pci.
521
522config I2C_DESIGNWARE_BAYTRAIL
523 bool "Intel Baytrail I2C semaphore support"
524 depends on ACPI
525 depends on (I2C_DESIGNWARE_PLATFORM=m && IOSF_MBI) || \
526 (I2C_DESIGNWARE_PLATFORM=y && IOSF_MBI=y)
527 help
528 This driver enables managed host access to the PMIC I2C bus on select
529 Intel BayTrail platforms using the X-Powers AXP288 PMIC. It allows
530 the host to request uninterrupted access to the PMIC's I2C bus from
531 the platform firmware controlling it. You should say Y if running on
532 a BayTrail system using the AXP288.
533
534config I2C_DIGICOLOR
535 tristate "Conexant Digicolor I2C driver"
536 depends on ARCH_DIGICOLOR
537 help
538 Support for Conexant Digicolor SoCs (CX92755) I2C controller driver.
539
540 This driver can also be built as a module. If so, the module
541 will be called i2c-digicolor.
542
543config I2C_EFM32
544 tristate "EFM32 I2C controller"
545 depends on ARCH_EFM32 || COMPILE_TEST
546 help
547 This driver supports the i2c block found in Energy Micro's EFM32
548 SoCs.
549
550config I2C_EG20T
551 tristate "Intel EG20T PCH/LAPIS Semicon IOH(ML7213/ML7223/ML7831) I2C"
552 depends on PCI && (X86_32 || MIPS || COMPILE_TEST)
553 help
554 This driver is for PCH(Platform controller Hub) I2C of EG20T which
555 is an IOH(Input/Output Hub) for x86 embedded processor.
556 This driver can access PCH I2C bus device.
557
558 This driver also can be used for LAPIS Semiconductor IOH(Input/
559 Output Hub), ML7213, ML7223 and ML7831.
560 ML7213 IOH is for IVI(In-Vehicle Infotainment) use, ML7223 IOH is
561 for MP(Media Phone) use and ML7831 IOH is for general purpose use.
562 ML7213/ML7223/ML7831 is companion chip for Intel Atom E6xx series.
563 ML7213/ML7223/ML7831 is completely compatible for Intel EG20T PCH.
564
565config I2C_EMEV2
566 tristate "EMMA Mobile series I2C adapter"
567 depends on HAVE_CLK
568 select I2C_SLAVE
569 help
570 If you say yes to this option, support will be included for the
571 I2C interface on the Renesas Electronics EM/EV family of processors.
572
573config I2C_EXYNOS5
574 tristate "Exynos5 high-speed I2C driver"
575 depends on ARCH_EXYNOS && OF
576 default y
577 help
578 High-speed I2C controller on Exynos5 based Samsung SoCs.
579
580config I2C_GPIO
581 tristate "GPIO-based bitbanging I2C"
582 depends on GPIOLIB || COMPILE_TEST
583 select I2C_ALGOBIT
584 help
585 This is a very simple bitbanging I2C driver utilizing the
586 arch-neutral GPIO API to control the SCL and SDA lines.
587
588config I2C_GPIO_FAULT_INJECTOR
589 bool "GPIO-based fault injector"
590 depends on I2C_GPIO
591 help
592 This adds some functionality to the i2c-gpio driver which can inject
593 faults to an I2C bus, so another bus master can be stress-tested.
594 This is for debugging. If unsure, say 'no'.
595
596config I2C_HIGHLANDER
597 tristate "Highlander FPGA SMBus interface"
598 depends on SH_HIGHLANDER
599 help
600 If you say yes to this option, support will be included for
601 the SMBus interface located in the FPGA on various Highlander
602 boards, particularly the R0P7780LC0011RL and R0P7785LC0011RL
603 FPGAs. This is wholly unrelated to the SoC I2C.
604
605 This driver can also be built as a module. If so, the module
606 will be called i2c-highlander.
607
608config I2C_IBM_IIC
609 tristate "IBM PPC 4xx on-chip I2C interface"
610 depends on 4xx
611 help
612 Say Y here if you want to use IIC peripheral found on
613 embedded IBM PPC 4xx based systems.
614
615 This driver can also be built as a module. If so, the module
616 will be called i2c-ibm_iic.
617
618config I2C_IMG
619 tristate "Imagination Technologies I2C SCB Controller"
620 depends on MIPS || COMPILE_TEST
621 help
622 Say Y here if you want to use the IMG I2C SCB controller,
623 available on the TZ1090 and other IMG SoCs.
624
625 This driver can also be built as a module. If so, the module
626 will be called i2c-img-scb.
627
628config I2C_IMX
629 tristate "IMX I2C interface"
630 depends on ARCH_MXC || ARCH_LAYERSCAPE || COLDFIRE
631 help
632 Say Y here if you want to use the IIC bus controller on
633 the Freescale i.MX/MXC, Layerscape or ColdFire processors.
634
635 This driver can also be built as a module. If so, the module
636 will be called i2c-imx.
637
638config I2C_IMX_LPI2C
639 tristate "IMX Low Power I2C interface"
640 depends on ARCH_MXC || COMPILE_TEST
641 help
642 Say Y here if you want to use the Low Power IIC bus controller
643 on the Freescale i.MX processors.
644
645 This driver can also be built as a module. If so, the module
646 will be called i2c-imx-lpi2c.
647
648config I2C_IOP3XX
649 tristate "Intel IOPx3xx and IXP4xx on-chip I2C interface"
650 depends on ARCH_IOP32X || ARCH_IOP33X || ARCH_IXP4XX || ARCH_IOP13XX
651 help
652 Say Y here if you want to use the IIC bus controller on
653 the Intel IOPx3xx I/O Processors or IXP4xx Network Processors.
654
655 This driver can also be built as a module. If so, the module
656 will be called i2c-iop3xx.
657
658config I2C_JZ4780
659 tristate "JZ4780 I2C controller interface support"
660 depends on MACH_JZ4780 || COMPILE_TEST
661 help
662 If you say yes to this option, support will be included for the
663 Ingenic JZ4780 I2C controller.
664
665 If you don't know what to do here, say N.
666
667config I2C_KEMPLD
668 tristate "Kontron COM I2C Controller"
669 depends on MFD_KEMPLD
670 help
671 This enables support for the I2C bus interface on some Kontron ETX
672 and COMexpress (ETXexpress) modules.
673
674 This driver can also be built as a module. If so, the module
675 will be called i2c-kempld.
676
677config I2C_LPC2K
678 tristate "I2C bus support for NXP LPC2K/LPC178x/18xx/43xx"
679 depends on OF && (ARCH_LPC18XX || COMPILE_TEST)
680 help
681 This driver supports the I2C interface found several NXP
682 devices including LPC2xxx, LPC178x/7x and LPC18xx/43xx.
683
684 This driver can also be built as a module. If so, the module
685 will be called i2c-lpc2k.
686
687config I2C_MESON
688 tristate "Amlogic Meson I2C controller"
689 depends on ARCH_MESON || COMPILE_TEST
690 help
691 If you say yes to this option, support will be included for the
692 I2C interface on the Amlogic Meson family of SoCs.
693
694config I2C_MPC
695 tristate "MPC107/824x/85xx/512x/52xx/83xx/86xx"
696 depends on PPC
697 help
698 If you say yes to this option, support will be included for the
699 built-in I2C interface on the MPC107, Tsi107, MPC512x, MPC52xx,
700 MPC8240, MPC8245, MPC83xx, MPC85xx and MPC8641 family processors.
701
702 This driver can also be built as a module. If so, the module
703 will be called i2c-mpc.
704
705config I2C_MT65XX
706 tristate "MediaTek I2C adapter"
707 depends on ARCH_MEDIATEK || COMPILE_TEST
708 help
709 This selects the MediaTek(R) Integrated Inter Circuit bus driver
710 for MT65xx and MT81xx.
711 If you want to use MediaTek(R) I2C interface, say Y or M here.
712 If unsure, say N.
713
714config I2C_MTK
715 tristate "MediaTek I2C Driver"
716 default n
717 ---help---
718 This selects the MediaTek(R) Integrated Inter Circuit bus driver.
719 MediaTek(R) I2C bus adapter is the base for some other I2C client, eg: touch, sensors.
720 If you want to use MediaTek(R) I2C interface, say Y or M here.
721 If unsure, say N.
722
723config I2C_MV64XXX
724 tristate "Marvell mv64xxx I2C Controller"
725 depends on MV64X60 || PLAT_ORION || ARCH_SUNXI || ARCH_MVEBU
726 help
727 If you say yes to this option, support will be included for the
728 built-in I2C interface on the Marvell 64xxx line of host bridges.
729 This driver is also used for Allwinner SoCs I2C controllers.
730
731 This driver can also be built as a module. If so, the module
732 will be called i2c-mv64xxx.
733
734config I2C_MXS
735 tristate "Freescale i.MX28 I2C interface"
736 depends on SOC_IMX28
737 select STMP_DEVICE
738 help
739 Say Y here if you want to use the I2C bus controller on
740 the Freescale i.MX28 processors.
741
742 This driver can also be built as a module. If so, the module
743 will be called i2c-mxs.
744
745config I2C_NOMADIK
746 tristate "ST-Ericsson Nomadik/Ux500 I2C Controller"
747 depends on ARM_AMBA
748 help
749 If you say yes to this option, support will be included for the
750 I2C interface from ST-Ericsson's Nomadik and Ux500 architectures,
751 as well as the STA2X11 PCIe I/O HUB.
752
753config I2C_OCORES
754 tristate "OpenCores I2C Controller"
755 help
756 If you say yes to this option, support will be included for the
757 OpenCores I2C controller. For details see
758 http://www.opencores.org/projects.cgi/web/i2c/overview
759
760 This driver can also be built as a module. If so, the module
761 will be called i2c-ocores.
762
763config I2C_OMAP
764 tristate "OMAP I2C adapter"
765 depends on ARCH_OMAP || ARCH_K3
766 default y if MACH_OMAP_H3 || MACH_OMAP_OSK
767 help
768 If you say yes to this option, support will be included for the
769 I2C interface on the Texas Instruments OMAP1/2 family of processors.
770 Like OMAP1510/1610/1710/5912 and OMAP242x.
771 For details see http://www.ti.com/omap.
772
773config I2C_OWL
774 tristate "Actions Semiconductor Owl I2C Controller"
775 depends on ARCH_ACTIONS || COMPILE_TEST
776 help
777 Say Y here if you want to use the I2C bus controller on
778 the Actions Semiconductor Owl SoC's.
779
780config I2C_PASEMI
781 tristate "PA Semi SMBus interface"
782 depends on PPC_PASEMI && PCI
783 help
784 Supports the PA Semi PWRficient on-chip SMBus interfaces.
785
786config I2C_PCA_PLATFORM
787 tristate "PCA9564/PCA9665 as platform device"
788 select I2C_ALGOPCA
789 default n
790 help
791 This driver supports a memory mapped Philips PCA9564/PCA9665
792 parallel bus to I2C bus controller.
793
794 This driver can also be built as a module. If so, the module
795 will be called i2c-pca-platform.
796
797config I2C_PMCMSP
798 tristate "PMC MSP I2C TWI Controller"
799 depends on PMC_MSP
800 help
801 This driver supports the PMC TWI controller on MSP devices.
802
803 This driver can also be built as module. If so, the module
804 will be called i2c-pmcmsp.
805
806config I2C_PNX
807 tristate "I2C bus support for Philips PNX and NXP LPC targets"
808 depends on ARCH_LPC32XX
809 help
810 This driver supports the Philips IP3204 I2C IP block master and/or
811 slave controller
812
813 This driver can also be built as a module. If so, the module
814 will be called i2c-pnx.
815
816config I2C_PUV3
817 tristate "PKUnity v3 I2C bus support"
818 depends on UNICORE32 && ARCH_PUV3
819 select I2C_ALGOBIT
820 help
821 This driver supports the I2C IP inside the PKUnity-v3 SoC.
822 This I2C bus controller is under AMBA/AXI bus.
823
824 This driver can also be built as a module. If so, the module
825 will be called i2c-puv3.
826
827config I2C_PXA
828 tristate "Intel PXA2XX I2C adapter"
829 depends on ARCH_PXA || ARCH_MMP || ARCH_MVEBU || (X86_32 && PCI && OF)
830 help
831 If you have devices in the PXA I2C bus, say yes to this option.
832 This driver can also be built as a module. If so, the module
833 will be called i2c-pxa.
834
835config I2C_PXA_PCI
836 def_bool I2C_PXA && X86_32 && PCI && OF
837
838config I2C_PXA_SLAVE
839 bool "Intel PXA2XX I2C Slave comms support"
840 depends on I2C_PXA && !X86_32
841 help
842 Support I2C slave mode communications on the PXA I2C bus. This
843 is necessary for systems where the PXA may be a target on the
844 I2C bus.
845
846config I2C_QCOM_GENI
847 tristate "Qualcomm Technologies Inc.'s GENI based I2C controller"
848 depends on ARCH_QCOM || COMPILE_TEST
849 depends on QCOM_GENI_SE
850 help
851 This driver supports GENI serial engine based I2C controller in
852 master mode on the Qualcomm Technologies Inc.'s SoCs. If you say
853 yes to this option, support will be included for the built-in I2C
854 interface on the Qualcomm Technologies Inc.'s SoCs.
855
856 This driver can also be built as a module. If so, the module
857 will be called i2c-qcom-geni.
858
859config I2C_QUP
860 tristate "Qualcomm QUP based I2C controller"
861 depends on ARCH_QCOM
862 help
863 If you say yes to this option, support will be included for the
864 built-in I2C interface on the Qualcomm SoCs.
865
866 This driver can also be built as a module. If so, the module
867 will be called i2c-qup.
868
869config I2C_RIIC
870 tristate "Renesas RIIC adapter"
871 depends on ARCH_RENESAS || COMPILE_TEST
872 help
873 If you say yes to this option, support will be included for the
874 Renesas RIIC I2C interface.
875
876 This driver can also be built as a module. If so, the module
877 will be called i2c-riic.
878
879config I2C_RK3X
880 tristate "Rockchip RK3xxx I2C adapter"
881 depends on OF && COMMON_CLK
882 help
883 Say Y here to include support for the I2C adapter in Rockchip RK3xxx
884 SoCs.
885
886 This driver can also be built as a module. If so, the module will
887 be called i2c-rk3x.
888
889config HAVE_S3C2410_I2C
890 bool
891 help
892 This will include I2C support for Samsung SoCs. If you want to
893 include I2C support for any machine, kindly select this in the
894 respective Kconfig file.
895
896config I2C_S3C2410
897 tristate "S3C2410 I2C Driver"
898 depends on HAVE_S3C2410_I2C
899 help
900 Say Y here to include support for I2C controller in the
901 Samsung SoCs.
902
903config I2C_SH7760
904 tristate "Renesas SH7760 I2C Controller"
905 depends on CPU_SUBTYPE_SH7760
906 help
907 This driver supports the 2 I2C interfaces on the Renesas SH7760.
908
909 This driver can also be built as a module. If so, the module
910 will be called i2c-sh7760.
911
912config I2C_SH_MOBILE
913 tristate "SuperH Mobile I2C Controller"
914 depends on ARCH_SHMOBILE || ARCH_RENESAS || COMPILE_TEST
915 help
916 If you say yes to this option, support will be included for the
917 built-in I2C interface on the Renesas SH-Mobile processor.
918
919 This driver can also be built as a module. If so, the module
920 will be called i2c-sh_mobile.
921
922config I2C_SIMTEC
923 tristate "Simtec Generic I2C interface"
924 select I2C_ALGOBIT
925 help
926 If you say yes to this option, support will be included for
927 the Simtec Generic I2C interface. This driver is for the
928 simple I2C bus used on newer Simtec products for general
929 I2C, such as DDC on the Simtec BBD2016A.
930
931 This driver can also be built as a module. If so, the module
932 will be called i2c-simtec.
933
934config I2C_SIRF
935 tristate "CSR SiRFprimaII I2C interface"
936 depends on ARCH_SIRF
937 help
938 If you say yes to this option, support will be included for the
939 CSR SiRFprimaII I2C interface.
940
941 This driver can also be built as a module. If so, the module
942 will be called i2c-sirf.
943
944config I2C_SPRD
945 bool "Spreadtrum I2C interface"
946 depends on I2C=y && ARCH_SPRD
947 help
948 If you say yes to this option, support will be included for the
949 Spreadtrum I2C interface.
950
951config I2C_ST
952 tristate "STMicroelectronics SSC I2C support"
953 depends on ARCH_STI
954 help
955 Enable this option to add support for STMicroelectronics SoCs
956 hardware SSC (Synchronous Serial Controller) as an I2C controller.
957
958 This driver can also be built as module. If so, the module
959 will be called i2c-st.
960
961config I2C_STM32F4
962 tristate "STMicroelectronics STM32F4 I2C support"
963 depends on ARCH_STM32 || COMPILE_TEST
964 help
965 Enable this option to add support for STM32 I2C controller embedded
966 in STM32F4 SoCs.
967
968 This driver can also be built as module. If so, the module
969 will be called i2c-stm32f4.
970
971config I2C_STM32F7
972 tristate "STMicroelectronics STM32F7 I2C support"
973 depends on ARCH_STM32 || COMPILE_TEST
974 select I2C_SLAVE
975 help
976 Enable this option to add support for STM32 I2C controller embedded
977 in STM32F7 SoCs.
978
979 This driver can also be built as module. If so, the module
980 will be called i2c-stm32f7.
981
982config I2C_STU300
983 tristate "ST Microelectronics DDC I2C interface"
984 depends on MACH_U300
985 default y if MACH_U300
986 help
987 If you say yes to this option, support will be included for the
988 I2C interface from ST Microelectronics simply called "DDC I2C"
989 supporting both I2C and DDC, used in e.g. the U300 series
990 mobile platforms.
991
992 This driver can also be built as a module. If so, the module
993 will be called i2c-stu300.
994
995config I2C_SUN6I_P2WI
996 tristate "Allwinner sun6i internal P2WI controller"
997 depends on RESET_CONTROLLER
998 depends on MACH_SUN6I || COMPILE_TEST
999 help
1000 If you say yes to this option, support will be included for the
1001 P2WI (Push/Pull 2 Wire Interface) controller embedded in some sunxi
1002 SOCs.
1003 The P2WI looks like an SMBus controller (which supports only byte
1004 accesses), except that it only supports one slave device.
1005 This interface is used to connect to specific PMIC devices (like the
1006 AXP221).
1007
1008config I2C_SYNQUACER
1009 tristate "Socionext SynQuacer I2C controller"
1010 depends on ARCH_SYNQUACER || COMPILE_TEST
1011 help
1012 Say Y here to include support for the I2C controller used in some
1013 Fujitsu and Socionext SoCs.
1014
1015 This driver can also be built as a module. If so, the module
1016 will be called i2c-synquacer.
1017
1018config I2C_TEGRA
1019 tristate "NVIDIA Tegra internal I2C controller"
1020 depends on ARCH_TEGRA
1021 help
1022 If you say yes to this option, support will be included for the
1023 I2C controller embedded in NVIDIA Tegra SOCs
1024
1025config I2C_TEGRA_BPMP
1026 tristate "NVIDIA Tegra BPMP I2C controller"
1027 depends on TEGRA_BPMP
1028 default y
1029 help
1030 If you say yes to this option, support will be included for the I2C
1031 controller embedded in NVIDIA Tegra SoCs accessed via the BPMP.
1032
1033 This I2C driver is a 'virtual' I2C driver. The real driver is part
1034 of the BPMP firmware, and this driver merely communicates with that
1035 real driver.
1036
1037config I2C_UNIPHIER
1038 tristate "UniPhier FIFO-less I2C controller"
1039 depends on ARCH_UNIPHIER || COMPILE_TEST
1040 help
1041 If you say yes to this option, support will be included for
1042 the UniPhier FIFO-less I2C interface embedded in PH1-LD4, PH1-sLD8,
1043 or older UniPhier SoCs.
1044
1045config I2C_UNIPHIER_F
1046 tristate "UniPhier FIFO-builtin I2C controller"
1047 depends on ARCH_UNIPHIER || COMPILE_TEST
1048 help
1049 If you say yes to this option, support will be included for
1050 the UniPhier FIFO-builtin I2C interface embedded in PH1-Pro4,
1051 PH1-Pro5, or newer UniPhier SoCs.
1052
1053config I2C_VERSATILE
1054 tristate "ARM Versatile/Realview I2C bus support"
1055 depends on ARCH_MPS2 || ARCH_VERSATILE || ARCH_REALVIEW || ARCH_VEXPRESS || COMPILE_TEST
1056 select I2C_ALGOBIT
1057 help
1058 Say yes if you want to support the I2C serial bus on ARMs Versatile
1059 range of platforms.
1060
1061 This driver can also be built as a module. If so, the module
1062 will be called i2c-versatile.
1063
1064config I2C_WMT
1065 tristate "Wondermedia WM8xxx SoC I2C bus support"
1066 depends on ARCH_VT8500
1067 help
1068 Say yes if you want to support the I2C bus on Wondermedia 8xxx-series
1069 SoCs.
1070
1071 This driver can also be built as a module. If so, the module will be
1072 called i2c-wmt.
1073
1074config I2C_OCTEON
1075 tristate "Cavium OCTEON I2C bus support"
1076 depends on CAVIUM_OCTEON_SOC
1077 help
1078 Say yes if you want to support the I2C serial bus on Cavium
1079 OCTEON SOC.
1080
1081 This driver can also be built as a module. If so, the module
1082 will be called i2c-octeon.
1083
1084config I2C_THUNDERX
1085 tristate "Cavium ThunderX I2C bus support"
1086 depends on 64BIT && PCI && (ARM64 || COMPILE_TEST)
1087 select I2C_SMBUS
1088 help
1089 Say yes if you want to support the I2C serial bus on Cavium
1090 ThunderX SOC.
1091
1092 This driver can also be built as a module. If so, the module
1093 will be called i2c-thunderx.
1094
1095config I2C_XILINX
1096 tristate "Xilinx I2C Controller"
1097 depends on HAS_IOMEM
1098 help
1099 If you say yes to this option, support will be included for the
1100 Xilinx I2C controller.
1101
1102 This driver can also be built as a module. If so, the module
1103 will be called xilinx_i2c.
1104
1105config I2C_XLR
1106 tristate "Netlogic XLR and Sigma Designs I2C support"
1107 depends on CPU_XLR || ARCH_TANGO
1108 help
1109 This driver enables support for the on-chip I2C interface of
1110 the Netlogic XLR/XLS MIPS processors and Sigma Designs SOCs.
1111
1112 This driver can also be built as a module. If so, the module
1113 will be called i2c-xlr.
1114
1115config I2C_XLP9XX
1116 tristate "XLP9XX I2C support"
1117 depends on CPU_XLP || ARCH_THUNDER2 || COMPILE_TEST
1118 help
1119 This driver enables support for the on-chip I2C interface of
1120 the Broadcom XLP9xx/XLP5xx MIPS and Vulcan ARM64 processors.
1121
1122 This driver can also be built as a module. If so, the module will
1123 be called i2c-xlp9xx.
1124
1125config I2C_RCAR
1126 tristate "Renesas R-Car I2C Controller"
1127 depends on ARCH_RENESAS || COMPILE_TEST
1128 select I2C_SLAVE
1129 help
1130 If you say yes to this option, support will be included for the
1131 R-Car I2C controller.
1132
1133 This driver can also be built as a module. If so, the module
1134 will be called i2c-rcar.
1135
1136comment "External I2C/SMBus adapter drivers"
1137
1138config I2C_DIOLAN_U2C
1139 tristate "Diolan U2C-12 USB adapter"
1140 depends on USB
1141 help
1142 If you say yes to this option, support will be included for Diolan
1143 U2C-12, a USB to I2C interface.
1144
1145 This driver can also be built as a module. If so, the module
1146 will be called i2c-diolan-u2c.
1147
1148config I2C_DLN2
1149 tristate "Diolan DLN-2 USB I2C adapter"
1150 depends on MFD_DLN2
1151 help
1152 If you say yes to this option, support will be included for Diolan
1153 DLN2, a USB to I2C interface.
1154
1155 This driver can also be built as a module. If so, the module
1156 will be called i2c-dln2.
1157
1158config I2C_PARPORT
1159 tristate "Parallel port adapter"
1160 depends on PARPORT
1161 select I2C_ALGOBIT
1162 select I2C_SMBUS
1163 help
1164 This supports parallel port I2C adapters such as the ones made by
1165 Philips or Velleman, Analog Devices evaluation boards, and more.
1166 Basically any adapter using the parallel port as an I2C bus with
1167 no extra chipset is supported by this driver, or could be.
1168
1169 This driver is a replacement for (and was inspired by) an older
1170 driver named i2c-philips-par. The new driver supports more devices,
1171 and makes it easier to add support for new devices.
1172
1173 An adapter type parameter is now mandatory. Please read the file
1174 Documentation/i2c/busses/i2c-parport for details.
1175
1176 Another driver exists, named i2c-parport-light, which doesn't depend
1177 on the parport driver. This is meant for embedded systems. Don't say
1178 Y here if you intend to say Y or M there.
1179
1180 This support is also available as a module. If so, the module
1181 will be called i2c-parport.
1182
1183config I2C_PARPORT_LIGHT
1184 tristate "Parallel port adapter (light)"
1185 select I2C_ALGOBIT
1186 select I2C_SMBUS
1187 help
1188 This supports parallel port I2C adapters such as the ones made by
1189 Philips or Velleman, Analog Devices evaluation boards, and more.
1190 Basically any adapter using the parallel port as an I2C bus with
1191 no extra chipset is supported by this driver, or could be.
1192
1193 This driver is a light version of i2c-parport. It doesn't depend
1194 on the parport driver, and uses direct I/O access instead. This
1195 might be preferred on embedded systems where wasting memory for
1196 the clean but heavy parport handling is not an option. The
1197 drawback is a reduced portability and the impossibility to
1198 daisy-chain other parallel port devices.
1199
1200 Don't say Y here if you said Y or M to i2c-parport. Saying M to
1201 both is possible but both modules should not be loaded at the same
1202 time.
1203
1204 This support is also available as a module. If so, the module
1205 will be called i2c-parport-light.
1206
1207config I2C_ROBOTFUZZ_OSIF
1208 tristate "RobotFuzz Open Source InterFace USB adapter"
1209 depends on USB
1210 help
1211 If you say yes to this option, support will be included for the
1212 RobotFuzz Open Source InterFace USB to I2C interface.
1213
1214 This driver can also be built as a module. If so, the module
1215 will be called i2c-osif.
1216
1217config I2C_TAOS_EVM
1218 tristate "TAOS evaluation module"
1219 depends on TTY
1220 select SERIO
1221 select SERIO_SERPORT
1222 default n
1223 help
1224 This supports TAOS evaluation modules on serial port. In order to
1225 use this driver, you will need the inputattach tool, which is part
1226 of the input-utils package.
1227
1228 If unsure, say N.
1229
1230 This support is also available as a module. If so, the module
1231 will be called i2c-taos-evm.
1232
1233config I2C_TINY_USB
1234 tristate "Tiny-USB adapter"
1235 depends on USB
1236 help
1237 If you say yes to this option, support will be included for the
1238 i2c-tiny-usb, a simple do-it-yourself USB to I2C interface. See
1239 http://www.harbaum.org/till/i2c_tiny_usb for hardware details.
1240
1241 This driver can also be built as a module. If so, the module
1242 will be called i2c-tiny-usb.
1243
1244config I2C_VIPERBOARD
1245 tristate "Viperboard I2C master support"
1246 depends on MFD_VIPERBOARD && USB
1247 help
1248 Say yes here to access the I2C part of the Nano River
1249 Technologies Viperboard as I2C master.
1250 See viperboard API specification and Nano
1251 River Tech's viperboard.h for detailed meaning
1252 of the module parameters.
1253
1254comment "Other I2C/SMBus bus drivers"
1255
1256config I2C_ACORN
1257 tristate "Acorn IOC/IOMD I2C bus support"
1258 depends on ARCH_ACORN
1259 default y
1260 select I2C_ALGOBIT
1261 help
1262 Say yes if you want to support the I2C bus on Acorn platforms.
1263
1264 If you don't know, say Y.
1265
1266config I2C_ELEKTOR
1267 tristate "Elektor ISA card"
1268 depends on ISA && HAS_IOPORT_MAP && BROKEN_ON_SMP
1269 select I2C_ALGOPCF
1270 help
1271 This supports the PCF8584 ISA bus I2C adapter. Say Y if you own
1272 such an adapter.
1273
1274 This support is also available as a module. If so, the module
1275 will be called i2c-elektor.
1276
1277config I2C_MLXCPLD
1278 tristate "Mellanox I2C driver"
1279 depends on X86_64
1280 help
1281 This exposes the Mellanox platform I2C busses to the linux I2C layer
1282 for X86 based systems.
1283 Controller is implemented as CPLD logic.
1284
1285 This driver can also be built as a module. If so, the module will be
1286 called as i2c-mlxcpld.
1287
1288config I2C_PCA_ISA
1289 tristate "PCA9564/PCA9665 on an ISA bus"
1290 depends on ISA
1291 select I2C_ALGOPCA
1292 default n
1293 help
1294 This driver supports ISA boards using the Philips PCA9564/PCA9665
1295 parallel bus to I2C bus controller.
1296
1297 This driver can also be built as a module. If so, the module
1298 will be called i2c-pca-isa.
1299
1300 This device is almost undetectable and using this driver on a
1301 system which doesn't have this device will result in long
1302 delays when I2C/SMBus chip drivers are loaded (e.g. at boot
1303 time). If unsure, say N.
1304
1305config I2C_SIBYTE
1306 tristate "SiByte SMBus interface"
1307 depends on SIBYTE_SB1xxx_SOC
1308 help
1309 Supports the SiByte SOC on-chip I2C interfaces (2 channels).
1310
1311config I2C_CROS_EC_TUNNEL
1312 tristate "ChromeOS EC tunnel I2C bus"
1313 depends on MFD_CROS_EC
1314 help
1315 If you say yes here you get an I2C bus that will tunnel i2c commands
1316 through to the other side of the ChromeOS EC to the i2c bus
1317 connected there. This will work whatever the interface used to
1318 talk to the EC (SPI, I2C or LPC).
1319
1320config I2C_XGENE_SLIMPRO
1321 tristate "APM X-Gene SoC I2C SLIMpro devices support"
1322 depends on ARCH_XGENE && MAILBOX
1323 help
1324 Enable I2C bus access using the APM X-Gene SoC SLIMpro
1325 co-processor. The I2C device access the I2C bus via the X-Gene
1326 to SLIMpro (On chip coprocessor) mailbox mechanism.
1327 If unsure, say N.
1328
1329config SCx200_ACB
1330 tristate "Geode ACCESS.bus support"
1331 depends on X86_32 && PCI
1332 help
1333 Enable the use of the ACCESS.bus controllers on the Geode SCx200 and
1334 SC1100 processors and the CS5535 and CS5536 Geode companion devices.
1335
1336 If you don't know what to do here, say N.
1337
1338 This support is also available as a module. If so, the module
1339 will be called scx200_acb.
1340
1341config I2C_OPAL
1342 tristate "IBM OPAL I2C driver"
1343 depends on PPC_POWERNV
1344 default y
1345 help
1346 This exposes the PowerNV platform i2c busses to the linux i2c layer,
1347 the driver is based on the OPAL interfaces.
1348
1349 This driver can also be built as a module. If so, the module will be
1350 called as i2c-opal.
1351
1352config I2C_ZX2967
1353 tristate "ZTE ZX2967 I2C support"
1354 depends on ARCH_ZX
1355 default y
1356 help
1357 Selecting this option will add ZX2967 I2C driver.
1358 This driver can also be built as a module. If so, the module will be
1359 called i2c-zx2967.
1360
1361config I2C_FSI
1362 tristate "FSI I2C driver"
1363 depends on FSI
1364 help
1365 Driver for FSI bus attached I2C masters. These are I2C masters that
1366 are connected to the system over an FSI bus, instead of the more
1367 common PCI or MMIO interface.
1368
1369 This driver can also be built as a module. If so, the module will be
1370 called as i2c-fsi.
1371
1372endmenu