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