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