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