18c2ecf20Sopenharmony_ci# SPDX-License-Identifier: GPL-2.0
28c2ecf20Sopenharmony_ci%YAML 1.2
38c2ecf20Sopenharmony_ci---
48c2ecf20Sopenharmony_ci$id: http://devicetree.org/schemas/net/snps,dwmac.yaml#
58c2ecf20Sopenharmony_ci$schema: http://devicetree.org/meta-schemas/core.yaml#
68c2ecf20Sopenharmony_ci
78c2ecf20Sopenharmony_cititle: Synopsys DesignWare MAC Device Tree Bindings
88c2ecf20Sopenharmony_ci
98c2ecf20Sopenharmony_cimaintainers:
108c2ecf20Sopenharmony_ci  - Alexandre Torgue <alexandre.torgue@st.com>
118c2ecf20Sopenharmony_ci  - Giuseppe Cavallaro <peppe.cavallaro@st.com>
128c2ecf20Sopenharmony_ci  - Jose Abreu <joabreu@synopsys.com>
138c2ecf20Sopenharmony_ci
148c2ecf20Sopenharmony_ci# Select every compatible, including the deprecated ones. This way, we
158c2ecf20Sopenharmony_ci# will be able to report a warning when we have that compatible, since
168c2ecf20Sopenharmony_ci# we will validate the node thanks to the select, but won't report it
178c2ecf20Sopenharmony_ci# as a valid value in the compatible property description
188c2ecf20Sopenharmony_ciselect:
198c2ecf20Sopenharmony_ci  properties:
208c2ecf20Sopenharmony_ci    compatible:
218c2ecf20Sopenharmony_ci      contains:
228c2ecf20Sopenharmony_ci        enum:
238c2ecf20Sopenharmony_ci          - snps,dwmac
248c2ecf20Sopenharmony_ci          - snps,dwmac-3.50a
258c2ecf20Sopenharmony_ci          - snps,dwmac-3.610
268c2ecf20Sopenharmony_ci          - snps,dwmac-3.70a
278c2ecf20Sopenharmony_ci          - snps,dwmac-3.710
288c2ecf20Sopenharmony_ci          - snps,dwmac-4.00
298c2ecf20Sopenharmony_ci          - snps,dwmac-4.10a
308c2ecf20Sopenharmony_ci          - snps,dwmac-4.20a
318c2ecf20Sopenharmony_ci          - snps,dwxgmac
328c2ecf20Sopenharmony_ci          - snps,dwxgmac-2.10
338c2ecf20Sopenharmony_ci
348c2ecf20Sopenharmony_ci          # Deprecated
358c2ecf20Sopenharmony_ci          - st,spear600-gmac
368c2ecf20Sopenharmony_ci
378c2ecf20Sopenharmony_ci  required:
388c2ecf20Sopenharmony_ci    - compatible
398c2ecf20Sopenharmony_ci
408c2ecf20Sopenharmony_ciproperties:
418c2ecf20Sopenharmony_ci
428c2ecf20Sopenharmony_ci  # We need to include all the compatibles from schemas that will
438c2ecf20Sopenharmony_ci  # include that schemas, otherwise compatible won't validate for
448c2ecf20Sopenharmony_ci  # those.
458c2ecf20Sopenharmony_ci  compatible:
468c2ecf20Sopenharmony_ci    contains:
478c2ecf20Sopenharmony_ci      enum:
488c2ecf20Sopenharmony_ci        - allwinner,sun7i-a20-gmac
498c2ecf20Sopenharmony_ci        - allwinner,sun8i-a83t-emac
508c2ecf20Sopenharmony_ci        - allwinner,sun8i-h3-emac
518c2ecf20Sopenharmony_ci        - allwinner,sun8i-r40-emac
528c2ecf20Sopenharmony_ci        - allwinner,sun8i-v3s-emac
538c2ecf20Sopenharmony_ci        - allwinner,sun50i-a64-emac
548c2ecf20Sopenharmony_ci        - amlogic,meson6-dwmac
558c2ecf20Sopenharmony_ci        - amlogic,meson8b-dwmac
568c2ecf20Sopenharmony_ci        - amlogic,meson8m2-dwmac
578c2ecf20Sopenharmony_ci        - amlogic,meson-gxbb-dwmac
588c2ecf20Sopenharmony_ci        - amlogic,meson-axg-dwmac
598c2ecf20Sopenharmony_ci        - snps,dwmac
608c2ecf20Sopenharmony_ci        - snps,dwmac-3.50a
618c2ecf20Sopenharmony_ci        - snps,dwmac-3.610
628c2ecf20Sopenharmony_ci        - snps,dwmac-3.70a
638c2ecf20Sopenharmony_ci        - snps,dwmac-3.710
648c2ecf20Sopenharmony_ci        - snps,dwmac-4.00
658c2ecf20Sopenharmony_ci        - snps,dwmac-4.10a
668c2ecf20Sopenharmony_ci        - snps,dwmac-4.20a
678c2ecf20Sopenharmony_ci        - snps,dwxgmac
688c2ecf20Sopenharmony_ci        - snps,dwxgmac-2.10
698c2ecf20Sopenharmony_ci
708c2ecf20Sopenharmony_ci  reg:
718c2ecf20Sopenharmony_ci    minItems: 1
728c2ecf20Sopenharmony_ci    maxItems: 2
738c2ecf20Sopenharmony_ci
748c2ecf20Sopenharmony_ci  interrupts:
758c2ecf20Sopenharmony_ci    minItems: 1
768c2ecf20Sopenharmony_ci    maxItems: 3
778c2ecf20Sopenharmony_ci    items:
788c2ecf20Sopenharmony_ci      - description: Combined signal for various interrupt events
798c2ecf20Sopenharmony_ci      - description: The interrupt to manage the remote wake-up packet detection
808c2ecf20Sopenharmony_ci      - description: The interrupt that occurs when Rx exits the LPI state
818c2ecf20Sopenharmony_ci
828c2ecf20Sopenharmony_ci  interrupt-names:
838c2ecf20Sopenharmony_ci    minItems: 1
848c2ecf20Sopenharmony_ci    maxItems: 3
858c2ecf20Sopenharmony_ci    items:
868c2ecf20Sopenharmony_ci      - const: macirq
878c2ecf20Sopenharmony_ci      - const: eth_wake_irq
888c2ecf20Sopenharmony_ci      - const: eth_lpi
898c2ecf20Sopenharmony_ci
908c2ecf20Sopenharmony_ci  clocks:
918c2ecf20Sopenharmony_ci    minItems: 1
928c2ecf20Sopenharmony_ci    maxItems: 5
938c2ecf20Sopenharmony_ci    additionalItems: true
948c2ecf20Sopenharmony_ci    items:
958c2ecf20Sopenharmony_ci      - description: GMAC main clock
968c2ecf20Sopenharmony_ci      - description: Peripheral registers interface clock
978c2ecf20Sopenharmony_ci      - description:
988c2ecf20Sopenharmony_ci          PTP reference clock. This clock is used for programming the
998c2ecf20Sopenharmony_ci          Timestamp Addend Register. If not passed then the system
1008c2ecf20Sopenharmony_ci          clock will be used and this is fine on some platforms.
1018c2ecf20Sopenharmony_ci
1028c2ecf20Sopenharmony_ci  clock-names:
1038c2ecf20Sopenharmony_ci    minItems: 1
1048c2ecf20Sopenharmony_ci    maxItems: 5
1058c2ecf20Sopenharmony_ci    additionalItems: true
1068c2ecf20Sopenharmony_ci    contains:
1078c2ecf20Sopenharmony_ci      enum:
1088c2ecf20Sopenharmony_ci        - stmmaceth
1098c2ecf20Sopenharmony_ci        - pclk
1108c2ecf20Sopenharmony_ci        - ptp_ref
1118c2ecf20Sopenharmony_ci
1128c2ecf20Sopenharmony_ci  resets:
1138c2ecf20Sopenharmony_ci    maxItems: 1
1148c2ecf20Sopenharmony_ci    description:
1158c2ecf20Sopenharmony_ci      MAC Reset signal.
1168c2ecf20Sopenharmony_ci
1178c2ecf20Sopenharmony_ci  reset-names:
1188c2ecf20Sopenharmony_ci    const: stmmaceth
1198c2ecf20Sopenharmony_ci
1208c2ecf20Sopenharmony_ci  mac-mode:
1218c2ecf20Sopenharmony_ci    $ref: ethernet-controller.yaml#/properties/phy-connection-type
1228c2ecf20Sopenharmony_ci    description:
1238c2ecf20Sopenharmony_ci      The property is identical to 'phy-mode', and assumes that there is mode
1248c2ecf20Sopenharmony_ci      converter in-between the MAC & PHY (e.g. GMII-to-RGMII). This converter
1258c2ecf20Sopenharmony_ci      can be passive (no SW requirement), and requires that the MAC operate
1268c2ecf20Sopenharmony_ci      in a different mode than the PHY in order to function.
1278c2ecf20Sopenharmony_ci
1288c2ecf20Sopenharmony_ci  snps,axi-config:
1298c2ecf20Sopenharmony_ci    $ref: /schemas/types.yaml#definitions/phandle
1308c2ecf20Sopenharmony_ci    description:
1318c2ecf20Sopenharmony_ci      AXI BUS Mode parameters. Phandle to a node that can contain the
1328c2ecf20Sopenharmony_ci      following properties
1338c2ecf20Sopenharmony_ci        * snps,lpi_en, enable Low Power Interface
1348c2ecf20Sopenharmony_ci        * snps,xit_frm, unlock on WoL
1358c2ecf20Sopenharmony_ci        * snps,wr_osr_lmt, max write outstanding req. limit
1368c2ecf20Sopenharmony_ci        * snps,rd_osr_lmt, max read outstanding req. limit
1378c2ecf20Sopenharmony_ci        * snps,kbbe, do not cross 1KiB boundary.
1388c2ecf20Sopenharmony_ci        * snps,blen, this is a vector of supported burst length.
1398c2ecf20Sopenharmony_ci        * snps,fb, fixed-burst
1408c2ecf20Sopenharmony_ci        * snps,mb, mixed-burst
1418c2ecf20Sopenharmony_ci        * snps,rb, rebuild INCRx Burst
1428c2ecf20Sopenharmony_ci
1438c2ecf20Sopenharmony_ci  snps,mtl-rx-config:
1448c2ecf20Sopenharmony_ci    $ref: /schemas/types.yaml#definitions/phandle
1458c2ecf20Sopenharmony_ci    description:
1468c2ecf20Sopenharmony_ci      Multiple RX Queues parameters. Phandle to a node that can
1478c2ecf20Sopenharmony_ci      contain the following properties
1488c2ecf20Sopenharmony_ci        * snps,rx-queues-to-use, number of RX queues to be used in the
1498c2ecf20Sopenharmony_ci          driver
1508c2ecf20Sopenharmony_ci        * Choose one of these RX scheduling algorithms
1518c2ecf20Sopenharmony_ci          * snps,rx-sched-sp, Strict priority
1528c2ecf20Sopenharmony_ci          * snps,rx-sched-wsp, Weighted Strict priority
1538c2ecf20Sopenharmony_ci        * For each RX queue
1548c2ecf20Sopenharmony_ci          * Choose one of these modes
1558c2ecf20Sopenharmony_ci            * snps,dcb-algorithm, Queue to be enabled as DCB
1568c2ecf20Sopenharmony_ci            * snps,avb-algorithm, Queue to be enabled as AVB
1578c2ecf20Sopenharmony_ci          * snps,map-to-dma-channel, Channel to map
1588c2ecf20Sopenharmony_ci          * Specifiy specific packet routing
1598c2ecf20Sopenharmony_ci            * snps,route-avcp, AV Untagged Control packets
1608c2ecf20Sopenharmony_ci            * snps,route-ptp, PTP Packets
1618c2ecf20Sopenharmony_ci            * snps,route-dcbcp, DCB Control Packets
1628c2ecf20Sopenharmony_ci            * snps,route-up, Untagged Packets
1638c2ecf20Sopenharmony_ci            * snps,route-multi-broad, Multicast & Broadcast Packets
1648c2ecf20Sopenharmony_ci          * snps,priority, RX queue priority (Range 0x0 to 0xF)
1658c2ecf20Sopenharmony_ci
1668c2ecf20Sopenharmony_ci  snps,mtl-tx-config:
1678c2ecf20Sopenharmony_ci    $ref: /schemas/types.yaml#definitions/phandle
1688c2ecf20Sopenharmony_ci    description:
1698c2ecf20Sopenharmony_ci      Multiple TX Queues parameters. Phandle to a node that can
1708c2ecf20Sopenharmony_ci      contain the following properties
1718c2ecf20Sopenharmony_ci        * snps,tx-queues-to-use, number of TX queues to be used in the
1728c2ecf20Sopenharmony_ci          driver
1738c2ecf20Sopenharmony_ci        * Choose one of these TX scheduling algorithms
1748c2ecf20Sopenharmony_ci          * snps,tx-sched-wrr, Weighted Round Robin
1758c2ecf20Sopenharmony_ci          * snps,tx-sched-wfq, Weighted Fair Queuing
1768c2ecf20Sopenharmony_ci          * snps,tx-sched-dwrr, Deficit Weighted Round Robin
1778c2ecf20Sopenharmony_ci          * snps,tx-sched-sp, Strict priority
1788c2ecf20Sopenharmony_ci        * For each TX queue
1798c2ecf20Sopenharmony_ci          * snps,weight, TX queue weight (if using a DCB weight
1808c2ecf20Sopenharmony_ci            algorithm)
1818c2ecf20Sopenharmony_ci          * Choose one of these modes
1828c2ecf20Sopenharmony_ci            * snps,dcb-algorithm, TX queue will be working in DCB
1838c2ecf20Sopenharmony_ci            * snps,avb-algorithm, TX queue will be working in AVB
1848c2ecf20Sopenharmony_ci              [Attention] Queue 0 is reserved for legacy traffic
1858c2ecf20Sopenharmony_ci                          and so no AVB is available in this queue.
1868c2ecf20Sopenharmony_ci          * Configure Credit Base Shaper (if AVB Mode selected)
1878c2ecf20Sopenharmony_ci            * snps,send_slope, enable Low Power Interface
1888c2ecf20Sopenharmony_ci            * snps,idle_slope, unlock on WoL
1898c2ecf20Sopenharmony_ci            * snps,high_credit, max write outstanding req. limit
1908c2ecf20Sopenharmony_ci            * snps,low_credit, max read outstanding req. limit
1918c2ecf20Sopenharmony_ci          * snps,priority, TX queue priority (Range 0x0 to 0xF)
1928c2ecf20Sopenharmony_ci
1938c2ecf20Sopenharmony_ci  snps,reset-gpio:
1948c2ecf20Sopenharmony_ci    deprecated: true
1958c2ecf20Sopenharmony_ci    maxItems: 1
1968c2ecf20Sopenharmony_ci    description:
1978c2ecf20Sopenharmony_ci      PHY Reset GPIO
1988c2ecf20Sopenharmony_ci
1998c2ecf20Sopenharmony_ci  snps,reset-active-low:
2008c2ecf20Sopenharmony_ci    deprecated: true
2018c2ecf20Sopenharmony_ci    $ref: /schemas/types.yaml#definitions/flag
2028c2ecf20Sopenharmony_ci    description:
2038c2ecf20Sopenharmony_ci      Indicates that the PHY Reset is active low
2048c2ecf20Sopenharmony_ci
2058c2ecf20Sopenharmony_ci  snps,reset-delays-us:
2068c2ecf20Sopenharmony_ci    deprecated: true
2078c2ecf20Sopenharmony_ci    description:
2088c2ecf20Sopenharmony_ci      Triplet of delays. The 1st cell is reset pre-delay in micro
2098c2ecf20Sopenharmony_ci      seconds. The 2nd cell is reset pulse in micro seconds. The 3rd
2108c2ecf20Sopenharmony_ci      cell is reset post-delay in micro seconds.
2118c2ecf20Sopenharmony_ci    $ref: /schemas/types.yaml#definitions/uint32-array
2128c2ecf20Sopenharmony_ci    minItems: 3
2138c2ecf20Sopenharmony_ci    maxItems: 3
2148c2ecf20Sopenharmony_ci
2158c2ecf20Sopenharmony_ci  snps,aal:
2168c2ecf20Sopenharmony_ci    $ref: /schemas/types.yaml#definitions/flag
2178c2ecf20Sopenharmony_ci    description:
2188c2ecf20Sopenharmony_ci      Use Address-Aligned Beats
2198c2ecf20Sopenharmony_ci
2208c2ecf20Sopenharmony_ci  snps,fixed-burst:
2218c2ecf20Sopenharmony_ci    $ref: /schemas/types.yaml#definitions/flag
2228c2ecf20Sopenharmony_ci    description:
2238c2ecf20Sopenharmony_ci      Program the DMA to use the fixed burst mode
2248c2ecf20Sopenharmony_ci
2258c2ecf20Sopenharmony_ci  snps,mixed-burst:
2268c2ecf20Sopenharmony_ci    $ref: /schemas/types.yaml#definitions/flag
2278c2ecf20Sopenharmony_ci    description:
2288c2ecf20Sopenharmony_ci      Program the DMA to use the mixed burst mode
2298c2ecf20Sopenharmony_ci
2308c2ecf20Sopenharmony_ci  snps,force_thresh_dma_mode:
2318c2ecf20Sopenharmony_ci    $ref: /schemas/types.yaml#definitions/flag
2328c2ecf20Sopenharmony_ci    description:
2338c2ecf20Sopenharmony_ci      Force DMA to use the threshold mode for both tx and rx
2348c2ecf20Sopenharmony_ci
2358c2ecf20Sopenharmony_ci  snps,force_sf_dma_mode:
2368c2ecf20Sopenharmony_ci    $ref: /schemas/types.yaml#definitions/flag
2378c2ecf20Sopenharmony_ci    description:
2388c2ecf20Sopenharmony_ci      Force DMA to use the Store and Forward mode for both tx and
2398c2ecf20Sopenharmony_ci      rx. This flag is ignored if force_thresh_dma_mode is set.
2408c2ecf20Sopenharmony_ci
2418c2ecf20Sopenharmony_ci  snps,en-tx-lpi-clockgating:
2428c2ecf20Sopenharmony_ci    $ref: /schemas/types.yaml#definitions/flag
2438c2ecf20Sopenharmony_ci    description:
2448c2ecf20Sopenharmony_ci      Enable gating of the MAC TX clock during TX low-power mode
2458c2ecf20Sopenharmony_ci
2468c2ecf20Sopenharmony_ci  snps,multicast-filter-bins:
2478c2ecf20Sopenharmony_ci    $ref: /schemas/types.yaml#definitions/uint32
2488c2ecf20Sopenharmony_ci    description:
2498c2ecf20Sopenharmony_ci      Number of multicast filter hash bins supported by this device
2508c2ecf20Sopenharmony_ci      instance
2518c2ecf20Sopenharmony_ci
2528c2ecf20Sopenharmony_ci  snps,perfect-filter-entries:
2538c2ecf20Sopenharmony_ci    $ref: /schemas/types.yaml#definitions/uint32
2548c2ecf20Sopenharmony_ci    description:
2558c2ecf20Sopenharmony_ci      Number of perfect filter entries supported by this device
2568c2ecf20Sopenharmony_ci      instance
2578c2ecf20Sopenharmony_ci
2588c2ecf20Sopenharmony_ci  snps,ps-speed:
2598c2ecf20Sopenharmony_ci    $ref: /schemas/types.yaml#definitions/uint32
2608c2ecf20Sopenharmony_ci    description:
2618c2ecf20Sopenharmony_ci      Port selection speed that can be passed to the core when PCS
2628c2ecf20Sopenharmony_ci      is supported. For example, this is used in case of SGMII and
2638c2ecf20Sopenharmony_ci      MAC2MAC connection.
2648c2ecf20Sopenharmony_ci
2658c2ecf20Sopenharmony_ci  mdio:
2668c2ecf20Sopenharmony_ci    type: object
2678c2ecf20Sopenharmony_ci    description:
2688c2ecf20Sopenharmony_ci      Creates and registers an MDIO bus.
2698c2ecf20Sopenharmony_ci
2708c2ecf20Sopenharmony_ci    properties:
2718c2ecf20Sopenharmony_ci      compatible:
2728c2ecf20Sopenharmony_ci        const: snps,dwmac-mdio
2738c2ecf20Sopenharmony_ci
2748c2ecf20Sopenharmony_ci    required:
2758c2ecf20Sopenharmony_ci      - compatible
2768c2ecf20Sopenharmony_ci
2778c2ecf20Sopenharmony_cirequired:
2788c2ecf20Sopenharmony_ci  - compatible
2798c2ecf20Sopenharmony_ci  - reg
2808c2ecf20Sopenharmony_ci  - interrupts
2818c2ecf20Sopenharmony_ci  - interrupt-names
2828c2ecf20Sopenharmony_ci  - phy-mode
2838c2ecf20Sopenharmony_ci
2848c2ecf20Sopenharmony_cidependencies:
2858c2ecf20Sopenharmony_ci  snps,reset-active-low: ["snps,reset-gpio"]
2868c2ecf20Sopenharmony_ci  snps,reset-delay-us: ["snps,reset-gpio"]
2878c2ecf20Sopenharmony_ci
2888c2ecf20Sopenharmony_ciallOf:
2898c2ecf20Sopenharmony_ci  - $ref: "ethernet-controller.yaml#"
2908c2ecf20Sopenharmony_ci  - if:
2918c2ecf20Sopenharmony_ci      properties:
2928c2ecf20Sopenharmony_ci        compatible:
2938c2ecf20Sopenharmony_ci          contains:
2948c2ecf20Sopenharmony_ci            enum:
2958c2ecf20Sopenharmony_ci              - allwinner,sun7i-a20-gmac
2968c2ecf20Sopenharmony_ci              - allwinner,sun8i-a83t-emac
2978c2ecf20Sopenharmony_ci              - allwinner,sun8i-h3-emac
2988c2ecf20Sopenharmony_ci              - allwinner,sun8i-r40-emac
2998c2ecf20Sopenharmony_ci              - allwinner,sun8i-v3s-emac
3008c2ecf20Sopenharmony_ci              - allwinner,sun50i-a64-emac
3018c2ecf20Sopenharmony_ci              - snps,dwxgmac
3028c2ecf20Sopenharmony_ci              - snps,dwxgmac-2.10
3038c2ecf20Sopenharmony_ci              - st,spear600-gmac
3048c2ecf20Sopenharmony_ci
3058c2ecf20Sopenharmony_ci    then:
3068c2ecf20Sopenharmony_ci      properties:
3078c2ecf20Sopenharmony_ci        snps,pbl:
3088c2ecf20Sopenharmony_ci          description:
3098c2ecf20Sopenharmony_ci            Programmable Burst Length (tx and rx)
3108c2ecf20Sopenharmony_ci          $ref: /schemas/types.yaml#definitions/uint32
3118c2ecf20Sopenharmony_ci          enum: [2, 4, 8]
3128c2ecf20Sopenharmony_ci
3138c2ecf20Sopenharmony_ci        snps,txpbl:
3148c2ecf20Sopenharmony_ci          description:
3158c2ecf20Sopenharmony_ci            Tx Programmable Burst Length. If set, DMA tx will use this
3168c2ecf20Sopenharmony_ci            value rather than snps,pbl.
3178c2ecf20Sopenharmony_ci          $ref: /schemas/types.yaml#definitions/uint32
3188c2ecf20Sopenharmony_ci          enum: [2, 4, 8]
3198c2ecf20Sopenharmony_ci
3208c2ecf20Sopenharmony_ci        snps,rxpbl:
3218c2ecf20Sopenharmony_ci          description:
3228c2ecf20Sopenharmony_ci            Rx Programmable Burst Length. If set, DMA rx will use this
3238c2ecf20Sopenharmony_ci            value rather than snps,pbl.
3248c2ecf20Sopenharmony_ci          $ref: /schemas/types.yaml#definitions/uint32
3258c2ecf20Sopenharmony_ci          enum: [2, 4, 8]
3268c2ecf20Sopenharmony_ci
3278c2ecf20Sopenharmony_ci        snps,no-pbl-x8:
3288c2ecf20Sopenharmony_ci          $ref: /schemas/types.yaml#definitions/flag
3298c2ecf20Sopenharmony_ci          description:
3308c2ecf20Sopenharmony_ci            Don\'t multiply the pbl/txpbl/rxpbl values by 8. For core
3318c2ecf20Sopenharmony_ci            rev < 3.50, don\'t multiply the values by 4.
3328c2ecf20Sopenharmony_ci
3338c2ecf20Sopenharmony_ci  - if:
3348c2ecf20Sopenharmony_ci      properties:
3358c2ecf20Sopenharmony_ci        compatible:
3368c2ecf20Sopenharmony_ci          contains:
3378c2ecf20Sopenharmony_ci            enum:
3388c2ecf20Sopenharmony_ci              - allwinner,sun7i-a20-gmac
3398c2ecf20Sopenharmony_ci              - allwinner,sun8i-a83t-emac
3408c2ecf20Sopenharmony_ci              - allwinner,sun8i-h3-emac
3418c2ecf20Sopenharmony_ci              - allwinner,sun8i-r40-emac
3428c2ecf20Sopenharmony_ci              - allwinner,sun8i-v3s-emac
3438c2ecf20Sopenharmony_ci              - allwinner,sun50i-a64-emac
3448c2ecf20Sopenharmony_ci              - snps,dwmac-4.00
3458c2ecf20Sopenharmony_ci              - snps,dwmac-4.10a
3468c2ecf20Sopenharmony_ci              - snps,dwmac-4.20a
3478c2ecf20Sopenharmony_ci              - snps,dwxgmac
3488c2ecf20Sopenharmony_ci              - snps,dwxgmac-2.10
3498c2ecf20Sopenharmony_ci              - st,spear600-gmac
3508c2ecf20Sopenharmony_ci
3518c2ecf20Sopenharmony_ci    then:
3528c2ecf20Sopenharmony_ci      properties:
3538c2ecf20Sopenharmony_ci        snps,tso:
3548c2ecf20Sopenharmony_ci          $ref: /schemas/types.yaml#definitions/flag
3558c2ecf20Sopenharmony_ci          description:
3568c2ecf20Sopenharmony_ci            Enables the TSO feature otherwise it will be managed by
3578c2ecf20Sopenharmony_ci            MAC HW capability register.
3588c2ecf20Sopenharmony_ci
3598c2ecf20Sopenharmony_ciadditionalProperties: true
3608c2ecf20Sopenharmony_ci
3618c2ecf20Sopenharmony_ciexamples:
3628c2ecf20Sopenharmony_ci  - |
3638c2ecf20Sopenharmony_ci    stmmac_axi_setup: stmmac-axi-config {
3648c2ecf20Sopenharmony_ci        snps,wr_osr_lmt = <0xf>;
3658c2ecf20Sopenharmony_ci        snps,rd_osr_lmt = <0xf>;
3668c2ecf20Sopenharmony_ci        snps,blen = <256 128 64 32 0 0 0>;
3678c2ecf20Sopenharmony_ci    };
3688c2ecf20Sopenharmony_ci
3698c2ecf20Sopenharmony_ci    mtl_rx_setup: rx-queues-config {
3708c2ecf20Sopenharmony_ci        snps,rx-queues-to-use = <1>;
3718c2ecf20Sopenharmony_ci        snps,rx-sched-sp;
3728c2ecf20Sopenharmony_ci        queue0 {
3738c2ecf20Sopenharmony_ci            snps,dcb-algorithm;
3748c2ecf20Sopenharmony_ci            snps,map-to-dma-channel = <0x0>;
3758c2ecf20Sopenharmony_ci            snps,priority = <0x0>;
3768c2ecf20Sopenharmony_ci        };
3778c2ecf20Sopenharmony_ci    };
3788c2ecf20Sopenharmony_ci
3798c2ecf20Sopenharmony_ci    mtl_tx_setup: tx-queues-config {
3808c2ecf20Sopenharmony_ci        snps,tx-queues-to-use = <2>;
3818c2ecf20Sopenharmony_ci        snps,tx-sched-wrr;
3828c2ecf20Sopenharmony_ci        queue0 {
3838c2ecf20Sopenharmony_ci            snps,weight = <0x10>;
3848c2ecf20Sopenharmony_ci            snps,dcb-algorithm;
3858c2ecf20Sopenharmony_ci            snps,priority = <0x0>;
3868c2ecf20Sopenharmony_ci        };
3878c2ecf20Sopenharmony_ci
3888c2ecf20Sopenharmony_ci        queue1 {
3898c2ecf20Sopenharmony_ci            snps,avb-algorithm;
3908c2ecf20Sopenharmony_ci            snps,send_slope = <0x1000>;
3918c2ecf20Sopenharmony_ci            snps,idle_slope = <0x1000>;
3928c2ecf20Sopenharmony_ci            snps,high_credit = <0x3E800>;
3938c2ecf20Sopenharmony_ci            snps,low_credit = <0xFFC18000>;
3948c2ecf20Sopenharmony_ci            snps,priority = <0x1>;
3958c2ecf20Sopenharmony_ci        };
3968c2ecf20Sopenharmony_ci    };
3978c2ecf20Sopenharmony_ci
3988c2ecf20Sopenharmony_ci    gmac0: ethernet@e0800000 {
3998c2ecf20Sopenharmony_ci        compatible = "snps,dwxgmac-2.10", "snps,dwxgmac";
4008c2ecf20Sopenharmony_ci        reg = <0xe0800000 0x8000>;
4018c2ecf20Sopenharmony_ci        interrupt-parent = <&vic1>;
4028c2ecf20Sopenharmony_ci        interrupts = <24 23 22>;
4038c2ecf20Sopenharmony_ci        interrupt-names = "macirq", "eth_wake_irq", "eth_lpi";
4048c2ecf20Sopenharmony_ci        mac-address = [000000000000]; /* Filled in by U-Boot */
4058c2ecf20Sopenharmony_ci        max-frame-size = <3800>;
4068c2ecf20Sopenharmony_ci        phy-mode = "gmii";
4078c2ecf20Sopenharmony_ci        snps,multicast-filter-bins = <256>;
4088c2ecf20Sopenharmony_ci        snps,perfect-filter-entries = <128>;
4098c2ecf20Sopenharmony_ci        rx-fifo-depth = <16384>;
4108c2ecf20Sopenharmony_ci        tx-fifo-depth = <16384>;
4118c2ecf20Sopenharmony_ci        clocks = <&clock>;
4128c2ecf20Sopenharmony_ci        clock-names = "stmmaceth";
4138c2ecf20Sopenharmony_ci        snps,axi-config = <&stmmac_axi_setup>;
4148c2ecf20Sopenharmony_ci        snps,mtl-rx-config = <&mtl_rx_setup>;
4158c2ecf20Sopenharmony_ci        snps,mtl-tx-config = <&mtl_tx_setup>;
4168c2ecf20Sopenharmony_ci        mdio0 {
4178c2ecf20Sopenharmony_ci            #address-cells = <1>;
4188c2ecf20Sopenharmony_ci            #size-cells = <0>;
4198c2ecf20Sopenharmony_ci            compatible = "snps,dwmac-mdio";
4208c2ecf20Sopenharmony_ci            phy1: ethernet-phy@0 {
4218c2ecf20Sopenharmony_ci                reg = <0>;
4228c2ecf20Sopenharmony_ci            };
4238c2ecf20Sopenharmony_ci        };
4248c2ecf20Sopenharmony_ci    };
4258c2ecf20Sopenharmony_ci
4268c2ecf20Sopenharmony_ci# FIXME: We should set it, but it would report all the generic
4278c2ecf20Sopenharmony_ci# properties as additional properties.
4288c2ecf20Sopenharmony_ci# additionalProperties: false
4298c2ecf20Sopenharmony_ci
4308c2ecf20Sopenharmony_ci...
431