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