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