blob: 0cb505f79ba1a51254e3076e14888470e2fd3f01 [file] [log] [blame]
Tom Rini53633a82024-02-29 12:33:36 -05001// 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};