19d7ed339SAndy Yan/* 29d7ed339SAndy Yan * Copyright (c) 2017 Rockchip Electronics Co., Ltd 39d7ed339SAndy Yan * 49d7ed339SAndy Yan * This file is dual-licensed: you can use it either under the terms 59d7ed339SAndy Yan * of the GPL or the X11 license, at your option. Note that this dual 69d7ed339SAndy Yan * licensing only applies to this file, and not this project as a 79d7ed339SAndy Yan * whole. 89d7ed339SAndy Yan * 99d7ed339SAndy Yan * a) This file is free software; you can redistribute it and/or 109d7ed339SAndy Yan * modify it under the terms of the GNU General Public License as 119d7ed339SAndy Yan * published by the Free Software Foundation; either version 2 of the 129d7ed339SAndy Yan * License, or (at your option) any later version. 139d7ed339SAndy Yan * 149d7ed339SAndy Yan * This file is distributed in the hope that it will be useful, 159d7ed339SAndy Yan * but WITHOUT ANY WARRANTY; without even the implied warranty of 169d7ed339SAndy Yan * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 179d7ed339SAndy Yan * GNU General Public License for more details. 189d7ed339SAndy Yan * 199d7ed339SAndy Yan * Or, alternatively, 209d7ed339SAndy Yan * 219d7ed339SAndy Yan * b) Permission is hereby granted, free of charge, to any person 229d7ed339SAndy Yan * obtaining a copy of this software and associated documentation 239d7ed339SAndy Yan * files (the "Software"), to deal in the Software without 249d7ed339SAndy Yan * restriction, including without limitation the rights to use, 259d7ed339SAndy Yan * copy, modify, merge, publish, distribute, sublicense, and/or 269d7ed339SAndy Yan * sell copies of the Software, and to permit persons to whom the 279d7ed339SAndy Yan * Software is furnished to do so, subject to the following 289d7ed339SAndy Yan * conditions: 299d7ed339SAndy Yan * 309d7ed339SAndy Yan * The above copyright notice and this permission notice shall be 319d7ed339SAndy Yan * included in all copies or substantial portions of the Software. 329d7ed339SAndy Yan * 339d7ed339SAndy Yan * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, 349d7ed339SAndy Yan * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES 359d7ed339SAndy Yan * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND 369d7ed339SAndy Yan * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT 379d7ed339SAndy Yan * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, 389d7ed339SAndy Yan * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING 399d7ed339SAndy Yan * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR 409d7ed339SAndy Yan * OTHER DEALINGS IN THE SOFTWARE. 419d7ed339SAndy Yan */ 429d7ed339SAndy Yan 439d7ed339SAndy Yan/dts-v1/; 449d7ed339SAndy Yan#include "rk3368.dtsi" 459d7ed339SAndy Yan#include <dt-bindings/input/input.h> 469d7ed339SAndy Yan 479d7ed339SAndy Yan/ { 489d7ed339SAndy Yan model = "PX5 EVB"; 499d7ed339SAndy Yan compatible = "rockchip,px5-evb", "rockchip,px5", "rockchip,rk3368"; 509d7ed339SAndy Yan 519d7ed339SAndy Yan chosen { 529d7ed339SAndy Yan stdout-path = "serial4:115200n8"; 539d7ed339SAndy Yan }; 549d7ed339SAndy Yan 559d7ed339SAndy Yan memory@0 { 569d7ed339SAndy Yan device_type = "memory"; 579d7ed339SAndy Yan reg = <0x0 0x0 0x0 0x40000000>; 589d7ed339SAndy Yan }; 599d7ed339SAndy Yan 609d7ed339SAndy Yan ext_gmac: gmac-clk { 619d7ed339SAndy Yan compatible = "fixed-clock"; 629d7ed339SAndy Yan clock-frequency = <125000000>; 639d7ed339SAndy Yan clock-output-names = "ext_gmac"; 649d7ed339SAndy Yan #clock-cells = <0>; 659d7ed339SAndy Yan }; 669d7ed339SAndy Yan 679d7ed339SAndy Yan ir: ir-receiver { 689d7ed339SAndy Yan compatible = "gpio-ir-receiver"; 699d7ed339SAndy Yan gpios = <&gpio3 30 GPIO_ACTIVE_LOW>; 709d7ed339SAndy Yan pinctrl-names = "default"; 719d7ed339SAndy Yan pinctrl-0 = <&ir_int>; 729d7ed339SAndy Yan }; 739d7ed339SAndy Yan 749d7ed339SAndy Yan keys: gpio-keys { 759d7ed339SAndy Yan compatible = "gpio-keys"; 769d7ed339SAndy Yan pinctrl-names = "default"; 779d7ed339SAndy Yan pinctrl-0 = <&pwr_key>; 789d7ed339SAndy Yan 799d7ed339SAndy Yan power { 809d7ed339SAndy Yan gpios = <&gpio0 2 GPIO_ACTIVE_LOW>; 819d7ed339SAndy Yan label = "GPIO Power"; 829d7ed339SAndy Yan linux,code = <KEY_POWER>; 839d7ed339SAndy Yan wakeup-source; 849d7ed339SAndy Yan }; 859d7ed339SAndy Yan }; 869d7ed339SAndy Yan 879d7ed339SAndy Yan leds: gpio-leds { 889d7ed339SAndy Yan compatible = "gpio-leds"; 899d7ed339SAndy Yan 909d7ed339SAndy Yan blue { 919d7ed339SAndy Yan gpios = <&gpio2 2 GPIO_ACTIVE_HIGH>; 929d7ed339SAndy Yan label = "geekbox:blue:led"; 939d7ed339SAndy Yan default-state = "on"; 949d7ed339SAndy Yan }; 959d7ed339SAndy Yan 969d7ed339SAndy Yan red { 979d7ed339SAndy Yan gpios = <&gpio2 3 GPIO_ACTIVE_HIGH>; 989d7ed339SAndy Yan label = "geekbox:red:led"; 999d7ed339SAndy Yan default-state = "off"; 1009d7ed339SAndy Yan }; 1019d7ed339SAndy Yan }; 1029d7ed339SAndy Yan 1039d7ed339SAndy Yan vcc_sys: vcc-sys-regulator { 1049d7ed339SAndy Yan compatible = "regulator-fixed"; 1059d7ed339SAndy Yan regulator-name = "vcc_sys"; 1069d7ed339SAndy Yan regulator-min-microvolt = <5000000>; 1079d7ed339SAndy Yan regulator-max-microvolt = <5000000>; 1089d7ed339SAndy Yan regulator-always-on; 1099d7ed339SAndy Yan regulator-boot-on; 1109d7ed339SAndy Yan }; 1119d7ed339SAndy Yan}; 1129d7ed339SAndy Yan 1139d7ed339SAndy Yan&emmc { 1149d7ed339SAndy Yan status = "okay"; 1159d7ed339SAndy Yan bus-width = <8>; 1169d7ed339SAndy Yan cap-mmc-highspeed; 1179d7ed339SAndy Yan clock-frequency = <150000000>; 1189d7ed339SAndy Yan disable-wp; 1199d7ed339SAndy Yan keep-power-in-suspend; 1209d7ed339SAndy Yan non-removable; 1219d7ed339SAndy Yan num-slots = <1>; 1229d7ed339SAndy Yan vmmc-supply = <&vcc_io>; 1239d7ed339SAndy Yan vqmmc-supply = <&vcc18_flash>; 1249d7ed339SAndy Yan pinctrl-names = "default"; 1259d7ed339SAndy Yan pinctrl-0 = <&emmc_clk>, <&emmc_cmd>, <&emmc_bus8>; 1269d7ed339SAndy Yan}; 1279d7ed339SAndy Yan 1289d7ed339SAndy Yan&gmac { 1299d7ed339SAndy Yan status = "okay"; 1309d7ed339SAndy Yan phy-supply = <&vcc_lan>; 1319d7ed339SAndy Yan phy-mode = "rgmii"; 1329d7ed339SAndy Yan clock_in_out = "input"; 1339d7ed339SAndy Yan assigned-clocks = <&cru SCLK_MAC>; 1349d7ed339SAndy Yan assigned-clock-parents = <&ext_gmac>; 1359d7ed339SAndy Yan pinctrl-names = "default"; 1369d7ed339SAndy Yan pinctrl-0 = <&rgmii_pins>; 1379d7ed339SAndy Yan tx_delay = <0x30>; 1389d7ed339SAndy Yan rx_delay = <0x10>; 1399d7ed339SAndy Yan}; 1409d7ed339SAndy Yan 1419d7ed339SAndy Yan&i2c0 { 1429d7ed339SAndy Yan status = "okay"; 1439d7ed339SAndy Yan 1449d7ed339SAndy Yan rk808: pmic@1b { 1459d7ed339SAndy Yan compatible = "rockchip,rk808"; 1469d7ed339SAndy Yan reg = <0x1b>; 1479d7ed339SAndy Yan pinctrl-names = "default"; 1489d7ed339SAndy Yan pinctrl-0 = <&pmic_int>, <&pmic_sleep>; 1499d7ed339SAndy Yan interrupt-parent = <&gpio0>; 1509d7ed339SAndy Yan interrupts = <5 IRQ_TYPE_LEVEL_LOW>; 1519d7ed339SAndy Yan rockchip,system-power-controller; 1529d7ed339SAndy Yan vcc1-supply = <&vcc_sys>; 1539d7ed339SAndy Yan vcc2-supply = <&vcc_sys>; 1549d7ed339SAndy Yan vcc3-supply = <&vcc_sys>; 1559d7ed339SAndy Yan vcc4-supply = <&vcc_sys>; 1569d7ed339SAndy Yan vcc6-supply = <&vcc_sys>; 1579d7ed339SAndy Yan vcc7-supply = <&vcc_sys>; 1589d7ed339SAndy Yan vcc8-supply = <&vcc_io>; 1599d7ed339SAndy Yan vcc9-supply = <&vcc_sys>; 1609d7ed339SAndy Yan vcc10-supply = <&vcc_sys>; 1619d7ed339SAndy Yan vcc11-supply = <&vcc_sys>; 1629d7ed339SAndy Yan vcc12-supply = <&vcc_io>; 1639d7ed339SAndy Yan clock-output-names = "xin32k", "rk808-clkout2"; 1649d7ed339SAndy Yan #clock-cells = <1>; 1659d7ed339SAndy Yan 1669d7ed339SAndy Yan regulators { 1679d7ed339SAndy Yan vdd_cpu: DCDC_REG1 { 1689d7ed339SAndy Yan regulator-always-on; 1699d7ed339SAndy Yan regulator-boot-on; 1709d7ed339SAndy Yan regulator-min-microvolt = <700000>; 1719d7ed339SAndy Yan regulator-max-microvolt = <1500000>; 1729d7ed339SAndy Yan regulator-name = "vdd_cpu"; 1739d7ed339SAndy Yan }; 1749d7ed339SAndy Yan 1759d7ed339SAndy Yan vdd_log: DCDC_REG2 { 1769d7ed339SAndy Yan regulator-always-on; 1779d7ed339SAndy Yan regulator-boot-on; 1789d7ed339SAndy Yan regulator-min-microvolt = <700000>; 1799d7ed339SAndy Yan regulator-max-microvolt = <1500000>; 1809d7ed339SAndy Yan regulator-name = "vdd_log"; 1819d7ed339SAndy Yan }; 1829d7ed339SAndy Yan 1839d7ed339SAndy Yan vcc_ddr: DCDC_REG3 { 1849d7ed339SAndy Yan regulator-always-on; 1859d7ed339SAndy Yan regulator-boot-on; 1869d7ed339SAndy Yan regulator-name = "vcc_ddr"; 1879d7ed339SAndy Yan }; 1889d7ed339SAndy Yan 1899d7ed339SAndy Yan vcc_io: DCDC_REG4 { 1909d7ed339SAndy Yan regulator-always-on; 1919d7ed339SAndy Yan regulator-boot-on; 1929d7ed339SAndy Yan regulator-min-microvolt = <3300000>; 1939d7ed339SAndy Yan regulator-max-microvolt = <3300000>; 1949d7ed339SAndy Yan regulator-name = "vcc_io"; 1959d7ed339SAndy Yan }; 1969d7ed339SAndy Yan 1979d7ed339SAndy Yan vcc18_flash: LDO_REG1 { 1989d7ed339SAndy Yan regulator-always-on; 1999d7ed339SAndy Yan regulator-boot-on; 2009d7ed339SAndy Yan regulator-min-microvolt = <1800000>; 2019d7ed339SAndy Yan regulator-max-microvolt = <1800000>; 2029d7ed339SAndy Yan regulator-name = "vcc18_flash"; 2039d7ed339SAndy Yan }; 2049d7ed339SAndy Yan 2059d7ed339SAndy Yan vcc33_lcd: LDO_REG2 { 2069d7ed339SAndy Yan regulator-always-on; 2079d7ed339SAndy Yan regulator-boot-on; 2089d7ed339SAndy Yan regulator-min-microvolt = <3300000>; 2099d7ed339SAndy Yan regulator-max-microvolt = <3300000>; 2109d7ed339SAndy Yan regulator-name = "vcc33_lcd"; 2119d7ed339SAndy Yan }; 2129d7ed339SAndy Yan 2139d7ed339SAndy Yan vdd_10: LDO_REG3 { 2149d7ed339SAndy Yan regulator-always-on; 2159d7ed339SAndy Yan regulator-boot-on; 2169d7ed339SAndy Yan regulator-min-microvolt = <1000000>; 2179d7ed339SAndy Yan regulator-max-microvolt = <1000000>; 2189d7ed339SAndy Yan regulator-name = "vdd_10"; 2199d7ed339SAndy Yan }; 2209d7ed339SAndy Yan 2219d7ed339SAndy Yan vcca_18: LDO_REG4 { 2229d7ed339SAndy Yan regulator-boot-on; 2239d7ed339SAndy Yan regulator-min-microvolt = <1800000>; 2249d7ed339SAndy Yan regulator-max-microvolt = <1800000>; 2259d7ed339SAndy Yan regulator-name = "vcca_18"; 2269d7ed339SAndy Yan }; 2279d7ed339SAndy Yan 2289d7ed339SAndy Yan vccio_sd: LDO_REG5 { 2299d7ed339SAndy Yan regulator-always-on; 2309d7ed339SAndy Yan regulator-boot-on; 2319d7ed339SAndy Yan regulator-min-microvolt = <1800000>; 2329d7ed339SAndy Yan regulator-max-microvolt = <3300000>; 2339d7ed339SAndy Yan regulator-name = "vccio_sd"; 2349d7ed339SAndy Yan }; 2359d7ed339SAndy Yan 2369d7ed339SAndy Yan vdd10_lcd: LDO_REG6 { 2379d7ed339SAndy Yan regulator-always-on; 2389d7ed339SAndy Yan regulator-boot-on; 2399d7ed339SAndy Yan regulator-min-microvolt = <1000000>; 2409d7ed339SAndy Yan regulator-max-microvolt = <1000000>; 2419d7ed339SAndy Yan regulator-name = "vdd10_lcd"; 2429d7ed339SAndy Yan }; 2439d7ed339SAndy Yan 2449d7ed339SAndy Yan vcc_18: LDO_REG7 { 2459d7ed339SAndy Yan regulator-always-on; 2469d7ed339SAndy Yan regulator-boot-on; 2479d7ed339SAndy Yan regulator-min-microvolt = <1800000>; 2489d7ed339SAndy Yan regulator-max-microvolt = <1800000>; 2499d7ed339SAndy Yan regulator-name = "vcc_18"; 2509d7ed339SAndy Yan }; 2519d7ed339SAndy Yan 2529d7ed339SAndy Yan vcc18_lcd: LDO_REG8 { 2539d7ed339SAndy Yan regulator-always-on; 2549d7ed339SAndy Yan regulator-boot-on; 2559d7ed339SAndy Yan regulator-min-microvolt = <1800000>; 2569d7ed339SAndy Yan regulator-max-microvolt = <1800000>; 2579d7ed339SAndy Yan regulator-name = "vcc18_lcd"; 2589d7ed339SAndy Yan }; 2599d7ed339SAndy Yan 2609d7ed339SAndy Yan vcc_sd: SWITCH_REG1 { 2619d7ed339SAndy Yan regulator-always-on; 2629d7ed339SAndy Yan regulator-boot-on; 2639d7ed339SAndy Yan regulator-name = "vcc_sd"; 2649d7ed339SAndy Yan }; 2659d7ed339SAndy Yan 2669d7ed339SAndy Yan vcc_lan: SWITCH_REG2 { 2679d7ed339SAndy Yan regulator-always-on; 2689d7ed339SAndy Yan regulator-boot-on; 2699d7ed339SAndy Yan regulator-name = "vcc_lan"; 2709d7ed339SAndy Yan }; 2719d7ed339SAndy Yan }; 2729d7ed339SAndy Yan }; 2739d7ed339SAndy Yan}; 2749d7ed339SAndy Yan 2759d7ed339SAndy Yan&pinctrl { 2769d7ed339SAndy Yan ir { 2779d7ed339SAndy Yan ir_int: ir-int { 2789d7ed339SAndy Yan rockchip,pins = <3 30 RK_FUNC_GPIO &pcfg_pull_none>; 2799d7ed339SAndy Yan }; 2809d7ed339SAndy Yan }; 2819d7ed339SAndy Yan 2829d7ed339SAndy Yan keys { 2839d7ed339SAndy Yan pwr_key: pwr-key { 2849d7ed339SAndy Yan rockchip,pins = <0 2 RK_FUNC_GPIO &pcfg_pull_none>; 2859d7ed339SAndy Yan }; 2869d7ed339SAndy Yan }; 2879d7ed339SAndy Yan 2889d7ed339SAndy Yan pmic { 2899d7ed339SAndy Yan pmic_sleep: pmic-sleep { 2909d7ed339SAndy Yan rockchip,pins = <0 0 RK_FUNC_2 &pcfg_pull_none>; 2919d7ed339SAndy Yan }; 2929d7ed339SAndy Yan 2939d7ed339SAndy Yan pmic_int: pmic-int { 2949d7ed339SAndy Yan rockchip,pins = <0 5 RK_FUNC_GPIO &pcfg_pull_up>; 2959d7ed339SAndy Yan }; 2969d7ed339SAndy Yan }; 2979d7ed339SAndy Yan}; 2989d7ed339SAndy Yan 299648b218eSDavid Wu&saradc { 300648b218eSDavid Wu status = "okay"; 301648b218eSDavid Wu}; 302648b218eSDavid Wu 303*e1f8eabfSAndy Yan&sdmmc { 304*e1f8eabfSAndy Yan bus-width = <4>; 305*e1f8eabfSAndy Yan cap-mmc-highspeed; 306*e1f8eabfSAndy Yan cap-sd-highspeed; 307*e1f8eabfSAndy Yan disable-wp; 308*e1f8eabfSAndy Yan max-frequency = <150000000>; 309*e1f8eabfSAndy Yan pinctrl-names = "default"; 310*e1f8eabfSAndy Yan pinctrl-0 = <&sdmmc_clk &sdmmc_cmd &sdmmc_cd &sdmmc_bus4>; 311*e1f8eabfSAndy Yan status = "okay"; 312*e1f8eabfSAndy Yan}; 313*e1f8eabfSAndy Yan 3149d7ed339SAndy Yan&tsadc { 3159d7ed339SAndy Yan status = "okay"; 3169d7ed339SAndy Yan rockchip,hw-tshut-mode = <0>; /* CRU */ 3179d7ed339SAndy Yan rockchip,hw-tshut-polarity = <1>; /* high */ 3189d7ed339SAndy Yan}; 3199d7ed339SAndy Yan 3209d7ed339SAndy Yan&uart4 { 3219d7ed339SAndy Yan status = "okay"; 3229d7ed339SAndy Yan}; 3239d7ed339SAndy Yan 3249d7ed339SAndy Yan&usb_host0_ehci { 3259d7ed339SAndy Yan status = "okay"; 3269d7ed339SAndy Yan}; 3279d7ed339SAndy Yan 3289d7ed339SAndy Yan&usb_otg { 3299d7ed339SAndy Yan status = "okay"; 3309d7ed339SAndy Yan}; 3319d7ed339SAndy Yan 3329d7ed339SAndy Yan&wdt { 3339d7ed339SAndy Yan status = "okay"; 3349d7ed339SAndy Yan}; 335