xref: /freebsd-src/sys/contrib/device-tree/src/arm/microchip/lan966x-pcb8290.dts (revision aa1a8ff2d6dbc51ef058f46f3db5a8bb77967145)
1*f126890aSEmmanuel Vadot// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
2*f126890aSEmmanuel Vadot/*
3*f126890aSEmmanuel Vadot * lan966x-pcb8290.dts - Device Tree file for LAN966X-PCB8290 board
4*f126890aSEmmanuel Vadot *
5*f126890aSEmmanuel Vadot * Copyright (C) 2022 Microchip Technology Inc. and its subsidiaries
6*f126890aSEmmanuel Vadot *
7*f126890aSEmmanuel Vadot * Author: Horatiu Vultur <horatiu.vultur@microchip.com>
8*f126890aSEmmanuel Vadot */
9*f126890aSEmmanuel Vadot/dts-v1/;
10*f126890aSEmmanuel Vadot#include "lan966x.dtsi"
11*f126890aSEmmanuel Vadot#include "dt-bindings/phy/phy-lan966x-serdes.h"
12*f126890aSEmmanuel Vadot
13*f126890aSEmmanuel Vadot/ {
14*f126890aSEmmanuel Vadot	model = "Microchip EVB LAN9668";
15*f126890aSEmmanuel Vadot	compatible = "microchip,lan9668-pcb8290", "microchip,lan9668", "microchip,lan966";
16*f126890aSEmmanuel Vadot
17*f126890aSEmmanuel Vadot	gpio-restart {
18*f126890aSEmmanuel Vadot		compatible = "gpio-restart";
19*f126890aSEmmanuel Vadot		gpios = <&gpio 56 GPIO_ACTIVE_LOW>;
20*f126890aSEmmanuel Vadot		priority = <200>;
21*f126890aSEmmanuel Vadot	};
22*f126890aSEmmanuel Vadot};
23*f126890aSEmmanuel Vadot
24*f126890aSEmmanuel Vadot&aes {
25*f126890aSEmmanuel Vadot	status = "disabled"; /* Reserved by secure OS */
26*f126890aSEmmanuel Vadot};
27*f126890aSEmmanuel Vadot
28*f126890aSEmmanuel Vadot&gpio {
29*f126890aSEmmanuel Vadot	miim_a_pins: mdio-pins {
30*f126890aSEmmanuel Vadot		/* MDC, MDIO */
31*f126890aSEmmanuel Vadot		pins = "GPIO_28", "GPIO_29";
32*f126890aSEmmanuel Vadot		function = "miim_a";
33*f126890aSEmmanuel Vadot	};
34*f126890aSEmmanuel Vadot
35*f126890aSEmmanuel Vadot	pps_out_pins: pps-out-pins {
36*f126890aSEmmanuel Vadot		/* 1pps output */
37*f126890aSEmmanuel Vadot		pins = "GPIO_38";
38*f126890aSEmmanuel Vadot		function = "ptpsync_3";
39*f126890aSEmmanuel Vadot	};
40*f126890aSEmmanuel Vadot
41*f126890aSEmmanuel Vadot	ptp_ext_pins: ptp-ext-pins {
42*f126890aSEmmanuel Vadot		/* 1pps input */
43*f126890aSEmmanuel Vadot		pins = "GPIO_35";
44*f126890aSEmmanuel Vadot		function = "ptpsync_0";
45*f126890aSEmmanuel Vadot	};
46*f126890aSEmmanuel Vadot
47*f126890aSEmmanuel Vadot	udc_pins: ucd-pins {
48*f126890aSEmmanuel Vadot		/* VBUS_DET B */
49*f126890aSEmmanuel Vadot		pins = "GPIO_8";
50*f126890aSEmmanuel Vadot		function = "usb_slave_b";
51*f126890aSEmmanuel Vadot	};
52*f126890aSEmmanuel Vadot};
53*f126890aSEmmanuel Vadot
54*f126890aSEmmanuel Vadot&mdio0 {
55*f126890aSEmmanuel Vadot	pinctrl-0 = <&miim_a_pins>;
56*f126890aSEmmanuel Vadot	pinctrl-names = "default";
57*f126890aSEmmanuel Vadot	status = "okay";
58*f126890aSEmmanuel Vadot
59*f126890aSEmmanuel Vadot	ext_phy0: ethernet-phy@7 {
60*f126890aSEmmanuel Vadot		reg = <7>;
61*f126890aSEmmanuel Vadot		interrupts = <24 IRQ_TYPE_LEVEL_LOW>;
62*f126890aSEmmanuel Vadot		interrupt-parent = <&gpio>;
63*f126890aSEmmanuel Vadot		coma-mode-gpios = <&gpio 60 GPIO_OPEN_DRAIN>;
64*f126890aSEmmanuel Vadot	};
65*f126890aSEmmanuel Vadot
66*f126890aSEmmanuel Vadot	ext_phy1: ethernet-phy@8 {
67*f126890aSEmmanuel Vadot		reg = <8>;
68*f126890aSEmmanuel Vadot		interrupts = <24 IRQ_TYPE_LEVEL_LOW>;
69*f126890aSEmmanuel Vadot		interrupt-parent = <&gpio>;
70*f126890aSEmmanuel Vadot		coma-mode-gpios = <&gpio 60 GPIO_OPEN_DRAIN>;
71*f126890aSEmmanuel Vadot	};
72*f126890aSEmmanuel Vadot
73*f126890aSEmmanuel Vadot	ext_phy2: ethernet-phy@9 {
74*f126890aSEmmanuel Vadot		reg = <9>;
75*f126890aSEmmanuel Vadot		interrupts = <24 IRQ_TYPE_LEVEL_LOW>;
76*f126890aSEmmanuel Vadot		interrupt-parent = <&gpio>;
77*f126890aSEmmanuel Vadot		coma-mode-gpios = <&gpio 60 GPIO_OPEN_DRAIN>;
78*f126890aSEmmanuel Vadot	};
79*f126890aSEmmanuel Vadot
80*f126890aSEmmanuel Vadot	ext_phy3: ethernet-phy@10 {
81*f126890aSEmmanuel Vadot		reg = <10>;
82*f126890aSEmmanuel Vadot		interrupts = <24 IRQ_TYPE_LEVEL_LOW>;
83*f126890aSEmmanuel Vadot		interrupt-parent = <&gpio>;
84*f126890aSEmmanuel Vadot		coma-mode-gpios = <&gpio 60 GPIO_OPEN_DRAIN>;
85*f126890aSEmmanuel Vadot	};
86*f126890aSEmmanuel Vadot
87*f126890aSEmmanuel Vadot	ext_phy4: ethernet-phy@15 {
88*f126890aSEmmanuel Vadot		reg = <15>;
89*f126890aSEmmanuel Vadot		interrupts = <24 IRQ_TYPE_LEVEL_LOW>;
90*f126890aSEmmanuel Vadot		interrupt-parent = <&gpio>;
91*f126890aSEmmanuel Vadot		coma-mode-gpios = <&gpio 60 GPIO_OPEN_DRAIN>;
92*f126890aSEmmanuel Vadot	};
93*f126890aSEmmanuel Vadot
94*f126890aSEmmanuel Vadot	ext_phy5: ethernet-phy@16 {
95*f126890aSEmmanuel Vadot		reg = <16>;
96*f126890aSEmmanuel Vadot		interrupts = <24 IRQ_TYPE_LEVEL_LOW>;
97*f126890aSEmmanuel Vadot		interrupt-parent = <&gpio>;
98*f126890aSEmmanuel Vadot		coma-mode-gpios = <&gpio 60 GPIO_OPEN_DRAIN>;
99*f126890aSEmmanuel Vadot	};
100*f126890aSEmmanuel Vadot
101*f126890aSEmmanuel Vadot	ext_phy6: ethernet-phy@17 {
102*f126890aSEmmanuel Vadot		reg = <17>;
103*f126890aSEmmanuel Vadot		interrupts = <24 IRQ_TYPE_LEVEL_LOW>;
104*f126890aSEmmanuel Vadot		interrupt-parent = <&gpio>;
105*f126890aSEmmanuel Vadot		coma-mode-gpios = <&gpio 60 GPIO_OPEN_DRAIN>;
106*f126890aSEmmanuel Vadot	};
107*f126890aSEmmanuel Vadot
108*f126890aSEmmanuel Vadot	ext_phy7: ethernet-phy@18 {
109*f126890aSEmmanuel Vadot		reg = <18>;
110*f126890aSEmmanuel Vadot		interrupts = <24 IRQ_TYPE_LEVEL_LOW>;
111*f126890aSEmmanuel Vadot		interrupt-parent = <&gpio>;
112*f126890aSEmmanuel Vadot		coma-mode-gpios = <&gpio 60 GPIO_OPEN_DRAIN>;
113*f126890aSEmmanuel Vadot	};
114*f126890aSEmmanuel Vadot};
115*f126890aSEmmanuel Vadot
116*f126890aSEmmanuel Vadot&port0 {
117*f126890aSEmmanuel Vadot	reg = <2>;
118*f126890aSEmmanuel Vadot	phy-handle = <&ext_phy2>;
119*f126890aSEmmanuel Vadot	phy-mode = "qsgmii";
120*f126890aSEmmanuel Vadot	phys = <&serdes 0 SERDES6G(1)>;
121*f126890aSEmmanuel Vadot	status = "okay";
122*f126890aSEmmanuel Vadot};
123*f126890aSEmmanuel Vadot
124*f126890aSEmmanuel Vadot&port1 {
125*f126890aSEmmanuel Vadot	reg = <3>;
126*f126890aSEmmanuel Vadot	phy-handle = <&ext_phy3>;
127*f126890aSEmmanuel Vadot	phy-mode = "qsgmii";
128*f126890aSEmmanuel Vadot	phys = <&serdes 1 SERDES6G(1)>;
129*f126890aSEmmanuel Vadot	status = "okay";
130*f126890aSEmmanuel Vadot};
131*f126890aSEmmanuel Vadot
132*f126890aSEmmanuel Vadot&port2 {
133*f126890aSEmmanuel Vadot	reg = <0>;
134*f126890aSEmmanuel Vadot	phy-handle = <&ext_phy0>;
135*f126890aSEmmanuel Vadot	phy-mode = "qsgmii";
136*f126890aSEmmanuel Vadot	phys = <&serdes 2 SERDES6G(1)>;
137*f126890aSEmmanuel Vadot	status = "okay";
138*f126890aSEmmanuel Vadot};
139*f126890aSEmmanuel Vadot
140*f126890aSEmmanuel Vadot&port3 {
141*f126890aSEmmanuel Vadot	reg = <1>;
142*f126890aSEmmanuel Vadot	phy-handle = <&ext_phy1>;
143*f126890aSEmmanuel Vadot	phy-mode = "qsgmii";
144*f126890aSEmmanuel Vadot	phys = <&serdes 3 SERDES6G(1)>;
145*f126890aSEmmanuel Vadot	status = "okay";
146*f126890aSEmmanuel Vadot};
147*f126890aSEmmanuel Vadot
148*f126890aSEmmanuel Vadot&port4 {
149*f126890aSEmmanuel Vadot	reg = <6>;
150*f126890aSEmmanuel Vadot	phy-handle = <&ext_phy6>;
151*f126890aSEmmanuel Vadot	phy-mode = "qsgmii";
152*f126890aSEmmanuel Vadot	phys = <&serdes 4 SERDES6G(2)>;
153*f126890aSEmmanuel Vadot	status = "okay";
154*f126890aSEmmanuel Vadot};
155*f126890aSEmmanuel Vadot
156*f126890aSEmmanuel Vadot&port5 {
157*f126890aSEmmanuel Vadot	reg = <7>;
158*f126890aSEmmanuel Vadot	phy-handle = <&ext_phy7>;
159*f126890aSEmmanuel Vadot	phy-mode = "qsgmii";
160*f126890aSEmmanuel Vadot	phys = <&serdes 5 SERDES6G(2)>;
161*f126890aSEmmanuel Vadot	status = "okay";
162*f126890aSEmmanuel Vadot};
163*f126890aSEmmanuel Vadot
164*f126890aSEmmanuel Vadot&port6 {
165*f126890aSEmmanuel Vadot	reg = <4>;
166*f126890aSEmmanuel Vadot	phy-handle = <&ext_phy4>;
167*f126890aSEmmanuel Vadot	phy-mode = "qsgmii";
168*f126890aSEmmanuel Vadot	phys = <&serdes 6 SERDES6G(2)>;
169*f126890aSEmmanuel Vadot	status = "okay";
170*f126890aSEmmanuel Vadot};
171*f126890aSEmmanuel Vadot
172*f126890aSEmmanuel Vadot&port7 {
173*f126890aSEmmanuel Vadot	reg = <5>;
174*f126890aSEmmanuel Vadot	phy-handle = <&ext_phy5>;
175*f126890aSEmmanuel Vadot	phy-mode = "qsgmii";
176*f126890aSEmmanuel Vadot	phys = <&serdes 7 SERDES6G(2)>;
177*f126890aSEmmanuel Vadot	status = "okay";
178*f126890aSEmmanuel Vadot};
179*f126890aSEmmanuel Vadot
180*f126890aSEmmanuel Vadot&serdes {
181*f126890aSEmmanuel Vadot	status = "okay";
182*f126890aSEmmanuel Vadot};
183*f126890aSEmmanuel Vadot
184*f126890aSEmmanuel Vadot&switch {
185*f126890aSEmmanuel Vadot	pinctrl-0 = <&pps_out_pins>, <&ptp_ext_pins>;
186*f126890aSEmmanuel Vadot	pinctrl-names = "default";
187*f126890aSEmmanuel Vadot	status = "okay";
188*f126890aSEmmanuel Vadot};
189*f126890aSEmmanuel Vadot
190*f126890aSEmmanuel Vadot&udc {
191*f126890aSEmmanuel Vadot	pinctrl-0 = <&udc_pins>;
192*f126890aSEmmanuel Vadot	pinctrl-names = "default";
193*f126890aSEmmanuel Vadot	atmel,vbus-gpio = <&gpio 8 GPIO_ACTIVE_HIGH>;
194*f126890aSEmmanuel Vadot	status = "okay";
195*f126890aSEmmanuel Vadot};
196