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