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_IPQ8064 161 tristate "Qualcomm IPQ8064 MDIO interface support" 162 depends on HAS_IOMEM && OF_MDIO 163 depends on MFD_SYSCON 164 help 165 This driver supports the MDIO interface found in the network 166 interface units of the IPQ8064 SoC 167 168config MDIO_MOXART 169 tristate "MOXA ART MDIO interface support" 170 depends on ARCH_MOXART || COMPILE_TEST 171 help 172 This driver supports the MDIO interface found in the network 173 interface units of the MOXA ART SoC 174 175config MDIO_MSCC_MIIM 176 tristate "Microsemi MIIM interface support" 177 depends on HAS_IOMEM 178 help 179 This driver supports the MIIM (MDIO) interface found in the network 180 switches of the Microsemi SoCs 181 182config MDIO_OCTEON 183 tristate "Octeon and some ThunderX SOCs MDIO buses" 184 depends on (64BIT && OF_MDIO) || COMPILE_TEST 185 depends on HAS_IOMEM 186 select MDIO_CAVIUM 187 help 188 This module provides a driver for the Octeon and ThunderX MDIO 189 buses. It is required by the Octeon and ThunderX ethernet device 190 drivers on some systems. 191 192config MDIO_SUN4I 193 tristate "Allwinner sun4i MDIO interface support" 194 depends on ARCH_SUNXI || COMPILE_TEST 195 help 196 This driver supports the MDIO interface found in the network 197 interface units of the Allwinner SoC that have an EMAC (A10, 198 A12, A10s, etc.) 199 200config MDIO_THUNDER 201 tristate "ThunderX SOCs MDIO buses" 202 depends on 64BIT 203 depends on PCI 204 select MDIO_CAVIUM 205 help 206 This driver supports the MDIO interfaces found on Cavium 207 ThunderX SoCs when the MDIO bus device appears as a PCI 208 device. 209 210config MDIO_XGENE 211 tristate "APM X-Gene SoC MDIO bus controller" 212 depends on ARCH_XGENE || COMPILE_TEST 213 help 214 This module provides a driver for the MDIO busses found in the 215 APM X-Gene SoC's. 216 217config MDIO_XPCS 218 tristate "Synopsys DesignWare XPCS controller" 219 help 220 This module provides helper functions for Synopsys DesignWare XPCS 221 controllers. 222 223endif 224endif 225 226config PHYLINK 227 tristate 228 depends on NETDEVICES 229 select PHYLIB 230 select SWPHY 231 help 232 PHYlink models the link between the PHY and MAC, allowing fixed 233 configuration links, PHYs, and Serdes links with MAC level 234 autonegotiation modes. 235 236menuconfig PHYLIB 237 tristate "PHY Device support and infrastructure" 238 depends on NETDEVICES 239 select MDIO_DEVICE 240 help 241 Ethernet controllers are usually attached to PHY 242 devices. This option provides infrastructure for 243 managing PHY devices. 244 245if PHYLIB 246 247config SWPHY 248 bool 249 250config LED_TRIGGER_PHY 251 bool "Support LED triggers for tracking link state" 252 depends on LEDS_TRIGGERS 253 ---help--- 254 Adds support for a set of LED trigger events per-PHY. Link 255 state change will trigger the events, for consumption by an 256 LED class driver. There are triggers for each link speed currently 257 supported by the PHY and also a one common "link" trigger as a 258 logical-or of all the link speed ones. 259 All these triggers are named according to the following pattern: 260 <mii bus id>:<phy>:<speed> 261 262 Where speed is in the form: 263 <Speed in megabits>Mbps OR <Speed in gigabits>Gbps OR link 264 for any speed known to the PHY. 265 266 267comment "MII PHY device drivers" 268 269config SFP 270 tristate "SFP cage support" 271 depends on I2C && PHYLINK 272 depends on HWMON || HWMON=n 273 select MDIO_I2C 274 275config ADIN_PHY 276 tristate "Analog Devices Industrial Ethernet PHYs" 277 help 278 Adds support for the Analog Devices Industrial Ethernet PHYs. 279 Currently supports the: 280 - ADIN1200 - Robust,Industrial, Low Power 10/100 Ethernet PHY 281 - ADIN1300 - Robust,Industrial, Low Latency 10/100/1000 Gigabit 282 Ethernet PHY 283 284config AMD_PHY 285 tristate "AMD PHYs" 286 ---help--- 287 Currently supports the am79c874 288 289config AQUANTIA_PHY 290 tristate "Aquantia PHYs" 291 ---help--- 292 Currently supports the Aquantia AQ1202, AQ2104, AQR105, AQR405 293 294config AX88796B_PHY 295 tristate "Asix PHYs" 296 help 297 Currently supports the Asix Electronics PHY found in the X-Surf 100 298 AX88796B package. 299 300config BCM63XX_PHY 301 tristate "Broadcom 63xx SOCs internal PHY" 302 depends on BCM63XX || COMPILE_TEST 303 select BCM_NET_PHYLIB 304 ---help--- 305 Currently supports the 6348 and 6358 PHYs. 306 307config BCM7XXX_PHY 308 tristate "Broadcom 7xxx SOCs internal PHYs" 309 select BCM_NET_PHYLIB 310 ---help--- 311 Currently supports the BCM7366, BCM7439, BCM7445, and 312 40nm and 65nm generation of BCM7xxx Set Top Box SoCs. 313 314config BCM87XX_PHY 315 tristate "Broadcom BCM8706 and BCM8727 PHYs" 316 help 317 Currently supports the BCM8706 and BCM8727 10G Ethernet PHYs. 318 319config BCM_CYGNUS_PHY 320 tristate "Broadcom Cygnus/Omega SoC internal PHY" 321 depends on ARCH_BCM_IPROC || COMPILE_TEST 322 depends on MDIO_BCM_IPROC 323 select BCM_NET_PHYLIB 324 ---help--- 325 This PHY driver is for the 1G internal PHYs of the Broadcom 326 Cygnus and Omega Family SoC. 327 328 Currently supports internal PHY's used in the BCM11300, 329 BCM11320, BCM11350, BCM11360, BCM58300, BCM58302, 330 BCM58303 & BCM58305 Broadcom Cygnus SoCs. 331 332config BCM_NET_PHYLIB 333 tristate 334 335config BROADCOM_PHY 336 tristate "Broadcom PHYs" 337 select BCM_NET_PHYLIB 338 ---help--- 339 Currently supports the BCM5411, BCM5421, BCM5461, BCM54616S, BCM5464, 340 BCM5481, BCM54810 and BCM5482 PHYs. 341 342config BCM84881_PHY 343 tristate "Broadcom BCM84881 PHY" 344 depends on PHYLIB 345 ---help--- 346 Support the Broadcom BCM84881 PHY. 347 348config CICADA_PHY 349 tristate "Cicada PHYs" 350 ---help--- 351 Currently supports the cis8204 352 353config CORTINA_PHY 354 tristate "Cortina EDC CDR 10G Ethernet PHY" 355 ---help--- 356 Currently supports the CS4340 phy. 357 358config DAVICOM_PHY 359 tristate "Davicom PHYs" 360 ---help--- 361 Currently supports dm9161e and dm9131 362 363config DP83822_PHY 364 tristate "Texas Instruments DP83822/825/826 PHYs" 365 ---help--- 366 Supports the DP83822, DP83825I, DP83825CM, DP83825CS, DP83825S, 367 DP83826C and DP83826NC PHYs. 368 369config DP83TC811_PHY 370 tristate "Texas Instruments DP83TC811 PHY" 371 ---help--- 372 Supports the DP83TC811 PHY. 373 374config DP83848_PHY 375 tristate "Texas Instruments DP83848 PHY" 376 ---help--- 377 Supports the DP83848 PHY. 378 379config DP83867_PHY 380 tristate "Texas Instruments DP83867 Gigabit PHY" 381 ---help--- 382 Currently supports the DP83867 PHY. 383 384config DP83869_PHY 385 tristate "Texas Instruments DP83869 Gigabit PHY" 386 ---help--- 387 Currently supports the DP83869 PHY. This PHY supports copper and 388 fiber connections. 389 390config FIXED_PHY 391 tristate "MDIO Bus/PHY emulation with fixed speed/link PHYs" 392 depends on PHYLIB 393 select SWPHY 394 ---help--- 395 Adds the platform "fixed" MDIO Bus to cover the boards that use 396 PHYs that are not connected to the real MDIO bus. 397 398 Currently tested with mpc866ads and mpc8349e-mitx. 399 400config ICPLUS_PHY 401 tristate "ICPlus PHYs" 402 ---help--- 403 Currently supports the IP175C and IP1001 PHYs. 404 405config INTEL_XWAY_PHY 406 tristate "Intel XWAY PHYs" 407 ---help--- 408 Supports the Intel XWAY (former Lantiq) 11G and 22E PHYs. 409 These PHYs are marked as standalone chips under the names 410 PEF 7061, PEF 7071 and PEF 7072 or integrated into the Intel 411 SoCs xRX200, xRX300, xRX330, xRX350 and xRX550. 412 413config LSI_ET1011C_PHY 414 tristate "LSI ET1011C PHY" 415 ---help--- 416 Supports the LSI ET1011C PHY. 417 418config LXT_PHY 419 tristate "Intel LXT PHYs" 420 ---help--- 421 Currently supports the lxt970, lxt971 422 423config MARVELL_PHY 424 tristate "Marvell PHYs" 425 ---help--- 426 Currently has a driver for the 88E1011S 427 428config MARVELL_10G_PHY 429 tristate "Marvell Alaska 10Gbit PHYs" 430 ---help--- 431 Support for the Marvell Alaska MV88X3310 and compatible PHYs. 432 433config MESON_GXL_PHY 434 tristate "Amlogic Meson GXL Internal PHY" 435 depends on ARCH_MESON || COMPILE_TEST 436 ---help--- 437 Currently has a driver for the Amlogic Meson GXL Internal PHY 438 439config MICREL_PHY 440 tristate "Micrel PHYs" 441 ---help--- 442 Supports the KSZ9021, VSC8201, KS8001 PHYs. 443 444config MICROCHIP_PHY 445 tristate "Microchip PHYs" 446 help 447 Supports the LAN88XX PHYs. 448 449config MICROCHIP_T1_PHY 450 tristate "Microchip T1 PHYs" 451 ---help--- 452 Supports the LAN87XX PHYs. 453 454config MICROSEMI_PHY 455 tristate "Microsemi PHYs" 456 depends on MACSEC || MACSEC=n 457 select CRYPTO_AES 458 select CRYPTO_ECB 459 ---help--- 460 Currently supports VSC8514, VSC8530, VSC8531, VSC8540 and VSC8541 PHYs 461 462config NATIONAL_PHY 463 tristate "National Semiconductor PHYs" 464 ---help--- 465 Currently supports the DP83865 PHY. 466 467config NXP_TJA11XX_PHY 468 tristate "NXP TJA11xx PHYs support" 469 depends on HWMON 470 ---help--- 471 Currently supports the NXP TJA1100 and TJA1101 PHY. 472 473config AT803X_PHY 474 tristate "Qualcomm Atheros AR803X PHYs" 475 depends on REGULATOR 476 help 477 Currently supports the AR8030, AR8031, AR8033 and AR8035 model 478 479config QSEMI_PHY 480 tristate "Quality Semiconductor PHYs" 481 ---help--- 482 Currently supports the qs6612 483 484config REALTEK_PHY 485 tristate "Realtek PHYs" 486 ---help--- 487 Supports the Realtek 821x PHY. 488 489config RENESAS_PHY 490 tristate "Driver for Renesas PHYs" 491 ---help--- 492 Supports the Renesas PHYs uPD60620 and uPD60620A. 493 494config ROCKCHIP_PHY 495 tristate "Driver for Rockchip Ethernet PHYs" 496 ---help--- 497 Currently supports the integrated Ethernet PHY. 498 499config SMSC_PHY 500 tristate "SMSC PHYs" 501 ---help--- 502 Currently supports the LAN83C185, LAN8187 and LAN8700 PHYs 503 504config STE10XP 505 tristate "STMicroelectronics STe10Xp PHYs" 506 ---help--- 507 This is the driver for the STe100p and STe101p PHYs. 508 509config TERANETICS_PHY 510 tristate "Teranetics PHYs" 511 ---help--- 512 Currently supports the Teranetics TN2020 513 514config VITESSE_PHY 515 tristate "Vitesse PHYs" 516 ---help--- 517 Currently supports the vsc8244 518 519config XILINX_GMII2RGMII 520 tristate "Xilinx GMII2RGMII converter driver" 521 ---help--- 522 This driver support xilinx GMII to RGMII IP core it provides 523 the Reduced Gigabit Media Independent Interface(RGMII) between 524 Ethernet physical media devices and the Gigabit Ethernet controller. 525 526endif # PHYLIB 527 528config MICREL_KS8995MA 529 tristate "Micrel KS8995MA 5-ports 10/100 managed Ethernet switch" 530 depends on SPI 531