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