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