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