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