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