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