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