1 # SPDX-License-Identifier: GPL-2.0 1 # SPDX-License-Identifier: GPL-2.0 2 %YAML 1.2 2 %YAML 1.2 3 --- 3 --- 4 $id: http://devicetree.org/schemas/net/snps,dw 4 $id: http://devicetree.org/schemas/net/snps,dwmac.yaml# 5 $schema: http://devicetree.org/meta-schemas/co 5 $schema: http://devicetree.org/meta-schemas/core.yaml# 6 6 7 title: Synopsys DesignWare MAC !! 7 title: Synopsys DesignWare MAC Device Tree Bindings 8 8 9 maintainers: 9 maintainers: 10 - Alexandre Torgue <alexandre.torgue@foss.st. !! 10 - Alexandre Torgue <alexandre.torgue@st.com> 11 - Giuseppe Cavallaro <peppe.cavallaro@st.com> 11 - Giuseppe Cavallaro <peppe.cavallaro@st.com> 12 - Jose Abreu <joabreu@synopsys.com> 12 - Jose Abreu <joabreu@synopsys.com> 13 13 14 # Select every compatible, including the depre 14 # Select every compatible, including the deprecated ones. This way, we 15 # will be able to report a warning when we hav 15 # will be able to report a warning when we have that compatible, since 16 # we will validate the node thanks to the sele 16 # we will validate the node thanks to the select, but won't report it 17 # as a valid value in the compatible property 17 # as a valid value in the compatible property description 18 select: 18 select: 19 properties: 19 properties: 20 compatible: 20 compatible: 21 contains: 21 contains: 22 enum: 22 enum: 23 - snps,dwmac 23 - snps,dwmac 24 - snps,dwmac-3.40a << 25 - snps,dwmac-3.50a 24 - snps,dwmac-3.50a 26 - snps,dwmac-3.610 25 - snps,dwmac-3.610 27 - snps,dwmac-3.70a 26 - snps,dwmac-3.70a 28 - snps,dwmac-3.710 27 - snps,dwmac-3.710 29 - snps,dwmac-4.00 28 - snps,dwmac-4.00 30 - snps,dwmac-4.10a 29 - snps,dwmac-4.10a 31 - snps,dwmac-4.20a << 32 - snps,dwmac-5.10a << 33 - snps,dwmac-5.20 << 34 - snps,dwxgmac 30 - snps,dwxgmac 35 - snps,dwxgmac-2.10 31 - snps,dwxgmac-2.10 36 32 37 # Deprecated 33 # Deprecated 38 - st,spear600-gmac 34 - st,spear600-gmac 39 35 40 required: 36 required: 41 - compatible 37 - compatible 42 38 43 properties: 39 properties: 44 40 45 # We need to include all the compatibles fro 41 # We need to include all the compatibles from schemas that will 46 # include that schemas, otherwise compatible 42 # include that schemas, otherwise compatible won't validate for 47 # those. 43 # those. 48 compatible: 44 compatible: 49 contains: 45 contains: 50 enum: 46 enum: 51 - allwinner,sun7i-a20-gmac 47 - allwinner,sun7i-a20-gmac 52 - allwinner,sun8i-a83t-emac 48 - allwinner,sun8i-a83t-emac 53 - allwinner,sun8i-h3-emac 49 - allwinner,sun8i-h3-emac 54 - allwinner,sun8i-r40-gmac !! 50 - allwinner,sun8i-r40-emac 55 - allwinner,sun8i-v3s-emac 51 - allwinner,sun8i-v3s-emac 56 - allwinner,sun50i-a64-emac 52 - 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 53 - snps,dwmac 88 - snps,dwmac-3.40a << 89 - snps,dwmac-3.50a 54 - snps,dwmac-3.50a 90 - snps,dwmac-3.610 55 - snps,dwmac-3.610 91 - snps,dwmac-3.70a 56 - snps,dwmac-3.70a 92 - snps,dwmac-3.710 57 - snps,dwmac-3.710 93 - snps,dwmac-4.00 58 - snps,dwmac-4.00 94 - snps,dwmac-4.10a 59 - snps,dwmac-4.10a 95 - snps,dwmac-4.20a << 96 - snps,dwmac-5.10a << 97 - snps,dwmac-5.20 << 98 - snps,dwxgmac 60 - snps,dwxgmac 99 - snps,dwxgmac-2.10 61 - snps,dwxgmac-2.10 100 - starfive,jh7100-dwmac << 101 - starfive,jh7110-dwmac << 102 62 103 reg: 63 reg: 104 minItems: 1 !! 64 maxItems: 1 105 maxItems: 2 << 106 65 107 interrupts: 66 interrupts: 108 minItems: 1 67 minItems: 1 >> 68 maxItems: 3 109 items: 69 items: 110 - description: Combined signal for vario 70 - description: Combined signal for various interrupt events 111 - description: The interrupt to manage t 71 - description: The interrupt to manage the remote wake-up packet detection 112 - description: The interrupt that occurs 72 - description: The interrupt that occurs when Rx exits the LPI state 113 - description: The interrupt that occurs << 114 73 115 interrupt-names: 74 interrupt-names: 116 minItems: 1 75 minItems: 1 >> 76 maxItems: 3 117 items: 77 items: 118 - const: macirq 78 - const: macirq 119 - enum: [eth_wake_irq, eth_lpi, sfty] !! 79 - const: eth_wake_irq 120 - enum: [eth_wake_irq, eth_lpi, sfty] !! 80 - const: eth_lpi 121 - enum: [eth_wake_irq, eth_lpi, sfty] << 122 81 123 clocks: 82 clocks: 124 minItems: 1 83 minItems: 1 125 maxItems: 8 !! 84 maxItems: 3 126 additionalItems: true << 127 items: 85 items: 128 - description: GMAC main clock 86 - description: GMAC main clock 129 - description: Peripheral registers inte 87 - description: Peripheral registers interface clock 130 - description: 88 - description: 131 PTP reference clock. This clock is u 89 PTP reference clock. This clock is used for programming the 132 Timestamp Addend Register. If not pa 90 Timestamp Addend Register. If not passed then the system 133 clock will be used and this is fine 91 clock will be used and this is fine on some platforms. 134 92 135 clock-names: 93 clock-names: 136 minItems: 1 << 137 maxItems: 8 << 138 additionalItems: true 94 additionalItems: true 139 contains: 95 contains: 140 enum: 96 enum: 141 - stmmaceth 97 - stmmaceth 142 - pclk 98 - pclk 143 - ptp_ref 99 - ptp_ref 144 100 145 resets: 101 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 102 maxItems: 1 161 << 162 mac-mode: << 163 $ref: ethernet-controller.yaml#/properties << 164 description: 103 description: 165 The property is identical to 'phy-mode', !! 104 MAC Reset signal. 166 converter in-between the MAC & PHY (e.g. !! 105 167 can be passive (no SW requirement), and !! 106 reset-names: 168 in a different mode than the PHY in orde !! 107 const: stmmaceth 169 108 170 snps,axi-config: 109 snps,axi-config: 171 $ref: /schemas/types.yaml#/definitions/pha !! 110 $ref: /schemas/types.yaml#definitions/phandle 172 description: 111 description: 173 AXI BUS Mode parameters. Phandle to a no 112 AXI BUS Mode parameters. Phandle to a node that can contain the 174 following properties 113 following properties 175 * snps,lpi_en, enable Low Power Interf 114 * snps,lpi_en, enable Low Power Interface 176 * snps,xit_frm, unlock on WoL 115 * snps,xit_frm, unlock on WoL 177 * snps,wr_osr_lmt, max write outstandi 116 * snps,wr_osr_lmt, max write outstanding req. limit 178 * snps,rd_osr_lmt, max read outstandin 117 * snps,rd_osr_lmt, max read outstanding req. limit 179 * snps,kbbe, do not cross 1KiB boundar 118 * snps,kbbe, do not cross 1KiB boundary. 180 * snps,blen, this is a vector of suppo 119 * snps,blen, this is a vector of supported burst length. 181 * snps,fb, fixed-burst 120 * snps,fb, fixed-burst 182 * snps,mb, mixed-burst 121 * snps,mb, mixed-burst 183 * snps,rb, rebuild INCRx Burst 122 * snps,rb, rebuild INCRx Burst 184 123 185 snps,mtl-rx-config: 124 snps,mtl-rx-config: 186 $ref: /schemas/types.yaml#/definitions/pha !! 125 $ref: /schemas/types.yaml#definitions/phandle 187 description: 126 description: 188 Multiple RX Queues parameters. Phandle t !! 127 Multiple RX Queues parameters. Phandle to a node that can 189 implements the 'rx-queues-config' object !! 128 contain the following properties 190 this binding. !! 129 * snps,rx-queues-to-use, number of RX queues to be used in the 191 !! 130 driver 192 rx-queues-config: !! 131 * Choose one of these RX scheduling algorithms 193 type: object !! 132 * snps,rx-sched-sp, Strict priority 194 properties: !! 133 * snps,rx-sched-wsp, Weighted Strict priority 195 snps,rx-queues-to-use: !! 134 * For each RX queue 196 $ref: /schemas/types.yaml#/definitions !! 135 * Choose one of these modes 197 description: number of RX queues to be !! 136 * snps,dcb-algorithm, Queue to be enabled as DCB 198 snps,rx-sched-sp: !! 137 * snps,avb-algorithm, Queue to be enabled as AVB 199 type: boolean !! 138 * snps,map-to-dma-channel, Channel to map 200 description: Strict priority !! 139 * Specifiy specific packet routing 201 snps,rx-sched-wsp: !! 140 * snps,route-avcp, AV Untagged Control packets 202 type: boolean !! 141 * snps,route-ptp, PTP Packets 203 description: Weighted Strict priority !! 142 * snps,route-dcbcp, DCB Control Packets 204 allOf: !! 143 * snps,route-up, Untagged Packets 205 - if: !! 144 * snps,route-multi-broad, Multicast & Broadcast Packets 206 required: !! 145 * snps,priority, RX queue priority (Range 0x0 to 0xF) 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 146 311 snps,mtl-tx-config: 147 snps,mtl-tx-config: 312 $ref: /schemas/types.yaml#/definitions/pha !! 148 $ref: /schemas/types.yaml#definitions/phandle 313 description: 149 description: 314 Multiple TX Queues parameters. Phandle t !! 150 Multiple TX Queues parameters. Phandle to a node that can 315 implements the 'tx-queues-config' object !! 151 contain the following properties 316 this binding. !! 152 * snps,tx-queues-to-use, number of TX queues to be used in the 317 !! 153 driver 318 tx-queues-config: !! 154 * Choose one of these TX scheduling algorithms 319 type: object !! 155 * snps,tx-sched-wrr, Weighted Round Robin 320 properties: !! 156 * snps,tx-sched-wfq, Weighted Fair Queuing 321 snps,tx-queues-to-use: !! 157 * snps,tx-sched-dwrr, Deficit Weighted Round Robin 322 $ref: /schemas/types.yaml#/definitions !! 158 * snps,tx-sched-sp, Strict priority 323 description: number of TX queues to be !! 159 * For each TX queue 324 snps,tx-sched-wrr: !! 160 * snps,weight, TX queue weight (if using a DCB weight 325 type: boolean !! 161 algorithm) 326 description: Weighted Round Robin !! 162 * Choose one of these modes 327 snps,tx-sched-wfq: !! 163 * snps,dcb-algorithm, TX queue will be working in DCB 328 type: boolean !! 164 * snps,avb-algorithm, TX queue will be working in AVB 329 description: Weighted Fair Queuing !! 165 [Attention] Queue 0 is reserved for legacy traffic 330 snps,tx-sched-dwrr: !! 166 and so no AVB is available in this queue. 331 type: boolean !! 167 * Configure Credit Base Shaper (if AVB Mode selected) 332 description: Deficit Weighted Round Ro !! 168 * snps,send_slope, enable Low Power Interface 333 allOf: !! 169 * snps,idle_slope, unlock on WoL 334 - if: !! 170 * snps,high_credit, max write outstanding req. limit 335 required: !! 171 * snps,low_credit, max read outstanding req. limit 336 - snps,tx-sched-wrr !! 172 * snps,priority, TX queue priority (Range 0x0 to 0xF) 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 173 414 snps,reset-gpio: 174 snps,reset-gpio: 415 deprecated: true 175 deprecated: true 416 maxItems: 1 176 maxItems: 1 417 description: 177 description: 418 PHY Reset GPIO 178 PHY Reset GPIO 419 179 420 snps,reset-active-low: 180 snps,reset-active-low: 421 deprecated: true 181 deprecated: true 422 $ref: /schemas/types.yaml#/definitions/fla !! 182 $ref: /schemas/types.yaml#definitions/flag 423 description: 183 description: 424 Indicates that the PHY Reset is active l 184 Indicates that the PHY Reset is active low 425 185 426 snps,reset-delays-us: 186 snps,reset-delays-us: 427 deprecated: true 187 deprecated: true >> 188 allOf: >> 189 - $ref: /schemas/types.yaml#definitions/uint32-array >> 190 - minItems: 3 >> 191 maxItems: 3 428 description: 192 description: 429 Triplet of delays. The 1st cell is reset 193 Triplet of delays. The 1st cell is reset pre-delay in micro 430 seconds. The 2nd cell is reset pulse in 194 seconds. The 2nd cell is reset pulse in micro seconds. The 3rd 431 cell is reset post-delay in micro second 195 cell is reset post-delay in micro seconds. 432 minItems: 3 << 433 maxItems: 3 << 434 196 435 snps,aal: 197 snps,aal: 436 $ref: /schemas/types.yaml#/definitions/fla !! 198 $ref: /schemas/types.yaml#definitions/flag 437 description: 199 description: 438 Use Address-Aligned Beats 200 Use Address-Aligned Beats 439 201 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: 202 snps,fixed-burst: 467 $ref: /schemas/types.yaml#/definitions/fla !! 203 $ref: /schemas/types.yaml#definitions/flag 468 description: 204 description: 469 Program the DMA to use the fixed burst m 205 Program the DMA to use the fixed burst mode 470 206 471 snps,mixed-burst: 207 snps,mixed-burst: 472 $ref: /schemas/types.yaml#/definitions/fla !! 208 $ref: /schemas/types.yaml#definitions/flag 473 description: 209 description: 474 Program the DMA to use the mixed burst m 210 Program the DMA to use the mixed burst mode 475 211 476 snps,force_thresh_dma_mode: 212 snps,force_thresh_dma_mode: 477 $ref: /schemas/types.yaml#/definitions/fla !! 213 $ref: /schemas/types.yaml#definitions/flag 478 description: 214 description: 479 Force DMA to use the threshold mode for 215 Force DMA to use the threshold mode for both tx and rx 480 216 481 snps,force_sf_dma_mode: 217 snps,force_sf_dma_mode: 482 $ref: /schemas/types.yaml#/definitions/fla !! 218 $ref: /schemas/types.yaml#definitions/flag 483 description: 219 description: 484 Force DMA to use the Store and Forward m 220 Force DMA to use the Store and Forward mode for both tx and 485 rx. This flag is ignored if force_thresh 221 rx. This flag is ignored if force_thresh_dma_mode is set. 486 222 487 snps,en-tx-lpi-clockgating: 223 snps,en-tx-lpi-clockgating: 488 $ref: /schemas/types.yaml#/definitions/fla !! 224 $ref: /schemas/types.yaml#definitions/flag 489 description: 225 description: 490 Enable gating of the MAC TX clock during 226 Enable gating of the MAC TX clock during TX low-power mode 491 227 492 snps,multicast-filter-bins: 228 snps,multicast-filter-bins: 493 $ref: /schemas/types.yaml#/definitions/uin !! 229 $ref: /schemas/types.yaml#definitions/uint32 494 description: 230 description: 495 Number of multicast filter hash bins sup 231 Number of multicast filter hash bins supported by this device 496 instance 232 instance 497 233 498 snps,perfect-filter-entries: 234 snps,perfect-filter-entries: 499 $ref: /schemas/types.yaml#/definitions/uin !! 235 $ref: /schemas/types.yaml#definitions/uint32 500 description: 236 description: 501 Number of perfect filter entries support 237 Number of perfect filter entries supported by this device 502 instance 238 instance 503 239 504 snps,ps-speed: 240 snps,ps-speed: 505 $ref: /schemas/types.yaml#/definitions/uin !! 241 $ref: /schemas/types.yaml#definitions/uint32 506 description: 242 description: 507 Port selection speed that can be passed 243 Port selection speed that can be passed to the core when PCS 508 is supported. For example, this is used 244 is supported. For example, this is used in case of SGMII and 509 MAC2MAC connection. 245 MAC2MAC connection. 510 246 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: 247 mdio: 523 $ref: mdio.yaml# !! 248 type: object 524 unevaluatedProperties: false << 525 description: 249 description: 526 Creates and registers an MDIO bus. 250 Creates and registers an MDIO bus. 527 251 528 properties: 252 properties: 529 compatible: 253 compatible: 530 const: snps,dwmac-mdio 254 const: snps,dwmac-mdio 531 255 532 required: 256 required: 533 - compatible 257 - compatible 534 258 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: 259 required: 590 - compatible 260 - compatible 591 - reg 261 - reg 592 - interrupts 262 - interrupts 593 - interrupt-names 263 - interrupt-names 594 - phy-mode 264 - phy-mode 595 265 596 dependencies: 266 dependencies: 597 snps,reset-active-low: ["snps,reset-gpio"] 267 snps,reset-active-low: ["snps,reset-gpio"] 598 snps,reset-delays-us: ["snps,reset-gpio"] !! 268 snps,reset-delay-us: ["snps,reset-gpio"] 599 269 600 allOf: 270 allOf: 601 - $ref: ethernet-controller.yaml# !! 271 - $ref: "ethernet-controller.yaml#" 602 - if: 272 - if: 603 properties: 273 properties: 604 compatible: 274 compatible: 605 not: !! 275 contains: 606 contains: !! 276 enum: 607 enum: !! 277 - allwinner,sun7i-a20-gmac 608 - allwinner,sun7i-a20-gmac !! 278 - allwinner,sun8i-a83t-emac 609 - allwinner,sun8i-a83t-emac !! 279 - allwinner,sun8i-h3-emac 610 - allwinner,sun8i-h3-emac !! 280 - allwinner,sun8i-r40-emac 611 - allwinner,sun8i-r40-gmac !! 281 - allwinner,sun8i-v3s-emac 612 - allwinner,sun8i-v3s-emac !! 282 - allwinner,sun50i-a64-emac 613 - allwinner,sun50i-a64-emac !! 283 - snps,dwxgmac 614 - loongson,ls2k-dwmac !! 284 - snps,dwxgmac-2.10 615 - loongson,ls7a-dwmac !! 285 - st,spear600-gmac 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 286 634 then: 287 then: 635 properties: 288 properties: 636 snps,tso: false !! 289 snps,pbl: >> 290 allOf: >> 291 - $ref: /schemas/types.yaml#definitions/uint32 >> 292 - enum: [2, 4, 8] >> 293 description: >> 294 Programmable Burst Length (tx and rx) >> 295 >> 296 snps,txpbl: >> 297 allOf: >> 298 - $ref: /schemas/types.yaml#definitions/uint32 >> 299 - enum: [2, 4, 8] >> 300 description: >> 301 Tx Programmable Burst Length. If set, DMA tx will use this >> 302 value rather than snps,pbl. >> 303 >> 304 snps,rxpbl: >> 305 allOf: >> 306 - $ref: /schemas/types.yaml#definitions/uint32 >> 307 - enum: [2, 4, 8] >> 308 description: >> 309 Rx Programmable Burst Length. If set, DMA rx will use this >> 310 value rather than snps,pbl. >> 311 >> 312 snps,no-pbl-x8: >> 313 $ref: /schemas/types.yaml#definitions/flag >> 314 description: >> 315 Don\'t multiply the pbl/txpbl/rxpbl values by 8. For core >> 316 rev < 3.50, don\'t multiply the values by 4. >> 317 >> 318 - if: >> 319 properties: >> 320 compatible: >> 321 contains: >> 322 enum: >> 323 - allwinner,sun7i-a20-gmac >> 324 - allwinner,sun8i-a83t-emac >> 325 - allwinner,sun8i-h3-emac >> 326 - allwinner,sun8i-r40-emac >> 327 - allwinner,sun8i-v3s-emac >> 328 - allwinner,sun50i-a64-emac >> 329 - snps,dwmac-4.00 >> 330 - snps,dwmac-4.10a >> 331 - snps,dwxgmac >> 332 - snps,dwxgmac-2.10 >> 333 - st,spear600-gmac 637 334 638 additionalProperties: true !! 335 then: >> 336 snps,tso: >> 337 $ref: /schemas/types.yaml#definitions/flag >> 338 description: >> 339 Enables the TSO feature otherwise it will be managed by >> 340 MAC HW capability register. 639 341 640 examples: 342 examples: 641 - | 343 - | >> 344 stmmac_axi_setup: stmmac-axi-config { >> 345 snps,wr_osr_lmt = <0xf>; >> 346 snps,rd_osr_lmt = <0xf>; >> 347 snps,blen = <256 128 64 32 0 0 0>; >> 348 }; >> 349 >> 350 mtl_rx_setup: rx-queues-config { >> 351 snps,rx-queues-to-use = <1>; >> 352 snps,rx-sched-sp; >> 353 queue0 { >> 354 snps,dcb-algorithm; >> 355 snps,map-to-dma-channel = <0x0>; >> 356 snps,priority = <0x0>; >> 357 }; >> 358 }; >> 359 >> 360 mtl_tx_setup: tx-queues-config { >> 361 snps,tx-queues-to-use = <2>; >> 362 snps,tx-sched-wrr; >> 363 queue0 { >> 364 snps,weight = <0x10>; >> 365 snps,dcb-algorithm; >> 366 snps,priority = <0x0>; >> 367 }; >> 368 >> 369 queue1 { >> 370 snps,avb-algorithm; >> 371 snps,send_slope = <0x1000>; >> 372 snps,idle_slope = <0x1000>; >> 373 snps,high_credit = <0x3E800>; >> 374 snps,low_credit = <0xFFC18000>; >> 375 snps,priority = <0x1>; >> 376 }; >> 377 }; >> 378 642 gmac0: ethernet@e0800000 { 379 gmac0: ethernet@e0800000 { 643 compatible = "snps,dwxgmac-2.10", "snp 380 compatible = "snps,dwxgmac-2.10", "snps,dwxgmac"; 644 reg = <0xe0800000 0x8000>; 381 reg = <0xe0800000 0x8000>; 645 interrupt-parent = <&vic1>; 382 interrupt-parent = <&vic1>; 646 interrupts = <24 23 22>; 383 interrupts = <24 23 22>; 647 interrupt-names = "macirq", "eth_wake_ 384 interrupt-names = "macirq", "eth_wake_irq", "eth_lpi"; 648 mac-address = [000000000000]; /* Fille 385 mac-address = [000000000000]; /* Filled in by U-Boot */ 649 max-frame-size = <3800>; 386 max-frame-size = <3800>; 650 phy-mode = "gmii"; 387 phy-mode = "gmii"; 651 snps,multicast-filter-bins = <256>; 388 snps,multicast-filter-bins = <256>; 652 snps,perfect-filter-entries = <128>; 389 snps,perfect-filter-entries = <128>; 653 rx-fifo-depth = <16384>; 390 rx-fifo-depth = <16384>; 654 tx-fifo-depth = <16384>; 391 tx-fifo-depth = <16384>; 655 clocks = <&clock>; 392 clocks = <&clock>; 656 clock-names = "stmmaceth"; 393 clock-names = "stmmaceth"; 657 snps,axi-config = <&stmmac_axi_setup>; 394 snps,axi-config = <&stmmac_axi_setup>; 658 snps,mtl-rx-config = <&mtl_rx_setup>; 395 snps,mtl-rx-config = <&mtl_rx_setup>; 659 snps,mtl-tx-config = <&mtl_tx_setup>; 396 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 { 397 mdio0 { 697 #address-cells = <1>; 398 #address-cells = <1>; 698 #size-cells = <0>; 399 #size-cells = <0>; 699 compatible = "snps,dwmac-mdio"; 400 compatible = "snps,dwmac-mdio"; 700 phy1: ethernet-phy@0 { 401 phy1: ethernet-phy@0 { 701 reg = <0>; 402 reg = <0>; 702 }; 403 }; 703 }; 404 }; 704 }; 405 }; 705 406 706 # FIXME: We should set it, but it would report 407 # FIXME: We should set it, but it would report all the generic 707 # properties as additional properties. 408 # properties as additional properties. 708 # additionalProperties: false 409 # additionalProperties: false 709 410 710 ... 411 ...
Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.