xref: /linux/Documentation/devicetree/bindings/net/snps,dwmac.yaml (revision 9410645520e9b820069761f3450ef6661418e279)
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
79544a74c3SJonas Karlman        - rockchip,rk3308-gmac
80517a882aSEzequiel Garcia        - rockchip,rk3328-gmac
81517a882aSEzequiel Garcia        - rockchip,rk3366-gmac
82517a882aSEzequiel Garcia        - rockchip,rk3368-gmac
83*299e2aefSDetlev Casanova        - rockchip,rk3576-gmac
84a2b77831SSebastian Reichel        - rockchip,rk3588-gmac
85517a882aSEzequiel Garcia        - rockchip,rk3399-gmac
86517a882aSEzequiel Garcia        - rockchip,rv1108-gmac
877db3545aSMaxime Ripard        - snps,dwmac
883781b6adSHerve Codina        - snps,dwmac-3.40a
897db3545aSMaxime Ripard        - snps,dwmac-3.50a
907db3545aSMaxime Ripard        - snps,dwmac-3.610
917db3545aSMaxime Ripard        - snps,dwmac-3.70a
927db3545aSMaxime Ripard        - snps,dwmac-3.710
937db3545aSMaxime Ripard        - snps,dwmac-4.00
947db3545aSMaxime Ripard        - snps,dwmac-4.10a
95f2253143SChristophe Roullier        - snps,dwmac-4.20a
96bdad810eSJoakim Zhang        - snps,dwmac-5.10a
9713f93511SEmil Renner Berthing        - snps,dwmac-5.20
987db3545aSMaxime Ripard        - snps,dwxgmac
997db3545aSMaxime Ripard        - snps,dwxgmac-2.10
10053e41b76SCristian Ciocaltea        - starfive,jh7100-dwmac
101b76eaf7dSYanhong Wang        - starfive,jh7110-dwmac
1027db3545aSMaxime Ripard
1037db3545aSMaxime Ripard  reg:
10457b77df7SNeil Armstrong    minItems: 1
10557b77df7SNeil Armstrong    maxItems: 2
1067db3545aSMaxime Ripard
1077db3545aSMaxime Ripard  interrupts:
1087db3545aSMaxime Ripard    minItems: 1
1097db3545aSMaxime Ripard    items:
1107db3545aSMaxime Ripard      - description: Combined signal for various interrupt events
1117db3545aSMaxime Ripard      - description: The interrupt to manage the remote wake-up packet detection
1127db3545aSMaxime Ripard      - description: The interrupt that occurs when Rx exits the LPI state
1131963e65bSSuraj Jaiswal      - description: The interrupt that occurs when HW safety error triggered
1147db3545aSMaxime Ripard
1157db3545aSMaxime Ripard  interrupt-names:
1167db3545aSMaxime Ripard    minItems: 1
1177db3545aSMaxime Ripard    items:
1187db3545aSMaxime Ripard      - const: macirq
1191963e65bSSuraj Jaiswal      - enum: [eth_wake_irq, eth_lpi, sfty]
1201963e65bSSuraj Jaiswal      - enum: [eth_wake_irq, eth_lpi, sfty]
1211963e65bSSuraj Jaiswal      - enum: [eth_wake_irq, eth_lpi, sfty]
1227db3545aSMaxime Ripard
1237db3545aSMaxime Ripard  clocks:
1247db3545aSMaxime Ripard    minItems: 1
125517a882aSEzequiel Garcia    maxItems: 8
126f2253143SChristophe Roullier    additionalItems: true
1277db3545aSMaxime Ripard    items:
1287db3545aSMaxime Ripard      - description: GMAC main clock
1297db3545aSMaxime Ripard      - description: Peripheral registers interface clock
1307db3545aSMaxime Ripard      - description:
1317db3545aSMaxime Ripard          PTP reference clock. This clock is used for programming the
1327db3545aSMaxime Ripard          Timestamp Addend Register. If not passed then the system
1337db3545aSMaxime Ripard          clock will be used and this is fine on some platforms.
1347db3545aSMaxime Ripard
1357db3545aSMaxime Ripard  clock-names:
136f2253143SChristophe Roullier    minItems: 1
137517a882aSEzequiel Garcia    maxItems: 8
1387db3545aSMaxime Ripard    additionalItems: true
1397db3545aSMaxime Ripard    contains:
1407db3545aSMaxime Ripard      enum:
1417db3545aSMaxime Ripard        - stmmaceth
1427db3545aSMaxime Ripard        - pclk
1437db3545aSMaxime Ripard        - ptp_ref
1447db3545aSMaxime Ripard
1457db3545aSMaxime Ripard  resets:
146843f6037SSamin Guo    minItems: 1
147843f6037SSamin Guo    items:
148843f6037SSamin Guo      - description: GMAC stmmaceth reset
149843f6037SSamin Guo      - description: AHB reset
1507db3545aSMaxime Ripard
1517db3545aSMaxime Ripard  reset-names:
15253e41b76SCristian Ciocaltea    oneOf:
15353e41b76SCristian Ciocaltea      - items:
15453e41b76SCristian Ciocaltea          - enum: [stmmaceth, ahb]
15553e41b76SCristian Ciocaltea      - items:
156843f6037SSamin Guo          - const: stmmaceth
157843f6037SSamin Guo          - const: ahb
1587db3545aSMaxime Ripard
159955fe312SClément Léger  power-domains:
160955fe312SClément Léger    maxItems: 1
161955fe312SClément Léger
1629c15d359SAlexandru Ardelean  mac-mode:
1639e5c8d39SAlexandru Ardelean    $ref: ethernet-controller.yaml#/properties/phy-connection-type
1649c15d359SAlexandru Ardelean    description:
1659c15d359SAlexandru Ardelean      The property is identical to 'phy-mode', and assumes that there is mode
1669c15d359SAlexandru Ardelean      converter in-between the MAC & PHY (e.g. GMII-to-RGMII). This converter
1679c15d359SAlexandru Ardelean      can be passive (no SW requirement), and requires that the MAC operate
1689c15d359SAlexandru Ardelean      in a different mode than the PHY in order to function.
1699c15d359SAlexandru Ardelean
1707db3545aSMaxime Ripard  snps,axi-config:
171d69c6dddSRob Herring    $ref: /schemas/types.yaml#/definitions/phandle
1727db3545aSMaxime Ripard    description:
1737db3545aSMaxime Ripard      AXI BUS Mode parameters. Phandle to a node that can contain the
1747db3545aSMaxime Ripard      following properties
1757db3545aSMaxime Ripard        * snps,lpi_en, enable Low Power Interface
1767db3545aSMaxime Ripard        * snps,xit_frm, unlock on WoL
1777db3545aSMaxime Ripard        * snps,wr_osr_lmt, max write outstanding req. limit
1787db3545aSMaxime Ripard        * snps,rd_osr_lmt, max read outstanding req. limit
1797db3545aSMaxime Ripard        * snps,kbbe, do not cross 1KiB boundary.
1807db3545aSMaxime Ripard        * snps,blen, this is a vector of supported burst length.
1817db3545aSMaxime Ripard        * snps,fb, fixed-burst
1827db3545aSMaxime Ripard        * snps,mb, mixed-burst
1837db3545aSMaxime Ripard        * snps,rb, rebuild INCRx Burst
1847db3545aSMaxime Ripard
1857db3545aSMaxime Ripard  snps,mtl-rx-config:
186d69c6dddSRob Herring    $ref: /schemas/types.yaml#/definitions/phandle
1877db3545aSMaxime Ripard    description:
1888fc4deaaSSebastian Reichel      Multiple RX Queues parameters. Phandle to a node that
1898fc4deaaSSebastian Reichel      implements the 'rx-queues-config' object described in
1908fc4deaaSSebastian Reichel      this binding.
1918fc4deaaSSebastian Reichel
1928fc4deaaSSebastian Reichel  rx-queues-config:
1938fc4deaaSSebastian Reichel    type: object
1948fc4deaaSSebastian Reichel    properties:
1958fc4deaaSSebastian Reichel      snps,rx-queues-to-use:
1968fc4deaaSSebastian Reichel        $ref: /schemas/types.yaml#/definitions/uint32
1978fc4deaaSSebastian Reichel        description: number of RX queues to be used in the driver
1988fc4deaaSSebastian Reichel      snps,rx-sched-sp:
1998fc4deaaSSebastian Reichel        type: boolean
2008fc4deaaSSebastian Reichel        description: Strict priority
2018fc4deaaSSebastian Reichel      snps,rx-sched-wsp:
2028fc4deaaSSebastian Reichel        type: boolean
2038fc4deaaSSebastian Reichel        description: Weighted Strict priority
2048fc4deaaSSebastian Reichel    allOf:
2058fc4deaaSSebastian Reichel      - if:
2068fc4deaaSSebastian Reichel          required:
2078fc4deaaSSebastian Reichel            - snps,rx-sched-sp
2088fc4deaaSSebastian Reichel        then:
2098fc4deaaSSebastian Reichel          properties:
2108fc4deaaSSebastian Reichel            snps,rx-sched-wsp: false
2118fc4deaaSSebastian Reichel      - if:
2128fc4deaaSSebastian Reichel          required:
2138fc4deaaSSebastian Reichel            - snps,rx-sched-wsp
2148fc4deaaSSebastian Reichel        then:
2158fc4deaaSSebastian Reichel          properties:
2168fc4deaaSSebastian Reichel            snps,rx-sched-sp: false
2178fc4deaaSSebastian Reichel    patternProperties:
2188fc4deaaSSebastian Reichel      "^queue[0-9]$":
2198fc4deaaSSebastian Reichel        description: Each subnode represents a queue.
2208fc4deaaSSebastian Reichel        type: object
2218fc4deaaSSebastian Reichel        properties:
2228fc4deaaSSebastian Reichel          snps,dcb-algorithm:
2238fc4deaaSSebastian Reichel            type: boolean
2248fc4deaaSSebastian Reichel            description: Queue to be enabled as DCB
2258fc4deaaSSebastian Reichel          snps,avb-algorithm:
2268fc4deaaSSebastian Reichel            type: boolean
2278fc4deaaSSebastian Reichel            description: Queue to be enabled as AVB
2288fc4deaaSSebastian Reichel          snps,map-to-dma-channel:
2298fc4deaaSSebastian Reichel            $ref: /schemas/types.yaml#/definitions/uint32
2308fc4deaaSSebastian Reichel            description: DMA channel id to map
2318fc4deaaSSebastian Reichel          snps,route-avcp:
2328fc4deaaSSebastian Reichel            type: boolean
2338fc4deaaSSebastian Reichel            description: AV Untagged Control packets
2348fc4deaaSSebastian Reichel          snps,route-ptp:
2358fc4deaaSSebastian Reichel            type: boolean
2368fc4deaaSSebastian Reichel            description: PTP Packets
2378fc4deaaSSebastian Reichel          snps,route-dcbcp:
2388fc4deaaSSebastian Reichel            type: boolean
2398fc4deaaSSebastian Reichel            description: DCB Control Packets
2408fc4deaaSSebastian Reichel          snps,route-up:
2418fc4deaaSSebastian Reichel            type: boolean
2428fc4deaaSSebastian Reichel            description: Untagged Packets
2438fc4deaaSSebastian Reichel          snps,route-multi-broad:
2448fc4deaaSSebastian Reichel            type: boolean
2458fc4deaaSSebastian Reichel            description: Multicast & Broadcast Packets
2468fc4deaaSSebastian Reichel          snps,priority:
247992c287dSRob Herring            $ref: /schemas/types.yaml#/definitions/uint32-array
248992c287dSRob Herring            maxItems: 1
2498fc4deaaSSebastian Reichel            description: Bitmask of the tagged frames priorities assigned to the queue
2508fc4deaaSSebastian Reichel        allOf:
2518fc4deaaSSebastian Reichel          - if:
2528fc4deaaSSebastian Reichel              required:
2538fc4deaaSSebastian Reichel                - snps,dcb-algorithm
2548fc4deaaSSebastian Reichel            then:
2558fc4deaaSSebastian Reichel              properties:
2568fc4deaaSSebastian Reichel                snps,avb-algorithm: false
2578fc4deaaSSebastian Reichel          - if:
2588fc4deaaSSebastian Reichel              required:
2598fc4deaaSSebastian Reichel                - snps,avb-algorithm
2608fc4deaaSSebastian Reichel            then:
2618fc4deaaSSebastian Reichel              properties:
2628fc4deaaSSebastian Reichel                snps,dcb-algorithm: false
2638fc4deaaSSebastian Reichel          - if:
2648fc4deaaSSebastian Reichel              required:
2658fc4deaaSSebastian Reichel                - snps,route-avcp
2668fc4deaaSSebastian Reichel            then:
2678fc4deaaSSebastian Reichel              properties:
2688fc4deaaSSebastian Reichel                snps,route-ptp: false
2698fc4deaaSSebastian Reichel                snps,route-dcbcp: false
2708fc4deaaSSebastian Reichel                snps,route-up: false
2718fc4deaaSSebastian Reichel                snps,route-multi-broad: false
2728fc4deaaSSebastian Reichel          - if:
2738fc4deaaSSebastian Reichel              required:
2748fc4deaaSSebastian Reichel                - snps,route-ptp
2758fc4deaaSSebastian Reichel            then:
2768fc4deaaSSebastian Reichel              properties:
2778fc4deaaSSebastian Reichel                snps,route-avcp: false
2788fc4deaaSSebastian Reichel                snps,route-dcbcp: false
2798fc4deaaSSebastian Reichel                snps,route-up: false
2808fc4deaaSSebastian Reichel                snps,route-multi-broad: false
2818fc4deaaSSebastian Reichel          - if:
2828fc4deaaSSebastian Reichel              required:
2838fc4deaaSSebastian Reichel                - snps,route-dcbcp
2848fc4deaaSSebastian Reichel            then:
2858fc4deaaSSebastian Reichel              properties:
2868fc4deaaSSebastian Reichel                snps,route-avcp: false
2878fc4deaaSSebastian Reichel                snps,route-ptp: false
2888fc4deaaSSebastian Reichel                snps,route-up: false
2898fc4deaaSSebastian Reichel                snps,route-multi-broad: false
2908fc4deaaSSebastian Reichel          - if:
2918fc4deaaSSebastian Reichel              required:
2928fc4deaaSSebastian Reichel                - snps,route-up
2938fc4deaaSSebastian Reichel            then:
2948fc4deaaSSebastian Reichel              properties:
2958fc4deaaSSebastian Reichel                snps,route-avcp: false
2968fc4deaaSSebastian Reichel                snps,route-ptp: false
2978fc4deaaSSebastian Reichel                snps,route-dcbcp: false
2988fc4deaaSSebastian Reichel                snps,route-multi-broad: false
2998fc4deaaSSebastian Reichel          - if:
3008fc4deaaSSebastian Reichel              required:
3018fc4deaaSSebastian Reichel                - snps,route-multi-broad
3028fc4deaaSSebastian Reichel            then:
3038fc4deaaSSebastian Reichel              properties:
3048fc4deaaSSebastian Reichel                snps,route-avcp: false
3058fc4deaaSSebastian Reichel                snps,route-ptp: false
3068fc4deaaSSebastian Reichel                snps,route-dcbcp: false
3078fc4deaaSSebastian Reichel                snps,route-up: false
3088fc4deaaSSebastian Reichel        additionalProperties: false
3098fc4deaaSSebastian Reichel    additionalProperties: false
3107db3545aSMaxime Ripard
3117db3545aSMaxime Ripard  snps,mtl-tx-config:
312d69c6dddSRob Herring    $ref: /schemas/types.yaml#/definitions/phandle
3137db3545aSMaxime Ripard    description:
3148fc4deaaSSebastian Reichel      Multiple TX Queues parameters. Phandle to a node that
3158fc4deaaSSebastian Reichel      implements the 'tx-queues-config' object described in
3168fc4deaaSSebastian Reichel      this binding.
3178fc4deaaSSebastian Reichel
3188fc4deaaSSebastian Reichel  tx-queues-config:
3198fc4deaaSSebastian Reichel    type: object
3208fc4deaaSSebastian Reichel    properties:
3218fc4deaaSSebastian Reichel      snps,tx-queues-to-use:
3228fc4deaaSSebastian Reichel        $ref: /schemas/types.yaml#/definitions/uint32
3238fc4deaaSSebastian Reichel        description: number of TX queues to be used in the driver
3248fc4deaaSSebastian Reichel      snps,tx-sched-wrr:
3258fc4deaaSSebastian Reichel        type: boolean
3268fc4deaaSSebastian Reichel        description: Weighted Round Robin
3278fc4deaaSSebastian Reichel      snps,tx-sched-wfq:
3288fc4deaaSSebastian Reichel        type: boolean
3298fc4deaaSSebastian Reichel        description: Weighted Fair Queuing
3308fc4deaaSSebastian Reichel      snps,tx-sched-dwrr:
3318fc4deaaSSebastian Reichel        type: boolean
3328fc4deaaSSebastian Reichel        description: Deficit Weighted Round Robin
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      - if:
3428fc4deaaSSebastian Reichel          required:
3438fc4deaaSSebastian Reichel            - snps,tx-sched-wfq
3448fc4deaaSSebastian Reichel        then:
3458fc4deaaSSebastian Reichel          properties:
3468fc4deaaSSebastian Reichel            snps,tx-sched-wrr: false
3478fc4deaaSSebastian Reichel            snps,tx-sched-dwrr: false
3488fc4deaaSSebastian Reichel      - if:
3498fc4deaaSSebastian Reichel          required:
3508fc4deaaSSebastian Reichel            - snps,tx-sched-dwrr
3518fc4deaaSSebastian Reichel        then:
3528fc4deaaSSebastian Reichel          properties:
3538fc4deaaSSebastian Reichel            snps,tx-sched-wrr: false
3548fc4deaaSSebastian Reichel            snps,tx-sched-wfq: false
3558fc4deaaSSebastian Reichel    patternProperties:
3568fc4deaaSSebastian Reichel      "^queue[0-9]$":
3578fc4deaaSSebastian Reichel        description: Each subnode represents a queue.
3588fc4deaaSSebastian Reichel        type: object
3598fc4deaaSSebastian Reichel        properties:
3608fc4deaaSSebastian Reichel          snps,weight:
3618fc4deaaSSebastian Reichel            $ref: /schemas/types.yaml#/definitions/uint32
3628fc4deaaSSebastian Reichel            description: TX queue weight (if using a DCB weight algorithm)
3638fc4deaaSSebastian Reichel          snps,dcb-algorithm:
3648fc4deaaSSebastian Reichel            type: boolean
3658fc4deaaSSebastian Reichel            description: TX queue will be working in DCB
3668fc4deaaSSebastian Reichel          snps,avb-algorithm:
3678fc4deaaSSebastian Reichel            type: boolean
3688fc4deaaSSebastian Reichel            description:
3698fc4deaaSSebastian Reichel              TX queue will be working in AVB.
3708fc4deaaSSebastian Reichel              Queue 0 is reserved for legacy traffic and so no AVB is
3718fc4deaaSSebastian Reichel              available in this queue.
3728fc4deaaSSebastian Reichel          snps,send_slope:
3738fc4deaaSSebastian Reichel            $ref: /schemas/types.yaml#/definitions/uint32
3748fc4deaaSSebastian Reichel            description: enable Low Power Interface
3758fc4deaaSSebastian Reichel          snps,idle_slope:
3768fc4deaaSSebastian Reichel            $ref: /schemas/types.yaml#/definitions/uint32
3778fc4deaaSSebastian Reichel            description: unlock on WoL
3788fc4deaaSSebastian Reichel          snps,high_credit:
3798fc4deaaSSebastian Reichel            $ref: /schemas/types.yaml#/definitions/uint32
3808fc4deaaSSebastian Reichel            description: max write outstanding req. limit
3818fc4deaaSSebastian Reichel          snps,low_credit:
3828fc4deaaSSebastian Reichel            $ref: /schemas/types.yaml#/definitions/uint32
3838fc4deaaSSebastian Reichel            description: max read outstanding req. limit
3848fc4deaaSSebastian Reichel          snps,priority:
385992c287dSRob Herring            $ref: /schemas/types.yaml#/definitions/uint32-array
386992c287dSRob Herring            maxItems: 1
3878fc4deaaSSebastian Reichel            description:
3888fc4deaaSSebastian Reichel              Bitmask of the tagged frames priorities assigned to the queue.
38993828834SSeb Laveze              When a PFC frame is received with priorities matching the bitmask,
39093828834SSeb Laveze              the queue is blocked from transmitting for the pause time specified
39193828834SSeb Laveze              in the PFC frame.
3926fb8c20aSRohan G Thomas
3936fb8c20aSRohan G Thomas          snps,coe-unsupported:
3946fb8c20aSRohan G Thomas            type: boolean
3956fb8c20aSRohan G Thomas            description: TX checksum offload is unsupported by the TX queue.
3966fb8c20aSRohan G Thomas
3978fc4deaaSSebastian Reichel        allOf:
3988fc4deaaSSebastian Reichel          - if:
3998fc4deaaSSebastian Reichel              required:
4008fc4deaaSSebastian Reichel                - snps,dcb-algorithm
4018fc4deaaSSebastian Reichel            then:
4028fc4deaaSSebastian Reichel              properties:
4038fc4deaaSSebastian Reichel                snps,avb-algorithm: false
4048fc4deaaSSebastian Reichel          - if:
4058fc4deaaSSebastian Reichel              required:
4068fc4deaaSSebastian Reichel                - snps,avb-algorithm
4078fc4deaaSSebastian Reichel            then:
4088fc4deaaSSebastian Reichel              properties:
4098fc4deaaSSebastian Reichel                snps,dcb-algorithm: false
4108fc4deaaSSebastian Reichel                snps,weight: false
4118fc4deaaSSebastian Reichel        additionalProperties: false
4128fc4deaaSSebastian Reichel    additionalProperties: false
4137db3545aSMaxime Ripard
4147db3545aSMaxime Ripard  snps,reset-gpio:
415f80b1dfcSMaxime Ripard    deprecated: true
4167db3545aSMaxime Ripard    maxItems: 1
4177db3545aSMaxime Ripard    description:
4187db3545aSMaxime Ripard      PHY Reset GPIO
4197db3545aSMaxime Ripard
4207db3545aSMaxime Ripard  snps,reset-active-low:
421f80b1dfcSMaxime Ripard    deprecated: true
422d69c6dddSRob Herring    $ref: /schemas/types.yaml#/definitions/flag
4237db3545aSMaxime Ripard    description:
4247db3545aSMaxime Ripard      Indicates that the PHY Reset is active low
4257db3545aSMaxime Ripard
4267db3545aSMaxime Ripard  snps,reset-delays-us:
427f80b1dfcSMaxime Ripard    deprecated: true
4287db3545aSMaxime Ripard    description:
4297db3545aSMaxime Ripard      Triplet of delays. The 1st cell is reset pre-delay in micro
4307db3545aSMaxime Ripard      seconds. The 2nd cell is reset pulse in micro seconds. The 3rd
4317db3545aSMaxime Ripard      cell is reset post-delay in micro seconds.
4323d21a460SRob Herring    minItems: 3
4333d21a460SRob Herring    maxItems: 3
4347db3545aSMaxime Ripard
4357db3545aSMaxime Ripard  snps,aal:
436d69c6dddSRob Herring    $ref: /schemas/types.yaml#/definitions/flag
4377db3545aSMaxime Ripard    description:
4387db3545aSMaxime Ripard      Use Address-Aligned Beats
4397db3545aSMaxime Ripard
440d01e0e98SSerge Semin  snps,pbl:
441d01e0e98SSerge Semin    description:
442d01e0e98SSerge Semin      Programmable Burst Length (tx and rx)
443d01e0e98SSerge Semin    $ref: /schemas/types.yaml#/definitions/uint32
444d01e0e98SSerge Semin    enum: [1, 2, 4, 8, 16, 32]
445d01e0e98SSerge Semin
446d01e0e98SSerge Semin  snps,txpbl:
447d01e0e98SSerge Semin    description:
448d01e0e98SSerge Semin      Tx Programmable Burst Length. If set, DMA tx will use this
449d01e0e98SSerge Semin      value rather than snps,pbl.
450d01e0e98SSerge Semin    $ref: /schemas/types.yaml#/definitions/uint32
451d01e0e98SSerge Semin    enum: [1, 2, 4, 8, 16, 32]
452d01e0e98SSerge Semin
453d01e0e98SSerge Semin  snps,rxpbl:
454d01e0e98SSerge Semin    description:
455d01e0e98SSerge Semin      Rx Programmable Burst Length. If set, DMA rx will use this
456d01e0e98SSerge Semin      value rather than snps,pbl.
457d01e0e98SSerge Semin    $ref: /schemas/types.yaml#/definitions/uint32
458d01e0e98SSerge Semin    enum: [1, 2, 4, 8, 16, 32]
459d01e0e98SSerge Semin
460d01e0e98SSerge Semin  snps,no-pbl-x8:
461d01e0e98SSerge Semin    $ref: /schemas/types.yaml#/definitions/flag
462d01e0e98SSerge Semin    description:
463d01e0e98SSerge Semin      Don\'t multiply the pbl/txpbl/rxpbl values by 8. For core
464d01e0e98SSerge Semin      rev < 3.50, don\'t multiply the values by 4.
465d01e0e98SSerge Semin
4667db3545aSMaxime Ripard  snps,fixed-burst:
467d69c6dddSRob Herring    $ref: /schemas/types.yaml#/definitions/flag
4687db3545aSMaxime Ripard    description:
4697db3545aSMaxime Ripard      Program the DMA to use the fixed burst mode
4707db3545aSMaxime Ripard
4717db3545aSMaxime Ripard  snps,mixed-burst:
472d69c6dddSRob Herring    $ref: /schemas/types.yaml#/definitions/flag
4737db3545aSMaxime Ripard    description:
4747db3545aSMaxime Ripard      Program the DMA to use the mixed burst mode
4757db3545aSMaxime Ripard
4767db3545aSMaxime Ripard  snps,force_thresh_dma_mode:
477d69c6dddSRob Herring    $ref: /schemas/types.yaml#/definitions/flag
4787db3545aSMaxime Ripard    description:
4797db3545aSMaxime Ripard      Force DMA to use the threshold mode for both tx and rx
4807db3545aSMaxime Ripard
4817db3545aSMaxime Ripard  snps,force_sf_dma_mode:
482d69c6dddSRob Herring    $ref: /schemas/types.yaml#/definitions/flag
4837db3545aSMaxime Ripard    description:
4847db3545aSMaxime Ripard      Force DMA to use the Store and Forward mode for both tx and
4857db3545aSMaxime Ripard      rx. This flag is ignored if force_thresh_dma_mode is set.
4867db3545aSMaxime Ripard
4877db3545aSMaxime Ripard  snps,en-tx-lpi-clockgating:
488d69c6dddSRob Herring    $ref: /schemas/types.yaml#/definitions/flag
4897db3545aSMaxime Ripard    description:
4907db3545aSMaxime Ripard      Enable gating of the MAC TX clock during TX low-power mode
4917db3545aSMaxime Ripard
4927db3545aSMaxime Ripard  snps,multicast-filter-bins:
493d69c6dddSRob Herring    $ref: /schemas/types.yaml#/definitions/uint32
4947db3545aSMaxime Ripard    description:
4957db3545aSMaxime Ripard      Number of multicast filter hash bins supported by this device
4967db3545aSMaxime Ripard      instance
4977db3545aSMaxime Ripard
4987db3545aSMaxime Ripard  snps,perfect-filter-entries:
499d69c6dddSRob Herring    $ref: /schemas/types.yaml#/definitions/uint32
5007db3545aSMaxime Ripard    description:
5017db3545aSMaxime Ripard      Number of perfect filter entries supported by this device
5027db3545aSMaxime Ripard      instance
5037db3545aSMaxime Ripard
5047db3545aSMaxime Ripard  snps,ps-speed:
505d69c6dddSRob Herring    $ref: /schemas/types.yaml#/definitions/uint32
5067db3545aSMaxime Ripard    description:
5077db3545aSMaxime Ripard      Port selection speed that can be passed to the core when PCS
5087db3545aSMaxime Ripard      is supported. For example, this is used in case of SGMII and
5097db3545aSMaxime Ripard      MAC2MAC connection.
5107db3545aSMaxime Ripard
51122ba1afdSJianguo Zhang  snps,clk-csr:
51222ba1afdSJianguo Zhang    $ref: /schemas/types.yaml#/definitions/uint32
51322ba1afdSJianguo Zhang    description:
51422ba1afdSJianguo Zhang      Frequency division factor for MDC clock.
51522ba1afdSJianguo Zhang
516390b14b5SRob Herring (Arm)  snps,tso:
517390b14b5SRob Herring (Arm)    $ref: /schemas/types.yaml#/definitions/flag
518390b14b5SRob Herring (Arm)    description:
519390b14b5SRob Herring (Arm)      Enables the TSO feature otherwise it will be managed by MAC HW capability
520390b14b5SRob Herring (Arm)      register.
521390b14b5SRob Herring (Arm)
5227db3545aSMaxime Ripard  mdio:
523b2d28642SRob Herring    $ref: mdio.yaml#
524b2d28642SRob Herring    unevaluatedProperties: false
5257db3545aSMaxime Ripard    description:
5267db3545aSMaxime Ripard      Creates and registers an MDIO bus.
5277db3545aSMaxime Ripard
5287db3545aSMaxime Ripard    properties:
5297db3545aSMaxime Ripard      compatible:
5307db3545aSMaxime Ripard        const: snps,dwmac-mdio
5317db3545aSMaxime Ripard
5327db3545aSMaxime Ripard    required:
5337db3545aSMaxime Ripard      - compatible
5347db3545aSMaxime Ripard
5355361660aSMarek Vasut  stmmac-axi-config:
5365361660aSMarek Vasut    type: object
5375361660aSMarek Vasut    unevaluatedProperties: false
5385361660aSMarek Vasut    description:
5395361660aSMarek Vasut      AXI BUS Mode parameters.
5405361660aSMarek Vasut
5415361660aSMarek Vasut    properties:
5425361660aSMarek Vasut      snps,lpi_en:
5435361660aSMarek Vasut        $ref: /schemas/types.yaml#/definitions/flag
5445361660aSMarek Vasut        description:
5455361660aSMarek Vasut          enable Low Power Interface
5465361660aSMarek Vasut
5475361660aSMarek Vasut      snps,xit_frm:
5485361660aSMarek Vasut        $ref: /schemas/types.yaml#/definitions/flag
5495361660aSMarek Vasut        description:
5505361660aSMarek Vasut          unlock on WoL
5515361660aSMarek Vasut
5525361660aSMarek Vasut      snps,wr_osr_lmt:
5535361660aSMarek Vasut        $ref: /schemas/types.yaml#/definitions/uint32
5545361660aSMarek Vasut        description:
5555361660aSMarek Vasut          max write outstanding req. limit
5565361660aSMarek Vasut
5575361660aSMarek Vasut      snps,rd_osr_lmt:
5585361660aSMarek Vasut        $ref: /schemas/types.yaml#/definitions/uint32
5595361660aSMarek Vasut        description:
5605361660aSMarek Vasut          max read outstanding req. limit
5615361660aSMarek Vasut
5625361660aSMarek Vasut      snps,kbbe:
5635361660aSMarek Vasut        $ref: /schemas/types.yaml#/definitions/uint32
5645361660aSMarek Vasut        description:
5655361660aSMarek Vasut          do not cross 1KiB boundary.
5665361660aSMarek Vasut
5675361660aSMarek Vasut      snps,blen:
5685361660aSMarek Vasut        $ref: /schemas/types.yaml#/definitions/uint32-array
5695361660aSMarek Vasut        description:
5705361660aSMarek Vasut          this is a vector of supported burst length.
5715361660aSMarek Vasut        minItems: 7
5725361660aSMarek Vasut        maxItems: 7
5735361660aSMarek Vasut
5745361660aSMarek Vasut      snps,fb:
5755361660aSMarek Vasut        $ref: /schemas/types.yaml#/definitions/flag
5765361660aSMarek Vasut        description:
5775361660aSMarek Vasut          fixed-burst
5785361660aSMarek Vasut
5795361660aSMarek Vasut      snps,mb:
5805361660aSMarek Vasut        $ref: /schemas/types.yaml#/definitions/flag
5815361660aSMarek Vasut        description:
5825361660aSMarek Vasut          mixed-burst
5835361660aSMarek Vasut
5845361660aSMarek Vasut      snps,rb:
5855361660aSMarek Vasut        $ref: /schemas/types.yaml#/definitions/flag
5865361660aSMarek Vasut        description:
5875361660aSMarek Vasut          rebuild INCRx Burst
5885361660aSMarek Vasut
5897db3545aSMaxime Ripardrequired:
5907db3545aSMaxime Ripard  - compatible
5917db3545aSMaxime Ripard  - reg
5927db3545aSMaxime Ripard  - interrupts
5937db3545aSMaxime Ripard  - interrupt-names
59467d0da99SMaxime Ripard  - phy-mode
5957db3545aSMaxime Ripard
5967db3545aSMaxime Riparddependencies:
5977db3545aSMaxime Ripard  snps,reset-active-low: ["snps,reset-gpio"]
598affb6a3fSAndrew Halaney  snps,reset-delays-us: ["snps,reset-gpio"]
5997db3545aSMaxime Ripard
6007db3545aSMaxime RipardallOf:
6013079bfdbSRob Herring  - $ref: ethernet-controller.yaml#
6027db3545aSMaxime Ripard  - if:
6037db3545aSMaxime Ripard      properties:
6047db3545aSMaxime Ripard        compatible:
605390b14b5SRob Herring (Arm)          not:
6067db3545aSMaxime Ripard            contains:
6077db3545aSMaxime Ripard              enum:
6084b859450SMaxime Ripard                - allwinner,sun7i-a20-gmac
6090569929dSMaxime Ripard                - allwinner,sun8i-a83t-emac
6100569929dSMaxime Ripard                - allwinner,sun8i-h3-emac
611b33be51cSMaxime Ripard                - allwinner,sun8i-r40-gmac
6120569929dSMaxime Ripard                - allwinner,sun8i-v3s-emac
6130569929dSMaxime Ripard                - allwinner,sun50i-a64-emac
61468277749SQing Zhang                - loongson,ls2k-dwmac
61568277749SQing Zhang                - loongson,ls7a-dwmac
6163b840106S周琰杰 (Zhou Yanjie)                - ingenic,jz4775-mac
6173b840106S周琰杰 (Zhou Yanjie)                - ingenic,x1000-mac
6183b840106S周琰杰 (Zhou Yanjie)                - ingenic,x1600-mac
6193b840106S周琰杰 (Zhou Yanjie)                - ingenic,x1830-mac
6203b840106S周琰杰 (Zhou Yanjie)                - ingenic,x2000-mac
621d70c215bSBhupesh Sharma                - qcom,qcs404-ethqos
622d0e3d29fSBartosz Golaszewski                - qcom,sa8775p-ethqos
62325926a70SAndrew Halaney                - qcom,sc8280xp-ethqos
624d70c215bSBhupesh Sharma                - qcom,sm8150-ethqos
6257db3545aSMaxime Ripard                - snps,dwmac-4.00
6267db3545aSMaxime Ripard                - snps,dwmac-4.10a
627f2253143SChristophe Roullier                - snps,dwmac-4.20a
628bdad810eSJoakim Zhang                - snps,dwmac-5.10a
62913f93511SEmil Renner Berthing                - snps,dwmac-5.20
6307db3545aSMaxime Ripard                - snps,dwxgmac
6317db3545aSMaxime Ripard                - snps,dwxgmac-2.10
6327db3545aSMaxime Ripard                - st,spear600-gmac
6337db3545aSMaxime Ripard
6347db3545aSMaxime Ripard    then:
635dbce0b65SRob Herring      properties:
636390b14b5SRob Herring (Arm)        snps,tso: false
6377db3545aSMaxime Ripard
6386a0e321eSRob HerringadditionalProperties: true
6396a0e321eSRob Herring
6407db3545aSMaxime Ripardexamples:
6417db3545aSMaxime Ripard  - |
6428fc4deaaSSebastian Reichel    gmac0: ethernet@e0800000 {
6438fc4deaaSSebastian Reichel        compatible = "snps,dwxgmac-2.10", "snps,dwxgmac";
6448fc4deaaSSebastian Reichel        reg = <0xe0800000 0x8000>;
6458fc4deaaSSebastian Reichel        interrupt-parent = <&vic1>;
6468fc4deaaSSebastian Reichel        interrupts = <24 23 22>;
6478fc4deaaSSebastian Reichel        interrupt-names = "macirq", "eth_wake_irq", "eth_lpi";
6488fc4deaaSSebastian Reichel        mac-address = [000000000000]; /* Filled in by U-Boot */
6498fc4deaaSSebastian Reichel        max-frame-size = <3800>;
6508fc4deaaSSebastian Reichel        phy-mode = "gmii";
6518fc4deaaSSebastian Reichel        snps,multicast-filter-bins = <256>;
6528fc4deaaSSebastian Reichel        snps,perfect-filter-entries = <128>;
6538fc4deaaSSebastian Reichel        rx-fifo-depth = <16384>;
6548fc4deaaSSebastian Reichel        tx-fifo-depth = <16384>;
6558fc4deaaSSebastian Reichel        clocks = <&clock>;
6568fc4deaaSSebastian Reichel        clock-names = "stmmaceth";
6578fc4deaaSSebastian Reichel        snps,axi-config = <&stmmac_axi_setup>;
6588fc4deaaSSebastian Reichel        snps,mtl-rx-config = <&mtl_rx_setup>;
6598fc4deaaSSebastian Reichel        snps,mtl-tx-config = <&mtl_tx_setup>;
6608fc4deaaSSebastian Reichel
6617db3545aSMaxime Ripard        stmmac_axi_setup: stmmac-axi-config {
6627db3545aSMaxime Ripard            snps,wr_osr_lmt = <0xf>;
6637db3545aSMaxime Ripard            snps,rd_osr_lmt = <0xf>;
6647db3545aSMaxime Ripard            snps,blen = <256 128 64 32 0 0 0>;
6657db3545aSMaxime Ripard        };
6667db3545aSMaxime Ripard
6677db3545aSMaxime Ripard        mtl_rx_setup: rx-queues-config {
6687db3545aSMaxime Ripard            snps,rx-queues-to-use = <1>;
6697db3545aSMaxime Ripard            snps,rx-sched-sp;
6707db3545aSMaxime Ripard            queue0 {
6717db3545aSMaxime Ripard                snps,dcb-algorithm;
6727db3545aSMaxime Ripard                snps,map-to-dma-channel = <0x0>;
6737db3545aSMaxime Ripard                snps,priority = <0x0>;
6747db3545aSMaxime Ripard            };
6757db3545aSMaxime Ripard        };
6767db3545aSMaxime Ripard
6777db3545aSMaxime Ripard        mtl_tx_setup: tx-queues-config {
6787db3545aSMaxime Ripard            snps,tx-queues-to-use = <2>;
6797db3545aSMaxime Ripard            snps,tx-sched-wrr;
6807db3545aSMaxime Ripard            queue0 {
6817db3545aSMaxime Ripard                snps,weight = <0x10>;
6827db3545aSMaxime Ripard                snps,dcb-algorithm;
6837db3545aSMaxime Ripard                snps,priority = <0x0>;
6847db3545aSMaxime Ripard            };
6857db3545aSMaxime Ripard
6867db3545aSMaxime Ripard            queue1 {
6877db3545aSMaxime Ripard                snps,avb-algorithm;
6887db3545aSMaxime Ripard                snps,send_slope = <0x1000>;
6897db3545aSMaxime Ripard                snps,idle_slope = <0x1000>;
6907db3545aSMaxime Ripard                snps,high_credit = <0x3E800>;
6917db3545aSMaxime Ripard                snps,low_credit = <0xFFC18000>;
6927db3545aSMaxime Ripard                snps,priority = <0x1>;
6937db3545aSMaxime Ripard            };
6947db3545aSMaxime Ripard        };
6957db3545aSMaxime Ripard
6967db3545aSMaxime Ripard        mdio0 {
6977db3545aSMaxime Ripard            #address-cells = <1>;
6987db3545aSMaxime Ripard            #size-cells = <0>;
6997db3545aSMaxime Ripard            compatible = "snps,dwmac-mdio";
7007db3545aSMaxime Ripard            phy1: ethernet-phy@0 {
7017db3545aSMaxime Ripard                reg = <0>;
7027db3545aSMaxime Ripard            };
7037db3545aSMaxime Ripard        };
7047db3545aSMaxime Ripard    };
7057db3545aSMaxime Ripard
7067db3545aSMaxime Ripard# FIXME: We should set it, but it would report all the generic
7077db3545aSMaxime Ripard# properties as additional properties.
7087db3545aSMaxime Ripard# additionalProperties: false
7097db3545aSMaxime Ripard
7107db3545aSMaxime Ripard...
711