xref: /linux/scripts/dtc/include-prefixes/arm64/qcom/lemans-ride-ethernet-aqr115c.dtsi (revision 4f38da1f027ea2c9f01bb71daa7a299c191b6940)
1*4c0c97b9SWasim Nazir// SPDX-License-Identifier: BSD-3-Clause
2*4c0c97b9SWasim Nazir/*
3*4c0c97b9SWasim Nazir * Copyright (c) 2023, Linaro Limited
4*4c0c97b9SWasim Nazir */
5*4c0c97b9SWasim Nazir
6*4c0c97b9SWasim Nazir/*
7*4c0c97b9SWasim Nazir * Ethernet card for Lemans based Ride r3 boards.
8*4c0c97b9SWasim Nazir * It supports 2x 2.5G - HSGMII (Marvell hsgmii) phy for Main domain
9*4c0c97b9SWasim Nazir */
10*4c0c97b9SWasim Nazir
11*4c0c97b9SWasim Nazir#include <dt-bindings/gpio/gpio.h>
12*4c0c97b9SWasim Nazir#include <dt-bindings/interrupt-controller/arm-gic.h>
13*4c0c97b9SWasim Nazir
14*4c0c97b9SWasim Nazir/ {
15*4c0c97b9SWasim Nazir	aliases {
16*4c0c97b9SWasim Nazir		ethernet0 = &ethernet0;
17*4c0c97b9SWasim Nazir		ethernet1 = &ethernet1;
18*4c0c97b9SWasim Nazir	};
19*4c0c97b9SWasim Nazir};
20*4c0c97b9SWasim Nazir
21*4c0c97b9SWasim Nazir&tlmm {
22*4c0c97b9SWasim Nazir	ethernet0_default: ethernet0-default-state {
23*4c0c97b9SWasim Nazir		ethernet0_mdc: ethernet0-mdc-pins {
24*4c0c97b9SWasim Nazir			pins = "gpio8";
25*4c0c97b9SWasim Nazir			function = "emac0_mdc";
26*4c0c97b9SWasim Nazir			drive-strength = <16>;
27*4c0c97b9SWasim Nazir			bias-pull-up;
28*4c0c97b9SWasim Nazir		};
29*4c0c97b9SWasim Nazir
30*4c0c97b9SWasim Nazir		ethernet0_mdio: ethernet0-mdio-pins {
31*4c0c97b9SWasim Nazir			pins = "gpio9";
32*4c0c97b9SWasim Nazir			function = "emac0_mdio";
33*4c0c97b9SWasim Nazir			drive-strength = <16>;
34*4c0c97b9SWasim Nazir			bias-pull-up;
35*4c0c97b9SWasim Nazir		};
36*4c0c97b9SWasim Nazir	};
37*4c0c97b9SWasim Nazir};
38*4c0c97b9SWasim Nazir
39*4c0c97b9SWasim Nazir&ethernet0 {
40*4c0c97b9SWasim Nazir	phy-handle = <&hsgmii_phy0>;
41*4c0c97b9SWasim Nazir	phy-mode = "2500base-x";
42*4c0c97b9SWasim Nazir
43*4c0c97b9SWasim Nazir	pinctrl-0 = <&ethernet0_default>;
44*4c0c97b9SWasim Nazir	pinctrl-names = "default";
45*4c0c97b9SWasim Nazir
46*4c0c97b9SWasim Nazir	snps,mtl-rx-config = <&mtl_rx_setup>;
47*4c0c97b9SWasim Nazir	snps,mtl-tx-config = <&mtl_tx_setup>;
48*4c0c97b9SWasim Nazir	snps,ps-speed = <1000>;
49*4c0c97b9SWasim Nazir
50*4c0c97b9SWasim Nazir	status = "okay";
51*4c0c97b9SWasim Nazir
52*4c0c97b9SWasim Nazir	mdio {
53*4c0c97b9SWasim Nazir		compatible = "snps,dwmac-mdio";
54*4c0c97b9SWasim Nazir		#address-cells = <1>;
55*4c0c97b9SWasim Nazir		#size-cells = <0>;
56*4c0c97b9SWasim Nazir
57*4c0c97b9SWasim Nazir		hsgmii_phy0: phy@8 {
58*4c0c97b9SWasim Nazir			compatible = "ethernet-phy-id31c3.1c33";
59*4c0c97b9SWasim Nazir			reg = <0x8>;
60*4c0c97b9SWasim Nazir			device_type = "ethernet-phy";
61*4c0c97b9SWasim Nazir			interrupts-extended = <&tlmm 7 IRQ_TYPE_EDGE_FALLING>;
62*4c0c97b9SWasim Nazir			reset-gpios = <&pmm8654au_2_gpios 8 GPIO_ACTIVE_LOW>;
63*4c0c97b9SWasim Nazir			reset-assert-us = <11000>;
64*4c0c97b9SWasim Nazir			reset-deassert-us = <70000>;
65*4c0c97b9SWasim Nazir		};
66*4c0c97b9SWasim Nazir
67*4c0c97b9SWasim Nazir		hsgmii_phy1: phy@0 {
68*4c0c97b9SWasim Nazir			compatible = "ethernet-phy-id31c3.1c33";
69*4c0c97b9SWasim Nazir			reg = <0x0>;
70*4c0c97b9SWasim Nazir			device_type = "ethernet-phy";
71*4c0c97b9SWasim Nazir			interrupts-extended = <&tlmm 26 IRQ_TYPE_EDGE_FALLING>;
72*4c0c97b9SWasim Nazir			reset-gpios = <&pmm8654au_2_gpios 9 GPIO_ACTIVE_LOW>;
73*4c0c97b9SWasim Nazir			reset-assert-us = <11000>;
74*4c0c97b9SWasim Nazir			reset-deassert-us = <70000>;
75*4c0c97b9SWasim Nazir		};
76*4c0c97b9SWasim Nazir	};
77*4c0c97b9SWasim Nazir
78*4c0c97b9SWasim Nazir	mtl_rx_setup: rx-queues-config {
79*4c0c97b9SWasim Nazir		snps,rx-queues-to-use = <4>;
80*4c0c97b9SWasim Nazir		snps,rx-sched-sp;
81*4c0c97b9SWasim Nazir
82*4c0c97b9SWasim Nazir		queue0 {
83*4c0c97b9SWasim Nazir			snps,dcb-algorithm;
84*4c0c97b9SWasim Nazir			snps,map-to-dma-channel = <0x0>;
85*4c0c97b9SWasim Nazir			snps,route-up;
86*4c0c97b9SWasim Nazir			snps,priority = <0x1>;
87*4c0c97b9SWasim Nazir		};
88*4c0c97b9SWasim Nazir
89*4c0c97b9SWasim Nazir		queue1 {
90*4c0c97b9SWasim Nazir			snps,dcb-algorithm;
91*4c0c97b9SWasim Nazir			snps,map-to-dma-channel = <0x1>;
92*4c0c97b9SWasim Nazir			snps,route-ptp;
93*4c0c97b9SWasim Nazir		};
94*4c0c97b9SWasim Nazir
95*4c0c97b9SWasim Nazir		queue2 {
96*4c0c97b9SWasim Nazir			snps,avb-algorithm;
97*4c0c97b9SWasim Nazir			snps,map-to-dma-channel = <0x2>;
98*4c0c97b9SWasim Nazir			snps,route-avcp;
99*4c0c97b9SWasim Nazir		};
100*4c0c97b9SWasim Nazir
101*4c0c97b9SWasim Nazir		queue3 {
102*4c0c97b9SWasim Nazir			snps,avb-algorithm;
103*4c0c97b9SWasim Nazir			snps,map-to-dma-channel = <0x3>;
104*4c0c97b9SWasim Nazir			snps,priority = <0xc>;
105*4c0c97b9SWasim Nazir		};
106*4c0c97b9SWasim Nazir	};
107*4c0c97b9SWasim Nazir
108*4c0c97b9SWasim Nazir	mtl_tx_setup: tx-queues-config {
109*4c0c97b9SWasim Nazir		snps,tx-queues-to-use = <4>;
110*4c0c97b9SWasim Nazir
111*4c0c97b9SWasim Nazir		queue0 {
112*4c0c97b9SWasim Nazir			snps,dcb-algorithm;
113*4c0c97b9SWasim Nazir		};
114*4c0c97b9SWasim Nazir
115*4c0c97b9SWasim Nazir		queue1 {
116*4c0c97b9SWasim Nazir			snps,dcb-algorithm;
117*4c0c97b9SWasim Nazir		};
118*4c0c97b9SWasim Nazir
119*4c0c97b9SWasim Nazir		queue2 {
120*4c0c97b9SWasim Nazir			snps,avb-algorithm;
121*4c0c97b9SWasim Nazir			snps,send_slope = <0x1000>;
122*4c0c97b9SWasim Nazir			snps,idle_slope = <0x1000>;
123*4c0c97b9SWasim Nazir			snps,high_credit = <0x3e800>;
124*4c0c97b9SWasim Nazir			snps,low_credit = <0xffc18000>;
125*4c0c97b9SWasim Nazir		};
126*4c0c97b9SWasim Nazir
127*4c0c97b9SWasim Nazir		queue3 {
128*4c0c97b9SWasim Nazir			snps,avb-algorithm;
129*4c0c97b9SWasim Nazir			snps,send_slope = <0x1000>;
130*4c0c97b9SWasim Nazir			snps,idle_slope = <0x1000>;
131*4c0c97b9SWasim Nazir			snps,high_credit = <0x3e800>;
132*4c0c97b9SWasim Nazir			snps,low_credit = <0xffc18000>;
133*4c0c97b9SWasim Nazir		};
134*4c0c97b9SWasim Nazir	};
135*4c0c97b9SWasim Nazir};
136*4c0c97b9SWasim Nazir
137*4c0c97b9SWasim Nazir&ethernet1 {
138*4c0c97b9SWasim Nazir	phy-handle = <&hsgmii_phy1>;
139*4c0c97b9SWasim Nazir	phy-mode = "2500base-x";
140*4c0c97b9SWasim Nazir
141*4c0c97b9SWasim Nazir	snps,mtl-rx-config = <&mtl_rx_setup1>;
142*4c0c97b9SWasim Nazir	snps,mtl-tx-config = <&mtl_tx_setup1>;
143*4c0c97b9SWasim Nazir	snps,ps-speed = <1000>;
144*4c0c97b9SWasim Nazir
145*4c0c97b9SWasim Nazir	status = "okay";
146*4c0c97b9SWasim Nazir
147*4c0c97b9SWasim Nazir	mtl_rx_setup1: rx-queues-config {
148*4c0c97b9SWasim Nazir		snps,rx-queues-to-use = <4>;
149*4c0c97b9SWasim Nazir		snps,rx-sched-sp;
150*4c0c97b9SWasim Nazir
151*4c0c97b9SWasim Nazir		queue0 {
152*4c0c97b9SWasim Nazir			snps,dcb-algorithm;
153*4c0c97b9SWasim Nazir			snps,map-to-dma-channel = <0x0>;
154*4c0c97b9SWasim Nazir			snps,route-up;
155*4c0c97b9SWasim Nazir			snps,priority = <0x1>;
156*4c0c97b9SWasim Nazir		};
157*4c0c97b9SWasim Nazir
158*4c0c97b9SWasim Nazir		queue1 {
159*4c0c97b9SWasim Nazir			snps,dcb-algorithm;
160*4c0c97b9SWasim Nazir			snps,map-to-dma-channel = <0x1>;
161*4c0c97b9SWasim Nazir			snps,route-ptp;
162*4c0c97b9SWasim Nazir		};
163*4c0c97b9SWasim Nazir
164*4c0c97b9SWasim Nazir		queue2 {
165*4c0c97b9SWasim Nazir			snps,avb-algorithm;
166*4c0c97b9SWasim Nazir			snps,map-to-dma-channel = <0x2>;
167*4c0c97b9SWasim Nazir			snps,route-avcp;
168*4c0c97b9SWasim Nazir		};
169*4c0c97b9SWasim Nazir
170*4c0c97b9SWasim Nazir		queue3 {
171*4c0c97b9SWasim Nazir			snps,avb-algorithm;
172*4c0c97b9SWasim Nazir			snps,map-to-dma-channel = <0x3>;
173*4c0c97b9SWasim Nazir			snps,priority = <0xc>;
174*4c0c97b9SWasim Nazir		};
175*4c0c97b9SWasim Nazir	};
176*4c0c97b9SWasim Nazir
177*4c0c97b9SWasim Nazir	mtl_tx_setup1: tx-queues-config {
178*4c0c97b9SWasim Nazir		snps,tx-queues-to-use = <4>;
179*4c0c97b9SWasim Nazir
180*4c0c97b9SWasim Nazir		queue0 {
181*4c0c97b9SWasim Nazir			snps,dcb-algorithm;
182*4c0c97b9SWasim Nazir		};
183*4c0c97b9SWasim Nazir
184*4c0c97b9SWasim Nazir		queue1 {
185*4c0c97b9SWasim Nazir			snps,dcb-algorithm;
186*4c0c97b9SWasim Nazir		};
187*4c0c97b9SWasim Nazir
188*4c0c97b9SWasim Nazir		queue2 {
189*4c0c97b9SWasim Nazir			snps,avb-algorithm;
190*4c0c97b9SWasim Nazir			snps,send_slope = <0x1000>;
191*4c0c97b9SWasim Nazir			snps,idle_slope = <0x1000>;
192*4c0c97b9SWasim Nazir			snps,high_credit = <0x3e800>;
193*4c0c97b9SWasim Nazir			snps,low_credit = <0xffc18000>;
194*4c0c97b9SWasim Nazir		};
195*4c0c97b9SWasim Nazir
196*4c0c97b9SWasim Nazir		queue3 {
197*4c0c97b9SWasim Nazir			snps,avb-algorithm;
198*4c0c97b9SWasim Nazir			snps,send_slope = <0x1000>;
199*4c0c97b9SWasim Nazir			snps,idle_slope = <0x1000>;
200*4c0c97b9SWasim Nazir			snps,high_credit = <0x3e800>;
201*4c0c97b9SWasim Nazir			snps,low_credit = <0xffc18000>;
202*4c0c97b9SWasim Nazir		};
203*4c0c97b9SWasim Nazir	};
204*4c0c97b9SWasim Nazir};
205*4c0c97b9SWasim Nazir
206