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