xref: /linux/drivers/i2c/busses/Kconfig (revision 705c09bb3cdffb141986598ad4ff9c9b0a66c3bd)
1# SPDX-License-Identifier: GPL-2.0-only
2#
3# Sensor device configuration
4#
5
6menu "I2C Hardware Bus support"
7	depends on HAS_IOMEM
8
9comment "PC SMBus host controller drivers"
10	depends on PCI
11
12config 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
19config 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
31config 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
43config 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
53config 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
65config 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
78config 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
88config 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
98config 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
108config 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
166config 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
177config 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
187config 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
221config 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
233config 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
243config 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
256config 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
266config 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
276config 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
286config 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
304config 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
315config 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
337if ACPI
338
339comment "ACPI drivers"
340
341config 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
351endif # ACPI
352
353comment "Mac SMBus host controller drivers"
354	depends on PPC_CHRP || PPC_PMAC
355
356config 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
368config 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
380comment "I2C system bus drivers (mostly embedded / system-on-chip)"
381
382config 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
393config 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
403config 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
421config 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
434config 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
444config 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
456config 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
469config 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
480config 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
490config 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
501config 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
508config 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
518config 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
528config 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
541config I2C_DESIGNWARE_CORE
542	tristate
543	select REGMAP
544
545config 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
556config 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
568config 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
582config 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
595config 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
607config 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
616config 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
631config 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
639config 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
650config 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
658config 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
666config 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
673config 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
685config 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
695config 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
705config 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
715config 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
726config 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
736config 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
746config 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
755config 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
765config 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
775config 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
786config 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
801config 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
809config 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
820config 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
831config 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
840config 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
847config 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
858config 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
869config 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
877config 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
886config 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
896config 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
906config 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
913config 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
919config 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
931config 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
941config 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
951config 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
959config I2C_PXA_PCI
960	def_bool I2C_PXA && X86_32 && PCI && OF
961
962config 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
971config 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
981config 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
994config 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
1004config 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
1014config 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
1024config 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
1034config 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
1041config 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
1050config 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
1060config 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
1072config 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
1080config 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
1090config 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
1100config 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
1112config 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
1125config 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
1135config 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
1143config 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
1155config 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
1163config 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
1171config 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
1182config 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
1192config 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
1202config 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
1213config 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
1223config 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
1233config 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
1246comment "External I2C/SMBus adapter drivers"
1247
1248config 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
1258config 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
1268config 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
1279config 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
1289config 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
1304config 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
1314config 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
1324config 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
1339config 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
1350config 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
1360comment "Other I2C/SMBus bus drivers"
1361
1362config 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
1372config 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
1383config 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
1397config 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
1408config 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
1424config 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
1430config 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
1439config 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
1448config 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
1460config 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
1471config 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
1482config 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
1493endmenu
1494