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