1 # SPDX-License-Identifier: GPL-2.0 2 %YAML 1.2 3 --- 4 $id: http://devicetree.org/schemas/net/snps,dw 5 $schema: http://devicetree.org/meta-schemas/co 6 7 title: Synopsys DesignWare MAC 8 9 maintainers: 10 - Alexandre Torgue <alexandre.torgue@foss.st. 11 - Giuseppe Cavallaro <peppe.cavallaro@st.com> 12 - Jose Abreu <joabreu@synopsys.com> 13 14 # Select every compatible, including the depre 15 # will be able to report a warning when we hav 16 # we will validate the node thanks to the sele 17 # as a valid value in the compatible property 18 select: 19 properties: 20 compatible: 21 contains: 22 enum: 23 - snps,dwmac 24 - snps,dwmac-3.40a 25 - snps,dwmac-3.50a 26 - snps,dwmac-3.610 27 - snps,dwmac-3.70a 28 - snps,dwmac-3.710 29 - snps,dwmac-4.00 30 - snps,dwmac-4.10a 31 - snps,dwmac-4.20a 32 - snps,dwmac-5.10a 33 - snps,dwmac-5.20 34 - snps,dwxgmac 35 - snps,dwxgmac-2.10 36 37 # Deprecated 38 - st,spear600-gmac 39 40 required: 41 - compatible 42 43 properties: 44 45 # We need to include all the compatibles fro 46 # include that schemas, otherwise compatible 47 # those. 48 compatible: 49 contains: 50 enum: 51 - allwinner,sun7i-a20-gmac 52 - allwinner,sun8i-a83t-emac 53 - allwinner,sun8i-h3-emac 54 - allwinner,sun8i-r40-gmac 55 - allwinner,sun8i-v3s-emac 56 - allwinner,sun50i-a64-emac 57 - amlogic,meson6-dwmac 58 - amlogic,meson8b-dwmac 59 - amlogic,meson8m2-dwmac 60 - amlogic,meson-gxbb-dwmac 61 - amlogic,meson-axg-dwmac 62 - ingenic,jz4775-mac 63 - ingenic,x1000-mac 64 - ingenic,x1600-mac 65 - ingenic,x1830-mac 66 - ingenic,x2000-mac 67 - loongson,ls2k-dwmac 68 - loongson,ls7a-dwmac 69 - qcom,qcs404-ethqos 70 - qcom,sa8775p-ethqos 71 - qcom,sc8280xp-ethqos 72 - qcom,sm8150-ethqos 73 - renesas,r9a06g032-gmac 74 - renesas,rzn1-gmac 75 - rockchip,px30-gmac 76 - rockchip,rk3128-gmac 77 - rockchip,rk3228-gmac 78 - rockchip,rk3288-gmac 79 - rockchip,rk3308-gmac 80 - rockchip,rk3328-gmac 81 - rockchip,rk3366-gmac 82 - rockchip,rk3368-gmac 83 - rockchip,rk3576-gmac 84 - rockchip,rk3588-gmac 85 - rockchip,rk3399-gmac 86 - rockchip,rv1108-gmac 87 - snps,dwmac 88 - snps,dwmac-3.40a 89 - snps,dwmac-3.50a 90 - snps,dwmac-3.610 91 - snps,dwmac-3.70a 92 - snps,dwmac-3.710 93 - snps,dwmac-4.00 94 - snps,dwmac-4.10a 95 - snps,dwmac-4.20a 96 - snps,dwmac-5.10a 97 - snps,dwmac-5.20 98 - snps,dwxgmac 99 - snps,dwxgmac-2.10 100 - starfive,jh7100-dwmac 101 - starfive,jh7110-dwmac 102 103 reg: 104 minItems: 1 105 maxItems: 2 106 107 interrupts: 108 minItems: 1 109 items: 110 - description: Combined signal for vario 111 - description: The interrupt to manage t 112 - description: The interrupt that occurs 113 - description: The interrupt that occurs 114 115 interrupt-names: 116 minItems: 1 117 items: 118 - const: macirq 119 - enum: [eth_wake_irq, eth_lpi, sfty] 120 - enum: [eth_wake_irq, eth_lpi, sfty] 121 - enum: [eth_wake_irq, eth_lpi, sfty] 122 123 clocks: 124 minItems: 1 125 maxItems: 8 126 additionalItems: true 127 items: 128 - description: GMAC main clock 129 - description: Peripheral registers inte 130 - description: 131 PTP reference clock. This clock is u 132 Timestamp Addend Register. If not pa 133 clock will be used and this is fine 134 135 clock-names: 136 minItems: 1 137 maxItems: 8 138 additionalItems: true 139 contains: 140 enum: 141 - stmmaceth 142 - pclk 143 - ptp_ref 144 145 resets: 146 minItems: 1 147 items: 148 - description: GMAC stmmaceth reset 149 - description: AHB reset 150 151 reset-names: 152 oneOf: 153 - items: 154 - enum: [stmmaceth, ahb] 155 - items: 156 - const: stmmaceth 157 - const: ahb 158 159 power-domains: 160 maxItems: 1 161 162 mac-mode: 163 $ref: ethernet-controller.yaml#/properties 164 description: 165 The property is identical to 'phy-mode', 166 converter in-between the MAC & PHY (e.g. 167 can be passive (no SW requirement), and 168 in a different mode than the PHY in orde 169 170 snps,axi-config: 171 $ref: /schemas/types.yaml#/definitions/pha 172 description: 173 AXI BUS Mode parameters. Phandle to a no 174 following properties 175 * snps,lpi_en, enable Low Power Interf 176 * snps,xit_frm, unlock on WoL 177 * snps,wr_osr_lmt, max write outstandi 178 * snps,rd_osr_lmt, max read outstandin 179 * snps,kbbe, do not cross 1KiB boundar 180 * snps,blen, this is a vector of suppo 181 * snps,fb, fixed-burst 182 * snps,mb, mixed-burst 183 * snps,rb, rebuild INCRx Burst 184 185 snps,mtl-rx-config: 186 $ref: /schemas/types.yaml#/definitions/pha 187 description: 188 Multiple RX Queues parameters. Phandle t 189 implements the 'rx-queues-config' object 190 this binding. 191 192 rx-queues-config: 193 type: object 194 properties: 195 snps,rx-queues-to-use: 196 $ref: /schemas/types.yaml#/definitions 197 description: number of RX queues to be 198 snps,rx-sched-sp: 199 type: boolean 200 description: Strict priority 201 snps,rx-sched-wsp: 202 type: boolean 203 description: Weighted Strict priority 204 allOf: 205 - if: 206 required: 207 - snps,rx-sched-sp 208 then: 209 properties: 210 snps,rx-sched-wsp: false 211 - if: 212 required: 213 - snps,rx-sched-wsp 214 then: 215 properties: 216 snps,rx-sched-sp: false 217 patternProperties: 218 "^queue[0-9]$": 219 description: Each subnode represents a 220 type: object 221 properties: 222 snps,dcb-algorithm: 223 type: boolean 224 description: Queue to be enabled a 225 snps,avb-algorithm: 226 type: boolean 227 description: Queue to be enabled a 228 snps,map-to-dma-channel: 229 $ref: /schemas/types.yaml#/definit 230 description: DMA channel id to map 231 snps,route-avcp: 232 type: boolean 233 description: AV Untagged Control p 234 snps,route-ptp: 235 type: boolean 236 description: PTP Packets 237 snps,route-dcbcp: 238 type: boolean 239 description: DCB Control Packets 240 snps,route-up: 241 type: boolean 242 description: Untagged Packets 243 snps,route-multi-broad: 244 type: boolean 245 description: Multicast & Broadcast 246 snps,priority: 247 $ref: /schemas/types.yaml#/definit 248 maxItems: 1 249 description: Bitmask of the tagged 250 allOf: 251 - if: 252 required: 253 - snps,dcb-algorithm 254 then: 255 properties: 256 snps,avb-algorithm: false 257 - if: 258 required: 259 - snps,avb-algorithm 260 then: 261 properties: 262 snps,dcb-algorithm: false 263 - if: 264 required: 265 - snps,route-avcp 266 then: 267 properties: 268 snps,route-ptp: false 269 snps,route-dcbcp: false 270 snps,route-up: false 271 snps,route-multi-broad: false 272 - if: 273 required: 274 - snps,route-ptp 275 then: 276 properties: 277 snps,route-avcp: false 278 snps,route-dcbcp: false 279 snps,route-up: false 280 snps,route-multi-broad: false 281 - if: 282 required: 283 - snps,route-dcbcp 284 then: 285 properties: 286 snps,route-avcp: false 287 snps,route-ptp: false 288 snps,route-up: false 289 snps,route-multi-broad: false 290 - if: 291 required: 292 - snps,route-up 293 then: 294 properties: 295 snps,route-avcp: false 296 snps,route-ptp: false 297 snps,route-dcbcp: false 298 snps,route-multi-broad: false 299 - if: 300 required: 301 - snps,route-multi-broad 302 then: 303 properties: 304 snps,route-avcp: false 305 snps,route-ptp: false 306 snps,route-dcbcp: false 307 snps,route-up: false 308 additionalProperties: false 309 additionalProperties: false 310 311 snps,mtl-tx-config: 312 $ref: /schemas/types.yaml#/definitions/pha 313 description: 314 Multiple TX Queues parameters. Phandle t 315 implements the 'tx-queues-config' object 316 this binding. 317 318 tx-queues-config: 319 type: object 320 properties: 321 snps,tx-queues-to-use: 322 $ref: /schemas/types.yaml#/definitions 323 description: number of TX queues to be 324 snps,tx-sched-wrr: 325 type: boolean 326 description: Weighted Round Robin 327 snps,tx-sched-wfq: 328 type: boolean 329 description: Weighted Fair Queuing 330 snps,tx-sched-dwrr: 331 type: boolean 332 description: Deficit Weighted Round Ro 333 allOf: 334 - if: 335 required: 336 - snps,tx-sched-wrr 337 then: 338 properties: 339 snps,tx-sched-wfq: false 340 snps,tx-sched-dwrr: false 341 - if: 342 required: 343 - snps,tx-sched-wfq 344 then: 345 properties: 346 snps,tx-sched-wrr: false 347 snps,tx-sched-dwrr: false 348 - if: 349 required: 350 - snps,tx-sched-dwrr 351 then: 352 properties: 353 snps,tx-sched-wrr: false 354 snps,tx-sched-wfq: false 355 patternProperties: 356 "^queue[0-9]$": 357 description: Each subnode represents a 358 type: object 359 properties: 360 snps,weight: 361 $ref: /schemas/types.yaml#/definit 362 description: TX queue weight (if u 363 snps,dcb-algorithm: 364 type: boolean 365 description: TX queue will be work 366 snps,avb-algorithm: 367 type: boolean 368 description: 369 TX queue will be working in AVB. 370 Queue 0 is reserved for legacy t 371 available in this queue. 372 snps,send_slope: 373 $ref: /schemas/types.yaml#/definit 374 description: enable Low Power Inte 375 snps,idle_slope: 376 $ref: /schemas/types.yaml#/definit 377 description: unlock on WoL 378 snps,high_credit: 379 $ref: /schemas/types.yaml#/definit 380 description: max write outstanding 381 snps,low_credit: 382 $ref: /schemas/types.yaml#/definit 383 description: max read outstanding 384 snps,priority: 385 $ref: /schemas/types.yaml#/definit 386 maxItems: 1 387 description: 388 Bitmask of the tagged frames pri 389 When a PFC frame is received wit 390 the queue is blocked from transm 391 in the PFC frame. 392 393 snps,coe-unsupported: 394 type: boolean 395 description: TX checksum offload i 396 397 allOf: 398 - if: 399 required: 400 - snps,dcb-algorithm 401 then: 402 properties: 403 snps,avb-algorithm: false 404 - if: 405 required: 406 - snps,avb-algorithm 407 then: 408 properties: 409 snps,dcb-algorithm: false 410 snps,weight: false 411 additionalProperties: false 412 additionalProperties: false 413 414 snps,reset-gpio: 415 deprecated: true 416 maxItems: 1 417 description: 418 PHY Reset GPIO 419 420 snps,reset-active-low: 421 deprecated: true 422 $ref: /schemas/types.yaml#/definitions/fla 423 description: 424 Indicates that the PHY Reset is active l 425 426 snps,reset-delays-us: 427 deprecated: true 428 description: 429 Triplet of delays. The 1st cell is reset 430 seconds. The 2nd cell is reset pulse in 431 cell is reset post-delay in micro second 432 minItems: 3 433 maxItems: 3 434 435 snps,aal: 436 $ref: /schemas/types.yaml#/definitions/fla 437 description: 438 Use Address-Aligned Beats 439 440 snps,pbl: 441 description: 442 Programmable Burst Length (tx and rx) 443 $ref: /schemas/types.yaml#/definitions/uin 444 enum: [1, 2, 4, 8, 16, 32] 445 446 snps,txpbl: 447 description: 448 Tx Programmable Burst Length. If set, DM 449 value rather than snps,pbl. 450 $ref: /schemas/types.yaml#/definitions/uin 451 enum: [1, 2, 4, 8, 16, 32] 452 453 snps,rxpbl: 454 description: 455 Rx Programmable Burst Length. If set, DM 456 value rather than snps,pbl. 457 $ref: /schemas/types.yaml#/definitions/uin 458 enum: [1, 2, 4, 8, 16, 32] 459 460 snps,no-pbl-x8: 461 $ref: /schemas/types.yaml#/definitions/fla 462 description: 463 Don\'t multiply the pbl/txpbl/rxpbl valu 464 rev < 3.50, don\'t multiply the values b 465 466 snps,fixed-burst: 467 $ref: /schemas/types.yaml#/definitions/fla 468 description: 469 Program the DMA to use the fixed burst m 470 471 snps,mixed-burst: 472 $ref: /schemas/types.yaml#/definitions/fla 473 description: 474 Program the DMA to use the mixed burst m 475 476 snps,force_thresh_dma_mode: 477 $ref: /schemas/types.yaml#/definitions/fla 478 description: 479 Force DMA to use the threshold mode for 480 481 snps,force_sf_dma_mode: 482 $ref: /schemas/types.yaml#/definitions/fla 483 description: 484 Force DMA to use the Store and Forward m 485 rx. This flag is ignored if force_thresh 486 487 snps,en-tx-lpi-clockgating: 488 $ref: /schemas/types.yaml#/definitions/fla 489 description: 490 Enable gating of the MAC TX clock during 491 492 snps,multicast-filter-bins: 493 $ref: /schemas/types.yaml#/definitions/uin 494 description: 495 Number of multicast filter hash bins sup 496 instance 497 498 snps,perfect-filter-entries: 499 $ref: /schemas/types.yaml#/definitions/uin 500 description: 501 Number of perfect filter entries support 502 instance 503 504 snps,ps-speed: 505 $ref: /schemas/types.yaml#/definitions/uin 506 description: 507 Port selection speed that can be passed 508 is supported. For example, this is used 509 MAC2MAC connection. 510 511 snps,clk-csr: 512 $ref: /schemas/types.yaml#/definitions/uin 513 description: 514 Frequency division factor for MDC clock. 515 516 snps,tso: 517 $ref: /schemas/types.yaml#/definitions/fla 518 description: 519 Enables the TSO feature otherwise it wil 520 register. 521 522 mdio: 523 $ref: mdio.yaml# 524 unevaluatedProperties: false 525 description: 526 Creates and registers an MDIO bus. 527 528 properties: 529 compatible: 530 const: snps,dwmac-mdio 531 532 required: 533 - compatible 534 535 stmmac-axi-config: 536 type: object 537 unevaluatedProperties: false 538 description: 539 AXI BUS Mode parameters. 540 541 properties: 542 snps,lpi_en: 543 $ref: /schemas/types.yaml#/definitions 544 description: 545 enable Low Power Interface 546 547 snps,xit_frm: 548 $ref: /schemas/types.yaml#/definitions 549 description: 550 unlock on WoL 551 552 snps,wr_osr_lmt: 553 $ref: /schemas/types.yaml#/definitions 554 description: 555 max write outstanding req. limit 556 557 snps,rd_osr_lmt: 558 $ref: /schemas/types.yaml#/definitions 559 description: 560 max read outstanding req. limit 561 562 snps,kbbe: 563 $ref: /schemas/types.yaml#/definitions 564 description: 565 do not cross 1KiB boundary. 566 567 snps,blen: 568 $ref: /schemas/types.yaml#/definitions 569 description: 570 this is a vector of supported burst 571 minItems: 7 572 maxItems: 7 573 574 snps,fb: 575 $ref: /schemas/types.yaml#/definitions 576 description: 577 fixed-burst 578 579 snps,mb: 580 $ref: /schemas/types.yaml#/definitions 581 description: 582 mixed-burst 583 584 snps,rb: 585 $ref: /schemas/types.yaml#/definitions 586 description: 587 rebuild INCRx Burst 588 589 required: 590 - compatible 591 - reg 592 - interrupts 593 - interrupt-names 594 - phy-mode 595 596 dependencies: 597 snps,reset-active-low: ["snps,reset-gpio"] 598 snps,reset-delays-us: ["snps,reset-gpio"] 599 600 allOf: 601 - $ref: ethernet-controller.yaml# 602 - if: 603 properties: 604 compatible: 605 not: 606 contains: 607 enum: 608 - allwinner,sun7i-a20-gmac 609 - allwinner,sun8i-a83t-emac 610 - allwinner,sun8i-h3-emac 611 - allwinner,sun8i-r40-gmac 612 - allwinner,sun8i-v3s-emac 613 - allwinner,sun50i-a64-emac 614 - loongson,ls2k-dwmac 615 - loongson,ls7a-dwmac 616 - ingenic,jz4775-mac 617 - ingenic,x1000-mac 618 - ingenic,x1600-mac 619 - ingenic,x1830-mac 620 - ingenic,x2000-mac 621 - qcom,qcs404-ethqos 622 - qcom,sa8775p-ethqos 623 - qcom,sc8280xp-ethqos 624 - qcom,sm8150-ethqos 625 - snps,dwmac-4.00 626 - snps,dwmac-4.10a 627 - snps,dwmac-4.20a 628 - snps,dwmac-5.10a 629 - snps,dwmac-5.20 630 - snps,dwxgmac 631 - snps,dwxgmac-2.10 632 - st,spear600-gmac 633 634 then: 635 properties: 636 snps,tso: false 637 638 additionalProperties: true 639 640 examples: 641 - | 642 gmac0: ethernet@e0800000 { 643 compatible = "snps,dwxgmac-2.10", "snp 644 reg = <0xe0800000 0x8000>; 645 interrupt-parent = <&vic1>; 646 interrupts = <24 23 22>; 647 interrupt-names = "macirq", "eth_wake_ 648 mac-address = [000000000000]; /* Fille 649 max-frame-size = <3800>; 650 phy-mode = "gmii"; 651 snps,multicast-filter-bins = <256>; 652 snps,perfect-filter-entries = <128>; 653 rx-fifo-depth = <16384>; 654 tx-fifo-depth = <16384>; 655 clocks = <&clock>; 656 clock-names = "stmmaceth"; 657 snps,axi-config = <&stmmac_axi_setup>; 658 snps,mtl-rx-config = <&mtl_rx_setup>; 659 snps,mtl-tx-config = <&mtl_tx_setup>; 660 661 stmmac_axi_setup: stmmac-axi-config { 662 snps,wr_osr_lmt = <0xf>; 663 snps,rd_osr_lmt = <0xf>; 664 snps,blen = <256 128 64 32 0 0 0>; 665 }; 666 667 mtl_rx_setup: rx-queues-config { 668 snps,rx-queues-to-use = <1>; 669 snps,rx-sched-sp; 670 queue0 { 671 snps,dcb-algorithm; 672 snps,map-to-dma-channel = <0x0 673 snps,priority = <0x0>; 674 }; 675 }; 676 677 mtl_tx_setup: tx-queues-config { 678 snps,tx-queues-to-use = <2>; 679 snps,tx-sched-wrr; 680 queue0 { 681 snps,weight = <0x10>; 682 snps,dcb-algorithm; 683 snps,priority = <0x0>; 684 }; 685 686 queue1 { 687 snps,avb-algorithm; 688 snps,send_slope = <0x1000>; 689 snps,idle_slope = <0x1000>; 690 snps,high_credit = <0x3E800>; 691 snps,low_credit = <0xFFC18000> 692 snps,priority = <0x1>; 693 }; 694 }; 695 696 mdio0 { 697 #address-cells = <1>; 698 #size-cells = <0>; 699 compatible = "snps,dwmac-mdio"; 700 phy1: ethernet-phy@0 { 701 reg = <0>; 702 }; 703 }; 704 }; 705 706 # FIXME: We should set it, but it would report 707 # properties as additional properties. 708 # additionalProperties: false 709 710 ...
Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.