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