xref: /linux/Documentation/devicetree/bindings/net/snps,dwmac.yaml (revision 1963e65b3dfee3f42dcb5d40b28764ec9939792c)
17db3545aSMaxime Ripard# SPDX-License-Identifier: GPL-2.0
27db3545aSMaxime Ripard%YAML 1.2
37db3545aSMaxime Ripard---
47db3545aSMaxime Ripard$id: http://devicetree.org/schemas/net/snps,dwmac.yaml#
57db3545aSMaxime Ripard$schema: http://devicetree.org/meta-schemas/core.yaml#
67db3545aSMaxime Ripard
7dd3cb467SAndrew Lunntitle: Synopsys DesignWare MAC
87db3545aSMaxime Ripard
97db3545aSMaxime Ripardmaintainers:
10f4eedebdSPatrice Chotard  - Alexandre Torgue <alexandre.torgue@foss.st.com>
117db3545aSMaxime Ripard  - Giuseppe Cavallaro <peppe.cavallaro@st.com>
127db3545aSMaxime Ripard  - Jose Abreu <joabreu@synopsys.com>
137db3545aSMaxime Ripard
147db3545aSMaxime Ripard# Select every compatible, including the deprecated ones. This way, we
157db3545aSMaxime Ripard# will be able to report a warning when we have that compatible, since
167db3545aSMaxime Ripard# we will validate the node thanks to the select, but won't report it
177db3545aSMaxime Ripard# as a valid value in the compatible property description
187db3545aSMaxime Ripardselect:
197db3545aSMaxime Ripard  properties:
207db3545aSMaxime Ripard    compatible:
217db3545aSMaxime Ripard      contains:
227db3545aSMaxime Ripard        enum:
237db3545aSMaxime Ripard          - snps,dwmac
243781b6adSHerve Codina          - snps,dwmac-3.40a
257db3545aSMaxime Ripard          - snps,dwmac-3.50a
267db3545aSMaxime Ripard          - snps,dwmac-3.610
277db3545aSMaxime Ripard          - snps,dwmac-3.70a
287db3545aSMaxime Ripard          - snps,dwmac-3.710
297db3545aSMaxime Ripard          - snps,dwmac-4.00
307db3545aSMaxime Ripard          - snps,dwmac-4.10a
31f2253143SChristophe Roullier          - snps,dwmac-4.20a
32bdad810eSJoakim Zhang          - snps,dwmac-5.10a
3313f93511SEmil Renner Berthing          - snps,dwmac-5.20
347db3545aSMaxime Ripard          - snps,dwxgmac
357db3545aSMaxime Ripard          - snps,dwxgmac-2.10
367db3545aSMaxime Ripard
377db3545aSMaxime Ripard          # Deprecated
387db3545aSMaxime Ripard          - st,spear600-gmac
397db3545aSMaxime Ripard
407db3545aSMaxime Ripard  required:
417db3545aSMaxime Ripard    - compatible
427db3545aSMaxime Ripard
437db3545aSMaxime Ripardproperties:
447db3545aSMaxime Ripard
457db3545aSMaxime Ripard  # We need to include all the compatibles from schemas that will
467db3545aSMaxime Ripard  # include that schemas, otherwise compatible won't validate for
477db3545aSMaxime Ripard  # those.
487db3545aSMaxime Ripard  compatible:
497db3545aSMaxime Ripard    contains:
507db3545aSMaxime Ripard      enum:
514b859450SMaxime Ripard        - allwinner,sun7i-a20-gmac
520569929dSMaxime Ripard        - allwinner,sun8i-a83t-emac
530569929dSMaxime Ripard        - allwinner,sun8i-h3-emac
54b33be51cSMaxime Ripard        - allwinner,sun8i-r40-gmac
550569929dSMaxime Ripard        - allwinner,sun8i-v3s-emac
560569929dSMaxime Ripard        - allwinner,sun50i-a64-emac
57d5a57e4eSNeil Armstrong        - amlogic,meson6-dwmac
58d5a57e4eSNeil Armstrong        - amlogic,meson8b-dwmac
59d5a57e4eSNeil Armstrong        - amlogic,meson8m2-dwmac
60d5a57e4eSNeil Armstrong        - amlogic,meson-gxbb-dwmac
61d5a57e4eSNeil Armstrong        - amlogic,meson-axg-dwmac
623b840106S周琰杰 (Zhou Yanjie)        - ingenic,jz4775-mac
633b840106S周琰杰 (Zhou Yanjie)        - ingenic,x1000-mac
643b840106S周琰杰 (Zhou Yanjie)        - ingenic,x1600-mac
653b840106S周琰杰 (Zhou Yanjie)        - ingenic,x1830-mac
663b840106S周琰杰 (Zhou Yanjie)        - ingenic,x2000-mac
67ce8b3ad1SDongjin Yang        - loongson,ls2k-dwmac
68ce8b3ad1SDongjin Yang        - loongson,ls7a-dwmac
69d70c215bSBhupesh Sharma        - qcom,qcs404-ethqos
70d0e3d29fSBartosz Golaszewski        - qcom,sa8775p-ethqos
7125926a70SAndrew Halaney        - qcom,sc8280xp-ethqos
72d70c215bSBhupesh Sharma        - qcom,sm8150-ethqos
73d7cc14bcSClément Léger        - renesas,r9a06g032-gmac
74d7cc14bcSClément Léger        - renesas,rzn1-gmac
75517a882aSEzequiel Garcia        - rockchip,px30-gmac
76517a882aSEzequiel Garcia        - rockchip,rk3128-gmac
77517a882aSEzequiel Garcia        - rockchip,rk3228-gmac
78517a882aSEzequiel Garcia        - rockchip,rk3288-gmac
79517a882aSEzequiel Garcia        - rockchip,rk3328-gmac
80517a882aSEzequiel Garcia        - rockchip,rk3366-gmac
81517a882aSEzequiel Garcia        - rockchip,rk3368-gmac
82a2b77831SSebastian Reichel        - rockchip,rk3588-gmac
83517a882aSEzequiel Garcia        - rockchip,rk3399-gmac
84517a882aSEzequiel Garcia        - rockchip,rv1108-gmac
857db3545aSMaxime Ripard        - snps,dwmac
863781b6adSHerve Codina        - snps,dwmac-3.40a
877db3545aSMaxime Ripard        - snps,dwmac-3.50a
887db3545aSMaxime Ripard        - snps,dwmac-3.610
897db3545aSMaxime Ripard        - snps,dwmac-3.70a
907db3545aSMaxime Ripard        - snps,dwmac-3.710
917db3545aSMaxime Ripard        - snps,dwmac-4.00
927db3545aSMaxime Ripard        - snps,dwmac-4.10a
93f2253143SChristophe Roullier        - snps,dwmac-4.20a
94bdad810eSJoakim Zhang        - snps,dwmac-5.10a
9513f93511SEmil Renner Berthing        - snps,dwmac-5.20
967db3545aSMaxime Ripard        - snps,dwxgmac
977db3545aSMaxime Ripard        - snps,dwxgmac-2.10
9853e41b76SCristian Ciocaltea        - starfive,jh7100-dwmac
99b76eaf7dSYanhong Wang        - starfive,jh7110-dwmac
1007db3545aSMaxime Ripard
1017db3545aSMaxime Ripard  reg:
10257b77df7SNeil Armstrong    minItems: 1
10357b77df7SNeil Armstrong    maxItems: 2
1047db3545aSMaxime Ripard
1057db3545aSMaxime Ripard  interrupts:
1067db3545aSMaxime Ripard    minItems: 1
1077db3545aSMaxime Ripard    items:
1087db3545aSMaxime Ripard      - description: Combined signal for various interrupt events
1097db3545aSMaxime Ripard      - description: The interrupt to manage the remote wake-up packet detection
1107db3545aSMaxime Ripard      - description: The interrupt that occurs when Rx exits the LPI state
111*1963e65bSSuraj Jaiswal      - description: The interrupt that occurs when HW safety error triggered
1127db3545aSMaxime Ripard
1137db3545aSMaxime Ripard  interrupt-names:
1147db3545aSMaxime Ripard    minItems: 1
1157db3545aSMaxime Ripard    items:
1167db3545aSMaxime Ripard      - const: macirq
117*1963e65bSSuraj Jaiswal      - enum: [eth_wake_irq, eth_lpi, sfty]
118*1963e65bSSuraj Jaiswal      - enum: [eth_wake_irq, eth_lpi, sfty]
119*1963e65bSSuraj Jaiswal      - enum: [eth_wake_irq, eth_lpi, sfty]
1207db3545aSMaxime Ripard
1217db3545aSMaxime Ripard  clocks:
1227db3545aSMaxime Ripard    minItems: 1
123517a882aSEzequiel Garcia    maxItems: 8
124f2253143SChristophe Roullier    additionalItems: true
1257db3545aSMaxime Ripard    items:
1267db3545aSMaxime Ripard      - description: GMAC main clock
1277db3545aSMaxime Ripard      - description: Peripheral registers interface clock
1287db3545aSMaxime Ripard      - description:
1297db3545aSMaxime Ripard          PTP reference clock. This clock is used for programming the
1307db3545aSMaxime Ripard          Timestamp Addend Register. If not passed then the system
1317db3545aSMaxime Ripard          clock will be used and this is fine on some platforms.
1327db3545aSMaxime Ripard
1337db3545aSMaxime Ripard  clock-names:
134f2253143SChristophe Roullier    minItems: 1
135517a882aSEzequiel Garcia    maxItems: 8
1367db3545aSMaxime Ripard    additionalItems: true
1377db3545aSMaxime Ripard    contains:
1387db3545aSMaxime Ripard      enum:
1397db3545aSMaxime Ripard        - stmmaceth
1407db3545aSMaxime Ripard        - pclk
1417db3545aSMaxime Ripard        - ptp_ref
1427db3545aSMaxime Ripard
1437db3545aSMaxime Ripard  resets:
144843f6037SSamin Guo    minItems: 1
145843f6037SSamin Guo    items:
146843f6037SSamin Guo      - description: GMAC stmmaceth reset
147843f6037SSamin Guo      - description: AHB reset
1487db3545aSMaxime Ripard
1497db3545aSMaxime Ripard  reset-names:
15053e41b76SCristian Ciocaltea    oneOf:
15153e41b76SCristian Ciocaltea      - items:
15253e41b76SCristian Ciocaltea          - enum: [stmmaceth, ahb]
15353e41b76SCristian Ciocaltea      - items:
154843f6037SSamin Guo          - const: stmmaceth
155843f6037SSamin Guo          - const: ahb
1567db3545aSMaxime Ripard
157955fe312SClément Léger  power-domains:
158955fe312SClément Léger    maxItems: 1
159955fe312SClément Léger
1609c15d359SAlexandru Ardelean  mac-mode:
1619e5c8d39SAlexandru Ardelean    $ref: ethernet-controller.yaml#/properties/phy-connection-type
1629c15d359SAlexandru Ardelean    description:
1639c15d359SAlexandru Ardelean      The property is identical to 'phy-mode', and assumes that there is mode
1649c15d359SAlexandru Ardelean      converter in-between the MAC & PHY (e.g. GMII-to-RGMII). This converter
1659c15d359SAlexandru Ardelean      can be passive (no SW requirement), and requires that the MAC operate
1669c15d359SAlexandru Ardelean      in a different mode than the PHY in order to function.
1679c15d359SAlexandru Ardelean
1687db3545aSMaxime Ripard  snps,axi-config:
169d69c6dddSRob Herring    $ref: /schemas/types.yaml#/definitions/phandle
1707db3545aSMaxime Ripard    description:
1717db3545aSMaxime Ripard      AXI BUS Mode parameters. Phandle to a node that can contain the
1727db3545aSMaxime Ripard      following properties
1737db3545aSMaxime Ripard        * snps,lpi_en, enable Low Power Interface
1747db3545aSMaxime Ripard        * snps,xit_frm, unlock on WoL
1757db3545aSMaxime Ripard        * snps,wr_osr_lmt, max write outstanding req. limit
1767db3545aSMaxime Ripard        * snps,rd_osr_lmt, max read outstanding req. limit
1777db3545aSMaxime Ripard        * snps,kbbe, do not cross 1KiB boundary.
1787db3545aSMaxime Ripard        * snps,blen, this is a vector of supported burst length.
1797db3545aSMaxime Ripard        * snps,fb, fixed-burst
1807db3545aSMaxime Ripard        * snps,mb, mixed-burst
1817db3545aSMaxime Ripard        * snps,rb, rebuild INCRx Burst
1827db3545aSMaxime Ripard
1837db3545aSMaxime Ripard  snps,mtl-rx-config:
184d69c6dddSRob Herring    $ref: /schemas/types.yaml#/definitions/phandle
1857db3545aSMaxime Ripard    description:
1868fc4deaaSSebastian Reichel      Multiple RX Queues parameters. Phandle to a node that
1878fc4deaaSSebastian Reichel      implements the 'rx-queues-config' object described in
1888fc4deaaSSebastian Reichel      this binding.
1898fc4deaaSSebastian Reichel
1908fc4deaaSSebastian Reichel  rx-queues-config:
1918fc4deaaSSebastian Reichel    type: object
1928fc4deaaSSebastian Reichel    properties:
1938fc4deaaSSebastian Reichel      snps,rx-queues-to-use:
1948fc4deaaSSebastian Reichel        $ref: /schemas/types.yaml#/definitions/uint32
1958fc4deaaSSebastian Reichel        description: number of RX queues to be used in the driver
1968fc4deaaSSebastian Reichel      snps,rx-sched-sp:
1978fc4deaaSSebastian Reichel        type: boolean
1988fc4deaaSSebastian Reichel        description: Strict priority
1998fc4deaaSSebastian Reichel      snps,rx-sched-wsp:
2008fc4deaaSSebastian Reichel        type: boolean
2018fc4deaaSSebastian Reichel        description: Weighted Strict priority
2028fc4deaaSSebastian Reichel    allOf:
2038fc4deaaSSebastian Reichel      - if:
2048fc4deaaSSebastian Reichel          required:
2058fc4deaaSSebastian Reichel            - snps,rx-sched-sp
2068fc4deaaSSebastian Reichel        then:
2078fc4deaaSSebastian Reichel          properties:
2088fc4deaaSSebastian Reichel            snps,rx-sched-wsp: false
2098fc4deaaSSebastian Reichel      - if:
2108fc4deaaSSebastian Reichel          required:
2118fc4deaaSSebastian Reichel            - snps,rx-sched-wsp
2128fc4deaaSSebastian Reichel        then:
2138fc4deaaSSebastian Reichel          properties:
2148fc4deaaSSebastian Reichel            snps,rx-sched-sp: false
2158fc4deaaSSebastian Reichel    patternProperties:
2168fc4deaaSSebastian Reichel      "^queue[0-9]$":
2178fc4deaaSSebastian Reichel        description: Each subnode represents a queue.
2188fc4deaaSSebastian Reichel        type: object
2198fc4deaaSSebastian Reichel        properties:
2208fc4deaaSSebastian Reichel          snps,dcb-algorithm:
2218fc4deaaSSebastian Reichel            type: boolean
2228fc4deaaSSebastian Reichel            description: Queue to be enabled as DCB
2238fc4deaaSSebastian Reichel          snps,avb-algorithm:
2248fc4deaaSSebastian Reichel            type: boolean
2258fc4deaaSSebastian Reichel            description: Queue to be enabled as AVB
2268fc4deaaSSebastian Reichel          snps,map-to-dma-channel:
2278fc4deaaSSebastian Reichel            $ref: /schemas/types.yaml#/definitions/uint32
2288fc4deaaSSebastian Reichel            description: DMA channel id to map
2298fc4deaaSSebastian Reichel          snps,route-avcp:
2308fc4deaaSSebastian Reichel            type: boolean
2318fc4deaaSSebastian Reichel            description: AV Untagged Control packets
2328fc4deaaSSebastian Reichel          snps,route-ptp:
2338fc4deaaSSebastian Reichel            type: boolean
2348fc4deaaSSebastian Reichel            description: PTP Packets
2358fc4deaaSSebastian Reichel          snps,route-dcbcp:
2368fc4deaaSSebastian Reichel            type: boolean
2378fc4deaaSSebastian Reichel            description: DCB Control Packets
2388fc4deaaSSebastian Reichel          snps,route-up:
2398fc4deaaSSebastian Reichel            type: boolean
2408fc4deaaSSebastian Reichel            description: Untagged Packets
2418fc4deaaSSebastian Reichel          snps,route-multi-broad:
2428fc4deaaSSebastian Reichel            type: boolean
2438fc4deaaSSebastian Reichel            description: Multicast & Broadcast Packets
2448fc4deaaSSebastian Reichel          snps,priority:
2458fc4deaaSSebastian Reichel            $ref: /schemas/types.yaml#/definitions/uint32
2468fc4deaaSSebastian Reichel            description: Bitmask of the tagged frames priorities assigned to the queue
2478fc4deaaSSebastian Reichel        allOf:
2488fc4deaaSSebastian Reichel          - if:
2498fc4deaaSSebastian Reichel              required:
2508fc4deaaSSebastian Reichel                - snps,dcb-algorithm
2518fc4deaaSSebastian Reichel            then:
2528fc4deaaSSebastian Reichel              properties:
2538fc4deaaSSebastian Reichel                snps,avb-algorithm: false
2548fc4deaaSSebastian Reichel          - if:
2558fc4deaaSSebastian Reichel              required:
2568fc4deaaSSebastian Reichel                - snps,avb-algorithm
2578fc4deaaSSebastian Reichel            then:
2588fc4deaaSSebastian Reichel              properties:
2598fc4deaaSSebastian Reichel                snps,dcb-algorithm: false
2608fc4deaaSSebastian Reichel          - if:
2618fc4deaaSSebastian Reichel              required:
2628fc4deaaSSebastian Reichel                - snps,route-avcp
2638fc4deaaSSebastian Reichel            then:
2648fc4deaaSSebastian Reichel              properties:
2658fc4deaaSSebastian Reichel                snps,route-ptp: false
2668fc4deaaSSebastian Reichel                snps,route-dcbcp: false
2678fc4deaaSSebastian Reichel                snps,route-up: false
2688fc4deaaSSebastian Reichel                snps,route-multi-broad: false
2698fc4deaaSSebastian Reichel          - if:
2708fc4deaaSSebastian Reichel              required:
2718fc4deaaSSebastian Reichel                - snps,route-ptp
2728fc4deaaSSebastian Reichel            then:
2738fc4deaaSSebastian Reichel              properties:
2748fc4deaaSSebastian Reichel                snps,route-avcp: false
2758fc4deaaSSebastian Reichel                snps,route-dcbcp: false
2768fc4deaaSSebastian Reichel                snps,route-up: false
2778fc4deaaSSebastian Reichel                snps,route-multi-broad: false
2788fc4deaaSSebastian Reichel          - if:
2798fc4deaaSSebastian Reichel              required:
2808fc4deaaSSebastian Reichel                - snps,route-dcbcp
2818fc4deaaSSebastian Reichel            then:
2828fc4deaaSSebastian Reichel              properties:
2838fc4deaaSSebastian Reichel                snps,route-avcp: false
2848fc4deaaSSebastian Reichel                snps,route-ptp: false
2858fc4deaaSSebastian Reichel                snps,route-up: false
2868fc4deaaSSebastian Reichel                snps,route-multi-broad: false
2878fc4deaaSSebastian Reichel          - if:
2888fc4deaaSSebastian Reichel              required:
2898fc4deaaSSebastian Reichel                - snps,route-up
2908fc4deaaSSebastian Reichel            then:
2918fc4deaaSSebastian Reichel              properties:
2928fc4deaaSSebastian Reichel                snps,route-avcp: false
2938fc4deaaSSebastian Reichel                snps,route-ptp: false
2948fc4deaaSSebastian Reichel                snps,route-dcbcp: false
2958fc4deaaSSebastian Reichel                snps,route-multi-broad: false
2968fc4deaaSSebastian Reichel          - if:
2978fc4deaaSSebastian Reichel              required:
2988fc4deaaSSebastian Reichel                - snps,route-multi-broad
2998fc4deaaSSebastian Reichel            then:
3008fc4deaaSSebastian Reichel              properties:
3018fc4deaaSSebastian Reichel                snps,route-avcp: false
3028fc4deaaSSebastian Reichel                snps,route-ptp: false
3038fc4deaaSSebastian Reichel                snps,route-dcbcp: false
3048fc4deaaSSebastian Reichel                snps,route-up: false
3058fc4deaaSSebastian Reichel        additionalProperties: false
3068fc4deaaSSebastian Reichel    additionalProperties: false
3077db3545aSMaxime Ripard
3087db3545aSMaxime Ripard  snps,mtl-tx-config:
309d69c6dddSRob Herring    $ref: /schemas/types.yaml#/definitions/phandle
3107db3545aSMaxime Ripard    description:
3118fc4deaaSSebastian Reichel      Multiple TX Queues parameters. Phandle to a node that
3128fc4deaaSSebastian Reichel      implements the 'tx-queues-config' object described in
3138fc4deaaSSebastian Reichel      this binding.
3148fc4deaaSSebastian Reichel
3158fc4deaaSSebastian Reichel  tx-queues-config:
3168fc4deaaSSebastian Reichel    type: object
3178fc4deaaSSebastian Reichel    properties:
3188fc4deaaSSebastian Reichel      snps,tx-queues-to-use:
3198fc4deaaSSebastian Reichel        $ref: /schemas/types.yaml#/definitions/uint32
3208fc4deaaSSebastian Reichel        description: number of TX queues to be used in the driver
3218fc4deaaSSebastian Reichel      snps,tx-sched-wrr:
3228fc4deaaSSebastian Reichel        type: boolean
3238fc4deaaSSebastian Reichel        description: Weighted Round Robin
3248fc4deaaSSebastian Reichel      snps,tx-sched-wfq:
3258fc4deaaSSebastian Reichel        type: boolean
3268fc4deaaSSebastian Reichel        description: Weighted Fair Queuing
3278fc4deaaSSebastian Reichel      snps,tx-sched-dwrr:
3288fc4deaaSSebastian Reichel        type: boolean
3298fc4deaaSSebastian Reichel        description: Deficit Weighted Round Robin
3308fc4deaaSSebastian Reichel      snps,tx-sched-sp:
3318fc4deaaSSebastian Reichel        type: boolean
3328fc4deaaSSebastian Reichel        description: Strict priority
3338fc4deaaSSebastian Reichel    allOf:
3348fc4deaaSSebastian Reichel      - if:
3358fc4deaaSSebastian Reichel          required:
3368fc4deaaSSebastian Reichel            - snps,tx-sched-wrr
3378fc4deaaSSebastian Reichel        then:
3388fc4deaaSSebastian Reichel          properties:
3398fc4deaaSSebastian Reichel            snps,tx-sched-wfq: false
3408fc4deaaSSebastian Reichel            snps,tx-sched-dwrr: false
3418fc4deaaSSebastian Reichel            snps,tx-sched-sp: false
3428fc4deaaSSebastian Reichel      - if:
3438fc4deaaSSebastian Reichel          required:
3448fc4deaaSSebastian Reichel            - snps,tx-sched-wfq
3458fc4deaaSSebastian Reichel        then:
3468fc4deaaSSebastian Reichel          properties:
3478fc4deaaSSebastian Reichel            snps,tx-sched-wrr: false
3488fc4deaaSSebastian Reichel            snps,tx-sched-dwrr: false
3498fc4deaaSSebastian Reichel            snps,tx-sched-sp: false
3508fc4deaaSSebastian Reichel      - if:
3518fc4deaaSSebastian Reichel          required:
3528fc4deaaSSebastian Reichel            - snps,tx-sched-dwrr
3538fc4deaaSSebastian Reichel        then:
3548fc4deaaSSebastian Reichel          properties:
3558fc4deaaSSebastian Reichel            snps,tx-sched-wrr: false
3568fc4deaaSSebastian Reichel            snps,tx-sched-wfq: false
3578fc4deaaSSebastian Reichel            snps,tx-sched-sp: false
3588fc4deaaSSebastian Reichel      - if:
3598fc4deaaSSebastian Reichel          required:
3608fc4deaaSSebastian Reichel            - snps,tx-sched-sp
3618fc4deaaSSebastian Reichel        then:
3628fc4deaaSSebastian Reichel          properties:
3638fc4deaaSSebastian Reichel            snps,tx-sched-wrr: false
3648fc4deaaSSebastian Reichel            snps,tx-sched-wfq: false
3658fc4deaaSSebastian Reichel            snps,tx-sched-dwrr: false
3668fc4deaaSSebastian Reichel    patternProperties:
3678fc4deaaSSebastian Reichel      "^queue[0-9]$":
3688fc4deaaSSebastian Reichel        description: Each subnode represents a queue.
3698fc4deaaSSebastian Reichel        type: object
3708fc4deaaSSebastian Reichel        properties:
3718fc4deaaSSebastian Reichel          snps,weight:
3728fc4deaaSSebastian Reichel            $ref: /schemas/types.yaml#/definitions/uint32
3738fc4deaaSSebastian Reichel            description: TX queue weight (if using a DCB weight algorithm)
3748fc4deaaSSebastian Reichel          snps,dcb-algorithm:
3758fc4deaaSSebastian Reichel            type: boolean
3768fc4deaaSSebastian Reichel            description: TX queue will be working in DCB
3778fc4deaaSSebastian Reichel          snps,avb-algorithm:
3788fc4deaaSSebastian Reichel            type: boolean
3798fc4deaaSSebastian Reichel            description:
3808fc4deaaSSebastian Reichel              TX queue will be working in AVB.
3818fc4deaaSSebastian Reichel              Queue 0 is reserved for legacy traffic and so no AVB is
3828fc4deaaSSebastian Reichel              available in this queue.
3838fc4deaaSSebastian Reichel          snps,send_slope:
3848fc4deaaSSebastian Reichel            $ref: /schemas/types.yaml#/definitions/uint32
3858fc4deaaSSebastian Reichel            description: enable Low Power Interface
3868fc4deaaSSebastian Reichel          snps,idle_slope:
3878fc4deaaSSebastian Reichel            $ref: /schemas/types.yaml#/definitions/uint32
3888fc4deaaSSebastian Reichel            description: unlock on WoL
3898fc4deaaSSebastian Reichel          snps,high_credit:
3908fc4deaaSSebastian Reichel            $ref: /schemas/types.yaml#/definitions/uint32
3918fc4deaaSSebastian Reichel            description: max write outstanding req. limit
3928fc4deaaSSebastian Reichel          snps,low_credit:
3938fc4deaaSSebastian Reichel            $ref: /schemas/types.yaml#/definitions/uint32
3948fc4deaaSSebastian Reichel            description: max read outstanding req. limit
3958fc4deaaSSebastian Reichel          snps,priority:
3968fc4deaaSSebastian Reichel            $ref: /schemas/types.yaml#/definitions/uint32
3978fc4deaaSSebastian Reichel            description:
3988fc4deaaSSebastian Reichel              Bitmask of the tagged frames priorities assigned to the queue.
39993828834SSeb Laveze              When a PFC frame is received with priorities matching the bitmask,
40093828834SSeb Laveze              the queue is blocked from transmitting for the pause time specified
40193828834SSeb Laveze              in the PFC frame.
4026fb8c20aSRohan G Thomas
4036fb8c20aSRohan G Thomas          snps,coe-unsupported:
4046fb8c20aSRohan G Thomas            type: boolean
4056fb8c20aSRohan G Thomas            description: TX checksum offload is unsupported by the TX queue.
4066fb8c20aSRohan G Thomas
4078fc4deaaSSebastian Reichel        allOf:
4088fc4deaaSSebastian Reichel          - if:
4098fc4deaaSSebastian Reichel              required:
4108fc4deaaSSebastian Reichel                - snps,dcb-algorithm
4118fc4deaaSSebastian Reichel            then:
4128fc4deaaSSebastian Reichel              properties:
4138fc4deaaSSebastian Reichel                snps,avb-algorithm: false
4148fc4deaaSSebastian Reichel          - if:
4158fc4deaaSSebastian Reichel              required:
4168fc4deaaSSebastian Reichel                - snps,avb-algorithm
4178fc4deaaSSebastian Reichel            then:
4188fc4deaaSSebastian Reichel              properties:
4198fc4deaaSSebastian Reichel                snps,dcb-algorithm: false
4208fc4deaaSSebastian Reichel                snps,weight: false
4218fc4deaaSSebastian Reichel        additionalProperties: false
4228fc4deaaSSebastian Reichel    additionalProperties: false
4237db3545aSMaxime Ripard
4247db3545aSMaxime Ripard  snps,reset-gpio:
425f80b1dfcSMaxime Ripard    deprecated: true
4267db3545aSMaxime Ripard    maxItems: 1
4277db3545aSMaxime Ripard    description:
4287db3545aSMaxime Ripard      PHY Reset GPIO
4297db3545aSMaxime Ripard
4307db3545aSMaxime Ripard  snps,reset-active-low:
431f80b1dfcSMaxime Ripard    deprecated: true
432d69c6dddSRob Herring    $ref: /schemas/types.yaml#/definitions/flag
4337db3545aSMaxime Ripard    description:
4347db3545aSMaxime Ripard      Indicates that the PHY Reset is active low
4357db3545aSMaxime Ripard
4367db3545aSMaxime Ripard  snps,reset-delays-us:
437f80b1dfcSMaxime Ripard    deprecated: true
4387db3545aSMaxime Ripard    description:
4397db3545aSMaxime Ripard      Triplet of delays. The 1st cell is reset pre-delay in micro
4407db3545aSMaxime Ripard      seconds. The 2nd cell is reset pulse in micro seconds. The 3rd
4417db3545aSMaxime Ripard      cell is reset post-delay in micro seconds.
4423d21a460SRob Herring    minItems: 3
4433d21a460SRob Herring    maxItems: 3
4447db3545aSMaxime Ripard
4457db3545aSMaxime Ripard  snps,aal:
446d69c6dddSRob Herring    $ref: /schemas/types.yaml#/definitions/flag
4477db3545aSMaxime Ripard    description:
4487db3545aSMaxime Ripard      Use Address-Aligned Beats
4497db3545aSMaxime Ripard
4507db3545aSMaxime Ripard  snps,fixed-burst:
451d69c6dddSRob Herring    $ref: /schemas/types.yaml#/definitions/flag
4527db3545aSMaxime Ripard    description:
4537db3545aSMaxime Ripard      Program the DMA to use the fixed burst mode
4547db3545aSMaxime Ripard
4557db3545aSMaxime Ripard  snps,mixed-burst:
456d69c6dddSRob Herring    $ref: /schemas/types.yaml#/definitions/flag
4577db3545aSMaxime Ripard    description:
4587db3545aSMaxime Ripard      Program the DMA to use the mixed burst mode
4597db3545aSMaxime Ripard
4607db3545aSMaxime Ripard  snps,force_thresh_dma_mode:
461d69c6dddSRob Herring    $ref: /schemas/types.yaml#/definitions/flag
4627db3545aSMaxime Ripard    description:
4637db3545aSMaxime Ripard      Force DMA to use the threshold mode for both tx and rx
4647db3545aSMaxime Ripard
4657db3545aSMaxime Ripard  snps,force_sf_dma_mode:
466d69c6dddSRob Herring    $ref: /schemas/types.yaml#/definitions/flag
4677db3545aSMaxime Ripard    description:
4687db3545aSMaxime Ripard      Force DMA to use the Store and Forward mode for both tx and
4697db3545aSMaxime Ripard      rx. This flag is ignored if force_thresh_dma_mode is set.
4707db3545aSMaxime Ripard
4717db3545aSMaxime Ripard  snps,en-tx-lpi-clockgating:
472d69c6dddSRob Herring    $ref: /schemas/types.yaml#/definitions/flag
4737db3545aSMaxime Ripard    description:
4747db3545aSMaxime Ripard      Enable gating of the MAC TX clock during TX low-power mode
4757db3545aSMaxime Ripard
4767db3545aSMaxime Ripard  snps,multicast-filter-bins:
477d69c6dddSRob Herring    $ref: /schemas/types.yaml#/definitions/uint32
4787db3545aSMaxime Ripard    description:
4797db3545aSMaxime Ripard      Number of multicast filter hash bins supported by this device
4807db3545aSMaxime Ripard      instance
4817db3545aSMaxime Ripard
4827db3545aSMaxime Ripard  snps,perfect-filter-entries:
483d69c6dddSRob Herring    $ref: /schemas/types.yaml#/definitions/uint32
4847db3545aSMaxime Ripard    description:
4857db3545aSMaxime Ripard      Number of perfect filter entries supported by this device
4867db3545aSMaxime Ripard      instance
4877db3545aSMaxime Ripard
4887db3545aSMaxime Ripard  snps,ps-speed:
489d69c6dddSRob Herring    $ref: /schemas/types.yaml#/definitions/uint32
4907db3545aSMaxime Ripard    description:
4917db3545aSMaxime Ripard      Port selection speed that can be passed to the core when PCS
4927db3545aSMaxime Ripard      is supported. For example, this is used in case of SGMII and
4937db3545aSMaxime Ripard      MAC2MAC connection.
4947db3545aSMaxime Ripard
49522ba1afdSJianguo Zhang  snps,clk-csr:
49622ba1afdSJianguo Zhang    $ref: /schemas/types.yaml#/definitions/uint32
49722ba1afdSJianguo Zhang    description:
49822ba1afdSJianguo Zhang      Frequency division factor for MDC clock.
49922ba1afdSJianguo Zhang
5007db3545aSMaxime Ripard  mdio:
501b2d28642SRob Herring    $ref: mdio.yaml#
502b2d28642SRob Herring    unevaluatedProperties: false
5037db3545aSMaxime Ripard    description:
5047db3545aSMaxime Ripard      Creates and registers an MDIO bus.
5057db3545aSMaxime Ripard
5067db3545aSMaxime Ripard    properties:
5077db3545aSMaxime Ripard      compatible:
5087db3545aSMaxime Ripard        const: snps,dwmac-mdio
5097db3545aSMaxime Ripard
5107db3545aSMaxime Ripard    required:
5117db3545aSMaxime Ripard      - compatible
5127db3545aSMaxime Ripard
5135361660aSMarek Vasut  stmmac-axi-config:
5145361660aSMarek Vasut    type: object
5155361660aSMarek Vasut    unevaluatedProperties: false
5165361660aSMarek Vasut    description:
5175361660aSMarek Vasut      AXI BUS Mode parameters.
5185361660aSMarek Vasut
5195361660aSMarek Vasut    properties:
5205361660aSMarek Vasut      snps,lpi_en:
5215361660aSMarek Vasut        $ref: /schemas/types.yaml#/definitions/flag
5225361660aSMarek Vasut        description:
5235361660aSMarek Vasut          enable Low Power Interface
5245361660aSMarek Vasut
5255361660aSMarek Vasut      snps,xit_frm:
5265361660aSMarek Vasut        $ref: /schemas/types.yaml#/definitions/flag
5275361660aSMarek Vasut        description:
5285361660aSMarek Vasut          unlock on WoL
5295361660aSMarek Vasut
5305361660aSMarek Vasut      snps,wr_osr_lmt:
5315361660aSMarek Vasut        $ref: /schemas/types.yaml#/definitions/uint32
5325361660aSMarek Vasut        description:
5335361660aSMarek Vasut          max write outstanding req. limit
5345361660aSMarek Vasut
5355361660aSMarek Vasut      snps,rd_osr_lmt:
5365361660aSMarek Vasut        $ref: /schemas/types.yaml#/definitions/uint32
5375361660aSMarek Vasut        description:
5385361660aSMarek Vasut          max read outstanding req. limit
5395361660aSMarek Vasut
5405361660aSMarek Vasut      snps,kbbe:
5415361660aSMarek Vasut        $ref: /schemas/types.yaml#/definitions/uint32
5425361660aSMarek Vasut        description:
5435361660aSMarek Vasut          do not cross 1KiB boundary.
5445361660aSMarek Vasut
5455361660aSMarek Vasut      snps,blen:
5465361660aSMarek Vasut        $ref: /schemas/types.yaml#/definitions/uint32-array
5475361660aSMarek Vasut        description:
5485361660aSMarek Vasut          this is a vector of supported burst length.
5495361660aSMarek Vasut        minItems: 7
5505361660aSMarek Vasut        maxItems: 7
5515361660aSMarek Vasut
5525361660aSMarek Vasut      snps,fb:
5535361660aSMarek Vasut        $ref: /schemas/types.yaml#/definitions/flag
5545361660aSMarek Vasut        description:
5555361660aSMarek Vasut          fixed-burst
5565361660aSMarek Vasut
5575361660aSMarek Vasut      snps,mb:
5585361660aSMarek Vasut        $ref: /schemas/types.yaml#/definitions/flag
5595361660aSMarek Vasut        description:
5605361660aSMarek Vasut          mixed-burst
5615361660aSMarek Vasut
5625361660aSMarek Vasut      snps,rb:
5635361660aSMarek Vasut        $ref: /schemas/types.yaml#/definitions/flag
5645361660aSMarek Vasut        description:
5655361660aSMarek Vasut          rebuild INCRx Burst
5665361660aSMarek Vasut
5677db3545aSMaxime Ripardrequired:
5687db3545aSMaxime Ripard  - compatible
5697db3545aSMaxime Ripard  - reg
5707db3545aSMaxime Ripard  - interrupts
5717db3545aSMaxime Ripard  - interrupt-names
57267d0da99SMaxime Ripard  - phy-mode
5737db3545aSMaxime Ripard
5747db3545aSMaxime Riparddependencies:
5757db3545aSMaxime Ripard  snps,reset-active-low: ["snps,reset-gpio"]
576affb6a3fSAndrew Halaney  snps,reset-delays-us: ["snps,reset-gpio"]
5777db3545aSMaxime Ripard
5787db3545aSMaxime RipardallOf:
5793079bfdbSRob Herring  - $ref: ethernet-controller.yaml#
5807db3545aSMaxime Ripard  - if:
5817db3545aSMaxime Ripard      properties:
5827db3545aSMaxime Ripard        compatible:
5837db3545aSMaxime Ripard          contains:
5847db3545aSMaxime Ripard            enum:
5854b859450SMaxime Ripard              - allwinner,sun7i-a20-gmac
5860569929dSMaxime Ripard              - allwinner,sun8i-a83t-emac
5870569929dSMaxime Ripard              - allwinner,sun8i-h3-emac
588b33be51cSMaxime Ripard              - allwinner,sun8i-r40-gmac
5890569929dSMaxime Ripard              - allwinner,sun8i-v3s-emac
5900569929dSMaxime Ripard              - allwinner,sun50i-a64-emac
5913b840106S周琰杰 (Zhou Yanjie)              - ingenic,jz4775-mac
5923b840106S周琰杰 (Zhou Yanjie)              - ingenic,x1000-mac
5933b840106S周琰杰 (Zhou Yanjie)              - ingenic,x1600-mac
5943b840106S周琰杰 (Zhou Yanjie)              - ingenic,x1830-mac
5953b840106S周琰杰 (Zhou Yanjie)              - ingenic,x2000-mac
596d0e3d29fSBartosz Golaszewski              - qcom,sa8775p-ethqos
59725926a70SAndrew Halaney              - qcom,sc8280xp-ethqos
5981d01efafSRob Herring              - snps,dwmac-3.50a
5991d01efafSRob Herring              - snps,dwmac-4.10a
6001d01efafSRob Herring              - snps,dwmac-4.20a
60113f93511SEmil Renner Berthing              - snps,dwmac-5.20
6027db3545aSMaxime Ripard              - snps,dwxgmac
6037db3545aSMaxime Ripard              - snps,dwxgmac-2.10
6047db3545aSMaxime Ripard              - st,spear600-gmac
6057db3545aSMaxime Ripard
6067db3545aSMaxime Ripard    then:
6077db3545aSMaxime Ripard      properties:
6087db3545aSMaxime Ripard        snps,pbl:
6097db3545aSMaxime Ripard          description:
6107db3545aSMaxime Ripard            Programmable Burst Length (tx and rx)
611d69c6dddSRob Herring          $ref: /schemas/types.yaml#/definitions/uint32
61209a2fb41SBiao Huang          enum: [1, 2, 4, 8, 16, 32]
6137db3545aSMaxime Ripard
6147db3545aSMaxime Ripard        snps,txpbl:
6157db3545aSMaxime Ripard          description:
6167db3545aSMaxime Ripard            Tx Programmable Burst Length. If set, DMA tx will use this
6177db3545aSMaxime Ripard            value rather than snps,pbl.
618d69c6dddSRob Herring          $ref: /schemas/types.yaml#/definitions/uint32
61909a2fb41SBiao Huang          enum: [1, 2, 4, 8, 16, 32]
6207db3545aSMaxime Ripard
6217db3545aSMaxime Ripard        snps,rxpbl:
6227db3545aSMaxime Ripard          description:
6237db3545aSMaxime Ripard            Rx Programmable Burst Length. If set, DMA rx will use this
6247db3545aSMaxime Ripard            value rather than snps,pbl.
625d69c6dddSRob Herring          $ref: /schemas/types.yaml#/definitions/uint32
62609a2fb41SBiao Huang          enum: [1, 2, 4, 8, 16, 32]
6277db3545aSMaxime Ripard
6287db3545aSMaxime Ripard        snps,no-pbl-x8:
629d69c6dddSRob Herring          $ref: /schemas/types.yaml#/definitions/flag
6307db3545aSMaxime Ripard          description:
6317db3545aSMaxime Ripard            Don\'t multiply the pbl/txpbl/rxpbl values by 8. For core
6327db3545aSMaxime Ripard            rev < 3.50, don\'t multiply the values by 4.
6337db3545aSMaxime Ripard
6347db3545aSMaxime Ripard  - if:
6357db3545aSMaxime Ripard      properties:
6367db3545aSMaxime Ripard        compatible:
6377db3545aSMaxime Ripard          contains:
6387db3545aSMaxime Ripard            enum:
6394b859450SMaxime Ripard              - allwinner,sun7i-a20-gmac
6400569929dSMaxime Ripard              - allwinner,sun8i-a83t-emac
6410569929dSMaxime Ripard              - allwinner,sun8i-h3-emac
642b33be51cSMaxime Ripard              - allwinner,sun8i-r40-gmac
6430569929dSMaxime Ripard              - allwinner,sun8i-v3s-emac
6440569929dSMaxime Ripard              - allwinner,sun50i-a64-emac
64568277749SQing Zhang              - loongson,ls2k-dwmac
64668277749SQing Zhang              - loongson,ls7a-dwmac
6473b840106S周琰杰 (Zhou Yanjie)              - ingenic,jz4775-mac
6483b840106S周琰杰 (Zhou Yanjie)              - ingenic,x1000-mac
6493b840106S周琰杰 (Zhou Yanjie)              - ingenic,x1600-mac
6503b840106S周琰杰 (Zhou Yanjie)              - ingenic,x1830-mac
6513b840106S周琰杰 (Zhou Yanjie)              - ingenic,x2000-mac
652d70c215bSBhupesh Sharma              - qcom,qcs404-ethqos
653d0e3d29fSBartosz Golaszewski              - qcom,sa8775p-ethqos
65425926a70SAndrew Halaney              - qcom,sc8280xp-ethqos
655d70c215bSBhupesh Sharma              - qcom,sm8150-ethqos
6567db3545aSMaxime Ripard              - snps,dwmac-4.00
6577db3545aSMaxime Ripard              - snps,dwmac-4.10a
658f2253143SChristophe Roullier              - snps,dwmac-4.20a
659bdad810eSJoakim Zhang              - snps,dwmac-5.10a
66013f93511SEmil Renner Berthing              - snps,dwmac-5.20
6617db3545aSMaxime Ripard              - snps,dwxgmac
6627db3545aSMaxime Ripard              - snps,dwxgmac-2.10
6637db3545aSMaxime Ripard              - st,spear600-gmac
6647db3545aSMaxime Ripard
6657db3545aSMaxime Ripard    then:
666dbce0b65SRob Herring      properties:
6677db3545aSMaxime Ripard        snps,tso:
668d69c6dddSRob Herring          $ref: /schemas/types.yaml#/definitions/flag
6697db3545aSMaxime Ripard          description:
6707db3545aSMaxime Ripard            Enables the TSO feature otherwise it will be managed by
6717db3545aSMaxime Ripard            MAC HW capability register.
6727db3545aSMaxime Ripard
6736a0e321eSRob HerringadditionalProperties: true
6746a0e321eSRob Herring
6757db3545aSMaxime Ripardexamples:
6767db3545aSMaxime Ripard  - |
6778fc4deaaSSebastian Reichel    gmac0: ethernet@e0800000 {
6788fc4deaaSSebastian Reichel        compatible = "snps,dwxgmac-2.10", "snps,dwxgmac";
6798fc4deaaSSebastian Reichel        reg = <0xe0800000 0x8000>;
6808fc4deaaSSebastian Reichel        interrupt-parent = <&vic1>;
6818fc4deaaSSebastian Reichel        interrupts = <24 23 22>;
6828fc4deaaSSebastian Reichel        interrupt-names = "macirq", "eth_wake_irq", "eth_lpi";
6838fc4deaaSSebastian Reichel        mac-address = [000000000000]; /* Filled in by U-Boot */
6848fc4deaaSSebastian Reichel        max-frame-size = <3800>;
6858fc4deaaSSebastian Reichel        phy-mode = "gmii";
6868fc4deaaSSebastian Reichel        snps,multicast-filter-bins = <256>;
6878fc4deaaSSebastian Reichel        snps,perfect-filter-entries = <128>;
6888fc4deaaSSebastian Reichel        rx-fifo-depth = <16384>;
6898fc4deaaSSebastian Reichel        tx-fifo-depth = <16384>;
6908fc4deaaSSebastian Reichel        clocks = <&clock>;
6918fc4deaaSSebastian Reichel        clock-names = "stmmaceth";
6928fc4deaaSSebastian Reichel        snps,axi-config = <&stmmac_axi_setup>;
6938fc4deaaSSebastian Reichel        snps,mtl-rx-config = <&mtl_rx_setup>;
6948fc4deaaSSebastian Reichel        snps,mtl-tx-config = <&mtl_tx_setup>;
6958fc4deaaSSebastian Reichel
6967db3545aSMaxime Ripard        stmmac_axi_setup: stmmac-axi-config {
6977db3545aSMaxime Ripard            snps,wr_osr_lmt = <0xf>;
6987db3545aSMaxime Ripard            snps,rd_osr_lmt = <0xf>;
6997db3545aSMaxime Ripard            snps,blen = <256 128 64 32 0 0 0>;
7007db3545aSMaxime Ripard        };
7017db3545aSMaxime Ripard
7027db3545aSMaxime Ripard        mtl_rx_setup: rx-queues-config {
7037db3545aSMaxime Ripard            snps,rx-queues-to-use = <1>;
7047db3545aSMaxime Ripard            snps,rx-sched-sp;
7057db3545aSMaxime Ripard            queue0 {
7067db3545aSMaxime Ripard                snps,dcb-algorithm;
7077db3545aSMaxime Ripard                snps,map-to-dma-channel = <0x0>;
7087db3545aSMaxime Ripard                snps,priority = <0x0>;
7097db3545aSMaxime Ripard            };
7107db3545aSMaxime Ripard        };
7117db3545aSMaxime Ripard
7127db3545aSMaxime Ripard        mtl_tx_setup: tx-queues-config {
7137db3545aSMaxime Ripard            snps,tx-queues-to-use = <2>;
7147db3545aSMaxime Ripard            snps,tx-sched-wrr;
7157db3545aSMaxime Ripard            queue0 {
7167db3545aSMaxime Ripard                snps,weight = <0x10>;
7177db3545aSMaxime Ripard                snps,dcb-algorithm;
7187db3545aSMaxime Ripard                snps,priority = <0x0>;
7197db3545aSMaxime Ripard            };
7207db3545aSMaxime Ripard
7217db3545aSMaxime Ripard            queue1 {
7227db3545aSMaxime Ripard                snps,avb-algorithm;
7237db3545aSMaxime Ripard                snps,send_slope = <0x1000>;
7247db3545aSMaxime Ripard                snps,idle_slope = <0x1000>;
7257db3545aSMaxime Ripard                snps,high_credit = <0x3E800>;
7267db3545aSMaxime Ripard                snps,low_credit = <0xFFC18000>;
7277db3545aSMaxime Ripard                snps,priority = <0x1>;
7287db3545aSMaxime Ripard            };
7297db3545aSMaxime Ripard        };
7307db3545aSMaxime Ripard
7317db3545aSMaxime Ripard        mdio0 {
7327db3545aSMaxime Ripard            #address-cells = <1>;
7337db3545aSMaxime Ripard            #size-cells = <0>;
7347db3545aSMaxime Ripard            compatible = "snps,dwmac-mdio";
7357db3545aSMaxime Ripard            phy1: ethernet-phy@0 {
7367db3545aSMaxime Ripard                reg = <0>;
7377db3545aSMaxime Ripard            };
7387db3545aSMaxime Ripard        };
7397db3545aSMaxime Ripard    };
7407db3545aSMaxime Ripard
7417db3545aSMaxime Ripard# FIXME: We should set it, but it would report all the generic
7427db3545aSMaxime Ripard# properties as additional properties.
7437db3545aSMaxime Ripard# additionalProperties: false
7447db3545aSMaxime Ripard
7457db3545aSMaxime Ripard...
746