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