1# SPDX-License-Identifier: GPL-2.0-only 2# 3# PHY Layer Configuration 4# 5 6menuconfig MDIO_DEVICE 7 tristate "MDIO bus device drivers" 8 help 9 MDIO devices and driver infrastructure code. 10 11if MDIO_DEVICE 12 13config MDIO_BUS 14 tristate 15 default m if PHYLIB=m 16 default MDIO_DEVICE 17 help 18 This internal symbol is used for link time dependencies and it 19 reflects whether the mdio_bus/mdio_device code is built as a 20 loadable module or built-in. 21 22if MDIO_BUS 23 24config MDIO_ASPEED 25 tristate "ASPEED MDIO bus controller" 26 depends on ARCH_ASPEED || COMPILE_TEST 27 depends on OF_MDIO && HAS_IOMEM 28 help 29 This module provides a driver for the independent MDIO bus 30 controllers found in the ASPEED AST2600 SoC. This is a driver for the 31 third revision of the ASPEED MDIO register interface - the first two 32 revisions are the "old" and "new" interfaces found in the AST2400 and 33 AST2500, embedded in the MAC. For legacy reasons, FTGMAC100 driver 34 continues to drive the embedded MDIO controller for the AST2400 and 35 AST2500 SoCs, so say N if AST2600 support is not required. 36 37config MDIO_BCM_IPROC 38 tristate "Broadcom iProc MDIO bus controller" 39 depends on ARCH_BCM_IPROC || COMPILE_TEST 40 depends on HAS_IOMEM && OF_MDIO 41 default ARCH_BCM_IPROC 42 help 43 This module provides a driver for the MDIO busses found in the 44 Broadcom iProc SoC's. 45 46config MDIO_BCM_UNIMAC 47 tristate "Broadcom UniMAC MDIO bus controller" 48 depends on HAS_IOMEM 49 help 50 This module provides a driver for the Broadcom UniMAC MDIO busses. 51 This hardware can be found in the Broadcom GENET Ethernet MAC 52 controllers as well as some Broadcom Ethernet switches such as the 53 Starfighter 2 switches. 54 55config MDIO_BITBANG 56 tristate "Bitbanged MDIO buses" 57 help 58 This module implements the MDIO bus protocol in software, 59 for use by low level drivers that export the ability to 60 drive the relevant pins. 61 62 If in doubt, say N. 63 64config MDIO_BUS_MUX 65 tristate 66 depends on OF_MDIO 67 help 68 This module provides a driver framework for MDIO bus 69 multiplexers which connect one of several child MDIO busses 70 to a parent bus. Switching between child busses is done by 71 device specific drivers. 72 73config MDIO_BUS_MUX_BCM_IPROC 74 tristate "Broadcom iProc based MDIO bus multiplexers" 75 depends on OF && OF_MDIO && (ARCH_BCM_IPROC || COMPILE_TEST) 76 select MDIO_BUS_MUX 77 default ARCH_BCM_IPROC 78 help 79 This module provides a driver for MDIO bus multiplexers found in 80 iProc based Broadcom SoCs. This multiplexer connects one of several 81 child MDIO bus to a parent bus. Buses could be internal as well as 82 external and selection logic lies inside the same multiplexer. 83 84config MDIO_BUS_MUX_GPIO 85 tristate "GPIO controlled MDIO bus multiplexers" 86 depends on OF_GPIO && OF_MDIO 87 select MDIO_BUS_MUX 88 help 89 This module provides a driver for MDIO bus multiplexers that 90 are controlled via GPIO lines. The multiplexer connects one of 91 several child MDIO busses to a parent bus. Child bus 92 selection is under the control of GPIO lines. 93 94config MDIO_BUS_MUX_MESON_G12A 95 tristate "Amlogic G12a based MDIO bus multiplexer" 96 depends on ARCH_MESON || COMPILE_TEST 97 depends on OF_MDIO && HAS_IOMEM && COMMON_CLK 98 select MDIO_BUS_MUX 99 default m if ARCH_MESON 100 help 101 This module provides a driver for the MDIO multiplexer/glue of 102 the amlogic g12a SoC. The multiplexers connects either the external 103 or the internal MDIO bus to the parent bus. 104 105config MDIO_BUS_MUX_MMIOREG 106 tristate "MMIO device-controlled MDIO bus multiplexers" 107 depends on OF_MDIO && HAS_IOMEM 108 select MDIO_BUS_MUX 109 help 110 This module provides a driver for MDIO bus multiplexers that 111 are controlled via a simple memory-mapped device, like an FPGA. 112 The multiplexer connects one of several child MDIO busses to a 113 parent bus. Child bus selection is under the control of one of 114 the FPGA's registers. 115 116 Currently, only 8/16/32 bits registers are supported. 117 118config MDIO_BUS_MUX_MULTIPLEXER 119 tristate "MDIO bus multiplexer using kernel multiplexer subsystem" 120 depends on OF_MDIO 121 select MULTIPLEXER 122 select MDIO_BUS_MUX 123 help 124 This module provides a driver for MDIO bus multiplexer 125 that is controlled via the kernel multiplexer subsystem. The 126 bus multiplexer connects one of several child MDIO busses to 127 a parent bus. Child bus selection is under the control of 128 the kernel multiplexer subsystem. 129 130config MDIO_CAVIUM 131 tristate 132 133config MDIO_GPIO 134 tristate "GPIO lib-based bitbanged MDIO buses" 135 depends on MDIO_BITBANG 136 depends on GPIOLIB || COMPILE_TEST 137 ---help--- 138 Supports GPIO lib-based MDIO busses. 139 140 To compile this driver as a module, choose M here: the module 141 will be called mdio-gpio. 142 143config MDIO_HISI_FEMAC 144 tristate "Hisilicon FEMAC MDIO bus controller" 145 depends on HAS_IOMEM && OF_MDIO 146 help 147 This module provides a driver for the MDIO busses found in the 148 Hisilicon SoC that have an Fast Ethernet MAC. 149 150config MDIO_I2C 151 tristate 152 depends on I2C 153 help 154 Support I2C based PHYs. This provides a MDIO bus bridged 155 to I2C to allow PHYs connected in I2C mode to be accessed 156 using the existing infrastructure. 157 158 This is library mode. 159 160config MDIO_IPQ4019 161 tristate "Qualcomm IPQ4019 MDIO interface support" 162 depends on HAS_IOMEM && OF_MDIO 163 help 164 This driver supports the MDIO interface found in Qualcomm 165 IPQ40xx series Soc-s. 166 167config MDIO_IPQ8064 168 tristate "Qualcomm IPQ8064 MDIO interface support" 169 depends on HAS_IOMEM && OF_MDIO 170 depends on MFD_SYSCON 171 help 172 This driver supports the MDIO interface found in the network 173 interface units of the IPQ8064 SoC 174 175config MDIO_MOXART 176 tristate "MOXA ART MDIO interface support" 177 depends on ARCH_MOXART || COMPILE_TEST 178 help 179 This driver supports the MDIO interface found in the network 180 interface units of the MOXA ART SoC 181 182config MDIO_MSCC_MIIM 183 tristate "Microsemi MIIM interface support" 184 depends on HAS_IOMEM 185 help 186 This driver supports the MIIM (MDIO) interface found in the network 187 switches of the Microsemi SoCs 188 189config MDIO_MVUSB 190 tristate "Marvell USB to MDIO Adapter" 191 depends on USB 192 help 193 A USB to MDIO converter present on development boards for 194 Marvell's Link Street family of Ethernet switches. 195 196config MDIO_OCTEON 197 tristate "Octeon and some ThunderX SOCs MDIO buses" 198 depends on (64BIT && OF_MDIO) || COMPILE_TEST 199 depends on HAS_IOMEM 200 select MDIO_CAVIUM 201 help 202 This module provides a driver for the Octeon and ThunderX MDIO 203 buses. It is required by the Octeon and ThunderX ethernet device 204 drivers on some systems. 205 206config MDIO_SUN4I 207 tristate "Allwinner sun4i MDIO interface support" 208 depends on ARCH_SUNXI || COMPILE_TEST 209 help 210 This driver supports the MDIO interface found in the network 211 interface units of the Allwinner SoC that have an EMAC (A10, 212 A12, A10s, etc.) 213 214config MDIO_THUNDER 215 tristate "ThunderX SOCs MDIO buses" 216 depends on 64BIT 217 depends on PCI 218 select MDIO_CAVIUM 219 help 220 This driver supports the MDIO interfaces found on Cavium 221 ThunderX SoCs when the MDIO bus device appears as a PCI 222 device. 223 224config MDIO_XGENE 225 tristate "APM X-Gene SoC MDIO bus controller" 226 depends on ARCH_XGENE || COMPILE_TEST 227 help 228 This module provides a driver for the MDIO busses found in the 229 APM X-Gene SoC's. 230 231config MDIO_XPCS 232 tristate "Synopsys DesignWare XPCS controller" 233 help 234 This module provides helper functions for Synopsys DesignWare XPCS 235 controllers. 236 237endif 238endif 239 240config PHYLINK 241 tristate 242 depends on NETDEVICES 243 select PHYLIB 244 select SWPHY 245 help 246 PHYlink models the link between the PHY and MAC, allowing fixed 247 configuration links, PHYs, and Serdes links with MAC level 248 autonegotiation modes. 249 250menuconfig PHYLIB 251 tristate "PHY Device support and infrastructure" 252 depends on NETDEVICES 253 select MDIO_DEVICE 254 help 255 Ethernet controllers are usually attached to PHY 256 devices. This option provides infrastructure for 257 managing PHY devices. 258 259if PHYLIB 260 261config SWPHY 262 bool 263 264config LED_TRIGGER_PHY 265 bool "Support LED triggers for tracking link state" 266 depends on LEDS_TRIGGERS 267 ---help--- 268 Adds support for a set of LED trigger events per-PHY. Link 269 state change will trigger the events, for consumption by an 270 LED class driver. There are triggers for each link speed currently 271 supported by the PHY and also a one common "link" trigger as a 272 logical-or of all the link speed ones. 273 All these triggers are named according to the following pattern: 274 <mii bus id>:<phy>:<speed> 275 276 Where speed is in the form: 277 <Speed in megabits>Mbps OR <Speed in gigabits>Gbps OR link 278 for any speed known to the PHY. 279 280 281comment "MII PHY device drivers" 282 283config SFP 284 tristate "SFP cage support" 285 depends on I2C && PHYLINK 286 depends on HWMON || HWMON=n 287 select MDIO_I2C 288 289config ADIN_PHY 290 tristate "Analog Devices Industrial Ethernet PHYs" 291 help 292 Adds support for the Analog Devices Industrial Ethernet PHYs. 293 Currently supports the: 294 - ADIN1200 - Robust,Industrial, Low Power 10/100 Ethernet PHY 295 - ADIN1300 - Robust,Industrial, Low Latency 10/100/1000 Gigabit 296 Ethernet PHY 297 298config AMD_PHY 299 tristate "AMD PHYs" 300 ---help--- 301 Currently supports the am79c874 302 303config AQUANTIA_PHY 304 tristate "Aquantia PHYs" 305 ---help--- 306 Currently supports the Aquantia AQ1202, AQ2104, AQR105, AQR405 307 308config AX88796B_PHY 309 tristate "Asix PHYs" 310 help 311 Currently supports the Asix Electronics PHY found in the X-Surf 100 312 AX88796B package. 313 314config BCM63XX_PHY 315 tristate "Broadcom 63xx SOCs internal PHY" 316 depends on BCM63XX || COMPILE_TEST 317 select BCM_NET_PHYLIB 318 ---help--- 319 Currently supports the 6348 and 6358 PHYs. 320 321config BCM7XXX_PHY 322 tristate "Broadcom 7xxx SOCs internal PHYs" 323 select BCM_NET_PHYLIB 324 ---help--- 325 Currently supports the BCM7366, BCM7439, BCM7445, and 326 40nm and 65nm generation of BCM7xxx Set Top Box SoCs. 327 328config BCM87XX_PHY 329 tristate "Broadcom BCM8706 and BCM8727 PHYs" 330 help 331 Currently supports the BCM8706 and BCM8727 10G Ethernet PHYs. 332 333config BCM_CYGNUS_PHY 334 tristate "Broadcom Cygnus/Omega SoC internal PHY" 335 depends on ARCH_BCM_IPROC || COMPILE_TEST 336 depends on MDIO_BCM_IPROC 337 select BCM_NET_PHYLIB 338 ---help--- 339 This PHY driver is for the 1G internal PHYs of the Broadcom 340 Cygnus and Omega Family SoC. 341 342 Currently supports internal PHY's used in the BCM11300, 343 BCM11320, BCM11350, BCM11360, BCM58300, BCM58302, 344 BCM58303 & BCM58305 Broadcom Cygnus SoCs. 345 346config BCM_NET_PHYLIB 347 tristate 348 349config BROADCOM_PHY 350 tristate "Broadcom PHYs" 351 select BCM_NET_PHYLIB 352 ---help--- 353 Currently supports the BCM5411, BCM5421, BCM5461, BCM54616S, BCM5464, 354 BCM5481, BCM54810 and BCM5482 PHYs. 355 356config BCM54140_PHY 357 tristate "Broadcom BCM54140 PHY" 358 depends on PHYLIB 359 depends on HWMON || HWMON=n 360 select BCM_NET_PHYLIB 361 help 362 Support the Broadcom BCM54140 Quad SGMII/QSGMII PHY. 363 364 This driver also supports the hardware monitoring of this PHY and 365 exposes voltage and temperature sensors. 366 367config BCM84881_PHY 368 tristate "Broadcom BCM84881 PHY" 369 depends on PHYLIB 370 ---help--- 371 Support the Broadcom BCM84881 PHY. 372 373config CICADA_PHY 374 tristate "Cicada PHYs" 375 ---help--- 376 Currently supports the cis8204 377 378config CORTINA_PHY 379 tristate "Cortina EDC CDR 10G Ethernet PHY" 380 ---help--- 381 Currently supports the CS4340 phy. 382 383config DAVICOM_PHY 384 tristate "Davicom PHYs" 385 ---help--- 386 Currently supports dm9161e and dm9131 387 388config DP83822_PHY 389 tristate "Texas Instruments DP83822/825/826 PHYs" 390 ---help--- 391 Supports the DP83822, DP83825I, DP83825CM, DP83825CS, DP83825S, 392 DP83826C and DP83826NC PHYs. 393 394config DP83TC811_PHY 395 tristate "Texas Instruments DP83TC811 PHY" 396 ---help--- 397 Supports the DP83TC811 PHY. 398 399config DP83848_PHY 400 tristate "Texas Instruments DP83848 PHY" 401 ---help--- 402 Supports the DP83848 PHY. 403 404config DP83867_PHY 405 tristate "Texas Instruments DP83867 Gigabit PHY" 406 ---help--- 407 Currently supports the DP83867 PHY. 408 409config DP83869_PHY 410 tristate "Texas Instruments DP83869 Gigabit PHY" 411 ---help--- 412 Currently supports the DP83869 PHY. This PHY supports copper and 413 fiber connections. 414 415config FIXED_PHY 416 tristate "MDIO Bus/PHY emulation with fixed speed/link PHYs" 417 depends on PHYLIB 418 select SWPHY 419 ---help--- 420 Adds the platform "fixed" MDIO Bus to cover the boards that use 421 PHYs that are not connected to the real MDIO bus. 422 423 Currently tested with mpc866ads and mpc8349e-mitx. 424 425config ICPLUS_PHY 426 tristate "ICPlus PHYs" 427 ---help--- 428 Currently supports the IP175C and IP1001 PHYs. 429 430config INTEL_XWAY_PHY 431 tristate "Intel XWAY PHYs" 432 ---help--- 433 Supports the Intel XWAY (former Lantiq) 11G and 22E PHYs. 434 These PHYs are marked as standalone chips under the names 435 PEF 7061, PEF 7071 and PEF 7072 or integrated into the Intel 436 SoCs xRX200, xRX300, xRX330, xRX350 and xRX550. 437 438config LSI_ET1011C_PHY 439 tristate "LSI ET1011C PHY" 440 ---help--- 441 Supports the LSI ET1011C PHY. 442 443config LXT_PHY 444 tristate "Intel LXT PHYs" 445 ---help--- 446 Currently supports the lxt970, lxt971 447 448config MARVELL_PHY 449 tristate "Marvell PHYs" 450 ---help--- 451 Currently has a driver for the 88E1011S 452 453config MARVELL_10G_PHY 454 tristate "Marvell Alaska 10Gbit PHYs" 455 ---help--- 456 Support for the Marvell Alaska MV88X3310 and compatible PHYs. 457 458config MESON_GXL_PHY 459 tristate "Amlogic Meson GXL Internal PHY" 460 depends on ARCH_MESON || COMPILE_TEST 461 ---help--- 462 Currently has a driver for the Amlogic Meson GXL Internal PHY 463 464config MICREL_PHY 465 tristate "Micrel PHYs" 466 ---help--- 467 Supports the KSZ9021, VSC8201, KS8001 PHYs. 468 469config MICROCHIP_PHY 470 tristate "Microchip PHYs" 471 help 472 Supports the LAN88XX PHYs. 473 474config MICROCHIP_T1_PHY 475 tristate "Microchip T1 PHYs" 476 ---help--- 477 Supports the LAN87XX PHYs. 478 479config MICROSEMI_PHY 480 tristate "Microsemi PHYs" 481 depends on MACSEC || MACSEC=n 482 select CRYPTO_AES 483 select CRYPTO_ECB 484 ---help--- 485 Currently supports VSC8514, VSC8530, VSC8531, VSC8540 and VSC8541 PHYs 486 487config NATIONAL_PHY 488 tristate "National Semiconductor PHYs" 489 ---help--- 490 Currently supports the DP83865 PHY. 491 492config NXP_TJA11XX_PHY 493 tristate "NXP TJA11xx PHYs support" 494 depends on HWMON 495 ---help--- 496 Currently supports the NXP TJA1100 and TJA1101 PHY. 497 498config AT803X_PHY 499 tristate "Qualcomm Atheros AR803X PHYs" 500 depends on REGULATOR 501 help 502 Currently supports the AR8030, AR8031, AR8033 and AR8035 model 503 504config QSEMI_PHY 505 tristate "Quality Semiconductor PHYs" 506 ---help--- 507 Currently supports the qs6612 508 509config REALTEK_PHY 510 tristate "Realtek PHYs" 511 ---help--- 512 Supports the Realtek 821x PHY. 513 514config RENESAS_PHY 515 tristate "Driver for Renesas PHYs" 516 ---help--- 517 Supports the Renesas PHYs uPD60620 and uPD60620A. 518 519config ROCKCHIP_PHY 520 tristate "Driver for Rockchip Ethernet PHYs" 521 ---help--- 522 Currently supports the integrated Ethernet PHY. 523 524config SMSC_PHY 525 tristate "SMSC PHYs" 526 ---help--- 527 Currently supports the LAN83C185, LAN8187 and LAN8700 PHYs 528 529config STE10XP 530 tristate "STMicroelectronics STe10Xp PHYs" 531 ---help--- 532 This is the driver for the STe100p and STe101p PHYs. 533 534config TERANETICS_PHY 535 tristate "Teranetics PHYs" 536 ---help--- 537 Currently supports the Teranetics TN2020 538 539config VITESSE_PHY 540 tristate "Vitesse PHYs" 541 ---help--- 542 Currently supports the vsc8244 543 544config XILINX_GMII2RGMII 545 tristate "Xilinx GMII2RGMII converter driver" 546 ---help--- 547 This driver support xilinx GMII to RGMII IP core it provides 548 the Reduced Gigabit Media Independent Interface(RGMII) between 549 Ethernet physical media devices and the Gigabit Ethernet controller. 550 551endif # PHYLIB 552 553config MICREL_KS8995MA 554 tristate "Micrel KS8995MA 5-ports 10/100 managed Ethernet switch" 555 depends on SPI 556