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