14afbce84SLiang Chen// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
24afbce84SLiang Chen/*
34afbce84SLiang Chen * Copyright (c) 2018 Fuzhou Rockchip Electronics Co., Ltd
44afbce84SLiang Chen */
54afbce84SLiang Chen
64afbce84SLiang Chen/dts-v1/;
74afbce84SLiang Chen#include <dt-bindings/gpio/gpio.h>
84afbce84SLiang Chen#include <dt-bindings/input/input.h>
94afbce84SLiang Chen#include <dt-bindings/pinctrl/rockchip.h>
104afbce84SLiang Chen#include "px30.dtsi"
114afbce84SLiang Chen
124afbce84SLiang Chen/ {
134afbce84SLiang Chen	model = "Rockchip PX30 EVB";
144afbce84SLiang Chen	compatible = "rockchip,px30-evb", "rockchip,px30";
154afbce84SLiang Chen
164afbce84SLiang Chen	chosen {
174afbce84SLiang Chen		stdout-path = "serial2:1500000n8";
184afbce84SLiang Chen	};
194afbce84SLiang Chen
204afbce84SLiang Chen	adc-keys {
214afbce84SLiang Chen		compatible = "adc-keys";
224afbce84SLiang Chen		io-channels = <&saradc 2>;
234afbce84SLiang Chen		io-channel-names = "buttons";
244afbce84SLiang Chen		keyup-threshold-microvolt = <1800000>;
254afbce84SLiang Chen		poll-interval = <100>;
264afbce84SLiang Chen
274afbce84SLiang Chen		esc-key {
284afbce84SLiang Chen			label = "esc";
294afbce84SLiang Chen			linux,code = <KEY_ESC>;
304afbce84SLiang Chen			press-threshold-microvolt = <1310000>;
314afbce84SLiang Chen		};
324afbce84SLiang Chen
334afbce84SLiang Chen		home-key {
344afbce84SLiang Chen			label = "home";
354afbce84SLiang Chen			linux,code = <KEY_HOME>;
364afbce84SLiang Chen			press-threshold-microvolt = <624000>;
374afbce84SLiang Chen		};
384afbce84SLiang Chen
394afbce84SLiang Chen		menu-key {
404afbce84SLiang Chen			label = "menu";
414afbce84SLiang Chen			linux,code = <KEY_MENU>;
424afbce84SLiang Chen			press-threshold-microvolt = <987000>;
434afbce84SLiang Chen		};
444afbce84SLiang Chen
454afbce84SLiang Chen		vol-down-key {
464afbce84SLiang Chen			label = "volume down";
474afbce84SLiang Chen			linux,code = <KEY_VOLUMEDOWN>;
484afbce84SLiang Chen			press-threshold-microvolt = <300000>;
494afbce84SLiang Chen		};
504afbce84SLiang Chen
514afbce84SLiang Chen		vol-up-key {
524afbce84SLiang Chen			label = "volume up";
534afbce84SLiang Chen			linux,code = <KEY_VOLUMEUP>;
544afbce84SLiang Chen			press-threshold-microvolt = <17000>;
554afbce84SLiang Chen		};
564afbce84SLiang Chen	};
574afbce84SLiang Chen
584afbce84SLiang Chen	backlight: backlight {
594afbce84SLiang Chen		compatible = "pwm-backlight";
604afbce84SLiang Chen		pwms = <&pwm1 0 25000 0>;
614afbce84SLiang Chen	};
624afbce84SLiang Chen
634afbce84SLiang Chen	sdio_pwrseq: sdio-pwrseq {
644afbce84SLiang Chen		compatible = "mmc-pwrseq-simple";
654afbce84SLiang Chen		pinctrl-names = "default";
664afbce84SLiang Chen		pinctrl-0 = <&wifi_enable_h>;
674afbce84SLiang Chen
684afbce84SLiang Chen		/*
694afbce84SLiang Chen		 * On the module itself this is one of these (depending
704afbce84SLiang Chen		 * on the actual card populated):
714afbce84SLiang Chen		 * - SDIO_RESET_L_WL_REG_ON
724afbce84SLiang Chen		 * - PDN (power down when low)
734afbce84SLiang Chen		 */
744afbce84SLiang Chen		reset-gpios = <&gpio0 RK_PA2 GPIO_ACTIVE_LOW>; /* GPIO3_A4 */
754afbce84SLiang Chen	};
764afbce84SLiang Chen
774afbce84SLiang Chen	vcc_phy: vcc-phy-regulator {
784afbce84SLiang Chen		compatible = "regulator-fixed";
794afbce84SLiang Chen		regulator-name = "vcc_phy";
804afbce84SLiang Chen		regulator-always-on;
814afbce84SLiang Chen		regulator-boot-on;
824afbce84SLiang Chen	};
834afbce84SLiang Chen
844afbce84SLiang Chen	vcc5v0_sys: vccsys {
854afbce84SLiang Chen		compatible = "regulator-fixed";
864afbce84SLiang Chen		regulator-name = "vcc5v0_sys";
874afbce84SLiang Chen		regulator-always-on;
884afbce84SLiang Chen		regulator-boot-on;
894afbce84SLiang Chen		regulator-min-microvolt = <5000000>;
904afbce84SLiang Chen		regulator-max-microvolt = <5000000>;
914afbce84SLiang Chen	};
924afbce84SLiang Chen};
934afbce84SLiang Chen
944afbce84SLiang Chen&display_subsystem {
954afbce84SLiang Chen	status = "okay";
964afbce84SLiang Chen};
974afbce84SLiang Chen
984afbce84SLiang Chen&emmc {
994afbce84SLiang Chen	bus-width = <8>;
1004afbce84SLiang Chen	cap-mmc-highspeed;
1014afbce84SLiang Chen	mmc-hs200-1_8v;
1024afbce84SLiang Chen	non-removable;
1034afbce84SLiang Chen	status = "okay";
1044afbce84SLiang Chen};
1054afbce84SLiang Chen
1064afbce84SLiang Chen&gmac {
1074afbce84SLiang Chen	clock_in_out = "output";
1084afbce84SLiang Chen	phy-supply = <&vcc_phy>;
1094afbce84SLiang Chen	snps,reset-gpio = <&gpio2 13 GPIO_ACTIVE_LOW>;
1104afbce84SLiang Chen	snps,reset-active-low;
1114afbce84SLiang Chen	snps,reset-delays-us = <0 50000 50000>;
1124afbce84SLiang Chen	status = "okay";
1134afbce84SLiang Chen};
1144afbce84SLiang Chen
1154afbce84SLiang Chen&i2c0 {
1164afbce84SLiang Chen	status = "okay";
1174afbce84SLiang Chen};
1184afbce84SLiang Chen
1194afbce84SLiang Chen&i2s1_2ch {
1204afbce84SLiang Chen	status = "okay";
1214afbce84SLiang Chen};
1224afbce84SLiang Chen
1234afbce84SLiang Chen&io_domains {
1244afbce84SLiang Chen	status = "okay";
1254afbce84SLiang Chen};
1264afbce84SLiang Chen
1274afbce84SLiang Chen&pinctrl {
1284afbce84SLiang Chen	headphone {
1294afbce84SLiang Chen		hp_det: hp-det {
1304afbce84SLiang Chen			rockchip,pins =
1314afbce84SLiang Chen				<2 RK_PB0 RK_FUNC_GPIO &pcfg_pull_down>;
1324afbce84SLiang Chen		};
1334afbce84SLiang Chen	};
1344afbce84SLiang Chen
1354afbce84SLiang Chen	pmic {
1364afbce84SLiang Chen		pmic_int: pmic_int {
1374afbce84SLiang Chen			rockchip,pins =
1384afbce84SLiang Chen				<0 RK_PA7 RK_FUNC_GPIO &pcfg_pull_up>;
1394afbce84SLiang Chen		};
1404afbce84SLiang Chen
1414afbce84SLiang Chen		soc_slppin_gpio: soc_slppin_gpio {
1424afbce84SLiang Chen			rockchip,pins =
1434afbce84SLiang Chen				<0 RK_PA4 RK_FUNC_GPIO &pcfg_output_low>;
1444afbce84SLiang Chen		};
1454afbce84SLiang Chen
1464afbce84SLiang Chen		soc_slppin_slp: soc_slppin_slp {
1474afbce84SLiang Chen			rockchip,pins =
1484afbce84SLiang Chen				<0 RK_PA4 RK_FUNC_1 &pcfg_pull_none>;
1494afbce84SLiang Chen		};
1504afbce84SLiang Chen
1514afbce84SLiang Chen		soc_slppin_rst: soc_slppin_rst {
1524afbce84SLiang Chen			rockchip,pins =
1534afbce84SLiang Chen				<0 RK_PA4 RK_FUNC_2 &pcfg_pull_none>;
1544afbce84SLiang Chen		};
1554afbce84SLiang Chen	};
1564afbce84SLiang Chen
1574afbce84SLiang Chen	sdio-pwrseq {
1584afbce84SLiang Chen		wifi_enable_h: wifi-enable-h {
1594afbce84SLiang Chen			rockchip,pins =
1604afbce84SLiang Chen				<0 RK_PA2 RK_FUNC_GPIO &pcfg_pull_none>;
1614afbce84SLiang Chen		};
1624afbce84SLiang Chen	};
1634afbce84SLiang Chen};
1644afbce84SLiang Chen
1654afbce84SLiang Chen&pmu_io_domains {
1664afbce84SLiang Chen	status = "okay";
1674afbce84SLiang Chen};
1684afbce84SLiang Chen
1694afbce84SLiang Chen&pwm1 {
1704afbce84SLiang Chen	status = "okay";
1714afbce84SLiang Chen};
1724afbce84SLiang Chen
1734afbce84SLiang Chen&saradc {
1744afbce84SLiang Chen	status = "okay";
1754afbce84SLiang Chen};
1764afbce84SLiang Chen
1774afbce84SLiang Chen&sdmmc {
1784afbce84SLiang Chen	bus-width = <4>;
1794afbce84SLiang Chen	cap-mmc-highspeed;
1804afbce84SLiang Chen	cap-sd-highspeed;
1814afbce84SLiang Chen	card-detect-delay = <800>;
1824afbce84SLiang Chen	sd-uhs-sdr12;
1834afbce84SLiang Chen	sd-uhs-sdr25;
1844afbce84SLiang Chen	sd-uhs-sdr50;
1854afbce84SLiang Chen	sd-uhs-sdr104;
1864afbce84SLiang Chen	status = "okay";
1874afbce84SLiang Chen};
1884afbce84SLiang Chen
1894afbce84SLiang Chen&sdio {
1904afbce84SLiang Chen	bus-width = <4>;
1914afbce84SLiang Chen	cap-sd-highspeed;
1924afbce84SLiang Chen	keep-power-in-suspend;
1934afbce84SLiang Chen	non-removable;
1944afbce84SLiang Chen	mmc-pwrseq = <&sdio_pwrseq>;
1954afbce84SLiang Chen	sd-uhs-sdr104;
1964afbce84SLiang Chen	status = "okay";
1974afbce84SLiang Chen};
1984afbce84SLiang Chen
1994afbce84SLiang Chen&uart1 {
2004afbce84SLiang Chen	pinctrl-names = "default";
2014afbce84SLiang Chen	pinctrl-0 = <&uart1_xfer &uart1_cts>;
2024afbce84SLiang Chen	status = "okay";
2034afbce84SLiang Chen};
2044afbce84SLiang Chen
2054afbce84SLiang Chen&uart2 {
2064afbce84SLiang Chen	status = "okay";
2074afbce84SLiang Chen};
2084afbce84SLiang Chen
2092ed30cfcSHeiko Stuebner&usb20_otg {
2102ed30cfcSHeiko Stuebner	status = "okay";
2112ed30cfcSHeiko Stuebner};
2122ed30cfcSHeiko Stuebner
2134afbce84SLiang Chen&usb_host0_ehci {
2144afbce84SLiang Chen	status = "okay";
2154afbce84SLiang Chen};
2164afbce84SLiang Chen
2174afbce84SLiang Chen&usb_host0_ohci {
2184afbce84SLiang Chen	status = "okay";
2194afbce84SLiang Chen};
2204afbce84SLiang Chen
2214afbce84SLiang Chen&vopb {
2224afbce84SLiang Chen	status = "okay";
2234afbce84SLiang Chen};
2244afbce84SLiang Chen
2254afbce84SLiang Chen&vopb_mmu {
2264afbce84SLiang Chen	status = "okay";
2274afbce84SLiang Chen};
2284afbce84SLiang Chen
2294afbce84SLiang Chen&vopl {
2304afbce84SLiang Chen	status = "okay";
2314afbce84SLiang Chen};
2324afbce84SLiang Chen
2334afbce84SLiang Chen&vopl_mmu {
2344afbce84SLiang Chen	status = "okay";
2354afbce84SLiang Chen};
236