blob: 9565495b495b456325fee7e56061cbce3525ccef [file] [log] [blame]
Adam Ford59028792020-06-30 09:30:11 -05001// SPDX-License-Identifier: GPL-2.0
2/*
3 * Copyright 2020, Compass Electronics Group, LLC
4 */
5
6#include <dt-bindings/gpio/gpio.h>
Adam Fordb2c86f52021-02-03 06:57:16 -06007#include <dt-bindings/clk/versaclock.h>
Adam Ford59028792020-06-30 09:30:11 -05008
9/ {
10 memory@48000000 {
11 device_type = "memory";
12 /* first 128MB is reserved for secure area. */
Adam Fordb2c86f52021-02-03 06:57:16 -060013 reg = <0x0 0x48000000 0x0 0xc000000>;
Adam Ford59028792020-06-30 09:30:11 -050014 };
15
Adam Fordb2c86f52021-02-03 06:57:16 -060016 memory@57000000 {
Adam Ford59028792020-06-30 09:30:11 -050017 device_type = "memory";
Adam Fordb2c86f52021-02-03 06:57:16 -060018 reg = <0x0 0x57000000 0x0 0x29000000>;
Adam Ford59028792020-06-30 09:30:11 -050019 };
20
21 osc_32k: osc_32k {
22 compatible = "fixed-clock";
23 #clock-cells = <0>;
24 clock-frequency = <32768>;
25 clock-output-names = "osc_32k";
26 };
27
28 reg_1p8v: regulator0 {
29 compatible = "regulator-fixed";
30 regulator-name = "fixed-1.8V";
31 regulator-min-microvolt = <1800000>;
32 regulator-max-microvolt = <1800000>;
33 regulator-boot-on;
34 regulator-always-on;
35 };
36
37 reg_3p3v: regulator1 {
38 compatible = "regulator-fixed";
39 regulator-name = "fixed-3.3V";
40 regulator-min-microvolt = <3300000>;
41 regulator-max-microvolt = <3300000>;
42 regulator-boot-on;
43 regulator-always-on;
44 };
45
46 wlan_pwrseq: wlan_pwrseq {
47 compatible = "mmc-pwrseq-simple";
48 reset-gpios = <&pca9654 1 GPIO_ACTIVE_LOW>;
49 clocks = <&osc_32k>;
50 clock-names = "ext_clock";
51 post-power-on-delay-ms = <80>;
52 };
53};
54
55&avb {
56 pinctrl-0 = <&avb_pins>;
57 pinctrl-names = "default";
58 phy-handle = <&phy0>;
Adam Fordb2c86f52021-02-03 06:57:16 -060059 rx-internal-delay-ps = <1800>;
60 tx-internal-delay-ps = <2000>;
Adam Ford59028792020-06-30 09:30:11 -050061 status = "okay";
62
63 phy0: ethernet-phy@0 {
64 reg = <0>;
65 interrupt-parent = <&gpio2>;
66 interrupts = <11 IRQ_TYPE_LEVEL_LOW>;
67 reset-gpios = <&gpio2 10 GPIO_ACTIVE_LOW>;
68 };
69};
70
71&extal_clk {
72 clock-frequency = <16666666>;
73};
74
75&extalr_clk {
76 clock-frequency = <32768>;
77};
78
79&gpio6 {
80 usb_hub_reset {
81 gpio-hog;
82 gpios = <10 GPIO_ACTIVE_HIGH>;
83 output-high;
84 line-name = "usb-hub-reset";
85 };
86};
87
88&hscif0 {
89 pinctrl-0 = <&hscif0_pins>;
90 pinctrl-names = "default";
91 uart-has-rtscts;
92 status = "okay";
Adam Ford59028792020-06-30 09:30:11 -050093
94 bluetooth {
95 compatible = "brcm,bcm43438-bt";
96 shutdown-gpios = <&pca9654 2 GPIO_ACTIVE_HIGH>;
97 host-wakeup-gpios = <&gpio1 28 GPIO_ACTIVE_HIGH>;
98 device-wakeup-gpios = <&pca9654 5 GPIO_ACTIVE_HIGH>;
99 clocks = <&osc_32k>;
100 clock-names = "extclk";
Adam Fordb2c86f52021-02-03 06:57:16 -0600101 max-speed = <4000000>;
Adam Ford59028792020-06-30 09:30:11 -0500102 };
103};
104
105&hscif2 {
106 status = "okay";
107 pinctrl-0 = <&hscif2_pins>;
108 pinctrl-names = "default";
109};
110
111&i2c4 {
112 status = "okay";
Adam Fordb2c86f52021-02-03 06:57:16 -0600113 clock-frequency = <100000>;
Adam Ford59028792020-06-30 09:30:11 -0500114
115 pca9654: gpio@20 {
116 compatible = "onnn,pca9654";
117 reg = <0x20>;
118 gpio-controller;
119 #gpio-cells = <2>;
120 gpio-line-names =
121 "i2c4_20_0",
122 "wl_reg_on",
123 "bt_reg_on",
124 "i2c4_20_3",
125 "i2c4_20_4",
126 "bt_dev_wake",
127 "i2c4_20_6",
128 "i2c4_20_7";
129 };
130
131 pca9654_lte: gpio@21 {
132 compatible = "onnn,pca9654";
133 reg = <0x21>;
134 interrupt-parent = <&gpio5>;
135 interrupts = <25 IRQ_TYPE_EDGE_FALLING>;
136 interrupt-controller;
137 #interrupt-cells = <2>;
138 gpio-controller;
139 #gpio-cells = <2>;
140 gpio-line-names =
141 "i2c4_21_0",
142 "zoe_pwr_on",
143 "zoe_extint",
144 "zoe_reset_n",
145 "sara_reset",
146 "i2c4_21_5",
147 "sara_pwr_off",
148 "sara_networking_status";
149 };
150
151 eeprom@50 {
Adam Fordb2c86f52021-02-03 06:57:16 -0600152 compatible = "microchip,at24c64", "atmel,24c64";
Adam Ford59028792020-06-30 09:30:11 -0500153 pagesize = <32>;
154 read-only; /* Manufacturing EEPROM programmed at factory */
155 reg = <0x50>;
156 };
157
158 rtc@51 {
159 compatible = "nxp,pcf85263";
160 reg = <0x51>;
161 };
162
163 versaclock5: versaclock_som@6a {
164 compatible = "idt,5p49v6965";
165 reg = <0x6a>;
166 #clock-cells = <1>;
167 clocks = <&x304_clk>;
168 clock-names = "xin";
169 /* du_dotclkin0, du_dotclkin2, usb_extal, avb_txcrefclk */
170 assigned-clocks = <&versaclock5 1>,
171 <&versaclock5 2>,
172 <&versaclock5 3>,
173 <&versaclock5 4>;
Adam Fordb2c86f52021-02-03 06:57:16 -0600174
Adam Ford59028792020-06-30 09:30:11 -0500175 assigned-clock-rates = <33333333>, <33333333>, <50000000>, <125000000>;
Adam Fordb2c86f52021-02-03 06:57:16 -0600176
177 OUT1 {
178 idt,mode = <VC5_CMOS>;
179 idt,voltage-microvolt = <1800000>;
180 idt,slew-percent = <100>;
181 };
182
183 OUT2 {
184 idt,mode = <VC5_CMOS>;
185 idt,voltage-microvolt = <1800000>;
186 idt,slew-percent = <100>;
187 };
188
189 OUT3 {
190 idt,mode = <VC5_CMOS>;
191 idt,voltage-microvolt = <1800000>;
192 idt,slew-percent = <100>;
193 };
194
195 OUT4 {
196 idt,mode = <VC5_CMOS>;
197 idt,voltage-microvolt = <3300000>;
198 idt,slew-percent = <100>;
199 };
Adam Ford59028792020-06-30 09:30:11 -0500200 };
201};
202
203&pfc {
204 pinctrl-0 = <&scif_clk_pins>;
205 pinctrl-names = "default";
206
207 avb_pins: avb {
208 mux {
209 groups = "avb_link", "avb_mdio", "avb_mii";
210 function = "avb";
211 };
212
213 pins_mdio {
214 groups = "avb_mdio";
215 drive-strength = <24>;
216 };
217
218 pins_mii_tx {
219 pins = "PIN_AVB_TX_CTL", "PIN_AVB_TXC", "PIN_AVB_TD0",
220 "PIN_AVB_TD1", "PIN_AVB_TD2", "PIN_AVB_TD3";
221 drive-strength = <12>;
222 };
223 };
224
225 scif2_pins: scif2 {
226 groups = "scif2_data_a";
227 function = "scif2";
228 };
229
230 hscif0_pins: hscif0 {
231 groups = "hscif0_data", "hscif0_ctrl";
232 function = "hscif0";
233 };
234
235 hscif1_pins: hscif1 {
236 groups = "hscif1_data_a", "hscif1_ctrl_a";
237 function = "hscif1";
238 };
239
240 hscif2_pins: hscif2 {
241 groups = "hscif2_data_a";
242 function = "hscif2";
243 };
244
245 scif0_pins: scif0 {
246 groups = "scif0_data";
247 function = "scif0";
248 };
249
250 scif5_pins: scif5 {
251 groups = "scif5_data_a";
252 function = "scif5";
253 };
254
255 scif_clk_pins: scif_clk {
256 groups = "scif_clk_a";
257 function = "scif_clk";
258 };
259
260 i2c0_pins: i2c0 {
261 groups = "i2c0";
262 function = "i2c0";
263 };
264
265 sdhi2_pins: sd2 {
266 groups = "sdhi2_data4", "sdhi2_ctrl";
267 function = "sdhi2";
268 power-source = <1800>;
269 };
270
271 sdhi3_pins: sd3 {
272 groups = "sdhi3_data8", "sdhi3_ctrl", "sdhi3_ds";
273 function = "sdhi3";
274 power-source = <1800>;
275 };
276};
277
278&scif_clk {
279 clock-frequency = <14745600>;
280};
281
282&scif2 {
283 pinctrl-0 = <&scif2_pins>;
284 pinctrl-names = "default";
285 status = "okay";
286};
287
288&sdhi2 {
289 pinctrl-names = "default";
290 pinctrl-0 = <&sdhi2_pins>;
291 bus-width = <4>;
292 vmmc-supply = <&reg_3p3v>;
293 vqmmc-supply = <&reg_1p8v>;
294 non-removable;
295 cap-power-off-card;
296 pm-ignore-notify;
297 keep-power-in-suspend;
298 mmc-pwrseq = <&wlan_pwrseq>;
299 status = "okay";
300 #address-cells = <1>;
301 #size-cells = <0>;
302
303 brcmf: bcrmf@1 {
304 reg = <1>;
305 compatible = "brcm,bcm4329-fmac";
306 interrupt-parent = <&gpio1>;
307 interrupts = <27 IRQ_TYPE_LEVEL_LOW>;
308 interrupt-names = "host-wake";
309 };
310};
311
312&sdhi3 {
313 pinctrl-0 = <&sdhi3_pins>;
314 pinctrl-1 = <&sdhi3_pins>;
315 pinctrl-names = "default", "state_uhs";
316 vmmc-supply = <&reg_3p3v>;
317 vqmmc-supply = <&reg_1p8v>;
318 bus-width = <8>;
319 mmc-hs200-1_8v;
320 non-removable;
321 fixed-emmc-driver-type = <1>;
322 status = "okay";
323};
324
Adam Fordb2c86f52021-02-03 06:57:16 -0600325&usb2_clksel {
326 status = "okay";
327 clocks = <&cpg CPG_MOD 703>, <&cpg CPG_MOD 704>,
328 <&versaclock5 3>, <&usb3s0_clk>;
329 clock-names = "ehci_ohci", "hs-usb-if",
330 "usb_extal", "usb_xtal";
Adam Ford59028792020-06-30 09:30:11 -0500331};
332
333&usb3s0_clk {
334 clock-frequency = <100000000>;
335};