163070d7cSYoshihiro Shimoda// SPDX-License-Identifier: GPL-2.0
263070d7cSYoshihiro Shimoda/*
363070d7cSYoshihiro Shimoda * Device Tree Source for the Falcon CPU board
463070d7cSYoshihiro Shimoda *
563070d7cSYoshihiro Shimoda * Copyright (C) 2020 Renesas Electronics Corp.
663070d7cSYoshihiro Shimoda */
763070d7cSYoshihiro Shimoda
8e8ac55a5SWolfram Sang#include <dt-bindings/gpio/gpio.h>
95e8c83b3SKieran Bingham#include <dt-bindings/input/input.h>
109d68a386SKieran Bingham#include <dt-bindings/leds/common.h>
119d68a386SKieran Bingham
1263070d7cSYoshihiro Shimoda#include "r8a779a0.dtsi"
1363070d7cSYoshihiro Shimoda
1463070d7cSYoshihiro Shimoda/ {
1563070d7cSYoshihiro Shimoda	model = "Renesas Falcon CPU board";
1663070d7cSYoshihiro Shimoda	compatible = "renesas,falcon-cpu", "renesas,r8a779a0";
1763070d7cSYoshihiro Shimoda
18e86ff34cSGeert Uytterhoeven	aliases {
19e86ff34cSGeert Uytterhoeven		serial0 = &scif0;
20e86ff34cSGeert Uytterhoeven	};
21e86ff34cSGeert Uytterhoeven
22e86ff34cSGeert Uytterhoeven	chosen {
23e86ff34cSGeert Uytterhoeven		stdout-path = "serial0:115200n8";
24e86ff34cSGeert Uytterhoeven	};
25e86ff34cSGeert Uytterhoeven
265e8c83b3SKieran Bingham	keys {
275e8c83b3SKieran Bingham		compatible = "gpio-keys";
285e8c83b3SKieran Bingham
295e8c83b3SKieran Bingham		pinctrl-0 = <&keys_pins>;
305e8c83b3SKieran Bingham		pinctrl-names = "default";
315e8c83b3SKieran Bingham
325e8c83b3SKieran Bingham		key-1 {
335e8c83b3SKieran Bingham			gpios = <&gpio6 18 GPIO_ACTIVE_LOW>;
345e8c83b3SKieran Bingham			linux,code = <KEY_1>;
355e8c83b3SKieran Bingham			label = "SW47";
365e8c83b3SKieran Bingham			wakeup-source;
375e8c83b3SKieran Bingham			debounce-interval = <20>;
385e8c83b3SKieran Bingham		};
395e8c83b3SKieran Bingham
405e8c83b3SKieran Bingham		key-2 {
415e8c83b3SKieran Bingham			gpios = <&gpio6 19 GPIO_ACTIVE_LOW>;
425e8c83b3SKieran Bingham			linux,code = <KEY_2>;
435e8c83b3SKieran Bingham			label = "SW48";
445e8c83b3SKieran Bingham			wakeup-source;
455e8c83b3SKieran Bingham			debounce-interval = <20>;
465e8c83b3SKieran Bingham		};
475e8c83b3SKieran Bingham
485e8c83b3SKieran Bingham		key-3 {
495e8c83b3SKieran Bingham			gpios = <&gpio6 20 GPIO_ACTIVE_LOW>;
505e8c83b3SKieran Bingham			linux,code = <KEY_3>;
515e8c83b3SKieran Bingham			label = "SW49";
525e8c83b3SKieran Bingham			wakeup-source;
535e8c83b3SKieran Bingham			debounce-interval = <20>;
545e8c83b3SKieran Bingham		};
555e8c83b3SKieran Bingham	};
565e8c83b3SKieran Bingham
579d68a386SKieran Bingham	leds {
589d68a386SKieran Bingham		compatible = "gpio-leds";
599d68a386SKieran Bingham
609d68a386SKieran Bingham		led-1 {
619d68a386SKieran Bingham			gpios = <&gpio4 18 GPIO_ACTIVE_HIGH>;
629d68a386SKieran Bingham			color = <LED_COLOR_ID_GREEN>;
639d68a386SKieran Bingham			function = LED_FUNCTION_INDICATOR;
649d68a386SKieran Bingham			function-enumerator = <1>;
659d68a386SKieran Bingham		};
669d68a386SKieran Bingham		led-2 {
679d68a386SKieran Bingham			gpios = <&gpio4 19 GPIO_ACTIVE_HIGH>;
689d68a386SKieran Bingham			color = <LED_COLOR_ID_GREEN>;
699d68a386SKieran Bingham			function = LED_FUNCTION_INDICATOR;
709d68a386SKieran Bingham			function-enumerator = <2>;
719d68a386SKieran Bingham		};
729d68a386SKieran Bingham		led-3 {
739d68a386SKieran Bingham			gpios = <&gpio4 20 GPIO_ACTIVE_HIGH>;
749d68a386SKieran Bingham			color = <LED_COLOR_ID_GREEN>;
759d68a386SKieran Bingham			function = LED_FUNCTION_INDICATOR;
769d68a386SKieran Bingham			function-enumerator = <3>;
779d68a386SKieran Bingham		};
789d68a386SKieran Bingham	};
799d68a386SKieran Bingham
8063070d7cSYoshihiro Shimoda	memory@48000000 {
8163070d7cSYoshihiro Shimoda		device_type = "memory";
8263070d7cSYoshihiro Shimoda		/* first 128MB is reserved for secure area. */
8363070d7cSYoshihiro Shimoda		reg = <0x0 0x48000000 0x0 0x78000000>;
8463070d7cSYoshihiro Shimoda	};
8563070d7cSYoshihiro Shimoda
8663070d7cSYoshihiro Shimoda	memory@500000000 {
8763070d7cSYoshihiro Shimoda		device_type = "memory";
8863070d7cSYoshihiro Shimoda		reg = <0x5 0x00000000 0x0 0x80000000>;
8963070d7cSYoshihiro Shimoda	};
9063070d7cSYoshihiro Shimoda
9163070d7cSYoshihiro Shimoda	memory@600000000 {
9263070d7cSYoshihiro Shimoda		device_type = "memory";
9363070d7cSYoshihiro Shimoda		reg = <0x6 0x00000000 0x0 0x80000000>;
9463070d7cSYoshihiro Shimoda	};
9563070d7cSYoshihiro Shimoda
9663070d7cSYoshihiro Shimoda	memory@700000000 {
9763070d7cSYoshihiro Shimoda		device_type = "memory";
9863070d7cSYoshihiro Shimoda		reg = <0x7 0x00000000 0x0 0x80000000>;
9963070d7cSYoshihiro Shimoda	};
100ee33cd69STakeshi Saito
101ee33cd69STakeshi Saito	reg_1p8v: regulator-1p8v {
102ee33cd69STakeshi Saito		compatible = "regulator-fixed";
103ee33cd69STakeshi Saito		regulator-name = "fixed-1.8V";
104ee33cd69STakeshi Saito		regulator-min-microvolt = <1800000>;
105ee33cd69STakeshi Saito		regulator-max-microvolt = <1800000>;
106ee33cd69STakeshi Saito		regulator-boot-on;
107ee33cd69STakeshi Saito		regulator-always-on;
108ee33cd69STakeshi Saito	};
109ee33cd69STakeshi Saito
110ee33cd69STakeshi Saito	reg_3p3v: regulator-3p3v {
111ee33cd69STakeshi Saito		compatible = "regulator-fixed";
112ee33cd69STakeshi Saito		regulator-name = "fixed-3.3V";
113ee33cd69STakeshi Saito		regulator-min-microvolt = <3300000>;
114ee33cd69STakeshi Saito		regulator-max-microvolt = <3300000>;
115ee33cd69STakeshi Saito		regulator-boot-on;
116ee33cd69STakeshi Saito		regulator-always-on;
117ee33cd69STakeshi Saito	};
11863070d7cSYoshihiro Shimoda};
11963070d7cSYoshihiro Shimoda
12063070d7cSYoshihiro Shimoda&extal_clk {
12163070d7cSYoshihiro Shimoda	clock-frequency = <16666666>;
12263070d7cSYoshihiro Shimoda};
12363070d7cSYoshihiro Shimoda
12463070d7cSYoshihiro Shimoda&extalr_clk {
12563070d7cSYoshihiro Shimoda	clock-frequency = <32768>;
12663070d7cSYoshihiro Shimoda};
12763070d7cSYoshihiro Shimoda
1280e6fb83eSWolfram Sang&i2c0 {
1290e6fb83eSWolfram Sang	pinctrl-0 = <&i2c0_pins>;
1300e6fb83eSWolfram Sang	pinctrl-names = "default";
1310e6fb83eSWolfram Sang
1320e6fb83eSWolfram Sang	status = "okay";
1330e6fb83eSWolfram Sang	clock-frequency = <400000>;
134405daa39SGeert Uytterhoeven
135405daa39SGeert Uytterhoeven	eeprom@50 {
136405daa39SGeert Uytterhoeven		compatible = "rohm,br24g01", "atmel,24c01";
137405daa39SGeert Uytterhoeven		label = "cpu-board";
138405daa39SGeert Uytterhoeven		reg = <0x50>;
139405daa39SGeert Uytterhoeven		pagesize = <8>;
140405daa39SGeert Uytterhoeven	};
1410e6fb83eSWolfram Sang};
1420e6fb83eSWolfram Sang
1430e6fb83eSWolfram Sang&i2c1 {
1440e6fb83eSWolfram Sang	pinctrl-0 = <&i2c1_pins>;
1450e6fb83eSWolfram Sang	pinctrl-names = "default";
1460e6fb83eSWolfram Sang
1470e6fb83eSWolfram Sang	status = "okay";
1480e6fb83eSWolfram Sang	clock-frequency = <400000>;
1490e6fb83eSWolfram Sang};
1500e6fb83eSWolfram Sang
1510e6fb83eSWolfram Sang&i2c6 {
1520e6fb83eSWolfram Sang	pinctrl-0 = <&i2c6_pins>;
1530e6fb83eSWolfram Sang	pinctrl-names = "default";
1540e6fb83eSWolfram Sang
1550e6fb83eSWolfram Sang	status = "okay";
1560e6fb83eSWolfram Sang	clock-frequency = <400000>;
1570e6fb83eSWolfram Sang};
1580e6fb83eSWolfram Sang
159ee33cd69STakeshi Saito&mmc0 {
160ee33cd69STakeshi Saito	pinctrl-0 = <&mmc_pins>;
161ee33cd69STakeshi Saito	pinctrl-1 = <&mmc_pins>;
162ee33cd69STakeshi Saito	pinctrl-names = "default", "state_uhs";
163ee33cd69STakeshi Saito
164ee33cd69STakeshi Saito	vmmc-supply = <&reg_3p3v>;
165ee33cd69STakeshi Saito	vqmmc-supply = <&reg_1p8v>;
166ee33cd69STakeshi Saito	mmc-hs200-1_8v;
167ee33cd69STakeshi Saito	mmc-hs400-1_8v;
168ee33cd69STakeshi Saito	bus-width = <8>;
169ee33cd69STakeshi Saito	no-sd;
170ee33cd69STakeshi Saito	no-sdio;
171ee33cd69STakeshi Saito	non-removable;
172ee33cd69STakeshi Saito	full-pwr-cycle-in-suspend;
173ee33cd69STakeshi Saito	status = "okay";
174ee33cd69STakeshi Saito};
175ee33cd69STakeshi Saito
1760e6fb83eSWolfram Sang&pfc {
1779e921faaSWolfram Sang	pinctrl-0 = <&scif_clk_pins>;
1789e921faaSWolfram Sang	pinctrl-names = "default";
1799e921faaSWolfram Sang
1800e6fb83eSWolfram Sang	i2c0_pins: i2c0 {
1810e6fb83eSWolfram Sang		groups = "i2c0";
1820e6fb83eSWolfram Sang		function = "i2c0";
1830e6fb83eSWolfram Sang	};
1840e6fb83eSWolfram Sang
1850e6fb83eSWolfram Sang	i2c1_pins: i2c1 {
1860e6fb83eSWolfram Sang		groups = "i2c1";
1870e6fb83eSWolfram Sang		function = "i2c1";
1880e6fb83eSWolfram Sang	};
1890e6fb83eSWolfram Sang
1900e6fb83eSWolfram Sang	i2c6_pins: i2c6 {
1910e6fb83eSWolfram Sang		groups = "i2c6";
1920e6fb83eSWolfram Sang		function = "i2c6";
1930e6fb83eSWolfram Sang	};
1949e921faaSWolfram Sang
1955e8c83b3SKieran Bingham	keys_pins: keys {
1965e8c83b3SKieran Bingham		pins = "GP_6_18", "GP_6_19", "GP_6_20";
1975e8c83b3SKieran Bingham		bias-pull-up;
1985e8c83b3SKieran Bingham	};
1995e8c83b3SKieran Bingham
200ee33cd69STakeshi Saito	mmc_pins: mmc {
201ee33cd69STakeshi Saito		groups = "mmc_data8", "mmc_ctrl", "mmc_ds";
202ee33cd69STakeshi Saito		function = "mmc";
203ee33cd69STakeshi Saito		power-source = <1800>;
204ee33cd69STakeshi Saito	};
205ee33cd69STakeshi Saito
206*f28daeedSWolfram Sang	qspi0_pins: qspi0 {
207*f28daeedSWolfram Sang		groups = "qspi0_ctrl", "qspi0_data4";
208*f28daeedSWolfram Sang		function = "qspi0";
209*f28daeedSWolfram Sang	};
210*f28daeedSWolfram Sang
2119e921faaSWolfram Sang	scif0_pins: scif0 {
2129e921faaSWolfram Sang		groups = "scif0_data", "scif0_ctrl";
2139e921faaSWolfram Sang		function = "scif0";
2149e921faaSWolfram Sang	};
2159e921faaSWolfram Sang
2169e921faaSWolfram Sang	scif_clk_pins: scif_clk {
2179e921faaSWolfram Sang		groups = "scif_clk";
2189e921faaSWolfram Sang		function = "scif_clk";
2199e921faaSWolfram Sang	};
2200e6fb83eSWolfram Sang};
2210e6fb83eSWolfram Sang
222*f28daeedSWolfram Sang&rpc {
223*f28daeedSWolfram Sang	pinctrl-0 = <&qspi0_pins>;
224*f28daeedSWolfram Sang	pinctrl-names = "default";
225*f28daeedSWolfram Sang
226*f28daeedSWolfram Sang	status = "okay";
227*f28daeedSWolfram Sang
228*f28daeedSWolfram Sang	flash@0 {
229*f28daeedSWolfram Sang		compatible = "spansion,s25fs512s", "jedec,spi-nor";
230*f28daeedSWolfram Sang		reg = <0>;
231*f28daeedSWolfram Sang		spi-max-frequency = <40000000>;
232*f28daeedSWolfram Sang		spi-rx-bus-width = <4>;
233*f28daeedSWolfram Sang
234*f28daeedSWolfram Sang		partitions {
235*f28daeedSWolfram Sang			compatible = "fixed-partitions";
236*f28daeedSWolfram Sang			#address-cells = <1>;
237*f28daeedSWolfram Sang			#size-cells = <1>;
238*f28daeedSWolfram Sang
239*f28daeedSWolfram Sang			boot@0 {
240*f28daeedSWolfram Sang				reg = <0x0 0xcc0000>;
241*f28daeedSWolfram Sang				read-only;
242*f28daeedSWolfram Sang			};
243*f28daeedSWolfram Sang			user@cc0000 {
244*f28daeedSWolfram Sang				reg = <0xcc0000 0x3340000>;
245*f28daeedSWolfram Sang			};
246*f28daeedSWolfram Sang		};
247*f28daeedSWolfram Sang	};
248*f28daeedSWolfram Sang};
249*f28daeedSWolfram Sang
2500fc129baSGeert Uytterhoeven&rwdt {
2510fc129baSGeert Uytterhoeven	timeout-sec = <60>;
2520fc129baSGeert Uytterhoeven	status = "okay";
2530fc129baSGeert Uytterhoeven};
2540fc129baSGeert Uytterhoeven
25563070d7cSYoshihiro Shimoda&scif0 {
2569e921faaSWolfram Sang	pinctrl-0 = <&scif0_pins>;
2579e921faaSWolfram Sang	pinctrl-names = "default";
2589e921faaSWolfram Sang
2599e921faaSWolfram Sang	uart-has-rtscts;
26063070d7cSYoshihiro Shimoda	status = "okay";
26163070d7cSYoshihiro Shimoda};
2629e921faaSWolfram Sang
2639e921faaSWolfram Sang&scif_clk {
2649e921faaSWolfram Sang	clock-frequency = <24000000>;
2659e921faaSWolfram Sang};
266