xref: /freebsd/sys/contrib/device-tree/Bindings/net/sophgo,sg2044-dwmac.yaml (revision 833e5d42ab135b0238e61c5b3c19b8619677cbfa)
1# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
2%YAML 1.2
3---
4$id: http://devicetree.org/schemas/net/sophgo,sg2044-dwmac.yaml#
5$schema: http://devicetree.org/meta-schemas/core.yaml#
6
7title: Sophgo SG2044 DWMAC glue layer
8
9maintainers:
10  - Inochi Amaoto <inochiama@gmail.com>
11
12select:
13  properties:
14    compatible:
15      contains:
16        enum:
17          - sophgo,sg2044-dwmac
18          - sophgo,sg2042-dwmac
19  required:
20    - compatible
21
22properties:
23  compatible:
24    oneOf:
25      - items:
26          - const: sophgo,sg2042-dwmac
27          - const: snps,dwmac-5.00a
28      - items:
29          - const: sophgo,sg2044-dwmac
30          - const: snps,dwmac-5.30a
31
32  reg:
33    maxItems: 1
34
35  clocks:
36    items:
37      - description: GMAC main clock
38      - description: PTP clock
39      - description: TX clock
40
41  clock-names:
42    items:
43      - const: stmmaceth
44      - const: ptp_ref
45      - const: tx
46
47  dma-noncoherent: true
48
49  interrupts:
50    maxItems: 1
51
52  interrupt-names:
53    maxItems: 1
54
55  resets:
56    maxItems: 1
57
58  reset-names:
59    const: stmmaceth
60
61required:
62  - compatible
63  - reg
64  - clocks
65  - clock-names
66  - interrupts
67  - interrupt-names
68  - resets
69  - reset-names
70
71allOf:
72  - $ref: snps,dwmac.yaml#
73
74unevaluatedProperties: false
75
76examples:
77  - |
78    #include <dt-bindings/interrupt-controller/irq.h>
79
80    ethernet@30006000 {
81      compatible = "sophgo,sg2044-dwmac", "snps,dwmac-5.30a";
82      reg = <0x30006000 0x4000>;
83      clocks = <&clk 151>, <&clk 152>, <&clk 154>;
84      clock-names = "stmmaceth", "ptp_ref", "tx";
85      interrupt-parent = <&intc>;
86      interrupts = <296 IRQ_TYPE_LEVEL_HIGH>;
87      interrupt-names = "macirq";
88      phy-handle = <&phy0>;
89      phy-mode = "rgmii-id";
90      resets = <&rst 30>;
91      reset-names = "stmmaceth";
92      snps,multicast-filter-bins = <0>;
93      snps,perfect-filter-entries = <1>;
94      snps,aal;
95      snps,tso;
96      snps,txpbl = <32>;
97      snps,rxpbl = <32>;
98      snps,mtl-rx-config = <&gmac0_mtl_rx_setup>;
99      snps,mtl-tx-config = <&gmac0_mtl_tx_setup>;
100      snps,axi-config = <&gmac0_stmmac_axi_setup>;
101
102      gmac0_mtl_rx_setup: rx-queues-config {
103        snps,rx-queues-to-use = <8>;
104        snps,rx-sched-wsp;
105        queue0 {};
106        queue1 {};
107        queue2 {};
108        queue3 {};
109        queue4 {};
110        queue5 {};
111        queue6 {};
112        queue7 {};
113      };
114
115      gmac0_mtl_tx_setup: tx-queues-config {
116        snps,tx-queues-to-use = <8>;
117        queue0 {};
118        queue1 {};
119        queue2 {};
120        queue3 {};
121        queue4 {};
122        queue5 {};
123        queue6 {};
124        queue7 {};
125      };
126
127      gmac0_stmmac_axi_setup: stmmac-axi-config {
128        snps,blen = <16 8 4 0 0 0 0>;
129        snps,wr_osr_lmt = <1>;
130        snps,rd_osr_lmt = <2>;
131      };
132    };
133