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