xref: /freebsd/sys/contrib/device-tree/Bindings/net/renesas,rzv2h-gbeth.yaml (revision 833e5d42ab135b0238e61c5b3c19b8619677cbfa)
1*833e5d42SEmmanuel Vadot# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
2*833e5d42SEmmanuel Vadot%YAML 1.2
3*833e5d42SEmmanuel Vadot---
4*833e5d42SEmmanuel Vadot$id: http://devicetree.org/schemas/net/renesas,rzv2h-gbeth.yaml#
5*833e5d42SEmmanuel Vadot$schema: http://devicetree.org/meta-schemas/core.yaml#
6*833e5d42SEmmanuel Vadot
7*833e5d42SEmmanuel Vadottitle: GBETH glue layer for Renesas RZ/V2H(P) (and similar SoCs)
8*833e5d42SEmmanuel Vadot
9*833e5d42SEmmanuel Vadotmaintainers:
10*833e5d42SEmmanuel Vadot  - Lad Prabhakar <prabhakar.mahadev-lad.rj@bp.renesas.com>
11*833e5d42SEmmanuel Vadot
12*833e5d42SEmmanuel Vadotselect:
13*833e5d42SEmmanuel Vadot  properties:
14*833e5d42SEmmanuel Vadot    compatible:
15*833e5d42SEmmanuel Vadot      contains:
16*833e5d42SEmmanuel Vadot        enum:
17*833e5d42SEmmanuel Vadot          - renesas,r9a09g047-gbeth
18*833e5d42SEmmanuel Vadot          - renesas,r9a09g056-gbeth
19*833e5d42SEmmanuel Vadot          - renesas,r9a09g057-gbeth
20*833e5d42SEmmanuel Vadot          - renesas,rzv2h-gbeth
21*833e5d42SEmmanuel Vadot  required:
22*833e5d42SEmmanuel Vadot    - compatible
23*833e5d42SEmmanuel Vadot
24*833e5d42SEmmanuel Vadotproperties:
25*833e5d42SEmmanuel Vadot  compatible:
26*833e5d42SEmmanuel Vadot    items:
27*833e5d42SEmmanuel Vadot      - enum:
28*833e5d42SEmmanuel Vadot          - renesas,r9a09g047-gbeth # RZ/G3E
29*833e5d42SEmmanuel Vadot          - renesas,r9a09g056-gbeth # RZ/V2N
30*833e5d42SEmmanuel Vadot          - renesas,r9a09g057-gbeth # RZ/V2H(P)
31*833e5d42SEmmanuel Vadot      - const: renesas,rzv2h-gbeth
32*833e5d42SEmmanuel Vadot      - const: snps,dwmac-5.20
33*833e5d42SEmmanuel Vadot
34*833e5d42SEmmanuel Vadot  reg:
35*833e5d42SEmmanuel Vadot    maxItems: 1
36*833e5d42SEmmanuel Vadot
37*833e5d42SEmmanuel Vadot  clocks:
38*833e5d42SEmmanuel Vadot    items:
39*833e5d42SEmmanuel Vadot      - description: CSR clock
40*833e5d42SEmmanuel Vadot      - description: AXI system clock
41*833e5d42SEmmanuel Vadot      - description: PTP clock
42*833e5d42SEmmanuel Vadot      - description: TX clock
43*833e5d42SEmmanuel Vadot      - description: RX clock
44*833e5d42SEmmanuel Vadot      - description: TX clock phase-shifted by 180 degrees
45*833e5d42SEmmanuel Vadot      - description: RX clock phase-shifted by 180 degrees
46*833e5d42SEmmanuel Vadot
47*833e5d42SEmmanuel Vadot  clock-names:
48*833e5d42SEmmanuel Vadot    items:
49*833e5d42SEmmanuel Vadot      - const: stmmaceth
50*833e5d42SEmmanuel Vadot      - const: pclk
51*833e5d42SEmmanuel Vadot      - const: ptp_ref
52*833e5d42SEmmanuel Vadot      - const: tx
53*833e5d42SEmmanuel Vadot      - const: rx
54*833e5d42SEmmanuel Vadot      - const: tx-180
55*833e5d42SEmmanuel Vadot      - const: rx-180
56*833e5d42SEmmanuel Vadot
57*833e5d42SEmmanuel Vadot  interrupts:
58*833e5d42SEmmanuel Vadot    minItems: 11
59*833e5d42SEmmanuel Vadot
60*833e5d42SEmmanuel Vadot  interrupt-names:
61*833e5d42SEmmanuel Vadot    items:
62*833e5d42SEmmanuel Vadot      - const: macirq
63*833e5d42SEmmanuel Vadot      - const: eth_wake_irq
64*833e5d42SEmmanuel Vadot      - const: eth_lpi
65*833e5d42SEmmanuel Vadot      - const: rx-queue-0
66*833e5d42SEmmanuel Vadot      - const: rx-queue-1
67*833e5d42SEmmanuel Vadot      - const: rx-queue-2
68*833e5d42SEmmanuel Vadot      - const: rx-queue-3
69*833e5d42SEmmanuel Vadot      - const: tx-queue-0
70*833e5d42SEmmanuel Vadot      - const: tx-queue-1
71*833e5d42SEmmanuel Vadot      - const: tx-queue-2
72*833e5d42SEmmanuel Vadot      - const: tx-queue-3
73*833e5d42SEmmanuel Vadot
74*833e5d42SEmmanuel Vadot  resets:
75*833e5d42SEmmanuel Vadot    items:
76*833e5d42SEmmanuel Vadot      - description: AXI power-on system reset
77*833e5d42SEmmanuel Vadot
78*833e5d42SEmmanuel Vadotrequired:
79*833e5d42SEmmanuel Vadot  - compatible
80*833e5d42SEmmanuel Vadot  - reg
81*833e5d42SEmmanuel Vadot  - clocks
82*833e5d42SEmmanuel Vadot  - clock-names
83*833e5d42SEmmanuel Vadot  - interrupts
84*833e5d42SEmmanuel Vadot  - interrupt-names
85*833e5d42SEmmanuel Vadot  - resets
86*833e5d42SEmmanuel Vadot
87*833e5d42SEmmanuel VadotallOf:
88*833e5d42SEmmanuel Vadot  - $ref: snps,dwmac.yaml#
89*833e5d42SEmmanuel Vadot
90*833e5d42SEmmanuel VadotunevaluatedProperties: false
91*833e5d42SEmmanuel Vadot
92*833e5d42SEmmanuel Vadotexamples:
93*833e5d42SEmmanuel Vadot  - |
94*833e5d42SEmmanuel Vadot    #include <dt-bindings/clock/renesas-cpg-mssr.h>
95*833e5d42SEmmanuel Vadot    #include <dt-bindings/interrupt-controller/arm-gic.h>
96*833e5d42SEmmanuel Vadot
97*833e5d42SEmmanuel Vadot    ethernet@15c30000 {
98*833e5d42SEmmanuel Vadot        compatible = "renesas,r9a09g057-gbeth", "renesas,rzv2h-gbeth", "snps,dwmac-5.20";
99*833e5d42SEmmanuel Vadot        reg = <0x15c30000 0x10000>;
100*833e5d42SEmmanuel Vadot        clocks =  <&cpg CPG_MOD 0xbd>, <&cpg CPG_MOD 0xbc>,
101*833e5d42SEmmanuel Vadot                  <&ptp_clock>, <&cpg CPG_MOD 0xb8>,
102*833e5d42SEmmanuel Vadot                  <&cpg CPG_MOD 0xb9>, <&cpg CPG_MOD 0xba>,
103*833e5d42SEmmanuel Vadot                  <&cpg CPG_MOD 0xbb>;
104*833e5d42SEmmanuel Vadot        clock-names = "stmmaceth", "pclk", "ptp_ref",
105*833e5d42SEmmanuel Vadot                      "tx", "rx", "tx-180", "rx-180";
106*833e5d42SEmmanuel Vadot        resets = <&cpg 0xb0>;
107*833e5d42SEmmanuel Vadot        interrupts = <GIC_SPI 765 IRQ_TYPE_LEVEL_HIGH>,
108*833e5d42SEmmanuel Vadot                     <GIC_SPI 767 IRQ_TYPE_LEVEL_HIGH>,
109*833e5d42SEmmanuel Vadot                     <GIC_SPI 766 IRQ_TYPE_LEVEL_HIGH>,
110*833e5d42SEmmanuel Vadot                     <GIC_SPI 772 IRQ_TYPE_LEVEL_HIGH>,
111*833e5d42SEmmanuel Vadot                     <GIC_SPI 773 IRQ_TYPE_LEVEL_HIGH>,
112*833e5d42SEmmanuel Vadot                     <GIC_SPI 774 IRQ_TYPE_LEVEL_HIGH>,
113*833e5d42SEmmanuel Vadot                     <GIC_SPI 745 IRQ_TYPE_LEVEL_HIGH>,
114*833e5d42SEmmanuel Vadot                     <GIC_SPI 768 IRQ_TYPE_LEVEL_HIGH>,
115*833e5d42SEmmanuel Vadot                     <GIC_SPI 769 IRQ_TYPE_LEVEL_HIGH>,
116*833e5d42SEmmanuel Vadot                     <GIC_SPI 770 IRQ_TYPE_LEVEL_HIGH>,
117*833e5d42SEmmanuel Vadot                     <GIC_SPI 771 IRQ_TYPE_LEVEL_HIGH>;
118*833e5d42SEmmanuel Vadot        interrupt-names = "macirq", "eth_wake_irq", "eth_lpi",
119*833e5d42SEmmanuel Vadot                          "rx-queue-0", "rx-queue-1", "rx-queue-2",
120*833e5d42SEmmanuel Vadot                          "rx-queue-3", "tx-queue-0", "tx-queue-1",
121*833e5d42SEmmanuel Vadot                          "tx-queue-2", "tx-queue-3";
122*833e5d42SEmmanuel Vadot        phy-mode = "rgmii-id";
123*833e5d42SEmmanuel Vadot        snps,multicast-filter-bins = <256>;
124*833e5d42SEmmanuel Vadot        snps,perfect-filter-entries = <128>;
125*833e5d42SEmmanuel Vadot        rx-fifo-depth = <8192>;
126*833e5d42SEmmanuel Vadot        tx-fifo-depth = <8192>;
127*833e5d42SEmmanuel Vadot        snps,fixed-burst;
128*833e5d42SEmmanuel Vadot        snps,force_thresh_dma_mode;
129*833e5d42SEmmanuel Vadot        snps,axi-config = <&stmmac_axi_setup>;
130*833e5d42SEmmanuel Vadot        snps,mtl-rx-config = <&mtl_rx_setup>;
131*833e5d42SEmmanuel Vadot        snps,mtl-tx-config = <&mtl_tx_setup>;
132*833e5d42SEmmanuel Vadot        snps,txpbl = <32>;
133*833e5d42SEmmanuel Vadot        snps,rxpbl = <32>;
134*833e5d42SEmmanuel Vadot        phy-handle = <&phy0>;
135*833e5d42SEmmanuel Vadot
136*833e5d42SEmmanuel Vadot        stmmac_axi_setup: stmmac-axi-config {
137*833e5d42SEmmanuel Vadot            snps,lpi_en;
138*833e5d42SEmmanuel Vadot            snps,wr_osr_lmt = <0xf>;
139*833e5d42SEmmanuel Vadot            snps,rd_osr_lmt = <0xf>;
140*833e5d42SEmmanuel Vadot            snps,blen = <16 8 4 0 0 0 0>;
141*833e5d42SEmmanuel Vadot        };
142*833e5d42SEmmanuel Vadot
143*833e5d42SEmmanuel Vadot        mtl_rx_setup: rx-queues-config {
144*833e5d42SEmmanuel Vadot            snps,rx-queues-to-use = <4>;
145*833e5d42SEmmanuel Vadot            snps,rx-sched-sp;
146*833e5d42SEmmanuel Vadot
147*833e5d42SEmmanuel Vadot            queue0 {
148*833e5d42SEmmanuel Vadot                snps,dcb-algorithm;
149*833e5d42SEmmanuel Vadot                snps,priority = <0x1>;
150*833e5d42SEmmanuel Vadot                snps,map-to-dma-channel = <0>;
151*833e5d42SEmmanuel Vadot            };
152*833e5d42SEmmanuel Vadot
153*833e5d42SEmmanuel Vadot            queue1 {
154*833e5d42SEmmanuel Vadot                snps,dcb-algorithm;
155*833e5d42SEmmanuel Vadot                snps,priority = <0x2>;
156*833e5d42SEmmanuel Vadot                snps,map-to-dma-channel = <1>;
157*833e5d42SEmmanuel Vadot            };
158*833e5d42SEmmanuel Vadot
159*833e5d42SEmmanuel Vadot            queue2 {
160*833e5d42SEmmanuel Vadot                snps,dcb-algorithm;
161*833e5d42SEmmanuel Vadot                snps,priority = <0x4>;
162*833e5d42SEmmanuel Vadot                snps,map-to-dma-channel = <2>;
163*833e5d42SEmmanuel Vadot            };
164*833e5d42SEmmanuel Vadot
165*833e5d42SEmmanuel Vadot            queue3 {
166*833e5d42SEmmanuel Vadot                snps,dcb-algorithm;
167*833e5d42SEmmanuel Vadot                snps,priority = <0x8>;
168*833e5d42SEmmanuel Vadot                snps,map-to-dma-channel = <3>;
169*833e5d42SEmmanuel Vadot            };
170*833e5d42SEmmanuel Vadot        };
171*833e5d42SEmmanuel Vadot
172*833e5d42SEmmanuel Vadot        mtl_tx_setup: tx-queues-config {
173*833e5d42SEmmanuel Vadot            snps,tx-queues-to-use = <4>;
174*833e5d42SEmmanuel Vadot
175*833e5d42SEmmanuel Vadot            queue0 {
176*833e5d42SEmmanuel Vadot                snps,dcb-algorithm;
177*833e5d42SEmmanuel Vadot                snps,priority = <0x1>;
178*833e5d42SEmmanuel Vadot            };
179*833e5d42SEmmanuel Vadot
180*833e5d42SEmmanuel Vadot            queue1 {
181*833e5d42SEmmanuel Vadot                snps,dcb-algorithm;
182*833e5d42SEmmanuel Vadot                snps,priority = <0x2>;
183*833e5d42SEmmanuel Vadot            };
184*833e5d42SEmmanuel Vadot
185*833e5d42SEmmanuel Vadot            queue2 {
186*833e5d42SEmmanuel Vadot                snps,dcb-algorithm;
187*833e5d42SEmmanuel Vadot                snps,priority = <0x4>;
188*833e5d42SEmmanuel Vadot            };
189*833e5d42SEmmanuel Vadot
190*833e5d42SEmmanuel Vadot            queue3 {
191*833e5d42SEmmanuel Vadot                snps,dcb-algorithm;
192*833e5d42SEmmanuel Vadot                snps,priority = <0x1>;
193*833e5d42SEmmanuel Vadot            };
194*833e5d42SEmmanuel Vadot        };
195*833e5d42SEmmanuel Vadot
196*833e5d42SEmmanuel Vadot        mdio {
197*833e5d42SEmmanuel Vadot            #address-cells = <1>;
198*833e5d42SEmmanuel Vadot            #size-cells = <0>;
199*833e5d42SEmmanuel Vadot            compatible = "snps,dwmac-mdio";
200*833e5d42SEmmanuel Vadot
201*833e5d42SEmmanuel Vadot            phy0: ethernet-phy@0 {
202*833e5d42SEmmanuel Vadot                reg = <0>;
203*833e5d42SEmmanuel Vadot            };
204*833e5d42SEmmanuel Vadot        };
205*833e5d42SEmmanuel Vadot    };
206