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