xref: /linux/scripts/dtc/include-prefixes/arm64/rockchip/rk3528-radxa-e20c.dts (revision 115e74a29b530d121891238e9551c4bcdf7b04b5)
105910d49SYao Zi// SPDX-License-Identifier: GPL-2.0+
205910d49SYao Zi/*
305910d49SYao Zi * Copyright (c) 2020 Rockchip Electronics Co., Ltd
405910d49SYao Zi * Copyright (c) 2024 Radxa Limited
505910d49SYao Zi * Copyright (c) 2024 Yao Zi <ziyao@disroot.org>
605910d49SYao Zi */
705910d49SYao Zi
805910d49SYao Zi/dts-v1/;
96a709e00SJonas Karlman
10ad8afc88SJonas Karlman#include <dt-bindings/input/input.h>
116a709e00SJonas Karlman#include <dt-bindings/leds/common.h>
12c6599944SChukun Pan#include <dt-bindings/pwm/pwm.h>
1305910d49SYao Zi#include "rk3528.dtsi"
1405910d49SYao Zi
1505910d49SYao Zi/ {
1605910d49SYao Zi	model = "Radxa E20C";
1705910d49SYao Zi	compatible = "radxa,e20c", "rockchip,rk3528";
1805910d49SYao Zi
193a01b5f1SJonas Karlman	aliases {
2010b9ef4aSJonas Karlman		ethernet0 = &gmac1;
2134d2730fSHeiko Stuebner		i2c1 = &i2c1;
223a01b5f1SJonas Karlman		mmc0 = &sdhci;
23a2130d91SYao Zi		mmc1 = &sdmmc;
2434d2730fSHeiko Stuebner		serial0 = &uart0;
253a01b5f1SJonas Karlman	};
263a01b5f1SJonas Karlman
2705910d49SYao Zi	chosen {
2805910d49SYao Zi		stdout-path = "serial0:1500000n8";
2905910d49SYao Zi	};
306a709e00SJonas Karlman
313a2819eeSJonas Karlman	adc-keys {
323a2819eeSJonas Karlman		compatible = "adc-keys";
333a2819eeSJonas Karlman		io-channels = <&saradc 0>;
343a2819eeSJonas Karlman		io-channel-names = "buttons";
353a2819eeSJonas Karlman		keyup-threshold-microvolt = <1800000>;
363a2819eeSJonas Karlman		poll-interval = <100>;
373a2819eeSJonas Karlman
383a2819eeSJonas Karlman		button-maskrom {
393a2819eeSJonas Karlman			label = "MASKROM";
403a2819eeSJonas Karlman			linux,code = <KEY_SETUP>;
413a2819eeSJonas Karlman			press-threshold-microvolt = <0>;
423a2819eeSJonas Karlman		};
433a2819eeSJonas Karlman	};
443a2819eeSJonas Karlman
45ad8afc88SJonas Karlman	gpio-keys {
46ad8afc88SJonas Karlman		compatible = "gpio-keys";
47ad8afc88SJonas Karlman		pinctrl-names = "default";
48ad8afc88SJonas Karlman		pinctrl-0 = <&user_key>;
49ad8afc88SJonas Karlman
50ad8afc88SJonas Karlman		button-user {
51ad8afc88SJonas Karlman			gpios = <&gpio0 RK_PA0 GPIO_ACTIVE_LOW>;
52ad8afc88SJonas Karlman			label = "USER";
53ad8afc88SJonas Karlman			linux,code = <BTN_1>;
54ad8afc88SJonas Karlman			wakeup-source;
55ad8afc88SJonas Karlman		};
56ad8afc88SJonas Karlman	};
57ad8afc88SJonas Karlman
586a709e00SJonas Karlman	leds {
596a709e00SJonas Karlman		compatible = "gpio-leds";
606a709e00SJonas Karlman		pinctrl-names = "default";
616a709e00SJonas Karlman		pinctrl-0 = <&lan_led_g>, <&sys_led_g>, <&wan_led_g>;
626a709e00SJonas Karlman
636a709e00SJonas Karlman		led-lan {
646a709e00SJonas Karlman			color = <LED_COLOR_ID_GREEN>;
656a709e00SJonas Karlman			default-state = "off";
666a709e00SJonas Karlman			function = LED_FUNCTION_LAN;
676a709e00SJonas Karlman			gpios = <&gpio4 RK_PB5 GPIO_ACTIVE_HIGH>;
686a709e00SJonas Karlman			linux,default-trigger = "netdev";
696a709e00SJonas Karlman		};
706a709e00SJonas Karlman
716a709e00SJonas Karlman		led-sys {
726a709e00SJonas Karlman			color = <LED_COLOR_ID_GREEN>;
736a709e00SJonas Karlman			default-state = "on";
746a709e00SJonas Karlman			function = LED_FUNCTION_HEARTBEAT;
756a709e00SJonas Karlman			gpios = <&gpio4 RK_PC1 GPIO_ACTIVE_LOW>;
766a709e00SJonas Karlman			linux,default-trigger = "heartbeat";
776a709e00SJonas Karlman		};
786a709e00SJonas Karlman
796a709e00SJonas Karlman		led-wan {
806a709e00SJonas Karlman			color = <LED_COLOR_ID_GREEN>;
816a709e00SJonas Karlman			default-state = "off";
826a709e00SJonas Karlman			function = LED_FUNCTION_WAN;
836a709e00SJonas Karlman			gpios = <&gpio4 RK_PC0 GPIO_ACTIVE_HIGH>;
846a709e00SJonas Karlman			linux,default-trigger = "netdev";
856a709e00SJonas Karlman		};
866a709e00SJonas Karlman	};
873a2819eeSJonas Karlman
88c6599944SChukun Pan	vdd_0v9: regulator-0v9-vdd {
89c6599944SChukun Pan		compatible = "regulator-fixed";
90c6599944SChukun Pan		regulator-name = "vdd_0v9";
91c6599944SChukun Pan		regulator-always-on;
92c6599944SChukun Pan		regulator-boot-on;
93c6599944SChukun Pan		regulator-min-microvolt = <900000>;
94c6599944SChukun Pan		regulator-max-microvolt = <900000>;
95c6599944SChukun Pan		vin-supply = <&vcc5v0_sys>;
96c6599944SChukun Pan	};
97c6599944SChukun Pan
98c6599944SChukun Pan	vcc_ddr: regulator-1v1-vcc-ddr {
99c6599944SChukun Pan		compatible = "regulator-fixed";
100c6599944SChukun Pan		regulator-name = "vcc_ddr";
101c6599944SChukun Pan		regulator-always-on;
102c6599944SChukun Pan		regulator-boot-on;
103c6599944SChukun Pan		regulator-min-microvolt = <1100000>;
104c6599944SChukun Pan		regulator-max-microvolt = <1100000>;
105c6599944SChukun Pan		vin-supply = <&vcc5v0_sys>;
106c6599944SChukun Pan	};
107c6599944SChukun Pan
1083a2819eeSJonas Karlman	vcc_1v8: regulator-1v8-vcc {
1093a2819eeSJonas Karlman		compatible = "regulator-fixed";
1103a2819eeSJonas Karlman		regulator-name = "vcc_1v8";
1113a2819eeSJonas Karlman		regulator-always-on;
1123a2819eeSJonas Karlman		regulator-boot-on;
1133a2819eeSJonas Karlman		regulator-min-microvolt = <1800000>;
1143a2819eeSJonas Karlman		regulator-max-microvolt = <1800000>;
1153a2819eeSJonas Karlman		vin-supply = <&vcc_3v3>;
1163a2819eeSJonas Karlman	};
1173a2819eeSJonas Karlman
1183a2819eeSJonas Karlman	vcc_3v3: regulator-3v3-vcc {
1193a2819eeSJonas Karlman		compatible = "regulator-fixed";
1203a2819eeSJonas Karlman		regulator-name = "vcc_3v3";
1213a2819eeSJonas Karlman		regulator-always-on;
1223a2819eeSJonas Karlman		regulator-boot-on;
1233a2819eeSJonas Karlman		regulator-min-microvolt = <3300000>;
1243a2819eeSJonas Karlman		regulator-max-microvolt = <3300000>;
1253a2819eeSJonas Karlman		vin-supply = <&vcc5v0_sys>;
1263a2819eeSJonas Karlman	};
1273a2819eeSJonas Karlman
1283a2819eeSJonas Karlman	vcc5v0_sys: regulator-5v0-vcc-sys {
1293a2819eeSJonas Karlman		compatible = "regulator-fixed";
1303a2819eeSJonas Karlman		regulator-name = "vcc5v0_sys";
1313a2819eeSJonas Karlman		regulator-always-on;
1323a2819eeSJonas Karlman		regulator-boot-on;
1333a2819eeSJonas Karlman		regulator-min-microvolt = <5000000>;
1343a2819eeSJonas Karlman		regulator-max-microvolt = <5000000>;
1353a2819eeSJonas Karlman	};
136c6599944SChukun Pan
137a2130d91SYao Zi	vccio_sd: regulator-vccio-sd {
138a2130d91SYao Zi		compatible = "regulator-gpio";
139a2130d91SYao Zi		gpios = <&gpio4 RK_PB6 GPIO_ACTIVE_HIGH>;
140a2130d91SYao Zi		pinctrl-names = "default";
141a2130d91SYao Zi		pinctrl-0 = <&sdmmc_vol_ctrl_h>;
142a2130d91SYao Zi		regulator-name = "vccio_sd";
143a2130d91SYao Zi		regulator-min-microvolt = <1800000>;
144a2130d91SYao Zi		regulator-max-microvolt = <3300000>;
145a2130d91SYao Zi		states = <1800000 0x0>, <3300000 0x1>;
146a2130d91SYao Zi		vin-supply = <&vcc5v0_sys>;
147a2130d91SYao Zi	};
148a2130d91SYao Zi
149c6599944SChukun Pan	vdd_arm: regulator-vdd-arm {
150c6599944SChukun Pan		compatible = "pwm-regulator";
151c6599944SChukun Pan		pwms = <&pwm1 0 5000 PWM_POLARITY_INVERTED>;
152c6599944SChukun Pan		pwm-supply = <&vcc5v0_sys>;
153c6599944SChukun Pan		regulator-name = "vdd_arm";
154c6599944SChukun Pan		regulator-always-on;
155c6599944SChukun Pan		regulator-boot-on;
156c6599944SChukun Pan		regulator-min-microvolt = <746000>;
157c6599944SChukun Pan		regulator-max-microvolt = <1201000>;
158c6599944SChukun Pan		regulator-settling-time-up-us = <250>;
159c6599944SChukun Pan	};
160c6599944SChukun Pan
161c6599944SChukun Pan	vdd_logic: regulator-vdd-logic {
162c6599944SChukun Pan		compatible = "pwm-regulator";
163c6599944SChukun Pan		pwms = <&pwm2 0 5000 PWM_POLARITY_INVERTED>;
164c6599944SChukun Pan		pwm-supply = <&vcc5v0_sys>;
165c6599944SChukun Pan		regulator-name = "vdd_logic";
166c6599944SChukun Pan		regulator-always-on;
167c6599944SChukun Pan		regulator-boot-on;
168c6599944SChukun Pan		regulator-min-microvolt = <705000>;
169c6599944SChukun Pan		regulator-max-microvolt = <1006000>;
170c6599944SChukun Pan		regulator-settling-time-up-us = <250>;
171c6599944SChukun Pan	};
172c6599944SChukun Pan};
173c6599944SChukun Pan
174c6599944SChukun Pan&cpu0 {
175c6599944SChukun Pan	cpu-supply = <&vdd_arm>;
176c6599944SChukun Pan};
177c6599944SChukun Pan
178c6599944SChukun Pan&cpu1 {
179c6599944SChukun Pan	cpu-supply = <&vdd_arm>;
180c6599944SChukun Pan};
181c6599944SChukun Pan
182c6599944SChukun Pan&cpu2 {
183c6599944SChukun Pan	cpu-supply = <&vdd_arm>;
184c6599944SChukun Pan};
185c6599944SChukun Pan
186c6599944SChukun Pan&cpu3 {
187c6599944SChukun Pan	cpu-supply = <&vdd_arm>;
1886a709e00SJonas Karlman};
1896a709e00SJonas Karlman
19010b9ef4aSJonas Karlman&gmac1 {
19110b9ef4aSJonas Karlman	clock_in_out = "output";
19210b9ef4aSJonas Karlman	phy-handle = <&rgmii_phy>;
19310b9ef4aSJonas Karlman	phy-mode = "rgmii-id";
19410b9ef4aSJonas Karlman	phy-supply = <&vcc_3v3>;
19510b9ef4aSJonas Karlman	pinctrl-names = "default";
19610b9ef4aSJonas Karlman	pinctrl-0 = <&rgmii_miim>, <&rgmii_tx_bus2>, <&rgmii_rx_bus2>,
19710b9ef4aSJonas Karlman		    <&rgmii_rgmii_clk>, <&rgmii_rgmii_bus>;
19810b9ef4aSJonas Karlman	status = "okay";
19910b9ef4aSJonas Karlman};
20010b9ef4aSJonas Karlman
201f4db8478SJonas Karlman&gpu {
202f4db8478SJonas Karlman	mali-supply = <&vdd_logic>;
203f4db8478SJonas Karlman	status = "okay";
204f4db8478SJonas Karlman};
205f4db8478SJonas Karlman
206101fe8b5SYao Zi&i2c1 {
207101fe8b5SYao Zi	pinctrl-names = "default";
208101fe8b5SYao Zi	pinctrl-0 = <&i2c1m0_xfer>;
209101fe8b5SYao Zi	status = "okay";
210101fe8b5SYao Zi
211101fe8b5SYao Zi	eeprom@50 {
212101fe8b5SYao Zi		compatible = "belling,bl24c16a", "atmel,24c16";
213101fe8b5SYao Zi		reg = <0x50>;
214101fe8b5SYao Zi		pagesize = <16>;
215101fe8b5SYao Zi		read-only;
216101fe8b5SYao Zi		vcc-supply = <&vcc_3v3>;
217101fe8b5SYao Zi	};
218101fe8b5SYao Zi};
219101fe8b5SYao Zi
22010b9ef4aSJonas Karlman&mdio1 {
22110b9ef4aSJonas Karlman	rgmii_phy: ethernet-phy@1 {
22210b9ef4aSJonas Karlman		compatible = "ethernet-phy-ieee802.3-c22";
22310b9ef4aSJonas Karlman		reg = <0x1>;
22410b9ef4aSJonas Karlman		pinctrl-names = "default";
22510b9ef4aSJonas Karlman		pinctrl-0 = <&gmac1_rstn_l>;
22610b9ef4aSJonas Karlman		reset-assert-us = <20000>;
22710b9ef4aSJonas Karlman		reset-deassert-us = <100000>;
22810b9ef4aSJonas Karlman		reset-gpios = <&gpio4 RK_PC2 GPIO_ACTIVE_LOW>;
22910b9ef4aSJonas Karlman	};
23010b9ef4aSJonas Karlman};
23110b9ef4aSJonas Karlman
2326a709e00SJonas Karlman&pinctrl {
23310b9ef4aSJonas Karlman	ethernet {
23410b9ef4aSJonas Karlman		gmac1_rstn_l: gmac1-rstn-l {
23510b9ef4aSJonas Karlman			rockchip,pins = <4 RK_PC2 RK_FUNC_GPIO &pcfg_pull_none>;
23610b9ef4aSJonas Karlman		};
23710b9ef4aSJonas Karlman	};
23810b9ef4aSJonas Karlman
239ad8afc88SJonas Karlman	gpio-keys {
240ad8afc88SJonas Karlman		user_key: user-key {
241ad8afc88SJonas Karlman			rockchip,pins = <0 RK_PA0 RK_FUNC_GPIO &pcfg_pull_up>;
242ad8afc88SJonas Karlman		};
243ad8afc88SJonas Karlman	};
244ad8afc88SJonas Karlman
2456a709e00SJonas Karlman	leds {
2466a709e00SJonas Karlman		lan_led_g: lan-led-g {
2476a709e00SJonas Karlman			rockchip,pins = <4 RK_PB5 RK_FUNC_GPIO &pcfg_pull_none>;
2486a709e00SJonas Karlman		};
2496a709e00SJonas Karlman
2506a709e00SJonas Karlman		sys_led_g: sys-led-g {
2516a709e00SJonas Karlman			rockchip,pins = <4 RK_PC1 RK_FUNC_GPIO &pcfg_pull_none>;
2526a709e00SJonas Karlman		};
2536a709e00SJonas Karlman
2546a709e00SJonas Karlman		wan_led_g: wan-led-g {
2556a709e00SJonas Karlman			rockchip,pins = <4 RK_PC0 RK_FUNC_GPIO &pcfg_pull_none>;
2566a709e00SJonas Karlman		};
2576a709e00SJonas Karlman	};
258a2130d91SYao Zi
259a2130d91SYao Zi	sdmmc {
260a2130d91SYao Zi		sdmmc_vol_ctrl_h: sdmmc-vol-ctrl-h {
261a2130d91SYao Zi			rockchip,pins = <4 RK_PB6 RK_FUNC_GPIO &pcfg_pull_none>;
262a2130d91SYao Zi		};
263a2130d91SYao Zi	};
26405910d49SYao Zi};
26505910d49SYao Zi
266c6599944SChukun Pan&pwm1 {
267c6599944SChukun Pan	pinctrl-names = "default";
268c6599944SChukun Pan	pinctrl-0 = <&pwm1m0_pins>;
269c6599944SChukun Pan	status = "okay";
270c6599944SChukun Pan};
271c6599944SChukun Pan
272c6599944SChukun Pan&pwm2 {
273c6599944SChukun Pan	pinctrl-names = "default";
274c6599944SChukun Pan	pinctrl-0 = <&pwm2m0_pins>;
275c6599944SChukun Pan	status = "okay";
276c6599944SChukun Pan};
277c6599944SChukun Pan
2783a2819eeSJonas Karlman&saradc {
2793a2819eeSJonas Karlman	vref-supply = <&vcc_1v8>;
2803a2819eeSJonas Karlman	status = "okay";
2813a2819eeSJonas Karlman};
2823a2819eeSJonas Karlman
2833a01b5f1SJonas Karlman&sdhci {
2843a01b5f1SJonas Karlman	bus-width = <8>;
2853a01b5f1SJonas Karlman	cap-mmc-highspeed;
286*6e3071f4SJonas Karlman	mmc-hs200-1_8v;
2873a01b5f1SJonas Karlman	no-sd;
2883a01b5f1SJonas Karlman	no-sdio;
2893a01b5f1SJonas Karlman	non-removable;
2903a01b5f1SJonas Karlman	vmmc-supply = <&vcc_3v3>;
2913a01b5f1SJonas Karlman	vqmmc-supply = <&vcc_1v8>;
2923a01b5f1SJonas Karlman	status = "okay";
2933a01b5f1SJonas Karlman};
2943a01b5f1SJonas Karlman
295a2130d91SYao Zi&sdmmc {
296a2130d91SYao Zi	bus-width = <4>;
297a2130d91SYao Zi	cap-mmc-highspeed;
298a2130d91SYao Zi	cap-sd-highspeed;
299a2130d91SYao Zi	disable-wp;
300a2130d91SYao Zi	sd-uhs-sdr104;
301a2130d91SYao Zi	vmmc-supply = <&vcc_3v3>;
302a2130d91SYao Zi	vqmmc-supply = <&vccio_sd>;
303a2130d91SYao Zi	status = "okay";
304a2130d91SYao Zi};
305a2130d91SYao Zi
30605910d49SYao Zi&uart0 {
3070d2312f0SJonas Karlman	pinctrl-names = "default";
3080d2312f0SJonas Karlman	pinctrl-0 = <&uart0m0_xfer>;
30905910d49SYao Zi	status = "okay";
31005910d49SYao Zi};
311