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