WIP: merge_config
[platform/kernel/linux-starfive.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_HIGHLANDER
663         tristate "Highlander FPGA SMBus interface"
664         depends on SH_HIGHLANDER || COMPILE_TEST
665         help
666           If you say yes to this option, support will be included for
667           the SMBus interface located in the FPGA on various Highlander
668           boards, particularly the R0P7780LC0011RL and R0P7785LC0011RL
669           FPGAs. This is wholly unrelated to the SoC I2C.
670
671           This driver can also be built as a module.  If so, the module
672           will be called i2c-highlander.
673
674 config I2C_HISI
675         tristate "HiSilicon I2C controller"
676         depends on (ARM64 && ACPI) || COMPILE_TEST
677         help
678           Say Y here if you want to have Hisilicon I2C controller support
679           available on the Kunpeng Server.
680
681           This driver can also be built as a module. If so, the module
682           will be called i2c-hisi.
683
684 config I2C_IBM_IIC
685         tristate "IBM PPC 4xx on-chip I2C interface"
686         depends on 4xx
687         help
688           Say Y here if you want to use IIC peripheral found on
689           embedded IBM PPC 4xx based systems.
690
691           This driver can also be built as a module.  If so, the module
692           will be called i2c-ibm_iic.
693
694 config I2C_IMG
695         tristate "Imagination Technologies I2C SCB Controller"
696         depends on MIPS || COMPILE_TEST
697         help
698           Say Y here if you want to use the IMG I2C SCB controller,
699           available on the TZ1090 and other IMG SoCs.
700
701           This driver can also be built as a module.  If so, the module
702           will be called i2c-img-scb.
703
704 config I2C_IMX
705         tristate "IMX I2C interface"
706         depends on ARCH_MXC || ARCH_LAYERSCAPE || COLDFIRE || COMPILE_TEST
707         select I2C_SLAVE
708         help
709           Say Y here if you want to use the IIC bus controller on
710           the Freescale i.MX/MXC, Layerscape or ColdFire processors.
711
712           This driver can also be built as a module.  If so, the module
713           will be called i2c-imx.
714
715 config I2C_IMX_LPI2C
716         tristate "IMX Low Power I2C interface"
717         depends on ARCH_MXC || COMPILE_TEST
718         help
719           Say Y here if you want to use the Low Power IIC bus controller
720           on the Freescale i.MX processors.
721
722           This driver can also be built as a module. If so, the module
723           will be called i2c-imx-lpi2c.
724
725 config I2C_IOP3XX
726         tristate "Intel IOPx3xx and IXP4xx on-chip I2C interface"
727         depends on ARCH_IOP32X || ARCH_IXP4XX || COMPILE_TEST
728         help
729           Say Y here if you want to use the IIC bus controller on
730           the Intel IOPx3xx I/O Processors or IXP4xx Network Processors.
731
732           This driver can also be built as a module.  If so, the module
733           will be called i2c-iop3xx.
734
735 config I2C_JZ4780
736         tristate "JZ4780 I2C controller interface support"
737         depends on MIPS || COMPILE_TEST
738         help
739          If you say yes to this option, support will be included for the
740          Ingenic JZ4780 I2C controller.
741
742          If you don't know what to do here, say N.
743
744 config I2C_KEMPLD
745         tristate "Kontron COM I2C Controller"
746         depends on MFD_KEMPLD
747         help
748           This enables support for the I2C bus interface on some Kontron ETX
749           and COMexpress (ETXexpress) modules.
750
751           This driver can also be built as a module. If so, the module
752           will be called i2c-kempld.
753
754 config I2C_LPC2K
755         tristate "I2C bus support for NXP LPC2K/LPC178x/18xx/43xx"
756         depends on OF && (ARCH_LPC18XX || COMPILE_TEST)
757         help
758           This driver supports the I2C interface found several NXP
759           devices including LPC2xxx, LPC178x/7x and LPC18xx/43xx.
760
761           This driver can also be built as a module.  If so, the module
762           will be called i2c-lpc2k.
763
764 config I2C_MLXBF
765         tristate "Mellanox BlueField I2C controller"
766         depends on MELLANOX_PLATFORM && ARM64
767         depends on ACPI
768         select I2C_SLAVE
769         help
770           Enabling this option will add I2C SMBus support for Mellanox BlueField
771           system.
772
773           This driver can also be built as a module. If so, the module will be
774           called i2c-mlxbf.
775
776           This driver implements an I2C SMBus host controller and enables both
777           master and slave functions.
778
779 config I2C_MESON
780         tristate "Amlogic Meson I2C controller"
781         depends on ARCH_MESON || COMPILE_TEST
782         depends on COMMON_CLK
783         help
784           If you say yes to this option, support will be included for the
785           I2C interface on the Amlogic Meson family of SoCs.
786
787 config I2C_MICROCHIP_CORE
788         tristate "Microchip FPGA I2C controller"
789         depends on SOC_MICROCHIP_POLARFIRE || COMPILE_TEST
790         depends on OF
791         help
792           If you say yes to this option, support will be included for the
793           I2C interface on Microchip FPGAs.
794
795           This driver can also be built as a module. If so, the module will be
796           called i2c-microchip-core.
797
798 config I2C_MPC
799         tristate "MPC107/824x/85xx/512x/52xx/83xx/86xx"
800         depends on PPC
801         help
802           If you say yes to this option, support will be included for the
803           built-in I2C interface on the MPC107, Tsi107, MPC512x, MPC52xx,
804           MPC8240, MPC8245, MPC83xx, MPC85xx and MPC8641 family processors.
805
806           This driver can also be built as a module.  If so, the module
807           will be called i2c-mpc.
808
809 config I2C_MT65XX
810         tristate "MediaTek I2C adapter"
811         depends on ARCH_MEDIATEK || COMPILE_TEST
812         help
813           This selects the MediaTek(R) Integrated Inter Circuit bus driver
814           for MT65xx and MT81xx.
815           If you want to use MediaTek(R) I2C interface, say Y or M here.
816           If unsure, say N.
817
818 config I2C_MT7621
819         tristate "MT7621/MT7628 I2C Controller"
820         depends on (RALINK && (SOC_MT7620 || SOC_MT7621)) || COMPILE_TEST
821         help
822           Say Y here to include support for I2C controller in the
823           MediaTek MT7621/MT7628 SoCs.
824
825 config I2C_MV64XXX
826         tristate "Marvell mv64xxx I2C Controller"
827         depends on PLAT_ORION || ARCH_SUNXI || ARCH_MVEBU || COMPILE_TEST
828         help
829           If you say yes to this option, support will be included for the
830           built-in I2C interface on the Marvell 64xxx line of host bridges.
831           This driver is also used for Allwinner SoCs I2C controllers.
832
833           This driver can also be built as a module.  If so, the module
834           will be called i2c-mv64xxx.
835
836 config I2C_MXS
837         tristate "Freescale i.MX28 I2C interface"
838         depends on SOC_IMX28 || COMPILE_TEST
839         select STMP_DEVICE
840         help
841           Say Y here if you want to use the I2C bus controller on
842           the Freescale i.MX28 processors.
843
844           This driver can also be built as a module.  If so, the module
845           will be called i2c-mxs.
846
847 config I2C_NOMADIK
848         tristate "ST-Ericsson Nomadik/Ux500 I2C Controller"
849         depends on ARM_AMBA
850         help
851           If you say yes to this option, support will be included for the
852           I2C interface from ST-Ericsson's Nomadik and Ux500 architectures,
853           as well as the STA2X11 PCIe I/O HUB.
854
855 config I2C_NPCM
856         tristate "Nuvoton I2C Controller"
857         depends on ARCH_NPCM || COMPILE_TEST
858         help
859           If you say yes to this option, support will be included for the
860           Nuvoton I2C controller, which is available on the NPCM BMC
861           controllers.
862           Driver can also support slave mode (select I2C_SLAVE).
863
864 config I2C_OCORES
865         tristate "OpenCores I2C Controller"
866         help
867           If you say yes to this option, support will be included for the
868           OpenCores I2C controller. For details see
869           http://www.opencores.org/projects.cgi/web/i2c/overview
870
871           This driver can also be built as a module.  If so, the module
872           will be called i2c-ocores.
873
874 config I2C_OMAP
875         tristate "OMAP I2C adapter"
876         depends on ARCH_OMAP || ARCH_K3 || COMPILE_TEST
877         default y if MACH_OMAP_H3 || MACH_OMAP_OSK
878         help
879           If you say yes to this option, support will be included for the
880           I2C interface on the Texas Instruments OMAP1/2 family of processors.
881           Like OMAP1510/1610/1710/5912 and OMAP242x.
882           For details see http://www.ti.com/omap.
883
884 config I2C_OWL
885         tristate "Actions Semiconductor Owl I2C Controller"
886         depends on ARCH_ACTIONS || COMPILE_TEST
887         help
888           Say Y here if you want to use the I2C bus controller on
889           the Actions Semiconductor Owl SoC's.
890
891 config I2C_PASEMI
892         tristate "PA Semi SMBus interface"
893         depends on PPC_PASEMI && PCI
894         help
895           Supports the PA Semi PWRficient on-chip SMBus interfaces.
896
897 config I2C_APPLE
898         tristate "Apple SMBus platform driver"
899         depends on ARCH_APPLE || COMPILE_TEST
900         default ARCH_APPLE
901         help
902           Say Y here if you want to use the I2C controller present on Apple
903           Silicon chips such as the M1.
904
905           This driver can also be built as a module. If so, the module
906           will be called i2c-apple.
907
908 config I2C_PCA_PLATFORM
909         tristate "PCA9564/PCA9665 as platform device"
910         select I2C_ALGOPCA
911         help
912           This driver supports a memory mapped Philips PCA9564/PCA9665
913           parallel bus to I2C bus controller.
914
915           This driver can also be built as a module.  If so, the module
916           will be called i2c-pca-platform.
917
918 config I2C_PNX
919         tristate "I2C bus support for Philips PNX and NXP LPC targets"
920         depends on ARCH_LPC32XX || COMPILE_TEST
921         help
922           This driver supports the Philips IP3204 I2C IP block master and/or
923           slave controller
924
925           This driver can also be built as a module.  If so, the module
926           will be called i2c-pnx.
927
928 config I2C_PXA
929         tristate "Intel PXA2XX I2C adapter"
930         depends on ARCH_PXA || ARCH_MMP || ARCH_MVEBU || (X86_32 && PCI && OF) || COMPILE_TEST
931         help
932           If you have devices in the PXA I2C bus, say yes to this option.
933           This driver can also be built as a module.  If so, the module
934           will be called i2c-pxa.
935
936 config I2C_PXA_PCI
937         def_bool I2C_PXA && X86_32 && PCI && OF
938
939 config I2C_PXA_SLAVE
940         bool "Intel PXA2XX I2C Slave comms support"
941         depends on I2C_PXA && !X86_32
942         select I2C_SLAVE
943         help
944           Support I2C slave mode communications on the PXA I2C bus.  This
945           is necessary for systems where the PXA may be a target on the
946           I2C bus.
947
948 config I2C_QCOM_CCI
949         tristate "Qualcomm Camera Control Interface"
950         depends on ARCH_QCOM || COMPILE_TEST
951         help
952           If you say yes to this option, support will be included for the
953           built-in camera control interface on the Qualcomm SoCs.
954
955           This driver can also be built as a module.  If so, the module
956           will be called i2c-qcom-cci.
957
958 config I2C_QCOM_GENI
959         tristate "Qualcomm Technologies Inc.'s GENI based I2C controller"
960         depends on ARCH_QCOM || COMPILE_TEST
961         depends on QCOM_GENI_SE
962         help
963           This driver supports GENI serial engine based I2C controller in
964           master mode on the Qualcomm Technologies Inc.'s SoCs. If you say
965           yes to this option, support will be included for the built-in I2C
966           interface on the Qualcomm Technologies Inc.'s SoCs.
967
968           This driver can also be built as a module.  If so, the module
969           will be called i2c-qcom-geni.
970
971 config I2C_QUP
972         tristate "Qualcomm QUP based I2C controller"
973         depends on ARCH_QCOM || COMPILE_TEST
974         help
975           If you say yes to this option, support will be included for the
976           built-in I2C interface on the Qualcomm SoCs.
977
978           This driver can also be built as a module.  If so, the module
979           will be called i2c-qup.
980
981 config I2C_RIIC
982         tristate "Renesas RIIC adapter"
983         depends on ARCH_RENESAS || COMPILE_TEST
984         help
985           If you say yes to this option, support will be included for the
986           Renesas RIIC I2C interface.
987
988           This driver can also be built as a module.  If so, the module
989           will be called i2c-riic.
990
991 config I2C_RK3X
992         tristate "Rockchip RK3xxx I2C adapter"
993         depends on OF && COMMON_CLK
994         help
995           Say Y here to include support for the I2C adapter in Rockchip RK3xxx
996           SoCs.
997
998           This driver can also be built as a module. If so, the module will
999           be called i2c-rk3x.
1000
1001 config I2C_RZV2M
1002         tristate "Renesas RZ/V2M adapter"
1003         depends on ARCH_RENESAS || COMPILE_TEST
1004         help
1005           If you say yes to this option, support will be included for the
1006           Renesas RZ/V2M  I2C interface.
1007
1008           This driver can also be built as a module.  If so, the module
1009           will be called i2c-rzv2m.
1010
1011 config I2C_S3C2410
1012         tristate "S3C/Exynos I2C Driver"
1013         depends on ARCH_EXYNOS || ARCH_S3C24XX || ARCH_S3C64XX || \
1014                    ARCH_S5PV210 || COMPILE_TEST
1015         help
1016           Say Y here to include support for I2C controller in the
1017           Samsung SoCs (S3C, S5Pv210, Exynos).
1018
1019 config I2C_SH7760
1020         tristate "Renesas SH7760 I2C Controller"
1021         depends on CPU_SUBTYPE_SH7760
1022         help
1023           This driver supports the 2 I2C interfaces on the Renesas SH7760.
1024
1025           This driver can also be built as a module.  If so, the module
1026           will be called i2c-sh7760.
1027
1028 config I2C_SH_MOBILE
1029         tristate "SuperH Mobile I2C Controller"
1030         depends on ARCH_SHMOBILE || ARCH_RENESAS || COMPILE_TEST
1031         help
1032           If you say yes to this option, support will be included for the
1033           built-in I2C interface on the Renesas SH-Mobile processor.
1034
1035           This driver can also be built as a module.  If so, the module
1036           will be called i2c-sh_mobile.
1037
1038 config I2C_SIMTEC
1039         tristate "Simtec Generic I2C interface"
1040         select I2C_ALGOBIT
1041         help
1042           If you say yes to this option, support will be included for
1043           the Simtec Generic I2C interface. This driver is for the
1044           simple I2C bus used on newer Simtec products for general
1045           I2C, such as DDC on the Simtec BBD2016A.
1046
1047           This driver can also be built as a module. If so, the module
1048           will be called i2c-simtec.
1049
1050 config I2C_SPRD
1051         tristate "Spreadtrum I2C interface"
1052         depends on I2C=y && (ARCH_SPRD || COMPILE_TEST)
1053         depends on COMMON_CLK
1054         help
1055           If you say yes to this option, support will be included for the
1056           Spreadtrum I2C interface.
1057
1058 config I2C_ST
1059         tristate "STMicroelectronics SSC I2C support"
1060         depends on ARCH_STI || COMPILE_TEST
1061         help
1062           Enable this option to add support for STMicroelectronics SoCs
1063           hardware SSC (Synchronous Serial Controller) as an I2C controller.
1064
1065           This driver can also be built as module. If so, the module
1066           will be called i2c-st.
1067
1068 config I2C_STM32F4
1069         tristate "STMicroelectronics STM32F4 I2C support"
1070         depends on ARCH_STM32 || COMPILE_TEST
1071         help
1072           Enable this option to add support for STM32 I2C controller embedded
1073           in STM32F4 SoCs.
1074
1075           This driver can also be built as module. If so, the module
1076           will be called i2c-stm32f4.
1077
1078 config I2C_STM32F7
1079         tristate "STMicroelectronics STM32F7 I2C support"
1080         depends on ARCH_STM32 || COMPILE_TEST
1081         select I2C_SLAVE
1082         select I2C_SMBUS
1083         help
1084           Enable this option to add support for STM32 I2C controller embedded
1085           in STM32F7 SoCs.
1086
1087           This driver can also be built as module. If so, the module
1088           will be called i2c-stm32f7.
1089
1090 config I2C_SUN6I_P2WI
1091         tristate "Allwinner sun6i internal P2WI controller"
1092         depends on RESET_CONTROLLER
1093         depends on MACH_SUN6I || COMPILE_TEST
1094         help
1095           If you say yes to this option, support will be included for the
1096           P2WI (Push/Pull 2 Wire Interface) controller embedded in some sunxi
1097           SOCs.
1098           The P2WI looks like an SMBus controller (which supports only byte
1099           accesses), except that it only supports one slave device.
1100           This interface is used to connect to specific PMIC devices (like the
1101           AXP221).
1102
1103 config I2C_SYNQUACER
1104         tristate "Socionext SynQuacer I2C controller"
1105         depends on ARCH_SYNQUACER || COMPILE_TEST
1106         help
1107           Say Y here to include support for the I2C controller used in some
1108           Fujitsu and Socionext SoCs.
1109
1110           This driver can also be built as a module. If so, the module
1111           will be called i2c-synquacer.
1112
1113 config I2C_TEGRA
1114         tristate "NVIDIA Tegra internal I2C controller"
1115         depends on ARCH_TEGRA || (COMPILE_TEST && (ARC || ARM || ARM64 || M68K || RISCV || SUPERH || SPARC))
1116         # COMPILE_TEST needs architectures with readsX()/writesX() primitives
1117         help
1118           If you say yes to this option, support will be included for the
1119           I2C controller embedded in NVIDIA Tegra SOCs
1120
1121 config I2C_TEGRA_BPMP
1122         tristate "NVIDIA Tegra BPMP I2C controller"
1123         depends on TEGRA_BPMP || COMPILE_TEST
1124         default y if TEGRA_BPMP
1125         help
1126           If you say yes to this option, support will be included for the I2C
1127           controller embedded in NVIDIA Tegra SoCs accessed via the BPMP.
1128
1129           This I2C driver is a 'virtual' I2C driver. The real driver is part
1130           of the BPMP firmware, and this driver merely communicates with that
1131           real driver.
1132
1133 config I2C_UNIPHIER
1134         tristate "UniPhier FIFO-less I2C controller"
1135         depends on ARCH_UNIPHIER || COMPILE_TEST
1136         help
1137           If you say yes to this option, support will be included for
1138           the UniPhier FIFO-less I2C interface embedded in PH1-LD4, PH1-sLD8,
1139           or older UniPhier SoCs.
1140
1141 config I2C_UNIPHIER_F
1142         tristate "UniPhier FIFO-builtin I2C controller"
1143         depends on ARCH_UNIPHIER || COMPILE_TEST
1144         help
1145           If you say yes to this option, support will be included for
1146           the UniPhier FIFO-builtin I2C interface embedded in PH1-Pro4,
1147           PH1-Pro5, or newer UniPhier SoCs.
1148
1149 config I2C_VERSATILE
1150         tristate "ARM Versatile/Realview I2C bus support"
1151         depends on ARCH_MPS2 || ARCH_VERSATILE || ARCH_REALVIEW || ARCH_VEXPRESS || COMPILE_TEST
1152         select I2C_ALGOBIT
1153         help
1154           Say yes if you want to support the I2C serial bus on ARMs Versatile
1155           range of platforms.
1156
1157           This driver can also be built as a module.  If so, the module
1158           will be called i2c-versatile.
1159
1160 config I2C_WMT
1161         tristate "Wondermedia WM8xxx SoC I2C bus support"
1162         depends on ARCH_VT8500 || COMPILE_TEST
1163         help
1164           Say yes if you want to support the I2C bus on Wondermedia 8xxx-series
1165           SoCs.
1166
1167           This driver can also be built as a module. If so, the module will be
1168           called i2c-wmt.
1169
1170 config I2C_OCTEON
1171         tristate "Cavium OCTEON I2C bus support"
1172         depends on CAVIUM_OCTEON_SOC
1173         help
1174           Say yes if you want to support the I2C serial bus on Cavium
1175           OCTEON SOC.
1176
1177           This driver can also be built as a module.  If so, the module
1178           will be called i2c-octeon.
1179
1180 config I2C_THUNDERX
1181         tristate "Cavium ThunderX I2C bus support"
1182         depends on 64BIT && PCI && (ARM64 || COMPILE_TEST)
1183         select I2C_SMBUS
1184         help
1185           Say yes if you want to support the I2C serial bus on Cavium
1186           ThunderX SOC.
1187
1188           This driver can also be built as a module.  If so, the module
1189           will be called i2c-thunderx.
1190
1191 config I2C_XILINX
1192         tristate "Xilinx I2C Controller"
1193         depends on HAS_IOMEM
1194         help
1195           If you say yes to this option, support will be included for the
1196           Xilinx I2C controller.
1197
1198           This driver can also be built as a module.  If so, the module
1199           will be called xilinx_i2c.
1200
1201 config I2C_XLP9XX
1202         tristate "Cavium ThunderX2 I2C support"
1203         depends on ARCH_THUNDER2 || COMPILE_TEST
1204         help
1205           This driver enables support for the on-chip I2C interface of
1206           the Cavium ThunderX2 processors. (Originally on Netlogic XLP SoCs.)
1207
1208           This driver can also be built as a module.  If so, the module will
1209           be called i2c-xlp9xx.
1210
1211 config I2C_RCAR
1212         tristate "Renesas R-Car I2C Controller"
1213         depends on ARCH_RENESAS || COMPILE_TEST
1214         select I2C_SLAVE
1215         select I2C_SMBUS
1216         select RESET_CONTROLLER if ARCH_RCAR_GEN3
1217         help
1218           If you say yes to this option, support will be included for the
1219           R-Car I2C controller.
1220
1221           This driver can also be built as a module.  If so, the module
1222           will be called i2c-rcar.
1223
1224 comment "External I2C/SMBus adapter drivers"
1225
1226 config I2C_DIOLAN_U2C
1227         tristate "Diolan U2C-12 USB adapter"
1228         depends on USB
1229         help
1230           If you say yes to this option, support will be included for Diolan
1231           U2C-12, a USB to I2C interface.
1232
1233           This driver can also be built as a module.  If so, the module
1234           will be called i2c-diolan-u2c.
1235
1236 config I2C_DLN2
1237         tristate "Diolan DLN-2 USB I2C adapter"
1238         depends on MFD_DLN2
1239         help
1240          If you say yes to this option, support will be included for Diolan
1241          DLN2, a USB to I2C interface.
1242
1243          This driver can also be built as a module.  If so, the module
1244          will be called i2c-dln2.
1245
1246 config I2C_CP2615
1247         tristate "Silicon Labs CP2615 USB sound card and I2C adapter"
1248         depends on USB
1249         help
1250           If you say yes to this option, support will be included for Silicon
1251           Labs CP2615's I2C interface.
1252
1253           This driver can also be built as a module.  If so, the module
1254           will be called i2c-cp2615.
1255
1256 config I2C_PARPORT
1257         tristate "Parallel port adapter"
1258         depends on PARPORT
1259         select I2C_ALGOBIT
1260         select I2C_SMBUS
1261         help
1262           This supports parallel port I2C adapters such as the ones made by
1263           Philips or Velleman, Analog Devices evaluation boards, and more.
1264           Basically any adapter using the parallel port as an I2C bus with
1265           no extra chipset is supported by this driver, or could be. Please
1266           read the file Documentation/i2c/busses/i2c-parport.rst for details.
1267
1268           This support is also available as a module.  If so, the module
1269           will be called i2c-parport.
1270
1271 config I2C_PCI1XXXX
1272         tristate "PCI1XXXX I2C Host Adapter"
1273         depends on PCI
1274         help
1275           If you say yes to this option, support will be included for
1276           Microchip PCI1XXXX's I2C interface.
1277
1278           This driver can also be built as a module. If so, the module will
1279           be called i2c-mchp-pci1xxxx.
1280
1281 config I2C_ROBOTFUZZ_OSIF
1282         tristate "RobotFuzz Open Source InterFace USB adapter"
1283         depends on USB
1284         help
1285           If you say yes to this option, support will be included for the
1286           RobotFuzz Open Source InterFace USB to I2C interface.
1287
1288           This driver can also be built as a module.  If so, the module
1289           will be called i2c-osif.
1290
1291 config I2C_TAOS_EVM
1292         tristate "TAOS evaluation module"
1293         depends on TTY
1294         select SERIO
1295         select SERIO_SERPORT
1296         help
1297           This supports TAOS evaluation modules on serial port. In order to
1298           use this driver, you will need the inputattach tool, which is part
1299           of the input-utils package.
1300
1301           If unsure, say N.
1302
1303           This support is also available as a module.  If so, the module
1304           will be called i2c-taos-evm.
1305
1306 config I2C_TINY_USB
1307         tristate "Tiny-USB adapter"
1308         depends on USB
1309         help
1310           If you say yes to this option, support will be included for the
1311           i2c-tiny-usb, a simple do-it-yourself USB to I2C interface. See
1312           http://www.harbaum.org/till/i2c_tiny_usb for hardware details.
1313
1314           This driver can also be built as a module.  If so, the module
1315           will be called i2c-tiny-usb.
1316
1317 config I2C_VIPERBOARD
1318         tristate "Viperboard I2C master support"
1319         depends on MFD_VIPERBOARD && USB
1320         help
1321           Say yes here to access the I2C part of the Nano River
1322           Technologies Viperboard as I2C master.
1323           See viperboard API specification and Nano
1324           River Tech's viperboard.h for detailed meaning
1325           of the module parameters.
1326
1327 comment "Other I2C/SMBus bus drivers"
1328
1329 config I2C_ACORN
1330         tristate "Acorn IOC/IOMD I2C bus support"
1331         depends on ARCH_ACORN
1332         default y
1333         select I2C_ALGOBIT
1334         help
1335           Say yes if you want to support the I2C bus on Acorn platforms.
1336
1337           If you don't know, say Y.
1338
1339 config I2C_ELEKTOR
1340         tristate "Elektor ISA card"
1341         depends on ISA && HAS_IOPORT_MAP && BROKEN_ON_SMP
1342         select I2C_ALGOPCF
1343         help
1344           This supports the PCF8584 ISA bus I2C adapter.  Say Y if you own
1345           such an adapter.
1346
1347           This support is also available as a module.  If so, the module
1348           will be called i2c-elektor.
1349
1350 config I2C_ICY
1351         tristate "ICY Zorro card"
1352         depends on ZORRO
1353         select I2C_ALGOPCF
1354         help
1355           This supports the PCF8584 Zorro bus I2C adapter, known as ICY.
1356           Say Y if you own such an adapter.
1357
1358           This support is also available as a module.  If so, the module
1359           will be called i2c-icy.
1360
1361           If you have a 2019 edition board with an LTC2990 sensor at address
1362           0x4c, loading the module 'ltc2990' is sufficient to enable it.
1363
1364 config I2C_MLXCPLD
1365         tristate "Mellanox I2C driver"
1366         depends on X86_64 || COMPILE_TEST
1367         help
1368           This exposes the Mellanox platform I2C busses to the linux I2C layer
1369           for X86 based systems.
1370           Controller is implemented as CPLD logic.
1371
1372           This driver can also be built as a module. If so, the module will be
1373           called as i2c-mlxcpld.
1374
1375 config I2C_PCA_ISA
1376         tristate "PCA9564/PCA9665 on an ISA bus"
1377         depends on ISA
1378         select I2C_ALGOPCA
1379         help
1380           This driver supports ISA boards using the Philips PCA9564/PCA9665
1381           parallel bus to I2C bus controller.
1382
1383           This driver can also be built as a module.  If so, the module
1384           will be called i2c-pca-isa.
1385
1386           This device is almost undetectable and using this driver on a
1387           system which doesn't have this device will result in long
1388           delays when I2C/SMBus chip drivers are loaded (e.g. at boot
1389           time).  If unsure, say N.
1390
1391 config I2C_SIBYTE
1392         tristate "SiByte SMBus interface"
1393         depends on SIBYTE_SB1xxx_SOC
1394         help
1395           Supports the SiByte SOC on-chip I2C interfaces (2 channels).
1396
1397 config I2C_CROS_EC_TUNNEL
1398         tristate "ChromeOS EC tunnel I2C bus"
1399         depends on CROS_EC
1400         help
1401           If you say yes here you get an I2C bus that will tunnel i2c commands
1402           through to the other side of the ChromeOS EC to the i2c bus
1403           connected there. This will work whatever the interface used to
1404           talk to the EC (SPI, I2C or LPC).
1405
1406 config I2C_XGENE_SLIMPRO
1407         tristate "APM X-Gene SoC I2C SLIMpro devices support"
1408         depends on ARCH_XGENE && MAILBOX
1409         help
1410           Enable I2C bus access using the APM X-Gene SoC SLIMpro
1411           co-processor. The I2C device access the I2C bus via the X-Gene
1412           to SLIMpro (On chip coprocessor) mailbox mechanism.
1413           If unsure, say N.
1414
1415 config SCx200_ACB
1416         tristate "Geode ACCESS.bus support"
1417         depends on X86_32 && PCI
1418         help
1419           Enable the use of the ACCESS.bus controllers on the Geode SCx200 and
1420           SC1100 processors and the CS5535 and CS5536 Geode companion devices.
1421
1422           If you don't know what to do here, say N.
1423
1424           This support is also available as a module.  If so, the module
1425           will be called scx200_acb.
1426
1427 config I2C_OPAL
1428         tristate "IBM OPAL I2C driver"
1429         depends on PPC_POWERNV
1430         default y
1431         help
1432           This exposes the PowerNV platform i2c busses to the linux i2c layer,
1433           the driver is based on the OPAL interfaces.
1434
1435           This driver can also be built as a module. If so, the module will be
1436           called as i2c-opal.
1437
1438 config I2C_FSI
1439         tristate "FSI I2C driver"
1440         depends on FSI
1441         help
1442           Driver for FSI bus attached I2C masters. These are I2C masters that
1443           are connected to the system over an FSI bus, instead of the more
1444           common PCI or MMIO interface.
1445
1446           This driver can also be built as a module. If so, the module will be
1447           called as i2c-fsi.
1448
1449 config I2C_VIRTIO
1450         tristate "Virtio I2C Adapter"
1451         select VIRTIO
1452         help
1453           If you say yes to this option, support will be included for the virtio
1454           I2C adapter driver. The hardware can be emulated by any device model
1455           software according to the virtio protocol.
1456
1457           This driver can also be built as a module. If so, the module
1458           will be called i2c-virtio.
1459
1460 endmenu