xref: /linux/arch/arm64/boot/dts/renesas/beacon-renesom-som.dtsi (revision 9a87ffc99ec8eb8d35eed7c4f816d75f5cc9662e)
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>
7ba6165bcSLukas Bulwahn#include <dt-bindings/clock/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
235cf12ac9SGeert Uytterhoeven	reg_1p8v: regulator-1p8v {
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
325cf12ac9SGeert Uytterhoeven	reg_3p3v: regulator-3p3v {
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";
5359a8bda0SGeert Uytterhoeven	phy-mode = "rgmii-rxid";
54a1d8a344SAdam Ford	phy-handle = <&phy0>;
55a5200e63SGeert Uytterhoeven	rx-internal-delay-ps = <1800>;
56a5200e63SGeert Uytterhoeven	tx-internal-delay-ps = <2000>;
570decd50bSAdam Ford	clocks = <&cpg CPG_MOD 812>, <&versaclock5 4>;
580decd50bSAdam Ford	clock-names = "fck", "refclk";
59a1d8a344SAdam Ford	status = "okay";
60a1d8a344SAdam Ford
61a1d8a344SAdam Ford	phy0: ethernet-phy@0 {
62*a0d23b86SAdam Ford		compatible = "ethernet-phy-id0022.1640",
6318a24271SGeert Uytterhoeven			     "ethernet-phy-ieee802.3-c22";
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 {
8048d8ee5bSGeert Uytterhoeven	usb-hub-reset-hog {
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 {
15274477936SGeert Uytterhoeven		compatible = "microchip,24c64", "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>;
174fe82bb4dSAdam Ford
175a1d8a344SAdam Ford		assigned-clock-rates = <33333333>, <33333333>, <50000000>, <125000000>;
176fe82bb4dSAdam Ford
177fe82bb4dSAdam Ford		OUT1 {
178fe82bb4dSAdam Ford			idt,mode = <VC5_CMOS>;
179fe82bb4dSAdam Ford			idt,voltage-microvolt = <1800000>;
180fe82bb4dSAdam Ford			idt,slew-percent = <100>;
181fe82bb4dSAdam Ford		};
182fe82bb4dSAdam Ford
183fe82bb4dSAdam Ford		OUT2 {
184fe82bb4dSAdam Ford			idt,mode = <VC5_CMOS>;
185fe82bb4dSAdam Ford			idt,voltage-microvolt = <1800000>;
186fe82bb4dSAdam Ford			idt,slew-percent = <100>;
187fe82bb4dSAdam Ford		};
188fe82bb4dSAdam Ford
189fe82bb4dSAdam Ford		OUT3 {
190fe82bb4dSAdam Ford			idt,mode = <VC5_CMOS>;
191fe82bb4dSAdam Ford			idt,voltage-microvolt = <1800000>;
192fe82bb4dSAdam Ford			idt,slew-percent = <100>;
193fe82bb4dSAdam Ford		};
194fe82bb4dSAdam Ford
195fe82bb4dSAdam Ford		OUT4 {
196fe82bb4dSAdam Ford			idt,mode = <VC5_CMOS>;
197fe82bb4dSAdam Ford			idt,voltage-microvolt = <3300000>;
198fe82bb4dSAdam Ford			idt,slew-percent = <100>;
199fe82bb4dSAdam 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	keep-power-in-suspend;
297a1d8a344SAdam Ford	mmc-pwrseq = <&wlan_pwrseq>;
298a1d8a344SAdam Ford	status = "okay";
299a1d8a344SAdam Ford	#address-cells = <1>;
300a1d8a344SAdam Ford	#size-cells = <0>;
301a1d8a344SAdam Ford
302a1d8a344SAdam Ford	brcmf: bcrmf@1 {
303a1d8a344SAdam Ford		reg = <1>;
304a1d8a344SAdam Ford		compatible = "brcm,bcm4329-fmac";
305a1d8a344SAdam Ford		interrupt-parent = <&gpio1>;
306a1d8a344SAdam Ford		interrupts = <27 IRQ_TYPE_LEVEL_LOW>;
307a1d8a344SAdam Ford		interrupt-names = "host-wake";
308a1d8a344SAdam Ford	};
309a1d8a344SAdam Ford};
310a1d8a344SAdam Ford
311a1d8a344SAdam Ford&sdhi3 {
312a1d8a344SAdam Ford	pinctrl-0 = <&sdhi3_pins>;
313a1d8a344SAdam Ford	pinctrl-1 = <&sdhi3_pins>;
314a1d8a344SAdam Ford	pinctrl-names = "default", "state_uhs";
315a1d8a344SAdam Ford	vmmc-supply = <&reg_3p3v>;
316a1d8a344SAdam Ford	vqmmc-supply = <&reg_1p8v>;
317a1d8a344SAdam Ford	bus-width = <8>;
318a1d8a344SAdam Ford	mmc-hs200-1_8v;
319d68c9edfSWolfram Sang	no-sd;
320d68c9edfSWolfram Sang	no-sdio;
321a1d8a344SAdam Ford	non-removable;
322a1d8a344SAdam Ford	fixed-emmc-driver-type = <1>;
323a1d8a344SAdam Ford	status = "okay";
324a1d8a344SAdam Ford};
325a1d8a344SAdam Ford
32656bc5449SAdam Ford&usb2_clksel {
32756bc5449SAdam Ford	clocks = <&cpg CPG_MOD 703>, <&cpg CPG_MOD 704>,
32856bc5449SAdam Ford		  <&versaclock5 3>, <&usb3s0_clk>;
32956bc5449SAdam Ford	status = "okay";
330a1d8a344SAdam Ford};
331a1d8a344SAdam Ford
332a1d8a344SAdam Ford&usb3s0_clk {
333a1d8a344SAdam Ford	clock-frequency = <100000000>;
334a1d8a344SAdam Ford};
335