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