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