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