blob: d3fc8ffd5b4c1a2e53cf0f07452eae09ff519a76 [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>
Marek Vasut71d2a5e2023-01-26 21:01:32 +01007#include <dt-bindings/clock/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 Ford1eaf61c2021-12-06 10:29:27 -060013 reg = <0x0 0x48000000 0x0 0x78000000>;
Adam Ford59028792020-06-30 09:30:11 -050014 };
15
16 osc_32k: osc_32k {
17 compatible = "fixed-clock";
18 #clock-cells = <0>;
19 clock-frequency = <32768>;
20 clock-output-names = "osc_32k";
21 };
22
Marek Vasut71d2a5e2023-01-26 21:01:32 +010023 reg_1p8v: regulator-1p8v {
Adam Ford59028792020-06-30 09:30:11 -050024 compatible = "regulator-fixed";
25 regulator-name = "fixed-1.8V";
26 regulator-min-microvolt = <1800000>;
27 regulator-max-microvolt = <1800000>;
28 regulator-boot-on;
29 regulator-always-on;
30 };
31
Marek Vasut71d2a5e2023-01-26 21:01:32 +010032 reg_3p3v: regulator-3p3v {
Adam Ford59028792020-06-30 09:30:11 -050033 compatible = "regulator-fixed";
34 regulator-name = "fixed-3.3V";
35 regulator-min-microvolt = <3300000>;
36 regulator-max-microvolt = <3300000>;
37 regulator-boot-on;
38 regulator-always-on;
39 };
40
41 wlan_pwrseq: wlan_pwrseq {
42 compatible = "mmc-pwrseq-simple";
43 reset-gpios = <&pca9654 1 GPIO_ACTIVE_LOW>;
44 clocks = <&osc_32k>;
45 clock-names = "ext_clock";
46 post-power-on-delay-ms = <80>;
47 };
48};
49
50&avb {
51 pinctrl-0 = <&avb_pins>;
52 pinctrl-names = "default";
Adam Ford1eaf61c2021-12-06 10:29:27 -060053 phy-mode = "rgmii-rxid";
Adam Ford59028792020-06-30 09:30:11 -050054 phy-handle = <&phy0>;
Adam Fordb2c86f52021-02-03 06:57:16 -060055 rx-internal-delay-ps = <1800>;
56 tx-internal-delay-ps = <2000>;
Adam Ford1eaf61c2021-12-06 10:29:27 -060057 clocks = <&cpg CPG_MOD 812>, <&versaclock5 4>;
58 clock-names = "fck", "refclk";
Adam Ford59028792020-06-30 09:30:11 -050059 status = "okay";
60
61 phy0: ethernet-phy@0 {
Adam Ford1eaf61c2021-12-06 10:29:27 -060062 compatible = "ethernet-phy-id004d.d074",
63 "ethernet-phy-ieee802.3-c22";
Adam Ford59028792020-06-30 09:30:11 -050064 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 {
Marek Vasut71d2a5e2023-01-26 21:01:32 +010080 usb-hub-reset-hog {
Adam Ford59028792020-06-30 09:30:11 -050081 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 Ford1eaf61c2021-12-06 10:29:27 -0600152 compatible = "microchip,24c64", "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;
Adam Ford59028792020-06-30 09:30:11 -0500296 keep-power-in-suspend;
297 mmc-pwrseq = <&wlan_pwrseq>;
298 status = "okay";
299 #address-cells = <1>;
300 #size-cells = <0>;
301
302 brcmf: bcrmf@1 {
303 reg = <1>;
304 compatible = "brcm,bcm4329-fmac";
305 interrupt-parent = <&gpio1>;
306 interrupts = <27 IRQ_TYPE_LEVEL_LOW>;
307 interrupt-names = "host-wake";
308 };
309};
310
311&sdhi3 {
312 pinctrl-0 = <&sdhi3_pins>;
313 pinctrl-1 = <&sdhi3_pins>;
314 pinctrl-names = "default", "state_uhs";
315 vmmc-supply = <&reg_3p3v>;
316 vqmmc-supply = <&reg_1p8v>;
317 bus-width = <8>;
318 mmc-hs200-1_8v;
Adam Ford1eaf61c2021-12-06 10:29:27 -0600319 no-sd;
320 no-sdio;
Adam Ford59028792020-06-30 09:30:11 -0500321 non-removable;
322 fixed-emmc-driver-type = <1>;
323 status = "okay";
324};
325
Adam Fordb2c86f52021-02-03 06:57:16 -0600326&usb2_clksel {
Adam Fordb2c86f52021-02-03 06:57:16 -0600327 clocks = <&cpg CPG_MOD 703>, <&cpg CPG_MOD 704>,
Adam Ford1eaf61c2021-12-06 10:29:27 -0600328 <&versaclock5 3>, <&usb3s0_clk>;
329 status = "okay";
Adam Ford59028792020-06-30 09:30:11 -0500330};
331
332&usb3s0_clk {
333 clock-frequency = <100000000>;
334};