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