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