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