xref: /openbmc/linux/Documentation/devicetree/bindings/net/snps,dwmac.yaml (revision 7d7ae873b5e0f46d19e5dc818d1a7809e4b7cc81)
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
98b76eaf7dSYanhong Wang        - starfive,jh7110-dwmac
997db3545aSMaxime Ripard
1007db3545aSMaxime Ripard  reg:
10157b77df7SNeil Armstrong    minItems: 1
10257b77df7SNeil Armstrong    maxItems: 2
1037db3545aSMaxime Ripard
1047db3545aSMaxime Ripard  interrupts:
1057db3545aSMaxime Ripard    minItems: 1
1067db3545aSMaxime Ripard    items:
1077db3545aSMaxime Ripard      - description: Combined signal for various interrupt events
1087db3545aSMaxime Ripard      - description: The interrupt to manage the remote wake-up packet detection
1097db3545aSMaxime Ripard      - description: The interrupt that occurs when Rx exits the LPI state
1107db3545aSMaxime Ripard
1117db3545aSMaxime Ripard  interrupt-names:
1127db3545aSMaxime Ripard    minItems: 1
1137db3545aSMaxime Ripard    items:
1147db3545aSMaxime Ripard      - const: macirq
115d554ba0eSBhupesh Sharma      - enum: [eth_wake_irq, eth_lpi]
1167db3545aSMaxime Ripard      - const: eth_lpi
1177db3545aSMaxime Ripard
1187db3545aSMaxime Ripard  clocks:
1197db3545aSMaxime Ripard    minItems: 1
120517a882aSEzequiel Garcia    maxItems: 8
121f2253143SChristophe Roullier    additionalItems: true
1227db3545aSMaxime Ripard    items:
1237db3545aSMaxime Ripard      - description: GMAC main clock
1247db3545aSMaxime Ripard      - description: Peripheral registers interface clock
1257db3545aSMaxime Ripard      - description:
1267db3545aSMaxime Ripard          PTP reference clock. This clock is used for programming the
1277db3545aSMaxime Ripard          Timestamp Addend Register. If not passed then the system
1287db3545aSMaxime Ripard          clock will be used and this is fine on some platforms.
1297db3545aSMaxime Ripard
1307db3545aSMaxime Ripard  clock-names:
131f2253143SChristophe Roullier    minItems: 1
132517a882aSEzequiel Garcia    maxItems: 8
1337db3545aSMaxime Ripard    additionalItems: true
1347db3545aSMaxime Ripard    contains:
1357db3545aSMaxime Ripard      enum:
1367db3545aSMaxime Ripard        - stmmaceth
1377db3545aSMaxime Ripard        - pclk
1387db3545aSMaxime Ripard        - ptp_ref
1397db3545aSMaxime Ripard
1407db3545aSMaxime Ripard  resets:
141843f6037SSamin Guo    minItems: 1
142843f6037SSamin Guo    items:
143843f6037SSamin Guo      - description: GMAC stmmaceth reset
144843f6037SSamin Guo      - description: AHB reset
1457db3545aSMaxime Ripard
1467db3545aSMaxime Ripard  reset-names:
147843f6037SSamin Guo    minItems: 1
148843f6037SSamin Guo    items:
149843f6037SSamin Guo      - const: stmmaceth
150843f6037SSamin Guo      - const: ahb
1517db3545aSMaxime Ripard
152955fe312SClément Léger  power-domains:
153955fe312SClément Léger    maxItems: 1
154955fe312SClément Léger
1559c15d359SAlexandru Ardelean  mac-mode:
1569e5c8d39SAlexandru Ardelean    $ref: ethernet-controller.yaml#/properties/phy-connection-type
1579c15d359SAlexandru Ardelean    description:
1589c15d359SAlexandru Ardelean      The property is identical to 'phy-mode', and assumes that there is mode
1599c15d359SAlexandru Ardelean      converter in-between the MAC & PHY (e.g. GMII-to-RGMII). This converter
1609c15d359SAlexandru Ardelean      can be passive (no SW requirement), and requires that the MAC operate
1619c15d359SAlexandru Ardelean      in a different mode than the PHY in order to function.
1629c15d359SAlexandru Ardelean
1637db3545aSMaxime Ripard  snps,axi-config:
164d69c6dddSRob Herring    $ref: /schemas/types.yaml#/definitions/phandle
1657db3545aSMaxime Ripard    description:
1667db3545aSMaxime Ripard      AXI BUS Mode parameters. Phandle to a node that can contain the
1677db3545aSMaxime Ripard      following properties
1687db3545aSMaxime Ripard        * snps,lpi_en, enable Low Power Interface
1697db3545aSMaxime Ripard        * snps,xit_frm, unlock on WoL
1707db3545aSMaxime Ripard        * snps,wr_osr_lmt, max write outstanding req. limit
1717db3545aSMaxime Ripard        * snps,rd_osr_lmt, max read outstanding req. limit
1727db3545aSMaxime Ripard        * snps,kbbe, do not cross 1KiB boundary.
1737db3545aSMaxime Ripard        * snps,blen, this is a vector of supported burst length.
1747db3545aSMaxime Ripard        * snps,fb, fixed-burst
1757db3545aSMaxime Ripard        * snps,mb, mixed-burst
1767db3545aSMaxime Ripard        * snps,rb, rebuild INCRx Burst
1777db3545aSMaxime Ripard
1787db3545aSMaxime Ripard  snps,mtl-rx-config:
179d69c6dddSRob Herring    $ref: /schemas/types.yaml#/definitions/phandle
1807db3545aSMaxime Ripard    description:
1818fc4deaaSSebastian Reichel      Multiple RX Queues parameters. Phandle to a node that
1828fc4deaaSSebastian Reichel      implements the 'rx-queues-config' object described in
1838fc4deaaSSebastian Reichel      this binding.
1848fc4deaaSSebastian Reichel
1858fc4deaaSSebastian Reichel  rx-queues-config:
1868fc4deaaSSebastian Reichel    type: object
1878fc4deaaSSebastian Reichel    properties:
1888fc4deaaSSebastian Reichel      snps,rx-queues-to-use:
1898fc4deaaSSebastian Reichel        $ref: /schemas/types.yaml#/definitions/uint32
1908fc4deaaSSebastian Reichel        description: number of RX queues to be used in the driver
1918fc4deaaSSebastian Reichel      snps,rx-sched-sp:
1928fc4deaaSSebastian Reichel        type: boolean
1938fc4deaaSSebastian Reichel        description: Strict priority
1948fc4deaaSSebastian Reichel      snps,rx-sched-wsp:
1958fc4deaaSSebastian Reichel        type: boolean
1968fc4deaaSSebastian Reichel        description: Weighted Strict priority
1978fc4deaaSSebastian Reichel    allOf:
1988fc4deaaSSebastian Reichel      - if:
1998fc4deaaSSebastian Reichel          required:
2008fc4deaaSSebastian Reichel            - snps,rx-sched-sp
2018fc4deaaSSebastian Reichel        then:
2028fc4deaaSSebastian Reichel          properties:
2038fc4deaaSSebastian Reichel            snps,rx-sched-wsp: false
2048fc4deaaSSebastian Reichel      - if:
2058fc4deaaSSebastian Reichel          required:
2068fc4deaaSSebastian Reichel            - snps,rx-sched-wsp
2078fc4deaaSSebastian Reichel        then:
2088fc4deaaSSebastian Reichel          properties:
2098fc4deaaSSebastian Reichel            snps,rx-sched-sp: false
2108fc4deaaSSebastian Reichel    patternProperties:
2118fc4deaaSSebastian Reichel      "^queue[0-9]$":
2128fc4deaaSSebastian Reichel        description: Each subnode represents a queue.
2138fc4deaaSSebastian Reichel        type: object
2148fc4deaaSSebastian Reichel        properties:
2158fc4deaaSSebastian Reichel          snps,dcb-algorithm:
2168fc4deaaSSebastian Reichel            type: boolean
2178fc4deaaSSebastian Reichel            description: Queue to be enabled as DCB
2188fc4deaaSSebastian Reichel          snps,avb-algorithm:
2198fc4deaaSSebastian Reichel            type: boolean
2208fc4deaaSSebastian Reichel            description: Queue to be enabled as AVB
2218fc4deaaSSebastian Reichel          snps,map-to-dma-channel:
2228fc4deaaSSebastian Reichel            $ref: /schemas/types.yaml#/definitions/uint32
2238fc4deaaSSebastian Reichel            description: DMA channel id to map
2248fc4deaaSSebastian Reichel          snps,route-avcp:
2258fc4deaaSSebastian Reichel            type: boolean
2268fc4deaaSSebastian Reichel            description: AV Untagged Control packets
2278fc4deaaSSebastian Reichel          snps,route-ptp:
2288fc4deaaSSebastian Reichel            type: boolean
2298fc4deaaSSebastian Reichel            description: PTP Packets
2308fc4deaaSSebastian Reichel          snps,route-dcbcp:
2318fc4deaaSSebastian Reichel            type: boolean
2328fc4deaaSSebastian Reichel            description: DCB Control Packets
2338fc4deaaSSebastian Reichel          snps,route-up:
2348fc4deaaSSebastian Reichel            type: boolean
2358fc4deaaSSebastian Reichel            description: Untagged Packets
2368fc4deaaSSebastian Reichel          snps,route-multi-broad:
2378fc4deaaSSebastian Reichel            type: boolean
2388fc4deaaSSebastian Reichel            description: Multicast & Broadcast Packets
2398fc4deaaSSebastian Reichel          snps,priority:
2408fc4deaaSSebastian Reichel            $ref: /schemas/types.yaml#/definitions/uint32
2418fc4deaaSSebastian Reichel            description: Bitmask of the tagged frames priorities assigned to the queue
2428fc4deaaSSebastian Reichel        allOf:
2438fc4deaaSSebastian Reichel          - if:
2448fc4deaaSSebastian Reichel              required:
2458fc4deaaSSebastian Reichel                - snps,dcb-algorithm
2468fc4deaaSSebastian Reichel            then:
2478fc4deaaSSebastian Reichel              properties:
2488fc4deaaSSebastian Reichel                snps,avb-algorithm: false
2498fc4deaaSSebastian Reichel          - if:
2508fc4deaaSSebastian Reichel              required:
2518fc4deaaSSebastian Reichel                - snps,avb-algorithm
2528fc4deaaSSebastian Reichel            then:
2538fc4deaaSSebastian Reichel              properties:
2548fc4deaaSSebastian Reichel                snps,dcb-algorithm: false
2558fc4deaaSSebastian Reichel          - if:
2568fc4deaaSSebastian Reichel              required:
2578fc4deaaSSebastian Reichel                - snps,route-avcp
2588fc4deaaSSebastian Reichel            then:
2598fc4deaaSSebastian Reichel              properties:
2608fc4deaaSSebastian Reichel                snps,route-ptp: false
2618fc4deaaSSebastian Reichel                snps,route-dcbcp: false
2628fc4deaaSSebastian Reichel                snps,route-up: false
2638fc4deaaSSebastian Reichel                snps,route-multi-broad: false
2648fc4deaaSSebastian Reichel          - if:
2658fc4deaaSSebastian Reichel              required:
2668fc4deaaSSebastian Reichel                - snps,route-ptp
2678fc4deaaSSebastian Reichel            then:
2688fc4deaaSSebastian Reichel              properties:
2698fc4deaaSSebastian Reichel                snps,route-avcp: false
2708fc4deaaSSebastian Reichel                snps,route-dcbcp: false
2718fc4deaaSSebastian Reichel                snps,route-up: false
2728fc4deaaSSebastian Reichel                snps,route-multi-broad: false
2738fc4deaaSSebastian Reichel          - if:
2748fc4deaaSSebastian Reichel              required:
2758fc4deaaSSebastian Reichel                - snps,route-dcbcp
2768fc4deaaSSebastian Reichel            then:
2778fc4deaaSSebastian Reichel              properties:
2788fc4deaaSSebastian Reichel                snps,route-avcp: false
2798fc4deaaSSebastian Reichel                snps,route-ptp: false
2808fc4deaaSSebastian Reichel                snps,route-up: false
2818fc4deaaSSebastian Reichel                snps,route-multi-broad: false
2828fc4deaaSSebastian Reichel          - if:
2838fc4deaaSSebastian Reichel              required:
2848fc4deaaSSebastian Reichel                - snps,route-up
2858fc4deaaSSebastian Reichel            then:
2868fc4deaaSSebastian Reichel              properties:
2878fc4deaaSSebastian Reichel                snps,route-avcp: false
2888fc4deaaSSebastian Reichel                snps,route-ptp: false
2898fc4deaaSSebastian Reichel                snps,route-dcbcp: false
2908fc4deaaSSebastian Reichel                snps,route-multi-broad: false
2918fc4deaaSSebastian Reichel          - if:
2928fc4deaaSSebastian Reichel              required:
2938fc4deaaSSebastian Reichel                - snps,route-multi-broad
2948fc4deaaSSebastian Reichel            then:
2958fc4deaaSSebastian Reichel              properties:
2968fc4deaaSSebastian Reichel                snps,route-avcp: false
2978fc4deaaSSebastian Reichel                snps,route-ptp: false
2988fc4deaaSSebastian Reichel                snps,route-dcbcp: false
2998fc4deaaSSebastian Reichel                snps,route-up: false
3008fc4deaaSSebastian Reichel        additionalProperties: false
3018fc4deaaSSebastian Reichel    additionalProperties: false
3027db3545aSMaxime Ripard
3037db3545aSMaxime Ripard  snps,mtl-tx-config:
304d69c6dddSRob Herring    $ref: /schemas/types.yaml#/definitions/phandle
3057db3545aSMaxime Ripard    description:
3068fc4deaaSSebastian Reichel      Multiple TX Queues parameters. Phandle to a node that
3078fc4deaaSSebastian Reichel      implements the 'tx-queues-config' object described in
3088fc4deaaSSebastian Reichel      this binding.
3098fc4deaaSSebastian Reichel
3108fc4deaaSSebastian Reichel  tx-queues-config:
3118fc4deaaSSebastian Reichel    type: object
3128fc4deaaSSebastian Reichel    properties:
3138fc4deaaSSebastian Reichel      snps,tx-queues-to-use:
3148fc4deaaSSebastian Reichel        $ref: /schemas/types.yaml#/definitions/uint32
3158fc4deaaSSebastian Reichel        description: number of TX queues to be used in the driver
3168fc4deaaSSebastian Reichel      snps,tx-sched-wrr:
3178fc4deaaSSebastian Reichel        type: boolean
3188fc4deaaSSebastian Reichel        description: Weighted Round Robin
3198fc4deaaSSebastian Reichel      snps,tx-sched-wfq:
3208fc4deaaSSebastian Reichel        type: boolean
3218fc4deaaSSebastian Reichel        description: Weighted Fair Queuing
3228fc4deaaSSebastian Reichel      snps,tx-sched-dwrr:
3238fc4deaaSSebastian Reichel        type: boolean
3248fc4deaaSSebastian Reichel        description: Deficit Weighted Round Robin
3258fc4deaaSSebastian Reichel      snps,tx-sched-sp:
3268fc4deaaSSebastian Reichel        type: boolean
3278fc4deaaSSebastian Reichel        description: Strict priority
3288fc4deaaSSebastian Reichel    allOf:
3298fc4deaaSSebastian Reichel      - if:
3308fc4deaaSSebastian Reichel          required:
3318fc4deaaSSebastian Reichel            - snps,tx-sched-wrr
3328fc4deaaSSebastian Reichel        then:
3338fc4deaaSSebastian Reichel          properties:
3348fc4deaaSSebastian Reichel            snps,tx-sched-wfq: false
3358fc4deaaSSebastian Reichel            snps,tx-sched-dwrr: false
3368fc4deaaSSebastian Reichel            snps,tx-sched-sp: false
3378fc4deaaSSebastian Reichel      - if:
3388fc4deaaSSebastian Reichel          required:
3398fc4deaaSSebastian Reichel            - snps,tx-sched-wfq
3408fc4deaaSSebastian Reichel        then:
3418fc4deaaSSebastian Reichel          properties:
3428fc4deaaSSebastian Reichel            snps,tx-sched-wrr: false
3438fc4deaaSSebastian Reichel            snps,tx-sched-dwrr: false
3448fc4deaaSSebastian Reichel            snps,tx-sched-sp: false
3458fc4deaaSSebastian Reichel      - if:
3468fc4deaaSSebastian Reichel          required:
3478fc4deaaSSebastian Reichel            - snps,tx-sched-dwrr
3488fc4deaaSSebastian Reichel        then:
3498fc4deaaSSebastian Reichel          properties:
3508fc4deaaSSebastian Reichel            snps,tx-sched-wrr: false
3518fc4deaaSSebastian Reichel            snps,tx-sched-wfq: false
3528fc4deaaSSebastian Reichel            snps,tx-sched-sp: false
3538fc4deaaSSebastian Reichel      - if:
3548fc4deaaSSebastian Reichel          required:
3558fc4deaaSSebastian Reichel            - snps,tx-sched-sp
3568fc4deaaSSebastian Reichel        then:
3578fc4deaaSSebastian Reichel          properties:
3588fc4deaaSSebastian Reichel            snps,tx-sched-wrr: false
3598fc4deaaSSebastian Reichel            snps,tx-sched-wfq: false
3608fc4deaaSSebastian Reichel            snps,tx-sched-dwrr: false
3618fc4deaaSSebastian Reichel    patternProperties:
3628fc4deaaSSebastian Reichel      "^queue[0-9]$":
3638fc4deaaSSebastian Reichel        description: Each subnode represents a queue.
3648fc4deaaSSebastian Reichel        type: object
3658fc4deaaSSebastian Reichel        properties:
3668fc4deaaSSebastian Reichel          snps,weight:
3678fc4deaaSSebastian Reichel            $ref: /schemas/types.yaml#/definitions/uint32
3688fc4deaaSSebastian Reichel            description: TX queue weight (if using a DCB weight algorithm)
3698fc4deaaSSebastian Reichel          snps,dcb-algorithm:
3708fc4deaaSSebastian Reichel            type: boolean
3718fc4deaaSSebastian Reichel            description: TX queue will be working in DCB
3728fc4deaaSSebastian Reichel          snps,avb-algorithm:
3738fc4deaaSSebastian Reichel            type: boolean
3748fc4deaaSSebastian Reichel            description:
3758fc4deaaSSebastian Reichel              TX queue will be working in AVB.
3768fc4deaaSSebastian Reichel              Queue 0 is reserved for legacy traffic and so no AVB is
3778fc4deaaSSebastian Reichel              available in this queue.
3788fc4deaaSSebastian Reichel          snps,send_slope:
3798fc4deaaSSebastian Reichel            $ref: /schemas/types.yaml#/definitions/uint32
3808fc4deaaSSebastian Reichel            description: enable Low Power Interface
3818fc4deaaSSebastian Reichel          snps,idle_slope:
3828fc4deaaSSebastian Reichel            $ref: /schemas/types.yaml#/definitions/uint32
3838fc4deaaSSebastian Reichel            description: unlock on WoL
3848fc4deaaSSebastian Reichel          snps,high_credit:
3858fc4deaaSSebastian Reichel            $ref: /schemas/types.yaml#/definitions/uint32
3868fc4deaaSSebastian Reichel            description: max write outstanding req. limit
3878fc4deaaSSebastian Reichel          snps,low_credit:
3888fc4deaaSSebastian Reichel            $ref: /schemas/types.yaml#/definitions/uint32
3898fc4deaaSSebastian Reichel            description: max read outstanding req. limit
3908fc4deaaSSebastian Reichel          snps,priority:
3918fc4deaaSSebastian Reichel            $ref: /schemas/types.yaml#/definitions/uint32
3928fc4deaaSSebastian Reichel            description:
3938fc4deaaSSebastian Reichel              Bitmask of the tagged frames priorities assigned to the queue.
39493828834SSeb Laveze              When a PFC frame is received with priorities matching the bitmask,
39593828834SSeb Laveze              the queue is blocked from transmitting for the pause time specified
39693828834SSeb Laveze              in the PFC frame.
397*364366f5SRohan G Thomas
398*364366f5SRohan G Thomas          snps,coe-unsupported:
399*364366f5SRohan G Thomas            type: boolean
400*364366f5SRohan G Thomas            description: TX checksum offload is unsupported by the TX queue.
401*364366f5SRohan G Thomas
4028fc4deaaSSebastian Reichel        allOf:
4038fc4deaaSSebastian Reichel          - if:
4048fc4deaaSSebastian Reichel              required:
4058fc4deaaSSebastian Reichel                - snps,dcb-algorithm
4068fc4deaaSSebastian Reichel            then:
4078fc4deaaSSebastian Reichel              properties:
4088fc4deaaSSebastian Reichel                snps,avb-algorithm: false
4098fc4deaaSSebastian Reichel          - if:
4108fc4deaaSSebastian Reichel              required:
4118fc4deaaSSebastian Reichel                - snps,avb-algorithm
4128fc4deaaSSebastian Reichel            then:
4138fc4deaaSSebastian Reichel              properties:
4148fc4deaaSSebastian Reichel                snps,dcb-algorithm: false
4158fc4deaaSSebastian Reichel                snps,weight: false
4168fc4deaaSSebastian Reichel        additionalProperties: false
4178fc4deaaSSebastian Reichel    additionalProperties: false
4187db3545aSMaxime Ripard
4197db3545aSMaxime Ripard  snps,reset-gpio:
420f80b1dfcSMaxime Ripard    deprecated: true
4217db3545aSMaxime Ripard    maxItems: 1
4227db3545aSMaxime Ripard    description:
4237db3545aSMaxime Ripard      PHY Reset GPIO
4247db3545aSMaxime Ripard
4257db3545aSMaxime Ripard  snps,reset-active-low:
426f80b1dfcSMaxime Ripard    deprecated: true
427d69c6dddSRob Herring    $ref: /schemas/types.yaml#/definitions/flag
4287db3545aSMaxime Ripard    description:
4297db3545aSMaxime Ripard      Indicates that the PHY Reset is active low
4307db3545aSMaxime Ripard
4317db3545aSMaxime Ripard  snps,reset-delays-us:
432f80b1dfcSMaxime Ripard    deprecated: true
4337db3545aSMaxime Ripard    description:
4347db3545aSMaxime Ripard      Triplet of delays. The 1st cell is reset pre-delay in micro
4357db3545aSMaxime Ripard      seconds. The 2nd cell is reset pulse in micro seconds. The 3rd
4367db3545aSMaxime Ripard      cell is reset post-delay in micro seconds.
4373d21a460SRob Herring    minItems: 3
4383d21a460SRob Herring    maxItems: 3
4397db3545aSMaxime Ripard
4407db3545aSMaxime Ripard  snps,aal:
441d69c6dddSRob Herring    $ref: /schemas/types.yaml#/definitions/flag
4427db3545aSMaxime Ripard    description:
4437db3545aSMaxime Ripard      Use Address-Aligned Beats
4447db3545aSMaxime Ripard
4457db3545aSMaxime Ripard  snps,fixed-burst:
446d69c6dddSRob Herring    $ref: /schemas/types.yaml#/definitions/flag
4477db3545aSMaxime Ripard    description:
4487db3545aSMaxime Ripard      Program the DMA to use the fixed burst mode
4497db3545aSMaxime Ripard
4507db3545aSMaxime Ripard  snps,mixed-burst:
451d69c6dddSRob Herring    $ref: /schemas/types.yaml#/definitions/flag
4527db3545aSMaxime Ripard    description:
4537db3545aSMaxime Ripard      Program the DMA to use the mixed burst mode
4547db3545aSMaxime Ripard
4557db3545aSMaxime Ripard  snps,force_thresh_dma_mode:
456d69c6dddSRob Herring    $ref: /schemas/types.yaml#/definitions/flag
4577db3545aSMaxime Ripard    description:
4587db3545aSMaxime Ripard      Force DMA to use the threshold mode for both tx and rx
4597db3545aSMaxime Ripard
4607db3545aSMaxime Ripard  snps,force_sf_dma_mode:
461d69c6dddSRob Herring    $ref: /schemas/types.yaml#/definitions/flag
4627db3545aSMaxime Ripard    description:
4637db3545aSMaxime Ripard      Force DMA to use the Store and Forward mode for both tx and
4647db3545aSMaxime Ripard      rx. This flag is ignored if force_thresh_dma_mode is set.
4657db3545aSMaxime Ripard
4667db3545aSMaxime Ripard  snps,en-tx-lpi-clockgating:
467d69c6dddSRob Herring    $ref: /schemas/types.yaml#/definitions/flag
4687db3545aSMaxime Ripard    description:
4697db3545aSMaxime Ripard      Enable gating of the MAC TX clock during TX low-power mode
4707db3545aSMaxime Ripard
4717db3545aSMaxime Ripard  snps,multicast-filter-bins:
472d69c6dddSRob Herring    $ref: /schemas/types.yaml#/definitions/uint32
4737db3545aSMaxime Ripard    description:
4747db3545aSMaxime Ripard      Number of multicast filter hash bins supported by this device
4757db3545aSMaxime Ripard      instance
4767db3545aSMaxime Ripard
4777db3545aSMaxime Ripard  snps,perfect-filter-entries:
478d69c6dddSRob Herring    $ref: /schemas/types.yaml#/definitions/uint32
4797db3545aSMaxime Ripard    description:
4807db3545aSMaxime Ripard      Number of perfect filter entries supported by this device
4817db3545aSMaxime Ripard      instance
4827db3545aSMaxime Ripard
4837db3545aSMaxime Ripard  snps,ps-speed:
484d69c6dddSRob Herring    $ref: /schemas/types.yaml#/definitions/uint32
4857db3545aSMaxime Ripard    description:
4867db3545aSMaxime Ripard      Port selection speed that can be passed to the core when PCS
4877db3545aSMaxime Ripard      is supported. For example, this is used in case of SGMII and
4887db3545aSMaxime Ripard      MAC2MAC connection.
4897db3545aSMaxime Ripard
49022ba1afdSJianguo Zhang  snps,clk-csr:
49122ba1afdSJianguo Zhang    $ref: /schemas/types.yaml#/definitions/uint32
49222ba1afdSJianguo Zhang    description:
49322ba1afdSJianguo Zhang      Frequency division factor for MDC clock.
49422ba1afdSJianguo Zhang
4957db3545aSMaxime Ripard  mdio:
496b2d28642SRob Herring    $ref: mdio.yaml#
497b2d28642SRob Herring    unevaluatedProperties: false
4987db3545aSMaxime Ripard    description:
4997db3545aSMaxime Ripard      Creates and registers an MDIO bus.
5007db3545aSMaxime Ripard
5017db3545aSMaxime Ripard    properties:
5027db3545aSMaxime Ripard      compatible:
5037db3545aSMaxime Ripard        const: snps,dwmac-mdio
5047db3545aSMaxime Ripard
5057db3545aSMaxime Ripard    required:
5067db3545aSMaxime Ripard      - compatible
5077db3545aSMaxime Ripard
5085361660aSMarek Vasut  stmmac-axi-config:
5095361660aSMarek Vasut    type: object
5105361660aSMarek Vasut    unevaluatedProperties: false
5115361660aSMarek Vasut    description:
5125361660aSMarek Vasut      AXI BUS Mode parameters.
5135361660aSMarek Vasut
5145361660aSMarek Vasut    properties:
5155361660aSMarek Vasut      snps,lpi_en:
5165361660aSMarek Vasut        $ref: /schemas/types.yaml#/definitions/flag
5175361660aSMarek Vasut        description:
5185361660aSMarek Vasut          enable Low Power Interface
5195361660aSMarek Vasut
5205361660aSMarek Vasut      snps,xit_frm:
5215361660aSMarek Vasut        $ref: /schemas/types.yaml#/definitions/flag
5225361660aSMarek Vasut        description:
5235361660aSMarek Vasut          unlock on WoL
5245361660aSMarek Vasut
5255361660aSMarek Vasut      snps,wr_osr_lmt:
5265361660aSMarek Vasut        $ref: /schemas/types.yaml#/definitions/uint32
5275361660aSMarek Vasut        description:
5285361660aSMarek Vasut          max write outstanding req. limit
5295361660aSMarek Vasut
5305361660aSMarek Vasut      snps,rd_osr_lmt:
5315361660aSMarek Vasut        $ref: /schemas/types.yaml#/definitions/uint32
5325361660aSMarek Vasut        description:
5335361660aSMarek Vasut          max read outstanding req. limit
5345361660aSMarek Vasut
5355361660aSMarek Vasut      snps,kbbe:
5365361660aSMarek Vasut        $ref: /schemas/types.yaml#/definitions/uint32
5375361660aSMarek Vasut        description:
5385361660aSMarek Vasut          do not cross 1KiB boundary.
5395361660aSMarek Vasut
5405361660aSMarek Vasut      snps,blen:
5415361660aSMarek Vasut        $ref: /schemas/types.yaml#/definitions/uint32-array
5425361660aSMarek Vasut        description:
5435361660aSMarek Vasut          this is a vector of supported burst length.
5445361660aSMarek Vasut        minItems: 7
5455361660aSMarek Vasut        maxItems: 7
5465361660aSMarek Vasut
5475361660aSMarek Vasut      snps,fb:
5485361660aSMarek Vasut        $ref: /schemas/types.yaml#/definitions/flag
5495361660aSMarek Vasut        description:
5505361660aSMarek Vasut          fixed-burst
5515361660aSMarek Vasut
5525361660aSMarek Vasut      snps,mb:
5535361660aSMarek Vasut        $ref: /schemas/types.yaml#/definitions/flag
5545361660aSMarek Vasut        description:
5555361660aSMarek Vasut          mixed-burst
5565361660aSMarek Vasut
5575361660aSMarek Vasut      snps,rb:
5585361660aSMarek Vasut        $ref: /schemas/types.yaml#/definitions/flag
5595361660aSMarek Vasut        description:
5605361660aSMarek Vasut          rebuild INCRx Burst
5615361660aSMarek Vasut
5627db3545aSMaxime Ripardrequired:
5637db3545aSMaxime Ripard  - compatible
5647db3545aSMaxime Ripard  - reg
5657db3545aSMaxime Ripard  - interrupts
5667db3545aSMaxime Ripard  - interrupt-names
56767d0da99SMaxime Ripard  - phy-mode
5687db3545aSMaxime Ripard
5697db3545aSMaxime Riparddependencies:
5707db3545aSMaxime Ripard  snps,reset-active-low: ["snps,reset-gpio"]
571affb6a3fSAndrew Halaney  snps,reset-delays-us: ["snps,reset-gpio"]
5727db3545aSMaxime Ripard
5737db3545aSMaxime RipardallOf:
5743079bfdbSRob Herring  - $ref: ethernet-controller.yaml#
5757db3545aSMaxime Ripard  - if:
5767db3545aSMaxime Ripard      properties:
5777db3545aSMaxime Ripard        compatible:
5787db3545aSMaxime Ripard          contains:
5797db3545aSMaxime Ripard            enum:
5804b859450SMaxime Ripard              - allwinner,sun7i-a20-gmac
5810569929dSMaxime Ripard              - allwinner,sun8i-a83t-emac
5820569929dSMaxime Ripard              - allwinner,sun8i-h3-emac
583b33be51cSMaxime Ripard              - allwinner,sun8i-r40-gmac
5840569929dSMaxime Ripard              - allwinner,sun8i-v3s-emac
5850569929dSMaxime Ripard              - allwinner,sun50i-a64-emac
5863b840106S周琰杰 (Zhou Yanjie)              - ingenic,jz4775-mac
5873b840106S周琰杰 (Zhou Yanjie)              - ingenic,x1000-mac
5883b840106S周琰杰 (Zhou Yanjie)              - ingenic,x1600-mac
5893b840106S周琰杰 (Zhou Yanjie)              - ingenic,x1830-mac
5903b840106S周琰杰 (Zhou Yanjie)              - ingenic,x2000-mac
591d0e3d29fSBartosz Golaszewski              - qcom,sa8775p-ethqos
59225926a70SAndrew Halaney              - qcom,sc8280xp-ethqos
5931d01efafSRob Herring              - snps,dwmac-3.50a
5941d01efafSRob Herring              - snps,dwmac-4.10a
5951d01efafSRob Herring              - snps,dwmac-4.20a
59613f93511SEmil Renner Berthing              - snps,dwmac-5.20
5977db3545aSMaxime Ripard              - snps,dwxgmac
5987db3545aSMaxime Ripard              - snps,dwxgmac-2.10
5997db3545aSMaxime Ripard              - st,spear600-gmac
6007db3545aSMaxime Ripard
6017db3545aSMaxime Ripard    then:
6027db3545aSMaxime Ripard      properties:
6037db3545aSMaxime Ripard        snps,pbl:
6047db3545aSMaxime Ripard          description:
6057db3545aSMaxime Ripard            Programmable Burst Length (tx and rx)
606d69c6dddSRob Herring          $ref: /schemas/types.yaml#/definitions/uint32
60709a2fb41SBiao Huang          enum: [1, 2, 4, 8, 16, 32]
6087db3545aSMaxime Ripard
6097db3545aSMaxime Ripard        snps,txpbl:
6107db3545aSMaxime Ripard          description:
6117db3545aSMaxime Ripard            Tx Programmable Burst Length. If set, DMA tx will use this
6127db3545aSMaxime Ripard            value rather than snps,pbl.
613d69c6dddSRob Herring          $ref: /schemas/types.yaml#/definitions/uint32
61409a2fb41SBiao Huang          enum: [1, 2, 4, 8, 16, 32]
6157db3545aSMaxime Ripard
6167db3545aSMaxime Ripard        snps,rxpbl:
6177db3545aSMaxime Ripard          description:
6187db3545aSMaxime Ripard            Rx Programmable Burst Length. If set, DMA rx will use this
6197db3545aSMaxime Ripard            value rather than snps,pbl.
620d69c6dddSRob Herring          $ref: /schemas/types.yaml#/definitions/uint32
62109a2fb41SBiao Huang          enum: [1, 2, 4, 8, 16, 32]
6227db3545aSMaxime Ripard
6237db3545aSMaxime Ripard        snps,no-pbl-x8:
624d69c6dddSRob Herring          $ref: /schemas/types.yaml#/definitions/flag
6257db3545aSMaxime Ripard          description:
6267db3545aSMaxime Ripard            Don\'t multiply the pbl/txpbl/rxpbl values by 8. For core
6277db3545aSMaxime Ripard            rev < 3.50, don\'t multiply the values by 4.
6287db3545aSMaxime Ripard
6297db3545aSMaxime Ripard  - if:
6307db3545aSMaxime Ripard      properties:
6317db3545aSMaxime Ripard        compatible:
6327db3545aSMaxime Ripard          contains:
6337db3545aSMaxime Ripard            enum:
6344b859450SMaxime Ripard              - allwinner,sun7i-a20-gmac
6350569929dSMaxime Ripard              - allwinner,sun8i-a83t-emac
6360569929dSMaxime Ripard              - allwinner,sun8i-h3-emac
637b33be51cSMaxime Ripard              - allwinner,sun8i-r40-gmac
6380569929dSMaxime Ripard              - allwinner,sun8i-v3s-emac
6390569929dSMaxime Ripard              - allwinner,sun50i-a64-emac
64068277749SQing Zhang              - loongson,ls2k-dwmac
64168277749SQing Zhang              - loongson,ls7a-dwmac
6423b840106S周琰杰 (Zhou Yanjie)              - ingenic,jz4775-mac
6433b840106S周琰杰 (Zhou Yanjie)              - ingenic,x1000-mac
6443b840106S周琰杰 (Zhou Yanjie)              - ingenic,x1600-mac
6453b840106S周琰杰 (Zhou Yanjie)              - ingenic,x1830-mac
6463b840106S周琰杰 (Zhou Yanjie)              - ingenic,x2000-mac
647d70c215bSBhupesh Sharma              - qcom,qcs404-ethqos
648d0e3d29fSBartosz Golaszewski              - qcom,sa8775p-ethqos
64925926a70SAndrew Halaney              - qcom,sc8280xp-ethqos
650d70c215bSBhupesh Sharma              - qcom,sm8150-ethqos
6517db3545aSMaxime Ripard              - snps,dwmac-4.00
6527db3545aSMaxime Ripard              - snps,dwmac-4.10a
653f2253143SChristophe Roullier              - snps,dwmac-4.20a
654bdad810eSJoakim Zhang              - snps,dwmac-5.10a
65513f93511SEmil Renner Berthing              - snps,dwmac-5.20
6567db3545aSMaxime Ripard              - snps,dwxgmac
6577db3545aSMaxime Ripard              - snps,dwxgmac-2.10
6587db3545aSMaxime Ripard              - st,spear600-gmac
6597db3545aSMaxime Ripard
6607db3545aSMaxime Ripard    then:
661dbce0b65SRob Herring      properties:
6627db3545aSMaxime Ripard        snps,tso:
663d69c6dddSRob Herring          $ref: /schemas/types.yaml#/definitions/flag
6647db3545aSMaxime Ripard          description:
6657db3545aSMaxime Ripard            Enables the TSO feature otherwise it will be managed by
6667db3545aSMaxime Ripard            MAC HW capability register.
6677db3545aSMaxime Ripard
6686a0e321eSRob HerringadditionalProperties: true
6696a0e321eSRob Herring
6707db3545aSMaxime Ripardexamples:
6717db3545aSMaxime Ripard  - |
6728fc4deaaSSebastian Reichel    gmac0: ethernet@e0800000 {
6738fc4deaaSSebastian Reichel        compatible = "snps,dwxgmac-2.10", "snps,dwxgmac";
6748fc4deaaSSebastian Reichel        reg = <0xe0800000 0x8000>;
6758fc4deaaSSebastian Reichel        interrupt-parent = <&vic1>;
6768fc4deaaSSebastian Reichel        interrupts = <24 23 22>;
6778fc4deaaSSebastian Reichel        interrupt-names = "macirq", "eth_wake_irq", "eth_lpi";
6788fc4deaaSSebastian Reichel        mac-address = [000000000000]; /* Filled in by U-Boot */
6798fc4deaaSSebastian Reichel        max-frame-size = <3800>;
6808fc4deaaSSebastian Reichel        phy-mode = "gmii";
6818fc4deaaSSebastian Reichel        snps,multicast-filter-bins = <256>;
6828fc4deaaSSebastian Reichel        snps,perfect-filter-entries = <128>;
6838fc4deaaSSebastian Reichel        rx-fifo-depth = <16384>;
6848fc4deaaSSebastian Reichel        tx-fifo-depth = <16384>;
6858fc4deaaSSebastian Reichel        clocks = <&clock>;
6868fc4deaaSSebastian Reichel        clock-names = "stmmaceth";
6878fc4deaaSSebastian Reichel        snps,axi-config = <&stmmac_axi_setup>;
6888fc4deaaSSebastian Reichel        snps,mtl-rx-config = <&mtl_rx_setup>;
6898fc4deaaSSebastian Reichel        snps,mtl-tx-config = <&mtl_tx_setup>;
6908fc4deaaSSebastian Reichel
6917db3545aSMaxime Ripard        stmmac_axi_setup: stmmac-axi-config {
6927db3545aSMaxime Ripard            snps,wr_osr_lmt = <0xf>;
6937db3545aSMaxime Ripard            snps,rd_osr_lmt = <0xf>;
6947db3545aSMaxime Ripard            snps,blen = <256 128 64 32 0 0 0>;
6957db3545aSMaxime Ripard        };
6967db3545aSMaxime Ripard
6977db3545aSMaxime Ripard        mtl_rx_setup: rx-queues-config {
6987db3545aSMaxime Ripard            snps,rx-queues-to-use = <1>;
6997db3545aSMaxime Ripard            snps,rx-sched-sp;
7007db3545aSMaxime Ripard            queue0 {
7017db3545aSMaxime Ripard                snps,dcb-algorithm;
7027db3545aSMaxime Ripard                snps,map-to-dma-channel = <0x0>;
7037db3545aSMaxime Ripard                snps,priority = <0x0>;
7047db3545aSMaxime Ripard            };
7057db3545aSMaxime Ripard        };
7067db3545aSMaxime Ripard
7077db3545aSMaxime Ripard        mtl_tx_setup: tx-queues-config {
7087db3545aSMaxime Ripard            snps,tx-queues-to-use = <2>;
7097db3545aSMaxime Ripard            snps,tx-sched-wrr;
7107db3545aSMaxime Ripard            queue0 {
7117db3545aSMaxime Ripard                snps,weight = <0x10>;
7127db3545aSMaxime Ripard                snps,dcb-algorithm;
7137db3545aSMaxime Ripard                snps,priority = <0x0>;
7147db3545aSMaxime Ripard            };
7157db3545aSMaxime Ripard
7167db3545aSMaxime Ripard            queue1 {
7177db3545aSMaxime Ripard                snps,avb-algorithm;
7187db3545aSMaxime Ripard                snps,send_slope = <0x1000>;
7197db3545aSMaxime Ripard                snps,idle_slope = <0x1000>;
7207db3545aSMaxime Ripard                snps,high_credit = <0x3E800>;
7217db3545aSMaxime Ripard                snps,low_credit = <0xFFC18000>;
7227db3545aSMaxime Ripard                snps,priority = <0x1>;
7237db3545aSMaxime Ripard            };
7247db3545aSMaxime Ripard        };
7257db3545aSMaxime Ripard
7267db3545aSMaxime Ripard        mdio0 {
7277db3545aSMaxime Ripard            #address-cells = <1>;
7287db3545aSMaxime Ripard            #size-cells = <0>;
7297db3545aSMaxime Ripard            compatible = "snps,dwmac-mdio";
7307db3545aSMaxime Ripard            phy1: ethernet-phy@0 {
7317db3545aSMaxime Ripard                reg = <0>;
7327db3545aSMaxime Ripard            };
7337db3545aSMaxime Ripard        };
7347db3545aSMaxime Ripard    };
7357db3545aSMaxime Ripard
7367db3545aSMaxime Ripard# FIXME: We should set it, but it would report all the generic
7377db3545aSMaxime Ripard# properties as additional properties.
7387db3545aSMaxime Ripard# additionalProperties: false
7397db3545aSMaxime Ripard
7407db3545aSMaxime Ripard...
741