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