File Index
Files and directories
Sign in
FILE

Kconfig

File preview with syntax highlighting.

linux-6.19.14/drivers/i2c/busses/Kconfig KCONFIG
   1# SPDX-License-Identifier: GPL-2.0-only
   2#
   3# Sensor device configuration
   4#
   5
   6menu "I2C Hardware Bus support"
   7	depends on HAS_IOMEM
   8
   9comment "PC SMBus host controller drivers"
  10	depends on PCI
  11
  12config I2C_CCGX_UCSI
  13	tristate
  14	help
  15	  A common module to provide an API to instantiate UCSI device
  16	  for Cypress CCGx Type-C controller. Individual bus drivers
  17	  need to select this one on demand.
  18
  19config I2C_ALI1535
  20	tristate "ALI 1535"
  21	depends on PCI && HAS_IOPORT
  22	help
  23	  If you say yes to this option, support will be included for the SMB
  24	  Host controller on Acer Labs Inc. (ALI) M1535 South Bridges.  The SMB
  25	  controller is part of the 7101 device, which is an ACPI-compliant
  26	  Power Management Unit (PMU).
  27
  28	  This driver can also be built as a module.  If so, the module
  29	  will be called i2c-ali1535.
  30
  31config I2C_ALI1563
  32	tristate "ALI 1563"
  33	depends on PCI && HAS_IOPORT
  34	help
  35	  If you say yes to this option, support will be included for the SMB
  36	  Host controller on Acer Labs Inc. (ALI) M1563 South Bridges.  The SMB
  37	  controller is part of the 7101 device, which is an ACPI-compliant
  38	  Power Management Unit (PMU).
  39
  40	  This driver can also be built as a module.  If so, the module
  41	  will be called i2c-ali1563.
  42
  43config I2C_ALI15X3
  44	tristate "ALI 15x3"
  45	depends on PCI && HAS_IOPORT
  46	help
  47	  If you say yes to this option, support will be included for the
  48	  Acer Labs Inc. (ALI) M1514 and M1543 motherboard I2C interfaces.
  49
  50	  This driver can also be built as a module.  If so, the module
  51	  will be called i2c-ali15x3.
  52
  53config I2C_AMD756
  54	tristate "AMD 756/766/768/8111 and nVidia nForce"
  55	depends on PCI && HAS_IOPORT
  56	help
  57	  If you say yes to this option, support will be included for the AMD
  58	  756/766/768 mainboard I2C interfaces.  The driver also includes
  59	  support for the first (SMBus 1.0) I2C interface of the AMD 8111 and
  60	  the nVidia nForce I2C interface.
  61
  62	  This driver can also be built as a module.  If so, the module
  63	  will be called i2c-amd756.
  64
  65config I2C_AMD8111
  66	tristate "AMD 8111"
  67	depends on PCI && HAS_IOPORT
  68	help
  69	  If you say yes to this option, support will be included for the
  70	  second (SMBus 2.0) AMD 8111 mainboard I2C interface.
  71
  72	  This driver can also be built as a module.  If so, the module
  73	  will be called i2c-amd8111.
  74
  75config I2C_AMD_MP2
  76	tristate "AMD MP2 PCIe"
  77	depends on PCI && ACPI
  78	help
  79	  If you say yes to this option, support will be included for the AMD
  80	  MP2 PCIe I2C adapter.
  81
  82	  This driver can also be built as modules.  If so, the modules will
  83	  be called i2c-amd-mp2-pci and i2c-amd-mp2-plat.
  84
  85config I2C_AMD_ASF
  86	tristate "AMD ASF I2C Controller Support"
  87	depends on I2C_PIIX4
  88	select I2C_SLAVE
  89	help
  90	  This option enables support for the AMD ASF (Alert Standard Format)
  91	  I2C controller. The AMD ASF controller is an SMBus controller with
  92	  built-in ASF functionality, allowing it to issue generic SMBus
  93	  packets and communicate with the DASH controller using MCTP over
  94	  ASF.
  95
  96	  If you have an AMD system with ASF support and want to enable this
  97	  functionality, say Y or M here. If unsure, say N.
  98
  99	  To compile this driver as a module, choose M here: the module will
 100	  be called i2c_amd_asf_plat.
 101
 102config I2C_HIX5HD2
 103	tristate "Hix5hd2 high-speed I2C driver"
 104	depends on ARCH_HISI || ARCH_HIX5HD2 || COMPILE_TEST
 105	help
 106	  Say Y here to include support for the high-speed I2C controller
 107	  used in HiSilicon hix5hd2 SoCs.
 108
 109	  This driver can also be built as a module. If so, the module
 110	  will be called i2c-hix5hd2.
 111
 112config I2C_I801
 113	tristate "Intel 82801 (ICH/PCH)"
 114	depends on PCI && HAS_IOPORT
 115	select P2SB if X86
 116	select CHECK_SIGNATURE if X86 && DMI
 117	select I2C_SMBUS
 118	help
 119	  If you say yes to this option, support will be included for the Intel
 120	  801 family of mainboard I2C interfaces.  Specifically, the following
 121	  versions of the chipset are supported:
 122	    82801AA
 123	    82801AB
 124	    82801BA
 125	    82801CA/CAM
 126	    82801DB
 127	    82801EB/ER (ICH5/ICH5R)
 128	    6300ESB
 129	    ICH6
 130	    ICH7
 131	    ESB2
 132	    ICH8
 133	    ICH9
 134	    EP80579 (Tolapai)
 135	    ICH10
 136	    5/3400 Series (PCH)
 137	    6 Series (PCH)
 138	    Patsburg (PCH)
 139	    DH89xxCC (PCH)
 140	    Panther Point (PCH)
 141	    Lynx Point (PCH)
 142	    Avoton (SOC)
 143	    Wellsburg (PCH)
 144	    Coleto Creek (PCH)
 145	    Wildcat Point (PCH)
 146	    BayTrail (SOC)
 147	    Braswell (SOC)
 148	    Sunrise Point (PCH)
 149	    Kaby Lake (PCH)
 150	    DNV (SOC)
 151	    Broxton (SOC)
 152	    Lewisburg (PCH)
 153	    Gemini Lake (SOC)
 154	    Cannon Lake (PCH)
 155	    Cedar Fork (PCH)
 156	    Ice Lake (PCH)
 157	    Comet Lake (PCH)
 158	    Elkhart Lake (PCH)
 159	    Tiger Lake (PCH)
 160	    Jasper Lake (SOC)
 161	    Emmitsburg (PCH)
 162	    Alder Lake (PCH)
 163	    Raptor Lake (PCH)
 164	    Meteor Lake (SOC and PCH)
 165	    Birch Stream (SOC)
 166	    Arrow Lake (SOC)
 167	    Panther Lake (SOC)
 168	    Wildcat Lake (SOC)
 169	    Diamond Rapids (SOC)
 170	    Nova Lake (PCH)
 171
 172	  This driver can also be built as a module.  If so, the module
 173	  will be called i2c-i801.
 174
 175config I2C_I801_MUX
 176	def_bool I2C_I801
 177	depends on DMI && I2C_MUX_GPIO
 178	depends on !(I2C_I801=y && I2C_MUX=m)
 179	help
 180	  Optional support for multiplexed SMBUS on certain systems with
 181	  more than 8 memory slots.
 182
 183config I2C_ISCH
 184	tristate "Intel SCH SMBus 1.0"
 185	depends on PCI && HAS_IOPORT
 186	select LPC_SCH
 187	help
 188	  Say Y here if you want to use SMBus controller on the Intel SCH
 189	  based systems.
 190
 191	  This driver can also be built as a module. If so, the module
 192	  will be called i2c-isch.
 193
 194config I2C_ISMT
 195	tristate "Intel iSMT SMBus Controller"
 196	depends on PCI && X86
 197	help
 198	  If you say yes to this option, support will be included for the Intel
 199	  iSMT SMBus host controller interface.
 200
 201	  This driver can also be built as a module.  If so, the module will be
 202	  called i2c-ismt.
 203
 204config I2C_PIIX4
 205	tristate "Intel PIIX4 and compatible (ATI/AMD/Serverworks/Broadcom/SMSC)"
 206	depends on PCI && HAS_IOPORT
 207	select I2C_SMBUS
 208	help
 209	  If you say yes to this option, support will be included for the Intel
 210	  PIIX4 family of mainboard I2C interfaces.  Specifically, the following
 211	  versions of the chipset are supported (note that Serverworks is part
 212	  of Broadcom):
 213	    Intel PIIX4
 214	    Intel 440MX
 215	    ATI IXP200
 216	    ATI IXP300
 217	    ATI IXP400
 218	    ATI SB600
 219	    ATI SB700/SP5100
 220	    ATI SB800
 221	    AMD Hudson-2
 222	    AMD ML
 223	    AMD CZ
 224	    Hygon CZ
 225	    Serverworks OSB4
 226	    Serverworks CSB5
 227	    Serverworks CSB6
 228	    Serverworks HT-1000
 229	    Serverworks HT-1100
 230	    SMSC Victory66
 231
 232	  Some AMD chipsets contain two PIIX4-compatible SMBus
 233	  controllers. This driver will attempt to use both controllers
 234	  on the SB700/SP5100, if they have been initialized by the BIOS.
 235
 236	  This driver can also be built as a module.  If so, the module
 237	  will be called i2c-piix4.
 238
 239config I2C_CHT_WC
 240	tristate "Intel Cherry Trail Whiskey Cove PMIC smbus controller"
 241	depends on INTEL_SOC_PMIC_CHTWC
 242	help
 243	  If you say yes to this option, support will be included for the
 244	  SMBus controller found in the Intel Cherry Trail Whiskey Cove PMIC
 245	  found on some Intel Cherry Trail systems.
 246
 247	  Note this controller is hooked up to a TI bq24292i charger-IC,
 248	  combined with a FUSB302 Type-C port-controller as such it is advised
 249	  to also select CONFIG_TYPEC_FUSB302=m.
 250
 251config I2C_NFORCE2
 252	tristate "Nvidia nForce2, nForce3 and nForce4"
 253	depends on PCI && HAS_IOPORT
 254	help
 255	  If you say yes to this option, support will be included for the Nvidia
 256	  nForce2, nForce3 and nForce4 families of mainboard I2C interfaces.
 257
 258	  This driver can also be built as a module.  If so, the module
 259	  will be called i2c-nforce2.
 260
 261config I2C_NVIDIA_GPU
 262	tristate "NVIDIA GPU I2C controller"
 263	depends on PCI
 264	select I2C_CCGX_UCSI
 265	help
 266	  If you say yes to this option, support will be included for the
 267	  NVIDIA GPU I2C controller which is used to communicate with the GPU's
 268	  Type-C controller. This driver can also be built as a module called
 269	  i2c-nvidia-gpu.
 270
 271config I2C_SIS5595
 272	tristate "SiS 5595"
 273	depends on PCI && HAS_IOPORT
 274	help
 275	  If you say yes to this option, support will be included for the
 276	  SiS5595 SMBus (a subset of I2C) interface.
 277
 278	  This driver can also be built as a module.  If so, the module
 279	  will be called i2c-sis5595.
 280
 281config I2C_SIS630
 282	tristate "SiS 630/730/964"
 283	depends on PCI && HAS_IOPORT
 284	help
 285	  If you say yes to this option, support will be included for the
 286	  SiS630, SiS730 and SiS964 SMBus (a subset of I2C) interface.
 287
 288	  This driver can also be built as a module.  If so, the module
 289	  will be called i2c-sis630.
 290
 291config I2C_SIS96X
 292	tristate "SiS 96x"
 293	depends on PCI && HAS_IOPORT
 294	help
 295	  If you say yes to this option, support will be included for the SiS
 296	  96x SMBus (a subset of I2C) interfaces.  Specifically, the following
 297	  chipsets are supported:
 298	    645/961
 299	    645DX/961
 300	    645DX/962
 301	    648/961
 302	    650/961
 303	    735
 304	    745
 305
 306	  This driver can also be built as a module.  If so, the module
 307	  will be called i2c-sis96x.
 308
 309config I2C_VIA
 310	tristate "VIA VT82C586B"
 311	depends on PCI && HAS_IOPORT
 312	select I2C_ALGOBIT
 313	help
 314	  If you say yes to this option, support will be included for the VIA
 315	  82C586B I2C interface
 316
 317	  This driver can also be built as a module.  If so, the module
 318	  will be called i2c-via.
 319
 320config I2C_VIAPRO
 321	tristate "VIA VT82C596/82C686/82xx and CX700/VX8xx/VX900"
 322	depends on PCI && HAS_IOPORT
 323	help
 324	  If you say yes to this option, support will be included for the VIA
 325	  VT82C596 and later SMBus interface.  Specifically, the following
 326	  chipsets are supported:
 327	    VT82C596A/B
 328	    VT82C686A/B
 329	    VT8231
 330	    VT8233/A
 331	    VT8235
 332	    VT8237R/A/S
 333	    VT8251
 334	    CX700
 335	    VX800/VX820
 336	    VX855/VX875
 337	    VX900
 338
 339	  This driver can also be built as a module.  If so, the module
 340	  will be called i2c-viapro.
 341
 342if ACPI
 343
 344config I2C_ZHAOXIN
 345	tristate "Zhaoxin I2C Interface"
 346	depends on PCI || COMPILE_TEST
 347	help
 348	  If you say yes to this option, support will be included for the
 349	  ZHAOXIN I2C interface
 350
 351	  This driver can also be built as a module. If so, the module
 352	  will be called i2c-zhaoxin.
 353
 354comment "ACPI drivers"
 355
 356config I2C_SCMI
 357	tristate "SMBus Control Method Interface"
 358	help
 359	  This driver supports the SMBus Control Method Interface. It needs the
 360	  BIOS to declare ACPI control methods as described in the SMBus Control
 361	  Method Interface specification.
 362
 363	  To compile this driver as a module, choose M here:
 364	  the module will be called i2c-scmi.
 365
 366endif # ACPI
 367
 368comment "Mac SMBus host controller drivers"
 369	depends on PPC_CHRP || PPC_PMAC
 370
 371config I2C_HYDRA
 372	tristate "CHRP Apple Hydra Mac I/O I2C interface"
 373	depends on PCI && PPC_CHRP
 374	select I2C_ALGOBIT
 375	help
 376	  This supports the use of the I2C interface in the Apple Hydra Mac
 377	  I/O chip on some CHRP machines (e.g. the LongTrail).  Say Y if you
 378	  have such a machine.
 379
 380	  This support is also available as a module.  If so, the module
 381	  will be called i2c-hydra.
 382
 383config I2C_POWERMAC
 384	tristate "Powermac I2C interface"
 385	depends on PPC_PMAC
 386	default y
 387	help
 388	  This exposes the various PowerMac i2c interfaces to the linux i2c
 389	  layer and to userland. It is used by various drivers on the PowerMac
 390	  platform, and should generally be enabled.
 391
 392	  This support is also available as a module.  If so, the module
 393	  will be called i2c-powermac.
 394
 395comment "I2C system bus drivers (mostly embedded / system-on-chip)"
 396
 397config I2C_ALTERA
 398	tristate "Altera Soft IP I2C"
 399	depends on ARCH_INTEL_SOCFPGA || NIOS2 || COMPILE_TEST
 400	depends on OF
 401	help
 402	  If you say yes to this option, support will be included for the
 403	  Altera Soft IP I2C interfaces on SoCFPGA and Nios2 architectures.
 404
 405	  This driver can also be built as a module.  If so, the module
 406	  will be called i2c-altera.
 407
 408config I2C_ASPEED
 409	tristate "Aspeed I2C Controller"
 410	depends on ARCH_ASPEED || COMPILE_TEST
 411	help
 412	  If you say yes to this option, support will be included for the
 413	  Aspeed I2C controller.
 414
 415	  This driver can also be built as a module.  If so, the module
 416	  will be called i2c-aspeed.
 417
 418config I2C_AT91
 419	tristate "Atmel AT91 I2C Two-Wire interface (TWI)"
 420	depends on ARCH_MICROCHIP || COMPILE_TEST
 421	help
 422	  This supports the use of the I2C interface on Atmel AT91
 423	  processors.
 424
 425	  A serious problem is that there is no documented way to issue
 426	  repeated START conditions for more than two messages, as needed
 427	  to support combined I2C messages.  Use the i2c-gpio driver
 428	  unless your system can cope with this limitation.
 429
 430	  Caution! at91rm9200, at91sam9261, at91sam9260, at91sam9263 devices
 431	  don't have clock stretching in transmission mode. For that reason,
 432	  you can encounter underrun issues causing premature stop sendings if
 433	  the latency to fill the transmission register is too long. If you
 434	  are facing this situation, use the i2c-gpio driver.
 435
 436config I2C_AT91_SLAVE_EXPERIMENTAL
 437	bool "Microchip AT91 I2C experimental slave mode"
 438	depends on I2C_AT91
 439	select I2C_SLAVE
 440	help
 441	  If you say yes to this option, support for the slave mode will be
 442	  added. Caution: do not use it for production. This feature has not
 443	  been tested in a heavy way, help wanted.
 444	  There are known bugs:
 445	    - It can hang, on a SAMA5D4, after several transfers.
 446	    - There are some mismatches with a SAMA5D4 as slave and a SAMA5D2 as
 447	    master.
 448
 449config I2C_AU1550
 450	tristate "Au1550/Au1200/Au1300 SMBus interface"
 451	depends on MIPS_ALCHEMY
 452	help
 453	  If you say yes to this option, support will be included for the
 454	  Au1550/Au1200/Au1300 SMBus interface.
 455
 456	  This driver can also be built as a module.  If so, the module
 457	  will be called i2c-au1550.
 458
 459config I2C_AXXIA
 460	tristate "Axxia I2C controller"
 461	depends on ARCH_AXXIA || COMPILE_TEST
 462	default ARCH_AXXIA
 463	select I2C_SLAVE
 464	help
 465	  Say yes if you want to support the I2C bus on Axxia platforms.
 466
 467	  Please note that this controller is limited to transfers of maximum
 468	  255 bytes in length. Any attempt to to a larger transfer will return
 469	  an error.
 470
 471config I2C_BCM2835
 472	tristate "Broadcom BCM2835 I2C controller"
 473	depends on ARCH_BCM2835 || ARCH_BRCMSTB || COMPILE_TEST
 474	depends on COMMON_CLK
 475	help
 476	  If you say yes to this option, support will be included for the
 477	  BCM2835 I2C controller.
 478
 479	  If you don't know what to do here, say N.
 480
 481	  This support is also available as a module.  If so, the module
 482	  will be called i2c-bcm2835.
 483
 484config I2C_BCM_IPROC
 485	tristate "Broadcom iProc I2C controller"
 486	depends on ARCH_BCM_IPROC || COMPILE_TEST
 487	default ARCH_BCM_IPROC
 488	select I2C_SLAVE
 489	help
 490	  If you say yes to this option, support will be included for the
 491	  Broadcom iProc I2C controller.
 492
 493	  If you don't know what to do here, say N.
 494
 495config I2C_BCM_KONA
 496	tristate "BCM Kona I2C adapter"
 497	depends on ARCH_BCM_MOBILE || COMPILE_TEST
 498	default y if ARCH_BCM_MOBILE
 499	help
 500	  If you say yes to this option, support will be included for the
 501	  I2C interface on the Broadcom Kona family of processors.
 502
 503	  If you do not need KONA I2C interface, say N.
 504
 505config I2C_BRCMSTB
 506	tristate "BRCM Settop/DSL I2C controller"
 507	depends on ARCH_BCM2835 || ARCH_BCMBCA || ARCH_BRCMSTB || \
 508		   BMIPS_GENERIC || COMPILE_TEST
 509	default ARCH_BCM2835 || ARCH_BCMBCA || ARCH_BRCMSTB || BMIPS_GENERIC
 510	help
 511	  If you say yes to this option, support will be included for the
 512	  I2C interface on the Broadcom Settop/DSL SoCs.
 513
 514	  If you do not need I2C interface, say N.
 515
 516config I2C_CADENCE
 517	tristate "Cadence I2C Controller"
 518	depends on ARCH_ZYNQ || ARM64 || XTENSA || RISCV || COMPILE_TEST
 519	help
 520	  Say yes here to select Cadence I2C Host Controller. This controller is
 521	  e.g. used by Xilinx Zynq.
 522
 523config I2C_CBUS_GPIO
 524	tristate "CBUS I2C driver"
 525	depends on GPIOLIB || COMPILE_TEST
 526	help
 527	  Support for CBUS access using I2C API. Mostly relevant for Nokia
 528	  Internet Tablets (770, N800 and N810).
 529
 530	  This driver can also be built as a module.  If so, the module
 531	  will be called i2c-cbus-gpio.
 532
 533config I2C_CGBC
 534	tristate "Congatec I2C Controller"
 535	depends on MFD_CGBC
 536	help
 537	  This driver supports the 2 I2C interfaces on the Congatec Board
 538	  Controller.
 539
 540	  This driver can also be built as a module. If so, the module will
 541	  be called i2c-cgbc.ko.
 542
 543config I2C_CPM
 544	tristate "Freescale CPM1 or CPM2 (MPC8xx/826x)"
 545	depends on CPM1 || CPM2
 546	help
 547	  This supports the use of the I2C interface on Freescale
 548	  processors with CPM1 or CPM2.
 549
 550	  This driver can also be built as a module.  If so, the module
 551	  will be called i2c-cpm.
 552
 553config I2C_DAVINCI
 554	tristate "DaVinci I2C driver"
 555	depends on ARCH_DAVINCI || ARCH_KEYSTONE || COMPILE_TEST
 556	help
 557	  Support for TI DaVinci I2C controller driver.
 558
 559	  This driver can also be built as a module.  If so, the module
 560	  will be called i2c-davinci.
 561
 562	  Please note that this driver might be needed to bring up other
 563	  devices such as DaVinci NIC.
 564	  For details please see http://www.ti.com/davinci
 565
 566config I2C_DESIGNWARE_CORE
 567	tristate "Synopsys DesignWare I2C adapter"
 568	select REGMAP
 569	help
 570	  This option enables support for the Synopsys DesignWare I2C adapter.
 571	  This driver includes support for the I2C host on the Synopsys
 572	  Designware I2C adapter.
 573
 574	  To compile the driver as a module, choose M here: the module will be
 575	  called i2c-designware-core.
 576
 577if I2C_DESIGNWARE_CORE
 578
 579config I2C_DESIGNWARE_SLAVE
 580	bool "Synopsys DesignWare Slave"
 581	select I2C_SLAVE
 582	help
 583	  If you say yes to this option, support will be included for the
 584	  Synopsys DesignWare I2C slave adapter.
 585
 586config I2C_DESIGNWARE_PLATFORM
 587	tristate "Synopsys DesignWare Platform driver"
 588	depends on (ACPI && COMMON_CLK) || !ACPI
 589	select MFD_SYSCON if MIPS_BAIKAL_T1
 590	default I2C_DESIGNWARE_CORE
 591	help
 592	  If you say yes to this option, support will be included for the
 593	  Synopsys DesignWare I2C adapters on the platform bus.
 594
 595	  This driver can also be built as a module.  If so, the module
 596	  will be called i2c-designware-platform.
 597
 598config I2C_DESIGNWARE_AMDISP
 599	tristate "Synopsys DesignWare Platform for AMDISP"
 600	depends on DRM_AMD_ISP || COMPILE_TEST
 601	depends on I2C_DESIGNWARE_CORE
 602	help
 603	  If you say yes to this option, support will be included for the
 604	  AMDISP Synopsys DesignWare I2C adapter.
 605
 606	  This driver can also be built as a module.  If so, the module
 607	  will be called amd_isp_i2c_designware.
 608
 609config I2C_DESIGNWARE_AMDPSP
 610	bool "AMD PSP I2C semaphore support"
 611	depends on ACPI
 612	depends on CRYPTO_DEV_SP_PSP
 613	depends on PCI
 614	depends on I2C_DESIGNWARE_PLATFORM
 615	depends on (I2C_DESIGNWARE_PLATFORM=y && CRYPTO_DEV_CCP_DD=y) || \
 616		   (I2C_DESIGNWARE_PLATFORM=m && CRYPTO_DEV_CCP_DD)
 617	help
 618	  This driver enables managed host access to the selected I2C bus shared
 619	  between AMD CPU and AMD PSP.
 620
 621	  You should say Y if running on an AMD system equipped with the PSP.
 622
 623config I2C_DESIGNWARE_BAYTRAIL
 624	bool "Intel Baytrail I2C semaphore support"
 625	depends on ACPI
 626	depends on I2C_DESIGNWARE_PLATFORM
 627	depends on (I2C_DESIGNWARE_PLATFORM=m && IOSF_MBI) || \
 628		   (I2C_DESIGNWARE_PLATFORM=y && IOSF_MBI=y)
 629	help
 630	  This driver enables managed host access to the PMIC I2C bus on select
 631	  Intel BayTrail platforms using the X-Powers AXP288 PMIC. It allows
 632	  the host to request uninterrupted access to the PMIC's I2C bus from
 633	  the platform firmware controlling it. You should say Y if running on
 634	  a BayTrail system using the AXP288.
 635
 636config I2C_DESIGNWARE_PCI
 637	tristate "Synopsys DesignWare PCI driver"
 638	depends on PCI
 639	select I2C_CCGX_UCSI
 640	help
 641	  If you say yes to this option, support will be included for the
 642	  Synopsys DesignWare I2C adapters on the PCI bus. Only master mode is
 643	  supported.
 644
 645	  This driver can also be built as a module.  If so, the module
 646	  will be called i2c-designware-pci.
 647
 648endif
 649
 650config I2C_DIGICOLOR
 651	tristate "Conexant Digicolor I2C driver"
 652	depends on ARCH_DIGICOLOR || COMPILE_TEST
 653	help
 654	  Support for Conexant Digicolor SoCs (CX92755) I2C controller driver.
 655
 656	  This driver can also be built as a module.  If so, the module
 657	  will be called i2c-digicolor.
 658
 659config I2C_EG20T
 660	tristate "Intel EG20T PCH/LAPIS Semicon IOH(ML7213/ML7223/ML7831) I2C"
 661	depends on PCI && (X86_32 || MIPS || COMPILE_TEST)
 662	help
 663	  This driver is for PCH(Platform controller Hub) I2C of EG20T which
 664	  is an IOH(Input/Output Hub) for x86 embedded processor.
 665	  This driver can access PCH I2C bus device.
 666
 667	  This driver also can be used for LAPIS Semiconductor IOH(Input/
 668	  Output Hub), ML7213, ML7223 and ML7831.
 669	  ML7213 IOH is for IVI(In-Vehicle Infotainment) use, ML7223 IOH is
 670	  for MP(Media Phone) use and ML7831 IOH is for general purpose use.
 671	  ML7213/ML7223/ML7831 is companion chip for Intel Atom E6xx series.
 672	  ML7213/ML7223/ML7831 is completely compatible for Intel EG20T PCH.
 673
 674config I2C_EMEV2
 675	tristate "EMMA Mobile series I2C adapter"
 676	depends on HAVE_CLK
 677	select I2C_SLAVE
 678	help
 679	  If you say yes to this option, support will be included for the
 680	  I2C interface on the Renesas Electronics EM/EV family of processors.
 681
 682config I2C_EXYNOS5
 683	tristate "Exynos high-speed I2C driver"
 684	depends on OF
 685	depends on ARCH_EXYNOS || COMPILE_TEST
 686	default y if ARCH_EXYNOS
 687	help
 688	  High-speed I2C controller on Samsung Exynos5 and newer Samsung SoCs:
 689	  Exynos5250, Exynos5260, Exynos5410, Exynos542x, Exynos5800,
 690	  Exynos5433, Exynos7, Exynos850 and ExynosAutoV9.
 691	  Choose Y here only if you build for such Samsung SoC.
 692
 693config I2C_GPIO
 694	tristate "GPIO-based bitbanging I2C"
 695	depends on GPIOLIB || COMPILE_TEST
 696	select I2C_ALGOBIT
 697	help
 698	  This is a very simple bitbanging I2C driver utilizing the
 699	  arch-neutral GPIO API to control the SCL and SDA lines.
 700
 701config I2C_GPIO_FAULT_INJECTOR
 702	bool "GPIO-based fault injector"
 703	depends on I2C_GPIO
 704	help
 705	  This adds some functionality to the i2c-gpio driver which can inject
 706	  faults to an I2C bus, so another bus master can be stress-tested.
 707	  This is for debugging. If unsure, say 'no'.
 708
 709config I2C_GXP
 710	tristate "GXP I2C Interface"
 711	depends on ARCH_HPE_GXP || COMPILE_TEST
 712	help
 713	  This enables support for GXP I2C interface. The I2C engines can be
 714	  either I2C master or I2C slaves.
 715
 716config I2C_HIGHLANDER
 717	tristate "Highlander FPGA SMBus interface"
 718	depends on SH_HIGHLANDER || COMPILE_TEST
 719	help
 720	  If you say yes to this option, support will be included for
 721	  the SMBus interface located in the FPGA on various Highlander
 722	  boards, particularly the R0P7780LC0011RL and R0P7785LC0011RL
 723	  FPGAs. This is wholly unrelated to the SoC I2C.
 724
 725	  This driver can also be built as a module.  If so, the module
 726	  will be called i2c-highlander.
 727
 728config I2C_HISI
 729	tristate "HiSilicon I2C controller"
 730	depends on ARM64 || COMPILE_TEST
 731	help
 732	  Say Y here if you want to have Hisilicon I2C controller support
 733	  available on the Kunpeng Server.
 734
 735	  This driver can also be built as a module. If so, the module
 736	  will be called i2c-hisi.
 737
 738config I2C_IBM_IIC
 739	tristate "IBM PPC 4xx on-chip I2C interface"
 740	depends on 4xx
 741	help
 742	  Say Y here if you want to use IIC peripheral found on
 743	  embedded IBM PPC 4xx based systems.
 744
 745	  This driver can also be built as a module.  If so, the module
 746	  will be called i2c-ibm_iic.
 747
 748config I2C_IMG
 749	tristate "Imagination Technologies I2C SCB Controller"
 750	depends on MIPS || COMPILE_TEST
 751	help
 752	  Say Y here if you want to use the IMG I2C SCB controller,
 753	  available on the TZ1090 and other IMG SoCs.
 754
 755	  This driver can also be built as a module.  If so, the module
 756	  will be called i2c-img-scb.
 757
 758config I2C_IMX
 759	tristate "IMX I2C interface"
 760	depends on ARCH_MXC || ARCH_LAYERSCAPE || ARCH_S32 || COLDFIRE \
 761		|| COMPILE_TEST
 762	select I2C_SLAVE
 763	help
 764	  Say Y here if you want to use the IIC bus controller on
 765	  the Freescale i.MX/MXC/S32G, Layerscape or ColdFire processors.
 766
 767	  This driver can also be built as a module. If so, the module
 768	  will be called i2c-imx.
 769
 770config I2C_IMX_LPI2C
 771	tristate "IMX Low Power I2C interface"
 772	depends on ARCH_MXC || COMPILE_TEST
 773	select I2C_SLAVE
 774	help
 775	  Say Y here if you want to use the Low Power IIC bus controller
 776	  on the Freescale i.MX processors.
 777
 778	  This driver can also be built as a module. If so, the module
 779	  will be called i2c-imx-lpi2c.
 780
 781config I2C_IOP3XX
 782	tristate "Intel IXP4xx on-chip I2C interface"
 783	depends on ARCH_IXP4XX || COMPILE_TEST
 784	help
 785	  Say Y here if you want to use the IIC bus controller on
 786	  the Intel IXP4xx Network Processors.
 787
 788	  This driver can also be built as a module.  If so, the module
 789	  will be called i2c-iop3xx.
 790
 791config I2C_JZ4780
 792	tristate "JZ4780 I2C controller interface support"
 793	depends on MIPS || COMPILE_TEST
 794	help
 795	 If you say yes to this option, support will be included for the
 796	 Ingenic JZ4780 I2C controller.
 797
 798	 If you don't know what to do here, say N.
 799
 800config I2C_K1
 801	tristate "SpacemiT K1 I2C adapter"
 802	depends on ARCH_SPACEMIT || COMPILE_TEST
 803	depends on OF
 804	help
 805	  This option enables support for the I2C interface on the SpacemiT K1
 806	  platform.
 807
 808	  If you enable this configuration, the kernel will include support for
 809	  the I2C adapter specific to the SpacemiT K1 platform. This driver can
 810	  be used to manage I2C bus transactions, which are necessary for
 811	  interfacing with I2C peripherals such as sensors, EEPROMs, and other
 812	  devices.
 813
 814	  This driver can also be built as a module.  If so, the
 815	  module will be called `i2c-k1`.
 816
 817config I2C_KEBA
 818	tristate "KEBA I2C controller support"
 819	depends on HAS_IOMEM
 820	depends on KEBA_CP500 || COMPILE_TEST
 821	select AUXILIARY_BUS
 822	help
 823	  This driver supports the I2C controller found in KEBA system FPGA
 824	  devices.
 825
 826	  This driver can also be built as a module. If so, the module
 827	  will be called i2c-keba.
 828
 829config I2C_KEMPLD
 830	tristate "Kontron COM I2C Controller"
 831	depends on MFD_KEMPLD
 832	help
 833	  This enables support for the I2C bus interface on some Kontron ETX
 834	  and COMexpress (ETXexpress) modules.
 835
 836	  This driver can also be built as a module. If so, the module
 837	  will be called i2c-kempld.
 838
 839config I2C_LPC2K
 840	tristate "I2C bus support for NXP LPC2K/LPC178x/18xx/43xx"
 841	depends on OF && (ARCH_LPC18XX || COMPILE_TEST)
 842	help
 843	  This driver supports the I2C interface found several NXP
 844	  devices including LPC2xxx, LPC178x/7x and LPC18xx/43xx.
 845
 846	  This driver can also be built as a module.  If so, the module
 847	  will be called i2c-lpc2k.
 848
 849config I2C_LS2X
 850	tristate "Loongson LS2X I2C adapter"
 851	depends on MACH_LOONGSON64 || COMPILE_TEST
 852	help
 853	  If you say yes to this option, support will be included for the
 854	  I2C interface on the Loongson-2K SoCs and Loongson LS7A bridge
 855	  chip.
 856
 857	  This driver can also be built as a module. If so, the module
 858	  will be called i2c-ls2x.
 859
 860config I2C_MLXBF
 861        tristate "Mellanox BlueField I2C controller"
 862        depends on (MELLANOX_PLATFORM && ARM64) || COMPILE_TEST
 863	depends on ACPI
 864	select I2C_SLAVE
 865        help
 866          Enabling this option will add I2C SMBus support for Mellanox BlueField
 867          system.
 868
 869          This driver can also be built as a module. If so, the module will be
 870          called i2c-mlxbf.
 871
 872          This driver implements an I2C SMBus host controller and enables both
 873          master and slave functions.
 874
 875config I2C_MESON
 876	tristate "Amlogic Meson I2C controller"
 877	depends on ARCH_MESON || COMPILE_TEST
 878	depends on COMMON_CLK
 879	help
 880	  If you say yes to this option, support will be included for the
 881	  I2C interface on the Amlogic Meson family of SoCs.
 882
 883config I2C_MICROCHIP_CORE
 884	tristate "Microchip FPGA I2C controller"
 885	depends on ARCH_MICROCHIP_POLARFIRE || COMPILE_TEST
 886	depends on OF
 887	help
 888	  If you say yes to this option, support will be included for the
 889	  I2C interface on Microchip FPGAs.
 890
 891	  This driver can also be built as a module. If so, the module will be
 892	  called i2c-microchip-core.
 893
 894config I2C_MPC
 895	tristate "MPC107/824x/85xx/512x/52xx/83xx/86xx"
 896	depends on PPC
 897	help
 898	  If you say yes to this option, support will be included for the
 899	  built-in I2C interface on the MPC107, Tsi107, MPC512x, MPC52xx,
 900	  MPC8240, MPC8245, MPC83xx, MPC85xx and MPC8641 family processors.
 901
 902	  This driver can also be built as a module.  If so, the module
 903	  will be called i2c-mpc.
 904
 905config I2C_MT65XX
 906	tristate "MediaTek I2C adapter"
 907	depends on ARCH_MEDIATEK || COMPILE_TEST
 908	help
 909	  This selects the MediaTek(R) Integrated Inter Circuit bus driver
 910	  for MT65xx and MT81xx.
 911	  If you want to use MediaTek(R) I2C interface, say Y or M here.
 912	  If unsure, say N.
 913
 914config I2C_MT7621
 915	tristate "MT7621/MT7628 I2C Controller"
 916	depends on (RALINK && (SOC_MT7620 || SOC_MT7621)) || ARCH_AIROHA || COMPILE_TEST
 917	help
 918	  Say Y here to include support for I2C controller in the
 919	  MediaTek MT7621/MT7628 SoCs.
 920
 921config I2C_MV64XXX
 922	tristate "Marvell mv64xxx I2C Controller"
 923	depends on PLAT_ORION || ARCH_SUNXI || ARCH_MVEBU || COMPILE_TEST
 924	help
 925	  If you say yes to this option, support will be included for the
 926	  built-in I2C interface on the Marvell 64xxx line of host bridges.
 927	  This driver is also used for Allwinner SoCs I2C controllers.
 928
 929	  This driver can also be built as a module.  If so, the module
 930	  will be called i2c-mv64xxx.
 931
 932config I2C_MXS
 933	tristate "Freescale i.MX28 I2C interface"
 934	depends on SOC_IMX28 || COMPILE_TEST
 935	select STMP_DEVICE
 936	help
 937	  Say Y here if you want to use the I2C bus controller on
 938	  the Freescale i.MX28 processors.
 939
 940	  This driver can also be built as a module.  If so, the module
 941	  will be called i2c-mxs.
 942
 943config I2C_NOMADIK
 944	tristate "ST-Ericsson Nomadik/Ux500 I2C Controller"
 945	depends on ARM_AMBA || COMPILE_TEST
 946	help
 947	  If you say yes to this option, support will be included for the
 948	  I2C interface from ST-Ericsson's Nomadik and Ux500 architectures,
 949	  as well as the STA2X11 PCIe I/O HUB.
 950
 951config I2C_NPCM
 952	tristate "Nuvoton I2C Controller"
 953	depends on ARCH_NPCM || COMPILE_TEST
 954	help
 955	  If you say yes to this option, support will be included for the
 956	  Nuvoton I2C controller, which is available on the NPCM BMC
 957	  controllers.
 958	  Driver can also support slave mode (select I2C_SLAVE).
 959
 960config I2C_OCORES
 961	tristate "OpenCores I2C Controller"
 962	help
 963	  If you say yes to this option, support will be included for the
 964	  OpenCores I2C controller. For details see
 965	  http://www.opencores.org/projects.cgi/web/i2c/overview
 966
 967	  This driver can also be built as a module.  If so, the module
 968	  will be called i2c-ocores.
 969
 970config I2C_OMAP
 971	tristate "OMAP I2C adapter"
 972	depends on ARCH_OMAP || ARCH_K3 || COMPILE_TEST
 973	default MACH_OMAP_OSK
 974	select MULTIPLEXER
 975	help
 976	  If you say yes to this option, support will be included for the
 977	  I2C interface on the Texas Instruments OMAP1/2 family of processors.
 978	  Like OMAP1510/1610/1710/5912 and OMAP242x.
 979	  For details see http://www.ti.com/omap.
 980
 981config I2C_OWL
 982	tristate "Actions Semiconductor Owl I2C Controller"
 983	depends on ARCH_ACTIONS || COMPILE_TEST
 984	help
 985	  Say Y here if you want to use the I2C bus controller on
 986	  the Actions Semiconductor Owl SoC's.
 987
 988config I2C_PASEMI
 989	tristate "PA Semi SMBus interface"
 990	depends on PPC_PASEMI && PCI
 991	help
 992	  Supports the PA Semi PWRficient on-chip SMBus interfaces.
 993
 994config I2C_APPLE
 995	tristate "Apple SMBus platform driver"
 996	depends on !I2C_PASEMI
 997	depends on ARCH_APPLE || COMPILE_TEST
 998	help
 999	  Say Y here if you want to use the I2C controller present on Apple
1000	  Silicon chips such as the M1.
1001
1002	  This driver can also be built as a module. If so, the module
1003	  will be called i2c-apple.
1004
1005config I2C_PCA_PLATFORM
1006	tristate "PCA9564/PCA9665 as platform device"
1007	select I2C_ALGOPCA
1008	help
1009	  This driver supports a memory mapped Philips PCA9564/PCA9665
1010	  parallel bus to I2C bus controller.
1011
1012	  This driver can also be built as a module.  If so, the module
1013	  will be called i2c-pca-platform.
1014
1015config I2C_PNX
1016	tristate "I2C bus support for Philips PNX and NXP LPC targets"
1017	depends on ARCH_LPC32XX || COMPILE_TEST
1018	help
1019	  This driver supports the Philips IP3204 I2C IP block master and/or
1020	  slave controller
1021
1022	  This driver can also be built as a module.  If so, the module
1023	  will be called i2c-pnx.
1024
1025config I2C_PXA
1026	tristate "Intel PXA2XX I2C adapter"
1027	depends on ARCH_PXA || ARCH_MMP || ARCH_MVEBU || (X86_32 && PCI && OF) || COMPILE_TEST
1028	help
1029	  If you have devices in the PXA I2C bus, say yes to this option.
1030	  This driver can also be built as a module.  If so, the module
1031	  will be called i2c-pxa.
1032
1033config I2C_PXA_PCI
1034	def_bool I2C_PXA && X86_32 && PCI && OF
1035
1036config I2C_PXA_SLAVE
1037	bool "Intel PXA2XX I2C Slave comms support"
1038	depends on I2C_PXA && !X86_32
1039	select I2C_SLAVE
1040	help
1041	  Support I2C slave mode communications on the PXA I2C bus.  This
1042	  is necessary for systems where the PXA may be a target on the
1043	  I2C bus.
1044
1045config I2C_QCOM_CCI
1046	tristate "Qualcomm Camera Control Interface"
1047	depends on ARCH_QCOM || COMPILE_TEST
1048	help
1049	  If you say yes to this option, support will be included for the
1050	  built-in camera control interface on the Qualcomm SoCs.
1051
1052	  This driver can also be built as a module.  If so, the module
1053	  will be called i2c-qcom-cci.
1054
1055config I2C_QCOM_GENI
1056	tristate "Qualcomm Technologies Inc.'s GENI based I2C controller"
1057	depends on ARCH_QCOM || COMPILE_TEST
1058	depends on QCOM_GENI_SE
1059	help
1060	  This driver supports GENI serial engine based I2C controller in
1061	  master mode on the Qualcomm Technologies Inc.'s SoCs. If you say
1062	  yes to this option, support will be included for the built-in I2C
1063	  interface on the Qualcomm Technologies Inc.'s SoCs.
1064
1065	  This driver can also be built as a module.  If so, the module
1066	  will be called i2c-qcom-geni.
1067
1068config I2C_QUP
1069	tristate "Qualcomm QUP based I2C controller"
1070	depends on ARCH_QCOM || COMPILE_TEST
1071	help
1072	  If you say yes to this option, support will be included for the
1073	  built-in I2C interface on the Qualcomm SoCs.
1074
1075	  This driver can also be built as a module.  If so, the module
1076	  will be called i2c-qup.
1077
1078config I2C_RIIC
1079	tristate "Renesas RIIC adapter"
1080	depends on ARCH_RENESAS || COMPILE_TEST
1081	help
1082	  If you say yes to this option, support will be included for the
1083	  Renesas RIIC I2C interface.
1084
1085	  This driver can also be built as a module.  If so, the module
1086	  will be called i2c-riic.
1087
1088config I2C_RK3X
1089	tristate "Rockchip RK3xxx I2C adapter"
1090	depends on OF && COMMON_CLK
1091	help
1092	  Say Y here to include support for the I2C adapter in Rockchip RK3xxx
1093	  SoCs.
1094
1095	  This driver can also be built as a module. If so, the module will
1096	  be called i2c-rk3x.
1097
1098config I2C_RTL9300
1099	tristate "Realtek RTL9300 I2C controller"
1100	depends on MACH_REALTEK_RTL || COMPILE_TEST
1101	help
1102	  Say Y here to include support for the I2C controller in Realtek
1103	  RTL9300 SoCs.
1104
1105	  This driver can also be built as a module. If so, the module will
1106	  be called i2c-rtl9300.
1107
1108config I2C_RZV2M
1109	tristate "Renesas RZ/V2M adapter"
1110	depends on ARCH_RENESAS || COMPILE_TEST
1111	help
1112	  If you say yes to this option, support will be included for the
1113	  Renesas RZ/V2M I2C interface.
1114
1115	  This driver can also be built as a module.  If so, the module
1116	  will be called i2c-rzv2m.
1117
1118config I2C_S3C2410
1119	tristate "S3C/Exynos I2C Driver"
1120	depends on ARCH_EXYNOS || ARCH_S3C64XX || ARCH_S5PV210 || COMPILE_TEST
1121	help
1122	  Say Y here to include support for I2C controller in the
1123	  Samsung SoCs (S3C, S5Pv210, Exynos).
1124
1125config I2C_SH7760
1126	tristate "Renesas SH7760 I2C Controller"
1127	depends on CPU_SUBTYPE_SH7760
1128	help
1129	  This driver supports the 2 I2C interfaces on the Renesas SH7760.
1130
1131	  This driver can also be built as a module.  If so, the module
1132	  will be called i2c-sh7760.
1133
1134config I2C_SH_MOBILE
1135	tristate "SuperH Mobile I2C Controller"
1136	depends on ARCH_SHMOBILE || ARCH_RENESAS || COMPILE_TEST
1137	help
1138	  If you say yes to this option, support will be included for the
1139	  built-in I2C interface on the Renesas SH-Mobile processor.
1140
1141	  This driver can also be built as a module.  If so, the module
1142	  will be called i2c-sh_mobile.
1143
1144config I2C_SIMTEC
1145	tristate "Simtec Generic I2C interface"
1146	select I2C_ALGOBIT
1147	help
1148	  If you say yes to this option, support will be included for
1149	  the Simtec Generic I2C interface. This driver is for the
1150	  simple I2C bus used on newer Simtec products for general
1151	  I2C, such as DDC on the Simtec BBD2016A.
1152
1153	  This driver can also be built as a module. If so, the module
1154	  will be called i2c-simtec.
1155
1156config I2C_SPRD
1157	tristate "Spreadtrum I2C interface"
1158	depends on I2C=y && (ARCH_SPRD || COMPILE_TEST)
1159	depends on COMMON_CLK
1160	help
1161	  If you say yes to this option, support will be included for the
1162	  Spreadtrum I2C interface.
1163
1164config I2C_ST
1165	tristate "STMicroelectronics SSC I2C support"
1166	depends on ARCH_STI || COMPILE_TEST
1167	help
1168	  Enable this option to add support for STMicroelectronics SoCs
1169	  hardware SSC (Synchronous Serial Controller) as an I2C controller.
1170
1171	  This driver can also be built as module. If so, the module
1172	  will be called i2c-st.
1173
1174config I2C_STM32F4
1175	tristate "STMicroelectronics STM32F4 I2C support"
1176	depends on ARCH_STM32 || COMPILE_TEST
1177	help
1178	  Enable this option to add support for STM32 I2C controller embedded
1179	  in STM32F4 SoCs.
1180
1181	  This driver can also be built as module. If so, the module
1182	  will be called i2c-stm32f4.
1183
1184config I2C_STM32F7
1185	tristate "STMicroelectronics STM32F7 I2C support"
1186	depends on ARCH_STM32 || COMPILE_TEST
1187	select I2C_SLAVE
1188	select I2C_SMBUS
1189	help
1190	  Enable this option to add support for STM32 I2C controller embedded
1191	  in STM32F7 SoCs.
1192
1193	  This driver can also be built as module. If so, the module
1194	  will be called i2c-stm32f7.
1195
1196config I2C_SUN6I_P2WI
1197	tristate "Allwinner sun6i internal P2WI controller"
1198	depends on RESET_CONTROLLER
1199	depends on MACH_SUN6I || COMPILE_TEST
1200	help
1201	  If you say yes to this option, support will be included for the
1202	  P2WI (Push/Pull 2 Wire Interface) controller embedded in some sunxi
1203	  SOCs.
1204	  The P2WI looks like an SMBus controller (which supports only byte
1205	  accesses), except that it only supports one slave device.
1206	  This interface is used to connect to specific PMIC devices (like the
1207	  AXP221).
1208
1209config I2C_SYNQUACER
1210	tristate "Socionext SynQuacer I2C controller"
1211	depends on ARCH_SYNQUACER || COMPILE_TEST
1212	help
1213	  Say Y here to include support for the I2C controller used in some
1214	  Fujitsu and Socionext SoCs.
1215
1216	  This driver can also be built as a module. If so, the module
1217	  will be called i2c-synquacer.
1218
1219config I2C_TEGRA
1220	tristate "NVIDIA Tegra internal I2C controller"
1221	depends on ARCH_TEGRA || (COMPILE_TEST && (ARC || ARM || ARM64 || M68K || RISCV || SUPERH || SPARC))
1222	# COMPILE_TEST needs architectures with readsX()/writesX() primitives
1223	depends on PINCTRL
1224	# ARCH_TEGRA implies PINCTRL, but the COMPILE_TEST side doesn't.
1225	help
1226	  If you say yes to this option, support will be included for the
1227	  I2C controller embedded in NVIDIA Tegra SOCs
1228
1229config I2C_TEGRA_BPMP
1230	tristate "NVIDIA Tegra BPMP I2C controller"
1231	depends on TEGRA_BPMP || COMPILE_TEST
1232	default y if TEGRA_BPMP
1233	help
1234	  If you say yes to this option, support will be included for the I2C
1235	  controller embedded in NVIDIA Tegra SoCs accessed via the BPMP.
1236
1237	  This I2C driver is a 'virtual' I2C driver. The real driver is part
1238	  of the BPMP firmware, and this driver merely communicates with that
1239	  real driver.
1240
1241config I2C_UNIPHIER
1242	tristate "UniPhier FIFO-less I2C controller"
1243	depends on ARCH_UNIPHIER || COMPILE_TEST
1244	help
1245	  If you say yes to this option, support will be included for
1246	  the UniPhier FIFO-less I2C interface embedded in PH1-LD4, PH1-sLD8,
1247	  or older UniPhier SoCs.
1248
1249config I2C_UNIPHIER_F
1250	tristate "UniPhier FIFO-builtin I2C controller"
1251	depends on ARCH_UNIPHIER || COMPILE_TEST
1252	help
1253	  If you say yes to this option, support will be included for
1254	  the UniPhier FIFO-builtin I2C interface embedded in PH1-Pro4,
1255	  PH1-Pro5, or newer UniPhier SoCs.
1256
1257config I2C_VERSATILE
1258	tristate "ARM Versatile/Realview I2C bus support"
1259	depends on ARCH_MPS2 || ARCH_VERSATILE || ARCH_REALVIEW || ARCH_VEXPRESS || COMPILE_TEST
1260	select I2C_ALGOBIT
1261	help
1262	  Say yes if you want to support the I2C serial bus on ARMs Versatile
1263	  range of platforms.
1264
1265	  This driver can also be built as a module.  If so, the module
1266	  will be called i2c-versatile.
1267
1268config I2C_WMT
1269	tristate "Wondermedia WM8xxx SoC I2C bus support"
1270	depends on ARCH_VT8500 || COMPILE_TEST
1271	help
1272	  Say yes if you want to support the I2C bus on Wondermedia 8xxx-series
1273	  SoCs.
1274
1275	  This driver can also be built as a module. If so, the module will be
1276	  called i2c-wmt.
1277
1278config I2C_OCTEON
1279	tristate "Cavium OCTEON I2C bus support"
1280	depends on CAVIUM_OCTEON_SOC
1281	help
1282	  Say yes if you want to support the I2C serial bus on Cavium
1283	  OCTEON SOC.
1284
1285	  This driver can also be built as a module.  If so, the module
1286	  will be called i2c-octeon.
1287
1288config I2C_THUNDERX
1289	tristate "Cavium ThunderX I2C bus support"
1290	depends on 64BIT && PCI && (ARM64 || COMPILE_TEST)
1291	select I2C_SMBUS
1292	help
1293	  Say yes if you want to support the I2C serial bus on Cavium
1294	  ThunderX SOC.
1295
1296	  This driver can also be built as a module.  If so, the module
1297	  will be called i2c-thunderx.
1298
1299config I2C_XILINX
1300	tristate "Xilinx I2C Controller"
1301	depends on HAS_IOMEM
1302	help
1303	  If you say yes to this option, support will be included for the
1304	  Xilinx I2C controller.
1305
1306	  This driver can also be built as a module.  If so, the module
1307	  will be called xilinx_i2c.
1308
1309config I2C_XLP9XX
1310	tristate "Cavium ThunderX2 I2C support"
1311	depends on ARCH_THUNDER2 || COMPILE_TEST
1312	help
1313	  This driver enables support for the on-chip I2C interface of
1314	  the Cavium ThunderX2 processors. (Originally on Netlogic XLP SoCs.)
1315
1316	  This driver can also be built as a module.  If so, the module will
1317	  be called i2c-xlp9xx.
1318
1319config I2C_RCAR
1320	tristate "Renesas R-Car I2C Controller"
1321	depends on ARCH_RENESAS || COMPILE_TEST
1322	select I2C_SLAVE
1323	select I2C_SMBUS
1324	select RESET_CONTROLLER if ARCH_RCAR_GEN3 || ARCH_RCAR_GEN4
1325	help
1326	  If you say yes to this option, support will be included for the
1327	  R-Car I2C controller.
1328
1329	  This driver can also be built as a module.  If so, the module
1330	  will be called i2c-rcar.
1331
1332comment "External I2C/SMBus adapter drivers"
1333
1334config I2C_DIOLAN_U2C
1335	tristate "Diolan U2C-12 USB adapter"
1336	depends on USB
1337	help
1338	  If you say yes to this option, support will be included for Diolan
1339	  U2C-12, a USB to I2C interface.
1340
1341	  This driver can also be built as a module.  If so, the module
1342	  will be called i2c-diolan-u2c.
1343
1344config I2C_DLN2
1345	tristate "Diolan DLN-2 USB I2C adapter"
1346	depends on MFD_DLN2
1347	help
1348	 If you say yes to this option, support will be included for Diolan
1349	 DLN2, a USB to I2C interface.
1350
1351	 This driver can also be built as a module.  If so, the module
1352	 will be called i2c-dln2.
1353
1354config I2C_LJCA
1355	tristate "I2C functionality of Intel La Jolla Cove Adapter"
1356	depends on USB_LJCA
1357	default USB_LJCA
1358	help
1359	  If you say yes to this option, I2C functionality support of Intel
1360	  La Jolla Cove Adapter (LJCA) will be included.
1361
1362	  This driver can also be built as a module.  If so, the module
1363	  will be called i2c-ljca.
1364
1365config I2C_NCT6694
1366	tristate "Nuvoton NCT6694 I2C adapter support"
1367	depends on MFD_NCT6694
1368	help
1369	  If you say yes to this option, support will be included for Nuvoton
1370	  NCT6694, a USB to I2C interface.
1371
1372	  This driver can also be built as a module. If so, the module will
1373	  be called i2c-nct6694.
1374
1375config I2C_USBIO
1376	tristate "Intel USBIO I2C Adapter support"
1377	depends on USB_USBIO
1378	default USB_USBIO
1379	help
1380	  Select this option to enable I2C driver for the INTEL
1381	  USBIO driver stack.
1382
1383	  This driver can also be built as a module.  If so, the module
1384	  will be called i2c_usbio.
1385
1386config I2C_CP2615
1387	tristate "Silicon Labs CP2615 USB sound card and I2C adapter"
1388	depends on USB
1389	help
1390	  If you say yes to this option, support will be included for Silicon
1391	  Labs CP2615's I2C interface.
1392
1393	  This driver can also be built as a module.  If so, the module
1394	  will be called i2c-cp2615.
1395
1396config I2C_PARPORT
1397	tristate "Parallel port adapter"
1398	depends on PARPORT
1399	select I2C_ALGOBIT
1400	select I2C_SMBUS
1401	help
1402	  This supports parallel port I2C adapters such as the ones made by
1403	  Philips or Velleman, Analog Devices evaluation boards, and more.
1404	  Basically any adapter using the parallel port as an I2C bus with
1405	  no extra chipset is supported by this driver, or could be. Please
1406	  read the file Documentation/i2c/busses/i2c-parport.rst for details.
1407
1408	  This support is also available as a module.  If so, the module
1409	  will be called i2c-parport.
1410
1411config I2C_PCI1XXXX
1412	tristate "PCI1XXXX I2C Host Adapter"
1413	depends on PCI
1414	help
1415	  If you say yes to this option, support will be included for
1416	  Microchip PCI1XXXX's I2C interface.
1417
1418	  This driver can also be built as a module. If so, the module will
1419	  be called i2c-mchp-pci1xxxx.
1420
1421config I2C_ROBOTFUZZ_OSIF
1422	tristate "RobotFuzz Open Source InterFace USB adapter"
1423	depends on USB
1424	help
1425	  If you say yes to this option, support will be included for the
1426	  RobotFuzz Open Source InterFace USB to I2C interface.
1427
1428	  This driver can also be built as a module.  If so, the module
1429	  will be called i2c-osif.
1430
1431config I2C_TAOS_EVM
1432	tristate "TAOS evaluation module"
1433	depends on TTY
1434	select SERIO
1435	select SERIO_SERPORT
1436	help
1437	  This supports TAOS evaluation modules on serial port. In order to
1438	  use this driver, you will need the inputattach tool, which is part
1439	  of the input-utils package.
1440
1441	  If unsure, say N.
1442
1443	  This support is also available as a module.  If so, the module
1444	  will be called i2c-taos-evm.
1445
1446config I2C_TINY_USB
1447	tristate "Tiny-USB adapter"
1448	depends on USB
1449	help
1450	  If you say yes to this option, support will be included for the
1451	  i2c-tiny-usb, a simple do-it-yourself USB to I2C interface. See
1452	  http://www.harbaum.org/till/i2c_tiny_usb for hardware details.
1453
1454	  This driver can also be built as a module.  If so, the module
1455	  will be called i2c-tiny-usb.
1456
1457config I2C_VIPERBOARD
1458	tristate "Viperboard I2C master support"
1459	depends on MFD_VIPERBOARD && USB
1460	help
1461	  Say yes here to access the I2C part of the Nano River
1462	  Technologies Viperboard as I2C master.
1463	  See viperboard API specification and Nano
1464	  River Tech's viperboard.h for detailed meaning
1465	  of the module parameters.
1466
1467comment "Other I2C/SMBus bus drivers"
1468
1469config I2C_ACORN
1470	tristate "Acorn IOC/IOMD I2C bus support"
1471	depends on ARCH_ACORN
1472	default y
1473	select I2C_ALGOBIT
1474	help
1475	  Say yes if you want to support the I2C bus on Acorn platforms.
1476
1477	  If you don't know, say Y.
1478
1479config I2C_ELEKTOR
1480	tristate "Elektor ISA card"
1481	depends on ISA && HAS_IOPORT_MAP
1482	select I2C_ALGOPCF
1483	help
1484	  This supports the PCF8584 ISA bus I2C adapter.  Say Y if you own
1485	  such an adapter.
1486
1487	  This support is also available as a module.  If so, the module
1488	  will be called i2c-elektor.
1489
1490config I2C_ICY
1491	tristate "ICY Zorro card"
1492	depends on ZORRO
1493	select I2C_ALGOPCF
1494	help
1495	  This supports the PCF8584 Zorro bus I2C adapter, known as ICY.
1496	  Say Y if you own such an adapter.
1497
1498	  This support is also available as a module.  If so, the module
1499	  will be called i2c-icy.
1500
1501	  If you have a 2019 edition board with an LTC2990 sensor at address
1502	  0x4c, loading the module 'ltc2990' is sufficient to enable it.
1503
1504config I2C_MLXCPLD
1505	tristate "Mellanox I2C driver"
1506	depends on X86_64 || (ARM64 && ACPI) || COMPILE_TEST
1507	depends on HAS_IOPORT
1508	help
1509	  This exposes the Mellanox platform I2C busses to the linux I2C layer
1510	  for X86 and ARM64/ACPI based systems.
1511	  Controller is implemented as CPLD logic.
1512
1513	  This driver can also be built as a module. If so, the module will be
1514	  called as i2c-mlxcpld.
1515
1516config I2C_PCA_ISA
1517	tristate "PCA9564/PCA9665 on an ISA bus"
1518	depends on ISA
1519	select I2C_ALGOPCA
1520	help
1521	  This driver supports ISA boards using the Philips PCA9564/PCA9665
1522	  parallel bus to I2C bus controller.
1523
1524	  This driver can also be built as a module.  If so, the module
1525	  will be called i2c-pca-isa.
1526
1527	  This device is almost undetectable and using this driver on a
1528	  system which doesn't have this device will result in long
1529	  delays when I2C/SMBus chip drivers are loaded (e.g. at boot
1530	  time).  If unsure, say N.
1531
1532config I2C_SIBYTE
1533	tristate "SiByte SMBus interface"
1534	depends on SIBYTE_SB1xxx_SOC
1535	help
1536	  Supports the SiByte SOC on-chip I2C interfaces (2 channels).
1537
1538config I2C_CROS_EC_TUNNEL
1539	tristate "ChromeOS EC tunnel I2C bus"
1540	depends on CROS_EC
1541	help
1542	  If you say yes here you get an I2C bus that will tunnel i2c commands
1543	  through to the other side of the ChromeOS EC to the i2c bus
1544	  connected there. This will work whatever the interface used to
1545	  talk to the EC (SPI, I2C or LPC).
1546
1547config I2C_XGENE_SLIMPRO
1548	tristate "APM X-Gene SoC I2C SLIMpro devices support"
1549	depends on ARCH_XGENE && MAILBOX
1550	help
1551	  Enable I2C bus access using the APM X-Gene SoC SLIMpro
1552	  co-processor. The I2C device access the I2C bus via the X-Gene
1553	  to SLIMpro (On chip coprocessor) mailbox mechanism.
1554	  If unsure, say N.
1555
1556config SCx200_ACB
1557	tristate "Geode ACCESS.bus support"
1558	depends on X86_32 && PCI && HAS_IOPORT
1559	help
1560	  Enable the use of the ACCESS.bus controllers on the Geode SCx200 and
1561	  SC1100 processors and the CS5535 and CS5536 Geode companion devices.
1562
1563	  If you don't know what to do here, say N.
1564
1565	  This support is also available as a module.  If so, the module
1566	  will be called scx200_acb.
1567
1568config I2C_OPAL
1569	tristate "IBM OPAL I2C driver"
1570	depends on PPC_POWERNV
1571	default y
1572	help
1573	  This exposes the PowerNV platform i2c busses to the linux i2c layer,
1574	  the driver is based on the OPAL interfaces.
1575
1576	  This driver can also be built as a module. If so, the module will be
1577	  called as i2c-opal.
1578
1579config I2C_FSI
1580	tristate "FSI I2C driver"
1581	depends on FSI
1582	help
1583	  Driver for FSI bus attached I2C masters. These are I2C masters that
1584	  are connected to the system over an FSI bus, instead of the more
1585	  common PCI or MMIO interface.
1586
1587	  This driver can also be built as a module. If so, the module will be
1588	  called as i2c-fsi.
1589
1590config I2C_VIRTIO
1591        tristate "Virtio I2C Adapter"
1592        select VIRTIO
1593        help
1594          If you say yes to this option, support will be included for the virtio
1595          I2C adapter driver. The hardware can be emulated by any device model
1596          software according to the virtio protocol.
1597
1598          This driver can also be built as a module. If so, the module
1599          will be called i2c-virtio.
1600
1601endmenu
~/ Read-only file preview.