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