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