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