xref: /openbmc/linux/arch/arm/boot/dts/microchip/lan966x-pcb8309.dts (revision 2612e3bbc0386368a850140a6c9b990cd496a5ec)
1 // SPDX-License-Identifier: (GPL-2.0+ OR MIT)
2 /*
3  * lan966x_pcb8309.dts - Device Tree file for PCB8309
4  */
5 /dts-v1/;
6 #include "lan966x.dtsi"
7 #include "dt-bindings/phy/phy-lan966x-serdes.h"
8 
9 / {
10 	model = "Microchip EVB - LAN9662";
11 	compatible = "microchip,lan9662-pcb8309", "microchip,lan9662", "microchip,lan966";
12 
13 	aliases {
14 		serial0 = &usart3;
15 		i2c102 = &i2c102;
16 		i2c103 = &i2c103;
17 	};
18 
19 	chosen {
20 		stdout-path = "serial0:115200n8";
21 	};
22 
23 	gpio-restart {
24 		compatible = "gpio-restart";
25 		gpios = <&gpio 56 GPIO_ACTIVE_LOW>;
26 		priority = <200>;
27 	};
28 
29 	i2c-mux {
30 		compatible = "i2c-mux";
31 		#address-cells = <1>;
32 		#size-cells = <0>;
33 		mux-controls = <&mux>;
34 		i2c-parent = <&i2c4>;
35 
36 		i2c102: i2c-sfp@1 {
37 			reg = <1>;
38 		};
39 
40 		i2c103: i2c-sfp@2 {
41 			reg = <2>;
42 		};
43 	};
44 
45 	leds {
46 		compatible = "gpio-leds";
47 
48 		led-s0-green {
49 			label = "s0:green";
50 			gpios = <&sgpio_out 2 0 GPIO_ACTIVE_LOW>;
51 			default-state = "off";
52 		};
53 
54 		led-s0-red {
55 			label = "s0:red";
56 			gpios = <&sgpio_out 2 1 GPIO_ACTIVE_LOW>;
57 			default-state = "off";
58 		};
59 
60 		led-s1-green {
61 			label = "s1:green";
62 			gpios = <&sgpio_out 3 0 GPIO_ACTIVE_LOW>;
63 			default-state = "off";
64 		};
65 
66 		led-s1-red {
67 			label = "s1:red";
68 			gpios = <&sgpio_out 3 1 GPIO_ACTIVE_LOW>;
69 			default-state = "off";
70 		};
71 	};
72 
73 	mux: mux-controller {
74 		compatible = "gpio-mux";
75 		#mux-control-cells = <0>;
76 
77 		mux-gpios = <&sgpio_out 11 0 GPIO_ACTIVE_HIGH>, /* p11b0 */
78 			    <&sgpio_out 11 1 GPIO_ACTIVE_HIGH>; /* p11b1 */
79 	};
80 
81 	sfp2: sfp2 {
82 		compatible = "sff,sfp";
83 		i2c-bus = <&i2c102>;
84 		tx-disable-gpios = <&sgpio_out 10 0 GPIO_ACTIVE_LOW>;
85 		los-gpios = <&sgpio_in  2 0 GPIO_ACTIVE_HIGH>;
86 		mod-def0-gpios = <&sgpio_in  2 1 GPIO_ACTIVE_LOW>;
87 		tx-fault-gpios = <&sgpio_in  1 0 GPIO_ACTIVE_HIGH>;
88 	};
89 
90 	sfp3: sfp3 {
91 		compatible = "sff,sfp";
92 		i2c-bus = <&i2c103>;
93 		tx-disable-gpios = <&sgpio_out 10 1 GPIO_ACTIVE_LOW>;
94 		los-gpios = <&sgpio_in  3 0 GPIO_ACTIVE_HIGH>;
95 		mod-def0-gpios = <&sgpio_in  3 1 GPIO_ACTIVE_LOW>;
96 		tx-fault-gpios = <&sgpio_in  1 1 GPIO_ACTIVE_HIGH>;
97 	};
98 };
99 
100 &aes {
101 	status = "disabled"; /* Reserved by secure OS */
102 };
103 
104 &flx3 {
105 	atmel,flexcom-mode = <ATMEL_FLEXCOM_MODE_USART>;
106 	status = "okay";
107 
108 	usart3: serial@200 {
109 		pinctrl-0 = <&fc3_b_pins>;
110 		pinctrl-names = "default";
111 		status = "okay";
112 	};
113 };
114 
115 &flx4 {
116 	atmel,flexcom-mode = <ATMEL_FLEXCOM_MODE_TWI>;
117 	status = "okay";
118 
119 	i2c4: i2c@600 {
120 		compatible = "microchip,sam9x60-i2c";
121 		reg = <0x600 0x200>;
122 		interrupts = <GIC_SPI 52 IRQ_TYPE_LEVEL_HIGH>;
123 		clocks = <&nic_clk>;
124 		pinctrl-0 = <&fc4_b_pins>;
125 		pinctrl-names = "default";
126 		i2c-analog-filter;
127 		i2c-digital-filter;
128 		i2c-digital-filter-width-ns = <35>;
129 		i2c-sda-hold-time-ns = <1500>;
130 		status = "okay";
131 	};
132 };
133 
134 &gpio {
135 	fc3_b_pins: fc3-b-pins {
136 		/* RXD, TXD */
137 		pins = "GPIO_52", "GPIO_53";
138 		function = "fc3_b";
139 	};
140 
141 	fc4_b_pins: fc4-b-pins {
142 		/* SCL, SDA */
143 		pins = "GPIO_57", "GPIO_58";
144 		function = "fc4_b";
145 	};
146 
147 	pps_out_pins: pps-out-pins {
148 		/* 1pps output */
149 		pins = "GPIO_38";
150 		function = "ptpsync_3";
151 	};
152 
153 	ptp_ext_pins: ptp-ext-pins {
154 		/* 1pps input */
155 		pins = "GPIO_39";
156 		function = "ptpsync_4";
157 	};
158 
159 	sgpio_a_pins: sgpio-a-pins {
160 		/* SCK, D0, D1, LD */
161 		pins = "GPIO_32", "GPIO_33", "GPIO_34", "GPIO_35";
162 		function = "sgpio_a";
163 	};
164 };
165 
166 &mdio1 {
167 	status = "okay";
168 };
169 
170 &phy0 {
171 	status = "okay";
172 };
173 
174 &phy1 {
175 	status = "okay";
176 };
177 
178 &port0 {
179 	phy-handle = <&phy0>;
180 	phy-mode = "gmii";
181 	phys = <&serdes 0 CU(0)>;
182 	status = "okay";
183 };
184 
185 &port1 {
186 	phy-handle = <&phy1>;
187 	phy-mode = "gmii";
188 	phys = <&serdes 1 CU(1)>;
189 	status = "okay";
190 };
191 
192 &port2 {
193 	sfp = <&sfp2>;
194 	managed = "in-band-status";
195 	phy-mode = "sgmii";
196 	phys = <&serdes 2 SERDES6G(0)>;
197 	status = "okay";
198 };
199 
200 &port3 {
201 	sfp = <&sfp3>;
202 	managed = "in-band-status";
203 	phy-mode = "sgmii";
204 	phys = <&serdes 3 SERDES6G(1)>;
205 	status = "okay";
206 };
207 
208 &serdes {
209 	status = "okay";
210 };
211 
212 &sgpio {
213 	pinctrl-0 = <&sgpio_a_pins>;
214 	pinctrl-names = "default";
215 	microchip,sgpio-port-ranges = <0 3>, <8 11>;
216 	status = "okay";
217 
218 	gpio@0 {
219 		ngpios = <64>;
220 	};
221 	gpio@1 {
222 		ngpios = <64>;
223 	};
224 };
225 
226 &switch {
227 	pinctrl-0 = <&pps_out_pins>, <&ptp_ext_pins>;
228 	pinctrl-names = "default";
229 	status = "okay";
230 };
231