| 1 | # SPDX-License-Identifier: GPL-2.0-only |
| 2 | # |
| 3 | # PHY Layer Configuration |
| 4 | # |
| 5 | |
| 6 | config PHYLINK |
| 7 | tristate |
| 8 | select PHYLIB |
| 9 | select SWPHY |
| 10 | help |
| 11 | PHYlink models the link between the PHY and MAC, allowing fixed |
| 12 | configuration links, PHYs, and Serdes links with MAC level |
| 13 | autonegotiation modes. |
| 14 | |
| 15 | menuconfig PHYLIB |
| 16 | tristate "PHY Device support and infrastructure" |
| 17 | help |
| 18 | Ethernet controllers are usually attached to PHY |
| 19 | devices. This option provides infrastructure for |
| 20 | managing PHY devices. |
| 21 | |
| 22 | if PHYLIB |
| 23 | |
| 24 | config SWPHY |
| 25 | bool |
| 26 | |
| 27 | config PHY_PACKAGE |
| 28 | tristate |
| 29 | |
| 30 | config LED_TRIGGER_PHY |
| 31 | bool "Support LED triggers for tracking link state" |
| 32 | depends on LEDS_TRIGGERS |
| 33 | help |
| 34 | Adds support for a set of LED trigger events per-PHY. Link |
| 35 | state change will trigger the events, for consumption by an |
| 36 | LED class driver. There are triggers for each link speed currently |
| 37 | supported by the PHY and also a one common "link" trigger as a |
| 38 | logical-or of all the link speed ones. |
| 39 | All these triggers are named according to the following pattern: |
| 40 | <mii bus id>:<phy>:<speed> |
| 41 | |
| 42 | Where speed is in the form: |
| 43 | <Speed in megabits>Mbps OR <Speed in gigabits>Gbps OR link |
| 44 | for any speed known to the PHY. |
| 45 | |
| 46 | config OPEN_ALLIANCE_HELPERS |
| 47 | bool |
| 48 | |
| 49 | config PHYLIB_LEDS |
| 50 | def_bool OF |
| 51 | depends on LEDS_CLASS=y || LEDS_CLASS=PHYLIB |
| 52 | help |
| 53 | When LED class support is enabled, phylib can automatically |
| 54 | probe LED setting from device tree. |
| 55 | |
| 56 | config FIXED_PHY |
| 57 | tristate "MDIO Bus/PHY emulation with fixed speed/link PHYs" |
| 58 | select SWPHY |
| 59 | help |
| 60 | Adds the platform "fixed" MDIO Bus to cover the boards that use |
| 61 | PHYs that are not connected to the real MDIO bus. |
| 62 | |
| 63 | Currently tested with mpc866ads and mpc8349e-mitx. |
| 64 | |
| 65 | config RUST_PHYLIB_ABSTRACTIONS |
| 66 | bool "Rust PHYLIB abstractions support" |
| 67 | depends on RUST |
| 68 | depends on PHYLIB=y |
| 69 | help |
| 70 | Adds support needed for PHY drivers written in Rust. It provides |
| 71 | a wrapper around the C phylib core. |
| 72 | |
| 73 | config SFP |
| 74 | tristate "SFP cage support" |
| 75 | depends on I2C && PHYLINK |
| 76 | depends on HWMON || HWMON=n |
| 77 | select MDIO_I2C |
| 78 | |
| 79 | comment "MII PHY device drivers" |
| 80 | |
| 81 | config AS21XXX_PHY |
| 82 | tristate "Aeonsemi AS21xxx PHYs" |
| 83 | help |
| 84 | Currently supports the Aeonsemi AS21xxx PHY. |
| 85 | |
| 86 | These are C45 PHYs 10G that require all a generic firmware. |
| 87 | |
| 88 | Supported PHYs AS21011JB1, AS21011PB1, AS21010JB1, AS21010PB1, |
| 89 | AS21511JB1, AS21511PB1, AS21510JB1, AS21510PB1, AS21210JB1, |
| 90 | AS21210PB1 that all register with the PHY ID 0x7500 0x7500 |
| 91 | before the firmware is loaded. |
| 92 | |
| 93 | config AIR_AN8801_PHY |
| 94 | tristate "Airoha AN8801 Gigabit PHY" |
| 95 | select AIR_NET_PHYLIB |
| 96 | help |
| 97 | Currently supports the Airoha AN8801R PHY. |
| 98 | |
| 99 | config AIR_EN8811H_PHY |
| 100 | tristate "Airoha EN8811H 2.5 Gigabit PHY" |
| 101 | select AIR_NET_PHYLIB |
| 102 | select PHY_COMMON_PROPS |
| 103 | help |
| 104 | Currently supports the Airoha EN8811H PHY. |
| 105 | |
| 106 | config AIR_NET_PHYLIB |
| 107 | tristate |
| 108 | help |
| 109 | Airoha Ethernet PHY common library |
| 110 | |
| 111 | config AMD_PHY |
| 112 | tristate "AMD and Altima PHYs" |
| 113 | help |
| 114 | Currently supports the AMD am79c874 and Altima AC101L. |
| 115 | |
| 116 | config MESON_GXL_PHY |
| 117 | tristate "Amlogic Meson GXL Internal PHY" |
| 118 | depends on ARCH_MESON || COMPILE_TEST |
| 119 | select SMSC_PHY |
| 120 | help |
| 121 | Currently has a driver for the Amlogic Meson GXL Internal PHY |
| 122 | |
| 123 | config ADIN_PHY |
| 124 | tristate "Analog Devices Industrial Ethernet PHYs" |
| 125 | help |
| 126 | Adds support for the Analog Devices Industrial Ethernet PHYs. |
| 127 | Currently supports the: |
| 128 | - ADIN1200 - Robust,Industrial, Low Power 10/100 Ethernet PHY |
| 129 | - ADIN1300 - Robust,Industrial, Low Latency 10/100/1000 Gigabit |
| 130 | Ethernet PHY |
| 131 | |
| 132 | config ADIN1100_PHY |
| 133 | tristate "Analog Devices Industrial Ethernet T1L PHYs" |
| 134 | help |
| 135 | Adds support for the Analog Devices Industrial T1L Ethernet PHYs. |
| 136 | Currently supports the: |
| 137 | - ADIN1100 - Robust,Industrial, Low Power 10BASE-T1L Ethernet PHY |
| 138 | |
| 139 | config ADIN1140_PHY |
| 140 | tristate "Analog Devices ADIN1140 10BASE-T1S PHY" |
| 141 | help |
| 142 | Adds support for the Analog Devices, Inc. ADIN1140's internal |
| 143 | 10BASE-T1S PHY. |
| 144 | |
| 145 | config AMCC_QT2025_PHY |
| 146 | tristate "AMCC QT2025 PHY" |
| 147 | depends on RUST_PHYLIB_ABSTRACTIONS |
| 148 | depends on RUST_FW_LOADER_ABSTRACTIONS |
| 149 | help |
| 150 | Adds support for the Applied Micro Circuits Corporation QT2025 PHY. |
| 151 | |
| 152 | source "drivers/net/phy/aquantia/Kconfig" |
| 153 | |
| 154 | config AX88796B_PHY |
| 155 | tristate "Asix PHYs" |
| 156 | help |
| 157 | Currently supports the Asix Electronics PHY found in the X-Surf 100 |
| 158 | AX88796B package. |
| 159 | |
| 160 | config AX88796B_RUST_PHY |
| 161 | bool "Rust reference driver for Asix PHYs" |
| 162 | depends on RUST_PHYLIB_ABSTRACTIONS && AX88796B_PHY |
| 163 | help |
| 164 | Uses the Rust reference driver for Asix PHYs (ax88796b_rust.ko). |
| 165 | The features are equivalent. It supports the Asix Electronics PHY |
| 166 | found in the X-Surf 100 AX88796B package. |
| 167 | |
| 168 | config BROADCOM_PHY |
| 169 | tristate "Broadcom 54XX PHYs" |
| 170 | select BCM_NET_PHYLIB |
| 171 | select BCM_NET_PHYPTP if NETWORK_PHY_TIMESTAMPING |
| 172 | depends on PTP_1588_CLOCK_OPTIONAL |
| 173 | help |
| 174 | Currently supports the BCM5411, BCM5421, BCM5461, BCM54616S, BCM5464, |
| 175 | BCM5481, BCM54810 and BCM5482 PHYs. |
| 176 | |
| 177 | config BCM54140_PHY |
| 178 | tristate "Broadcom BCM54140 PHY" |
| 179 | depends on HWMON || HWMON=n |
| 180 | select BCM_NET_PHYLIB |
| 181 | select PHY_PACKAGE |
| 182 | help |
| 183 | Support the Broadcom BCM54140 Quad SGMII/QSGMII PHY. |
| 184 | |
| 185 | This driver also supports the hardware monitoring of this PHY and |
| 186 | exposes voltage and temperature sensors. |
| 187 | |
| 188 | config BCM63XX_PHY |
| 189 | tristate "Broadcom 63xx SOCs internal PHY" |
| 190 | depends on BCM63XX || COMPILE_TEST |
| 191 | select BCM_NET_PHYLIB |
| 192 | help |
| 193 | Currently supports the 6348 and 6358 PHYs. |
| 194 | |
| 195 | config BCM7XXX_PHY |
| 196 | tristate "Broadcom 7xxx SOCs internal PHYs" |
| 197 | select BCM_NET_PHYLIB |
| 198 | help |
| 199 | Currently supports the BCM7366, BCM7439, BCM7445, and |
| 200 | 40nm and 65nm generation of BCM7xxx Set Top Box SoCs. |
| 201 | |
| 202 | config BCM84881_PHY |
| 203 | tristate "Broadcom BCM84881 PHY" |
| 204 | help |
| 205 | Support the Broadcom BCM84881 PHY. |
| 206 | |
| 207 | config BCM87XX_PHY |
| 208 | tristate "Broadcom BCM8706 and BCM8727 PHYs" |
| 209 | help |
| 210 | Currently supports the BCM8706 and BCM8727 10G Ethernet PHYs. |
| 211 | |
| 212 | config BCM_CYGNUS_PHY |
| 213 | tristate "Broadcom Cygnus/Omega SoC internal PHY" |
| 214 | depends on ARCH_BCM_IPROC || COMPILE_TEST |
| 215 | depends on MDIO_BCM_IPROC |
| 216 | select BCM_NET_PHYLIB |
| 217 | help |
| 218 | This PHY driver is for the 1G internal PHYs of the Broadcom |
| 219 | Cygnus and Omega Family SoC. |
| 220 | |
| 221 | Currently supports internal PHY's used in the BCM11300, |
| 222 | BCM11320, BCM11350, BCM11360, BCM58300, BCM58302, |
| 223 | BCM58303 & BCM58305 Broadcom Cygnus SoCs. |
| 224 | |
| 225 | config BCM_NET_PHYLIB |
| 226 | tristate |
| 227 | |
| 228 | config BCM_NET_PHYPTP |
| 229 | tristate |
| 230 | |
| 231 | config CICADA_PHY |
| 232 | tristate "Cicada PHYs" |
| 233 | help |
| 234 | Currently supports the cis8204 |
| 235 | |
| 236 | config CORTINA_PHY |
| 237 | tristate "Cortina EDC CDR 10G Ethernet PHY" |
| 238 | help |
| 239 | Currently supports the CS4340 phy. |
| 240 | |
| 241 | config DAP8211R_PHY |
| 242 | tristate "DAPU Telecom DAP8211R(I) Gigabit Ethernet PHY" |
| 243 | depends on OF |
| 244 | help |
| 245 | Support for the DAPU Telecom DAP8211R(I) Gigabit Ethernet PHY. |
| 246 | This PHY is designed for enterprise and industrial networking |
| 247 | applications, supporting 10/100/1000 Mbps operation. Supports |
| 248 | RGMII interface with configurable TX/RX clock delays. |
| 249 | |
| 250 | config DAVICOM_PHY |
| 251 | tristate "Davicom PHYs" |
| 252 | help |
| 253 | Currently supports dm9161e and dm9131 |
| 254 | |
| 255 | config ICPLUS_PHY |
| 256 | tristate "ICPlus PHYs" |
| 257 | help |
| 258 | Currently supports the IP175C and IP1001 PHYs. |
| 259 | |
| 260 | config LXT_PHY |
| 261 | tristate "Intel LXT PHYs" |
| 262 | help |
| 263 | Currently supports the lxt970, lxt971 |
| 264 | |
| 265 | config INTEL_XWAY_PHY |
| 266 | tristate "Intel XWAY PHYs" |
| 267 | help |
| 268 | Supports the Intel XWAY (former Lantiq) 11G and 22F PHYs. |
| 269 | These PHYs are marked as standalone chips under the names |
| 270 | PEF 7061, PEF 7071 and PEF 7072 or integrated into the Intel |
| 271 | SoCs xRX200, xRX300, xRX330, xRX350 and xRX550. |
| 272 | |
| 273 | config LSI_ET1011C_PHY |
| 274 | tristate "LSI ET1011C PHY" |
| 275 | help |
| 276 | Supports the LSI ET1011C PHY. |
| 277 | |
| 278 | config MARVELL_PHY |
| 279 | tristate "Marvell Alaska PHYs" |
| 280 | help |
| 281 | Currently has a driver for the 88E1XXX |
| 282 | |
| 283 | config MARVELL_10G_PHY |
| 284 | tristate "Marvell Alaska 10Gbit PHYs" |
| 285 | help |
| 286 | Support for the Marvell Alaska MV88X3310 and compatible PHYs. |
| 287 | |
| 288 | config MARVELL_88Q2XXX_PHY |
| 289 | tristate "Marvell 88Q2XXX PHY" |
| 290 | depends on HWMON || HWMON=n |
| 291 | help |
| 292 | Support for the Marvell 88Q2XXX 100/1000BASE-T1 Automotive Ethernet |
| 293 | PHYs. |
| 294 | |
| 295 | config MARVELL_88X2222_PHY |
| 296 | tristate "Marvell 88X2222 PHY" |
| 297 | help |
| 298 | Support for the Marvell 88X2222 Dual-port Multi-speed Ethernet |
| 299 | Transceiver. |
| 300 | |
| 301 | config MAXLINEAR_GPHY |
| 302 | tristate "Maxlinear Ethernet PHYs" |
| 303 | select POLYNOMIAL if HWMON |
| 304 | depends on HWMON || HWMON=n |
| 305 | help |
| 306 | Support for the Maxlinear GPY115, GPY211, GPY212, GPY215, |
| 307 | GPY241, GPY245 PHYs. |
| 308 | |
| 309 | config MAXLINEAR_86110_PHY |
| 310 | tristate "MaxLinear MXL86110 PHY support" |
| 311 | help |
| 312 | Support for the MaxLinear MXL86110 Gigabit Ethernet |
| 313 | Physical Layer transceiver. |
| 314 | The MXL86110 is commonly used in networking equipment such as |
| 315 | routers, switches, and embedded systems, providing the |
| 316 | physical interface for 10/100/1000 Mbps Ethernet connections |
| 317 | over copper media. |
| 318 | If you are using a board with the MXL86110 PHY connected to your |
| 319 | Ethernet MAC, you should enable this option. |
| 320 | |
| 321 | source "drivers/net/phy/mediatek/Kconfig" |
| 322 | |
| 323 | config MICREL_PHY |
| 324 | tristate "Micrel PHYs" |
| 325 | depends on PTP_1588_CLOCK_OPTIONAL |
| 326 | select PHY_PACKAGE |
| 327 | help |
| 328 | Supports the KSZ8xxx, KSZ9xxx, and LAN88xx families of Micrel/Microchip PHYs. |
| 329 | |
| 330 | config MICROCHIP_T1S_PHY |
| 331 | tristate "Microchip 10BASE-T1S Ethernet PHYs" |
| 332 | help |
| 333 | Currently supports the LAN8670/1/2 Rev.B1/C1/C2/D0 and |
| 334 | LAN8650/1 Rev.B0/B1 Internal PHYs. |
| 335 | |
| 336 | config MICROCHIP_PHY |
| 337 | tristate "Microchip PHYs" |
| 338 | help |
| 339 | Supports the LAN88XX PHYs. |
| 340 | |
| 341 | config MICROCHIP_T1_PHY |
| 342 | tristate "Microchip T1 PHYs" |
| 343 | select MICROCHIP_PHY_RDS_PTP if NETWORK_PHY_TIMESTAMPING |
| 344 | depends on PTP_1588_CLOCK_OPTIONAL |
| 345 | help |
| 346 | Supports the LAN8XXX PHYs. |
| 347 | |
| 348 | config MICROCHIP_PHY_RDS_PTP |
| 349 | tristate |
| 350 | help |
| 351 | Currently supports LAN887X T1 PHY |
| 352 | |
| 353 | config MICROSEMI_PHY |
| 354 | tristate "Microsemi PHYs" |
| 355 | depends on MACSEC || MACSEC=n |
| 356 | depends on PTP_1588_CLOCK_OPTIONAL || !NETWORK_PHY_TIMESTAMPING |
| 357 | select CRYPTO_LIB_AES if MACSEC |
| 358 | select PHY_PACKAGE |
| 359 | help |
| 360 | Currently supports VSC8514, VSC8530, VSC8531, VSC8540 and VSC8541 PHYs |
| 361 | |
| 362 | config MOTORCOMM_PHY |
| 363 | tristate "Motorcomm PHYs" |
| 364 | help |
| 365 | Enables support for Motorcomm network PHYs. |
| 366 | Currently supports YT85xx Gigabit Ethernet PHYs. |
| 367 | |
| 368 | config NATIONAL_PHY |
| 369 | tristate "National Semiconductor PHYs" |
| 370 | help |
| 371 | Currently supports the DP83865 PHY. |
| 372 | |
| 373 | config NXP_CBTX_PHY |
| 374 | tristate "NXP 100BASE-TX PHYs" |
| 375 | help |
| 376 | Support the 100BASE-TX PHY integrated on the SJA1110 automotive |
| 377 | switch family. |
| 378 | |
| 379 | config NXP_C45_TJA11XX_PHY |
| 380 | tristate "NXP C45 TJA11XX PHYs" |
| 381 | depends on PTP_1588_CLOCK_OPTIONAL |
| 382 | depends on MACSEC || !MACSEC |
| 383 | help |
| 384 | Enable support for NXP C45 TJA11XX PHYs. |
| 385 | Currently supports the TJA1103, TJA1104, TJA1120 and TJA1121 PHYs. |
| 386 | |
| 387 | config NXP_TJA11XX_PHY |
| 388 | tristate "NXP TJA11xx PHYs support" |
| 389 | depends on HWMON |
| 390 | help |
| 391 | Currently supports the NXP TJA1100, TJA1101 and TJA1102 PHYs. |
| 392 | |
| 393 | config NCN26000_PHY |
| 394 | tristate "Onsemi 10BASE-T1S Ethernet PHY" |
| 395 | help |
| 396 | Adds support for the onsemi 10BASE-T1S Ethernet PHY. |
| 397 | Currently supports the NCN26000 10BASE-T1S Industrial PHY |
| 398 | with MII interface. |
| 399 | |
| 400 | source "drivers/net/phy/qcom/Kconfig" |
| 401 | |
| 402 | config QSEMI_PHY |
| 403 | tristate "Quality Semiconductor PHYs" |
| 404 | help |
| 405 | Currently supports the qs6612 |
| 406 | |
| 407 | source "drivers/net/phy/realtek/Kconfig" |
| 408 | |
| 409 | config RENESAS_PHY |
| 410 | tristate "Renesas PHYs" |
| 411 | help |
| 412 | Supports the Renesas PHYs uPD60620 and uPD60620A. |
| 413 | |
| 414 | config ROCKCHIP_PHY |
| 415 | tristate "Rockchip Ethernet PHYs" |
| 416 | help |
| 417 | Currently supports the integrated Ethernet PHY. |
| 418 | |
| 419 | config SMSC_PHY |
| 420 | tristate "SMSC PHYs" |
| 421 | select CRC16 |
| 422 | help |
| 423 | Currently supports the LAN83C185, LAN8187 and LAN8700 PHYs |
| 424 | |
| 425 | config STE10XP |
| 426 | tristate "STMicroelectronics STe10Xp PHYs" |
| 427 | help |
| 428 | This is the driver for the STe100p and STe101p PHYs. |
| 429 | |
| 430 | config TERANETICS_PHY |
| 431 | tristate "Teranetics PHYs" |
| 432 | help |
| 433 | Currently supports the Teranetics TN2020 |
| 434 | |
| 435 | config DP83822_PHY |
| 436 | tristate "Texas Instruments DP83822/825/826 PHYs" |
| 437 | help |
| 438 | Supports the DP83822, DP83825I, DP83825CM, DP83825CS, DP83825S, |
| 439 | DP83826C and DP83826NC PHYs. |
| 440 | |
| 441 | config DP83TC811_PHY |
| 442 | tristate "Texas Instruments DP83TC811 PHY" |
| 443 | help |
| 444 | Supports the DP83TC811 PHY. |
| 445 | |
| 446 | config DP83848_PHY |
| 447 | tristate "Texas Instruments DP83848 PHY" |
| 448 | help |
| 449 | Supports the DP83848 PHY. |
| 450 | |
| 451 | config DP83867_PHY |
| 452 | tristate "Texas Instruments DP83867 Gigabit PHY" |
| 453 | help |
| 454 | Currently supports the DP83867 PHY. |
| 455 | |
| 456 | config DP83869_PHY |
| 457 | tristate "Texas Instruments DP83869 Gigabit PHY" |
| 458 | help |
| 459 | Currently supports the DP83869 PHY. This PHY supports copper and |
| 460 | fiber connections. |
| 461 | |
| 462 | config DP83TD510_PHY |
| 463 | tristate "Texas Instruments DP83TD510 Ethernet 10Base-T1L PHY" |
| 464 | help |
| 465 | Support for the DP83TD510 Ethernet 10Base-T1L PHY. This PHY supports |
| 466 | a 10M single pair Ethernet connection for up to 1000 meter cable. |
| 467 | |
| 468 | config DP83TG720_PHY |
| 469 | tristate "Texas Instruments DP83TG720 Ethernet 1000Base-T1 PHY" |
| 470 | select OPEN_ALLIANCE_HELPERS |
| 471 | help |
| 472 | The DP83TG720S-Q1 is an automotive Ethernet physical layer |
| 473 | transceiver compliant with IEEE 802.3bp and Open Alliance |
| 474 | standards. It supports key functions necessary for |
| 475 | transmitting and receiving data over both unshielded and |
| 476 | shielded single twisted-pair cables. This device offers |
| 477 | flexible xMII interface options, including support for both |
| 478 | RGMII and SGMII MAC interfaces. It's suitable for applications |
| 479 | requiring high-speed data transmission in automotive |
| 480 | networking environments. |
| 481 | |
| 482 | config VITESSE_PHY |
| 483 | tristate "Vitesse PHYs" |
| 484 | help |
| 485 | Currently supports the vsc8244 |
| 486 | |
| 487 | config XILINX_GMII2RGMII |
| 488 | tristate "Xilinx GMII2RGMII converter driver" |
| 489 | help |
| 490 | This driver support xilinx GMII to RGMII IP core it provides |
| 491 | the Reduced Gigabit Media Independent Interface(RGMII) between |
| 492 | Ethernet physical media devices and the Gigabit Ethernet controller. |
| 493 | |
| 494 | endif # PHYLIB |