xref: /openbmc/linux/drivers/i2c/busses/Kconfig (revision 293d5b43)
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	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
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
593	help
594	  Say Y here if you want to use the IIC bus controller on
595	  the Freescale i.MX/MXC or Layerscape 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_IOP3XX
601	tristate "Intel IOPx3xx and IXP4xx on-chip I2C interface"
602	depends on ARCH_IOP32X || ARCH_IOP33X || ARCH_IXP4XX || ARCH_IOP13XX
603	help
604	  Say Y here if you want to use the IIC bus controller on
605	  the Intel IOPx3xx I/O Processors or IXP4xx Network Processors.
606
607	  This driver can also be built as a module.  If so, the module
608	  will be called i2c-iop3xx.
609
610config I2C_JZ4780
611	tristate "JZ4780 I2C controller interface support"
612	depends on MACH_JZ4780 || COMPILE_TEST
613	help
614	 If you say yes to this option, support will be included for the
615	 Ingenic JZ4780 I2C controller.
616
617	 If you don't know what to do here, say N.
618
619config I2C_KEMPLD
620	tristate "Kontron COM I2C Controller"
621	depends on MFD_KEMPLD
622	help
623	  This enables support for the I2C bus interface on some Kontron ETX
624	  and COMexpress (ETXexpress) modules.
625
626	  This driver can also be built as a module. If so, the module
627	  will be called i2c-kempld.
628
629config I2C_LPC2K
630	tristate "I2C bus support for NXP LPC2K/LPC178x/18xx/43xx"
631	depends on OF && (ARCH_LPC18XX || COMPILE_TEST)
632	help
633	  This driver supports the I2C interface found several NXP
634	  devices including LPC2xxx, LPC178x/7x and LPC18xx/43xx.
635
636	  This driver can also be built as a module.  If so, the module
637	  will be called i2c-lpc2k.
638
639config I2C_MESON
640	tristate "Amlogic Meson I2C controller"
641	depends on ARCH_MESON || COMPILE_TEST
642	help
643	  If you say yes to this option, support will be included for the
644	  I2C interface on the Amlogic Meson family of SoCs.
645
646config I2C_MPC
647	tristate "MPC107/824x/85xx/512x/52xx/83xx/86xx"
648	depends on PPC
649	help
650	  If you say yes to this option, support will be included for the
651	  built-in I2C interface on the MPC107, Tsi107, MPC512x, MPC52xx,
652	  MPC8240, MPC8245, MPC83xx, MPC85xx and MPC8641 family processors.
653
654	  This driver can also be built as a module.  If so, the module
655	  will be called i2c-mpc.
656
657config I2C_MT65XX
658	tristate "MediaTek I2C adapter"
659	depends on ARCH_MEDIATEK || COMPILE_TEST
660	depends on HAS_DMA
661	help
662	  This selects the MediaTek(R) Integrated Inter Circuit bus driver
663	  for MT65xx and MT81xx.
664	  If you want to use MediaTek(R) I2C interface, say Y or M here.
665	  If unsure, say N.
666
667config I2C_MV64XXX
668	tristate "Marvell mv64xxx I2C Controller"
669	depends on MV64X60 || PLAT_ORION || ARCH_SUNXI || ARCH_MVEBU
670	help
671	  If you say yes to this option, support will be included for the
672	  built-in I2C interface on the Marvell 64xxx line of host bridges.
673	  This driver is also used for Allwinner SoCs I2C controllers.
674
675	  This driver can also be built as a module.  If so, the module
676	  will be called i2c-mv64xxx.
677
678config I2C_MXS
679	tristate "Freescale i.MX28 I2C interface"
680	depends on SOC_IMX28
681	select STMP_DEVICE
682	help
683	  Say Y here if you want to use the I2C bus controller on
684	  the Freescale i.MX28 processors.
685
686	  This driver can also be built as a module.  If so, the module
687	  will be called i2c-mxs.
688
689config I2C_NOMADIK
690	tristate "ST-Ericsson Nomadik/Ux500 I2C Controller"
691	depends on ARM_AMBA
692	help
693	  If you say yes to this option, support will be included for the
694	  I2C interface from ST-Ericsson's Nomadik and Ux500 architectures,
695	  as well as the STA2X11 PCIe I/O HUB.
696
697config I2C_OCORES
698	tristate "OpenCores I2C Controller"
699	help
700	  If you say yes to this option, support will be included for the
701	  OpenCores I2C controller. For details see
702	  http://www.opencores.org/projects.cgi/web/i2c/overview
703
704	  This driver can also be built as a module.  If so, the module
705	  will be called i2c-ocores.
706
707config I2C_OMAP
708	tristate "OMAP I2C adapter"
709	depends on ARCH_OMAP
710	default y if MACH_OMAP_H3 || MACH_OMAP_OSK
711	help
712	  If you say yes to this option, support will be included for the
713	  I2C interface on the Texas Instruments OMAP1/2 family of processors.
714	  Like OMAP1510/1610/1710/5912 and OMAP242x.
715	  For details see http://www.ti.com/omap.
716
717config I2C_PASEMI
718	tristate "PA Semi SMBus interface"
719	depends on PPC_PASEMI && PCI
720	help
721	  Supports the PA Semi PWRficient on-chip SMBus interfaces.
722
723config I2C_PCA_PLATFORM
724	tristate "PCA9564/PCA9665 as platform device"
725	select I2C_ALGOPCA
726	default n
727	help
728	  This driver supports a memory mapped Philips PCA9564/PCA9665
729	  parallel bus to I2C bus controller.
730
731	  This driver can also be built as a module.  If so, the module
732	  will be called i2c-pca-platform.
733
734config I2C_PMCMSP
735	tristate "PMC MSP I2C TWI Controller"
736	depends on PMC_MSP
737	help
738	  This driver supports the PMC TWI controller on MSP devices.
739
740	  This driver can also be built as module. If so, the module
741	  will be called i2c-pmcmsp.
742
743config I2C_PNX
744	tristate "I2C bus support for Philips PNX and NXP LPC targets"
745	depends on ARCH_LPC32XX
746	help
747	  This driver supports the Philips IP3204 I2C IP block master and/or
748	  slave controller
749
750	  This driver can also be built as a module.  If so, the module
751	  will be called i2c-pnx.
752
753config I2C_PUV3
754	tristate "PKUnity v3 I2C bus support"
755	depends on UNICORE32 && ARCH_PUV3
756	select I2C_ALGOBIT
757	help
758	  This driver supports the I2C IP inside the PKUnity-v3 SoC.
759	  This I2C bus controller is under AMBA/AXI bus.
760
761	  This driver can also be built as a module.  If so, the module
762	  will be called i2c-puv3.
763
764config I2C_PXA
765	tristate "Intel PXA2XX I2C adapter"
766	depends on ARCH_PXA || ARCH_MMP || (X86_32 && PCI && OF)
767	help
768	  If you have devices in the PXA I2C bus, say yes to this option.
769	  This driver can also be built as a module.  If so, the module
770	  will be called i2c-pxa.
771
772config I2C_PXA_PCI
773	def_bool I2C_PXA && X86_32 && PCI && OF
774
775config I2C_PXA_SLAVE
776	bool "Intel PXA2XX I2C Slave comms support"
777	depends on I2C_PXA && !X86_32
778	help
779	  Support I2C slave mode communications on the PXA I2C bus.  This
780	  is necessary for systems where the PXA may be a target on the
781	  I2C bus.
782
783config I2C_QUP
784	tristate "Qualcomm QUP based I2C controller"
785	depends on ARCH_QCOM
786	help
787	  If you say yes to this option, support will be included for the
788	  built-in I2C interface on the Qualcomm SoCs.
789
790	  This driver can also be built as a module.  If so, the module
791	  will be called i2c-qup.
792
793config I2C_RIIC
794	tristate "Renesas RIIC adapter"
795	depends on ARCH_RENESAS || COMPILE_TEST
796	help
797	  If you say yes to this option, support will be included for the
798	  Renesas RIIC I2C interface.
799
800	  This driver can also be built as a module.  If so, the module
801	  will be called i2c-riic.
802
803config I2C_RK3X
804	tristate "Rockchip RK3xxx I2C adapter"
805	depends on OF && COMMON_CLK
806	help
807	  Say Y here to include support for the I2C adapter in Rockchip RK3xxx
808	  SoCs.
809
810	  This driver can also be built as a module. If so, the module will
811	  be called i2c-rk3x.
812
813config HAVE_S3C2410_I2C
814	bool
815	help
816	  This will include I2C support for Samsung SoCs. If you want to
817	  include I2C support for any machine, kindly select this in the
818	  respective Kconfig file.
819
820config I2C_S3C2410
821	tristate "S3C2410 I2C Driver"
822	depends on HAVE_S3C2410_I2C
823	help
824	  Say Y here to include support for I2C controller in the
825	  Samsung SoCs.
826
827config I2C_SH7760
828	tristate "Renesas SH7760 I2C Controller"
829	depends on CPU_SUBTYPE_SH7760
830	help
831	  This driver supports the 2 I2C interfaces on the Renesas SH7760.
832
833	  This driver can also be built as a module.  If so, the module
834	  will be called i2c-sh7760.
835
836config I2C_SH_MOBILE
837	tristate "SuperH Mobile I2C Controller"
838	depends on HAS_DMA
839	depends on SUPERH || ARCH_RENESAS || COMPILE_TEST
840	help
841	  If you say yes to this option, support will be included for the
842	  built-in I2C interface on the Renesas SH-Mobile processor.
843
844	  This driver can also be built as a module.  If so, the module
845	  will be called i2c-sh_mobile.
846
847config I2C_SIMTEC
848	tristate "Simtec Generic I2C interface"
849	select I2C_ALGOBIT
850	help
851	  If you say yes to this option, support will be included for
852	  the Simtec Generic I2C interface. This driver is for the
853	  simple I2C bus used on newer Simtec products for general
854	  I2C, such as DDC on the Simtec BBD2016A.
855
856	  This driver can also be built as a module. If so, the module
857	  will be called i2c-simtec.
858
859config I2C_SIRF
860	tristate "CSR SiRFprimaII I2C interface"
861	depends on ARCH_SIRF
862	help
863	  If you say yes to this option, support will be included for the
864	  CSR SiRFprimaII I2C interface.
865
866	  This driver can also be built as a module.  If so, the module
867	  will be called i2c-sirf.
868
869config I2C_ST
870	tristate "STMicroelectronics SSC I2C support"
871	depends on ARCH_STI
872	help
873	  Enable this option to add support for STMicroelectronics SoCs
874	  hardware SSC (Synchronous Serial Controller) as an I2C controller.
875
876	  This driver can also be built as module. If so, the module
877	  will be called i2c-st.
878
879config I2C_STU300
880	tristate "ST Microelectronics DDC I2C interface"
881	depends on MACH_U300
882	default y if MACH_U300
883	help
884	  If you say yes to this option, support will be included for the
885	  I2C interface from ST Microelectronics simply called "DDC I2C"
886	  supporting both I2C and DDC, used in e.g. the U300 series
887	  mobile platforms.
888
889	  This driver can also be built as a module. If so, the module
890	  will be called i2c-stu300.
891
892config I2C_SUN6I_P2WI
893	tristate "Allwinner sun6i internal P2WI controller"
894	depends on RESET_CONTROLLER
895	depends on MACH_SUN6I || COMPILE_TEST
896	help
897	  If you say yes to this option, support will be included for the
898	  P2WI (Push/Pull 2 Wire Interface) controller embedded in some sunxi
899	  SOCs.
900	  The P2WI looks like an SMBus controller (which supports only byte
901	  accesses), except that it only supports one slave device.
902	  This interface is used to connect to specific PMIC devices (like the
903	  AXP221).
904
905config I2C_TEGRA
906	tristate "NVIDIA Tegra internal I2C controller"
907	depends on ARCH_TEGRA
908	help
909	  If you say yes to this option, support will be included for the
910	  I2C controller embedded in NVIDIA Tegra SOCs
911
912config I2C_UNIPHIER
913	tristate "UniPhier FIFO-less I2C controller"
914	depends on ARCH_UNIPHIER || COMPILE_TEST
915	help
916	  If you say yes to this option, support will be included for
917	  the UniPhier FIFO-less I2C interface embedded in PH1-LD4, PH1-sLD8,
918	  or older UniPhier SoCs.
919
920config I2C_UNIPHIER_F
921	tristate "UniPhier FIFO-builtin I2C controller"
922	depends on ARCH_UNIPHIER || COMPILE_TEST
923	help
924	  If you say yes to this option, support will be included for
925	  the UniPhier FIFO-builtin I2C interface embedded in PH1-Pro4,
926	  PH1-Pro5, or newer UniPhier SoCs.
927
928config I2C_VERSATILE
929	tristate "ARM Versatile/Realview I2C bus support"
930	depends on ARCH_VERSATILE || ARCH_REALVIEW || ARCH_VEXPRESS || COMPILE_TEST
931	select I2C_ALGOBIT
932	help
933	  Say yes if you want to support the I2C serial bus on ARMs Versatile
934	  range of platforms.
935
936	  This driver can also be built as a module.  If so, the module
937	  will be called i2c-versatile.
938
939config I2C_WMT
940	tristate "Wondermedia WM8xxx SoC I2C bus support"
941	depends on ARCH_VT8500
942	help
943	  Say yes if you want to support the I2C bus on Wondermedia 8xxx-series
944	  SoCs.
945
946	  This driver can also be built as a module. If so, the module will be
947	  called i2c-wmt.
948
949config I2C_OCTEON
950	tristate "Cavium OCTEON I2C bus support"
951	depends on CAVIUM_OCTEON_SOC
952	help
953	  Say yes if you want to support the I2C serial bus on Cavium
954	  OCTEON SOC.
955
956	  This driver can also be built as a module.  If so, the module
957	  will be called i2c-octeon.
958
959config I2C_XILINX
960	tristate "Xilinx I2C Controller"
961	depends on HAS_IOMEM
962	help
963	  If you say yes to this option, support will be included for the
964	  Xilinx I2C controller.
965
966	  This driver can also be built as a module.  If so, the module
967	  will be called xilinx_i2c.
968
969config I2C_XLR
970	tristate "Netlogic XLR and Sigma Designs I2C support"
971	depends on CPU_XLR || ARCH_TANGO
972	help
973	  This driver enables support for the on-chip I2C interface of
974	  the Netlogic XLR/XLS MIPS processors and Sigma Designs SOCs.
975
976	  This driver can also be built as a module.  If so, the module
977	  will be called i2c-xlr.
978
979config I2C_XLP9XX
980	tristate "XLP9XX I2C support"
981	depends on CPU_XLP || ARCH_VULCAN || COMPILE_TEST
982	help
983	  This driver enables support for the on-chip I2C interface of
984	  the Broadcom XLP9xx/XLP5xx MIPS and Vulcan ARM64 processors.
985
986	  This driver can also be built as a module.  If so, the module will
987	  be called i2c-xlp9xx.
988
989config I2C_RCAR
990	tristate "Renesas R-Car I2C Controller"
991	depends on HAS_DMA
992	depends on ARCH_RENESAS || COMPILE_TEST
993	select I2C_SLAVE
994	help
995	  If you say yes to this option, support will be included for the
996	  R-Car I2C controller.
997
998	  This driver can also be built as a module.  If so, the module
999	  will be called i2c-rcar.
1000
1001comment "External I2C/SMBus adapter drivers"
1002
1003config I2C_DIOLAN_U2C
1004	tristate "Diolan U2C-12 USB adapter"
1005	depends on USB
1006	help
1007	  If you say yes to this option, support will be included for Diolan
1008	  U2C-12, a USB to I2C interface.
1009
1010	  This driver can also be built as a module.  If so, the module
1011	  will be called i2c-diolan-u2c.
1012
1013config I2C_DLN2
1014       tristate "Diolan DLN-2 USB I2C adapter"
1015       depends on MFD_DLN2
1016       help
1017	 If you say yes to this option, support will be included for Diolan
1018	 DLN2, a USB to I2C interface.
1019
1020	 This driver can also be built as a module.  If so, the module
1021	 will be called i2c-dln2.
1022
1023config I2C_PARPORT
1024	tristate "Parallel port adapter"
1025	depends on PARPORT
1026	select I2C_ALGOBIT
1027	select I2C_SMBUS
1028	help
1029	  This supports parallel port I2C adapters such as the ones made by
1030	  Philips or Velleman, Analog Devices evaluation boards, and more.
1031	  Basically any adapter using the parallel port as an I2C bus with
1032	  no extra chipset is supported by this driver, or could be.
1033
1034	  This driver is a replacement for (and was inspired by) an older
1035	  driver named i2c-philips-par.  The new driver supports more devices,
1036	  and makes it easier to add support for new devices.
1037
1038	  An adapter type parameter is now mandatory.  Please read the file
1039	  Documentation/i2c/busses/i2c-parport for details.
1040
1041	  Another driver exists, named i2c-parport-light, which doesn't depend
1042	  on the parport driver.  This is meant for embedded systems. Don't say
1043	  Y here if you intend to say Y or M there.
1044
1045	  This support is also available as a module.  If so, the module
1046	  will be called i2c-parport.
1047
1048config I2C_PARPORT_LIGHT
1049	tristate "Parallel port adapter (light)"
1050	select I2C_ALGOBIT
1051	select I2C_SMBUS
1052	help
1053	  This supports parallel port I2C adapters such as the ones made by
1054	  Philips or Velleman, Analog Devices evaluation boards, and more.
1055	  Basically any adapter using the parallel port as an I2C bus with
1056	  no extra chipset is supported by this driver, or could be.
1057
1058	  This driver is a light version of i2c-parport.  It doesn't depend
1059	  on the parport driver, and uses direct I/O access instead.  This
1060	  might be preferred on embedded systems where wasting memory for
1061	  the clean but heavy parport handling is not an option.  The
1062	  drawback is a reduced portability and the impossibility to
1063	  daisy-chain other parallel port devices.
1064
1065	  Don't say Y here if you said Y or M to i2c-parport.  Saying M to
1066	  both is possible but both modules should not be loaded at the same
1067	  time.
1068
1069	  This support is also available as a module.  If so, the module
1070	  will be called i2c-parport-light.
1071
1072config I2C_ROBOTFUZZ_OSIF
1073	tristate "RobotFuzz Open Source InterFace USB adapter"
1074	depends on USB
1075	help
1076	  If you say yes to this option, support will be included for the
1077	  RobotFuzz Open Source InterFace USB to I2C interface.
1078
1079	  This driver can also be built as a module.  If so, the module
1080	  will be called i2c-osif.
1081
1082config I2C_TAOS_EVM
1083	tristate "TAOS evaluation module"
1084	depends on TTY
1085	select SERIO
1086	select SERIO_SERPORT
1087	default n
1088	help
1089	  This supports TAOS evaluation modules on serial port. In order to
1090	  use this driver, you will need the inputattach tool, which is part
1091	  of the input-utils package.
1092
1093	  If unsure, say N.
1094
1095	  This support is also available as a module.  If so, the module
1096	  will be called i2c-taos-evm.
1097
1098config I2C_TINY_USB
1099	tristate "Tiny-USB adapter"
1100	depends on USB
1101	help
1102	  If you say yes to this option, support will be included for the
1103	  i2c-tiny-usb, a simple do-it-yourself USB to I2C interface. See
1104	  http://www.harbaum.org/till/i2c_tiny_usb for hardware details.
1105
1106	  This driver can also be built as a module.  If so, the module
1107	  will be called i2c-tiny-usb.
1108
1109config I2C_VIPERBOARD
1110	tristate "Viperboard I2C master support"
1111	depends on MFD_VIPERBOARD && USB
1112	help
1113	  Say yes here to access the I2C part of the Nano River
1114	  Technologies Viperboard as I2C master.
1115          See viperboard API specification and Nano
1116          River Tech's viperboard.h for detailed meaning
1117          of the module parameters.
1118
1119comment "Other I2C/SMBus bus drivers"
1120
1121config I2C_ACORN
1122	tristate "Acorn IOC/IOMD I2C bus support"
1123	depends on ARCH_ACORN
1124	default y
1125	select I2C_ALGOBIT
1126	help
1127	  Say yes if you want to support the I2C bus on Acorn platforms.
1128
1129	  If you don't know, say Y.
1130
1131config I2C_ELEKTOR
1132	tristate "Elektor ISA card"
1133	depends on ISA && HAS_IOPORT_MAP && BROKEN_ON_SMP
1134	select I2C_ALGOPCF
1135	help
1136	  This supports the PCF8584 ISA bus I2C adapter.  Say Y if you own
1137	  such an adapter.
1138
1139	  This support is also available as a module.  If so, the module
1140	  will be called i2c-elektor.
1141
1142config I2C_PCA_ISA
1143	tristate "PCA9564/PCA9665 on an ISA bus"
1144	depends on ISA
1145	select I2C_ALGOPCA
1146	default n
1147	help
1148	  This driver supports ISA boards using the Philips PCA9564/PCA9665
1149	  parallel bus to I2C bus controller.
1150
1151	  This driver can also be built as a module.  If so, the module
1152	  will be called i2c-pca-isa.
1153
1154	  This device is almost undetectable and using this driver on a
1155	  system which doesn't have this device will result in long
1156	  delays when I2C/SMBus chip drivers are loaded (e.g. at boot
1157	  time).  If unsure, say N.
1158
1159config I2C_SIBYTE
1160	tristate "SiByte SMBus interface"
1161	depends on SIBYTE_SB1xxx_SOC
1162	help
1163	  Supports the SiByte SOC on-chip I2C interfaces (2 channels).
1164
1165config I2C_CROS_EC_TUNNEL
1166	tristate "ChromeOS EC tunnel I2C bus"
1167	depends on MFD_CROS_EC
1168	help
1169	  If you say yes here you get an I2C bus that will tunnel i2c commands
1170	  through to the other side of the ChromeOS EC to the i2c bus
1171	  connected there. This will work whatever the interface used to
1172	  talk to the EC (SPI, I2C or LPC).
1173
1174config I2C_XGENE_SLIMPRO
1175	tristate "APM X-Gene SoC I2C SLIMpro devices support"
1176	depends on ARCH_XGENE && MAILBOX
1177	help
1178	  Enable I2C bus access using the APM X-Gene SoC SLIMpro
1179	  co-processor. The I2C device access the I2C bus via the X-Gene
1180	  to SLIMpro (On chip coprocessor) mailbox mechanism.
1181	  If unsure, say N.
1182
1183config SCx200_ACB
1184	tristate "Geode ACCESS.bus support"
1185	depends on X86_32 && PCI
1186	help
1187	  Enable the use of the ACCESS.bus controllers on the Geode SCx200 and
1188	  SC1100 processors and the CS5535 and CS5536 Geode companion devices.
1189
1190	  If you don't know what to do here, say N.
1191
1192	  This support is also available as a module.  If so, the module
1193	  will be called scx200_acb.
1194
1195config I2C_OPAL
1196	tristate "IBM OPAL I2C driver"
1197	depends on PPC_POWERNV
1198	default y
1199	help
1200	  This exposes the PowerNV platform i2c busses to the linux i2c layer,
1201	  the driver is based on the OPAL interfaces.
1202
1203	  This driver can also be built as a module. If so, the module will be
1204	  called as i2c-opal.
1205
1206endmenu
1207