1*54c57ae0SAndreas Färber/* 2*54c57ae0SAndreas Färber * Copyright (c) 2016 Andreas Färber 3*54c57ae0SAndreas Färber * 4*54c57ae0SAndreas Färber * This file is dual-licensed: you can use it either under the terms 5*54c57ae0SAndreas Färber * of the GPL or the X11 license, at your option. Note that this dual 6*54c57ae0SAndreas Färber * licensing only applies to this file, and not this project as a 7*54c57ae0SAndreas Färber * whole. 8*54c57ae0SAndreas Färber * 9*54c57ae0SAndreas Färber * a) This file is free software; you can redistribute it and/or 10*54c57ae0SAndreas Färber * modify it under the terms of the GNU General Public License as 11*54c57ae0SAndreas Färber * published by the Free Software Foundation; either version 2 of the 12*54c57ae0SAndreas Färber * License, or (at your option) any later version. 13*54c57ae0SAndreas Färber * 14*54c57ae0SAndreas Färber * This file is distributed in the hope that it will be useful, 15*54c57ae0SAndreas Färber * but WITHOUT ANY WARRANTY; without even the implied warranty of 16*54c57ae0SAndreas Färber * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 17*54c57ae0SAndreas Färber * GNU General Public License for more details. 18*54c57ae0SAndreas Färber * 19*54c57ae0SAndreas Färber * Or, alternatively, 20*54c57ae0SAndreas Färber * 21*54c57ae0SAndreas Färber * b) Permission is hereby granted, free of charge, to any person 22*54c57ae0SAndreas Färber * obtaining a copy of this software and associated documentation 23*54c57ae0SAndreas Färber * files (the "Software"), to deal in the Software without 24*54c57ae0SAndreas Färber * restriction, including without limitation the rights to use, 25*54c57ae0SAndreas Färber * copy, modify, merge, publish, distribute, sublicense, and/or 26*54c57ae0SAndreas Färber * sell copies of the Software, and to permit persons to whom the 27*54c57ae0SAndreas Färber * Software is furnished to do so, subject to the following 28*54c57ae0SAndreas Färber * conditions: 29*54c57ae0SAndreas Färber * 30*54c57ae0SAndreas Färber * The above copyright notice and this permission notice shall be 31*54c57ae0SAndreas Färber * included in all copies or substantial portions of the Software. 32*54c57ae0SAndreas Färber * 33*54c57ae0SAndreas Färber * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, 34*54c57ae0SAndreas Färber * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES 35*54c57ae0SAndreas Färber * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND 36*54c57ae0SAndreas Färber * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT 37*54c57ae0SAndreas Färber * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, 38*54c57ae0SAndreas Färber * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING 39*54c57ae0SAndreas Färber * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR 40*54c57ae0SAndreas Färber * OTHER DEALINGS IN THE SOFTWARE. 41*54c57ae0SAndreas Färber */ 42*54c57ae0SAndreas Färber 43*54c57ae0SAndreas Färber/dts-v1/; 44*54c57ae0SAndreas Färber#include "rk3368.dtsi" 45*54c57ae0SAndreas Färber#include <dt-bindings/input/input.h> 46*54c57ae0SAndreas Färber 47*54c57ae0SAndreas Färber/ { 48*54c57ae0SAndreas Färber model = "GeekBox"; 49*54c57ae0SAndreas Färber compatible = "geekbuying,geekbox", "rockchip,rk3368"; 50*54c57ae0SAndreas Färber 51*54c57ae0SAndreas Färber chosen { 52*54c57ae0SAndreas Färber stdout-path = "serial2:115200n8"; 53*54c57ae0SAndreas Färber }; 54*54c57ae0SAndreas Färber 55*54c57ae0SAndreas Färber memory@0 { 56*54c57ae0SAndreas Färber device_type = "memory"; 57*54c57ae0SAndreas Färber reg = <0x0 0x0 0x0 0x80000000>; 58*54c57ae0SAndreas Färber }; 59*54c57ae0SAndreas Färber 60*54c57ae0SAndreas Färber ext_gmac: gmac-clk { 61*54c57ae0SAndreas Färber compatible = "fixed-clock"; 62*54c57ae0SAndreas Färber clock-frequency = <125000000>; 63*54c57ae0SAndreas Färber clock-output-names = "ext_gmac"; 64*54c57ae0SAndreas Färber #clock-cells = <0>; 65*54c57ae0SAndreas Färber }; 66*54c57ae0SAndreas Färber 67*54c57ae0SAndreas Färber ir: ir-receiver { 68*54c57ae0SAndreas Färber compatible = "gpio-ir-receiver"; 69*54c57ae0SAndreas Färber gpios = <&gpio3 30 GPIO_ACTIVE_LOW>; 70*54c57ae0SAndreas Färber pinctrl-names = "default"; 71*54c57ae0SAndreas Färber pinctrl-0 = <&ir_int>; 72*54c57ae0SAndreas Färber }; 73*54c57ae0SAndreas Färber 74*54c57ae0SAndreas Färber keys: gpio-keys { 75*54c57ae0SAndreas Färber compatible = "gpio-keys"; 76*54c57ae0SAndreas Färber pinctrl-names = "default"; 77*54c57ae0SAndreas Färber pinctrl-0 = <&pwr_key>; 78*54c57ae0SAndreas Färber 79*54c57ae0SAndreas Färber power { 80*54c57ae0SAndreas Färber gpios = <&gpio0 2 GPIO_ACTIVE_LOW>; 81*54c57ae0SAndreas Färber label = "GPIO Power"; 82*54c57ae0SAndreas Färber linux,code = <KEY_POWER>; 83*54c57ae0SAndreas Färber wakeup-source; 84*54c57ae0SAndreas Färber }; 85*54c57ae0SAndreas Färber }; 86*54c57ae0SAndreas Färber 87*54c57ae0SAndreas Färber leds: gpio-leds { 88*54c57ae0SAndreas Färber compatible = "gpio-leds"; 89*54c57ae0SAndreas Färber 90*54c57ae0SAndreas Färber blue { 91*54c57ae0SAndreas Färber gpios = <&gpio2 2 GPIO_ACTIVE_HIGH>; 92*54c57ae0SAndreas Färber label = "geekbox:blue:led"; 93*54c57ae0SAndreas Färber default-state = "on"; 94*54c57ae0SAndreas Färber }; 95*54c57ae0SAndreas Färber 96*54c57ae0SAndreas Färber red { 97*54c57ae0SAndreas Färber gpios = <&gpio2 3 GPIO_ACTIVE_HIGH>; 98*54c57ae0SAndreas Färber label = "geekbox:red:led"; 99*54c57ae0SAndreas Färber default-state = "off"; 100*54c57ae0SAndreas Färber }; 101*54c57ae0SAndreas Färber }; 102*54c57ae0SAndreas Färber 103*54c57ae0SAndreas Färber vcc_sys: vcc-sys-regulator { 104*54c57ae0SAndreas Färber compatible = "regulator-fixed"; 105*54c57ae0SAndreas Färber regulator-name = "vcc_sys"; 106*54c57ae0SAndreas Färber regulator-min-microvolt = <5000000>; 107*54c57ae0SAndreas Färber regulator-max-microvolt = <5000000>; 108*54c57ae0SAndreas Färber regulator-always-on; 109*54c57ae0SAndreas Färber regulator-boot-on; 110*54c57ae0SAndreas Färber }; 111*54c57ae0SAndreas Färber}; 112*54c57ae0SAndreas Färber 113*54c57ae0SAndreas Färber&emmc { 114*54c57ae0SAndreas Färber status = "okay"; 115*54c57ae0SAndreas Färber bus-width = <8>; 116*54c57ae0SAndreas Färber cap-mmc-highspeed; 117*54c57ae0SAndreas Färber clock-frequency = <150000000>; 118*54c57ae0SAndreas Färber disable-wp; 119*54c57ae0SAndreas Färber keep-power-in-suspend; 120*54c57ae0SAndreas Färber non-removable; 121*54c57ae0SAndreas Färber num-slots = <1>; 122*54c57ae0SAndreas Färber vmmc-supply = <&vcc_io>; 123*54c57ae0SAndreas Färber vqmmc-supply = <&vcc18_flash>; 124*54c57ae0SAndreas Färber pinctrl-names = "default"; 125*54c57ae0SAndreas Färber pinctrl-0 = <&emmc_clk>, <&emmc_cmd>, <&emmc_bus8>; 126*54c57ae0SAndreas Färber}; 127*54c57ae0SAndreas Färber 128*54c57ae0SAndreas Färber&gmac { 129*54c57ae0SAndreas Färber status = "okay"; 130*54c57ae0SAndreas Färber phy-supply = <&vcc_lan>; 131*54c57ae0SAndreas Färber phy-mode = "rgmii"; 132*54c57ae0SAndreas Färber clock_in_out = "input"; 133*54c57ae0SAndreas Färber assigned-clocks = <&cru SCLK_MAC>; 134*54c57ae0SAndreas Färber assigned-clock-parents = <&ext_gmac>; 135*54c57ae0SAndreas Färber pinctrl-names = "default"; 136*54c57ae0SAndreas Färber pinctrl-0 = <&rgmii_pins>; 137*54c57ae0SAndreas Färber tx_delay = <0x30>; 138*54c57ae0SAndreas Färber rx_delay = <0x10>; 139*54c57ae0SAndreas Färber}; 140*54c57ae0SAndreas Färber 141*54c57ae0SAndreas Färber&i2c0 { 142*54c57ae0SAndreas Färber status = "okay"; 143*54c57ae0SAndreas Färber 144*54c57ae0SAndreas Färber rk808: pmic@1b { 145*54c57ae0SAndreas Färber compatible = "rockchip,rk808"; 146*54c57ae0SAndreas Färber reg = <0x1b>; 147*54c57ae0SAndreas Färber pinctrl-names = "default"; 148*54c57ae0SAndreas Färber pinctrl-0 = <&pmic_int>, <&pmic_sleep>; 149*54c57ae0SAndreas Färber interrupt-parent = <&gpio0>; 150*54c57ae0SAndreas Färber interrupts = <5 IRQ_TYPE_LEVEL_LOW>; 151*54c57ae0SAndreas Färber rockchip,system-power-controller; 152*54c57ae0SAndreas Färber vcc1-supply = <&vcc_sys>; 153*54c57ae0SAndreas Färber vcc2-supply = <&vcc_sys>; 154*54c57ae0SAndreas Färber vcc3-supply = <&vcc_sys>; 155*54c57ae0SAndreas Färber vcc4-supply = <&vcc_sys>; 156*54c57ae0SAndreas Färber vcc6-supply = <&vcc_sys>; 157*54c57ae0SAndreas Färber vcc7-supply = <&vcc_sys>; 158*54c57ae0SAndreas Färber vcc8-supply = <&vcc_io>; 159*54c57ae0SAndreas Färber vcc9-supply = <&vcc_sys>; 160*54c57ae0SAndreas Färber vcc10-supply = <&vcc_sys>; 161*54c57ae0SAndreas Färber vcc11-supply = <&vcc_sys>; 162*54c57ae0SAndreas Färber vcc12-supply = <&vcc_io>; 163*54c57ae0SAndreas Färber clock-output-names = "xin32k", "rk808-clkout2"; 164*54c57ae0SAndreas Färber #clock-cells = <1>; 165*54c57ae0SAndreas Färber 166*54c57ae0SAndreas Färber regulators { 167*54c57ae0SAndreas Färber vdd_cpu: DCDC_REG1 { 168*54c57ae0SAndreas Färber regulator-always-on; 169*54c57ae0SAndreas Färber regulator-boot-on; 170*54c57ae0SAndreas Färber regulator-min-microvolt = <700000>; 171*54c57ae0SAndreas Färber regulator-max-microvolt = <1500000>; 172*54c57ae0SAndreas Färber regulator-name = "vdd_cpu"; 173*54c57ae0SAndreas Färber }; 174*54c57ae0SAndreas Färber 175*54c57ae0SAndreas Färber vdd_log: DCDC_REG2 { 176*54c57ae0SAndreas Färber regulator-always-on; 177*54c57ae0SAndreas Färber regulator-boot-on; 178*54c57ae0SAndreas Färber regulator-min-microvolt = <700000>; 179*54c57ae0SAndreas Färber regulator-max-microvolt = <1500000>; 180*54c57ae0SAndreas Färber regulator-name = "vdd_log"; 181*54c57ae0SAndreas Färber }; 182*54c57ae0SAndreas Färber 183*54c57ae0SAndreas Färber vcc_ddr: DCDC_REG3 { 184*54c57ae0SAndreas Färber regulator-always-on; 185*54c57ae0SAndreas Färber regulator-boot-on; 186*54c57ae0SAndreas Färber regulator-name = "vcc_ddr"; 187*54c57ae0SAndreas Färber }; 188*54c57ae0SAndreas Färber 189*54c57ae0SAndreas Färber vcc_io: DCDC_REG4 { 190*54c57ae0SAndreas Färber regulator-always-on; 191*54c57ae0SAndreas Färber regulator-boot-on; 192*54c57ae0SAndreas Färber regulator-min-microvolt = <3300000>; 193*54c57ae0SAndreas Färber regulator-max-microvolt = <3300000>; 194*54c57ae0SAndreas Färber regulator-name = "vcc_io"; 195*54c57ae0SAndreas Färber }; 196*54c57ae0SAndreas Färber 197*54c57ae0SAndreas Färber vcc18_flash: LDO_REG1 { 198*54c57ae0SAndreas Färber regulator-always-on; 199*54c57ae0SAndreas Färber regulator-boot-on; 200*54c57ae0SAndreas Färber regulator-min-microvolt = <1800000>; 201*54c57ae0SAndreas Färber regulator-max-microvolt = <1800000>; 202*54c57ae0SAndreas Färber regulator-name = "vcc18_flash"; 203*54c57ae0SAndreas Färber }; 204*54c57ae0SAndreas Färber 205*54c57ae0SAndreas Färber vcc33_lcd: LDO_REG2 { 206*54c57ae0SAndreas Färber regulator-always-on; 207*54c57ae0SAndreas Färber regulator-boot-on; 208*54c57ae0SAndreas Färber regulator-min-microvolt = <3300000>; 209*54c57ae0SAndreas Färber regulator-max-microvolt = <3300000>; 210*54c57ae0SAndreas Färber regulator-name = "vcc33_lcd"; 211*54c57ae0SAndreas Färber }; 212*54c57ae0SAndreas Färber 213*54c57ae0SAndreas Färber vdd_10: LDO_REG3 { 214*54c57ae0SAndreas Färber regulator-always-on; 215*54c57ae0SAndreas Färber regulator-boot-on; 216*54c57ae0SAndreas Färber regulator-min-microvolt = <1000000>; 217*54c57ae0SAndreas Färber regulator-max-microvolt = <1000000>; 218*54c57ae0SAndreas Färber regulator-name = "vdd_10"; 219*54c57ae0SAndreas Färber }; 220*54c57ae0SAndreas Färber 221*54c57ae0SAndreas Färber vcca_18: LDO_REG4 { 222*54c57ae0SAndreas Färber regulator-boot-on; 223*54c57ae0SAndreas Färber regulator-min-microvolt = <1800000>; 224*54c57ae0SAndreas Färber regulator-max-microvolt = <1800000>; 225*54c57ae0SAndreas Färber regulator-name = "vcca_18"; 226*54c57ae0SAndreas Färber }; 227*54c57ae0SAndreas Färber 228*54c57ae0SAndreas Färber vccio_sd: LDO_REG5 { 229*54c57ae0SAndreas Färber regulator-always-on; 230*54c57ae0SAndreas Färber regulator-boot-on; 231*54c57ae0SAndreas Färber regulator-min-microvolt = <1800000>; 232*54c57ae0SAndreas Färber regulator-max-microvolt = <3300000>; 233*54c57ae0SAndreas Färber regulator-name = "vccio_sd"; 234*54c57ae0SAndreas Färber }; 235*54c57ae0SAndreas Färber 236*54c57ae0SAndreas Färber vdd10_lcd: LDO_REG6 { 237*54c57ae0SAndreas Färber regulator-always-on; 238*54c57ae0SAndreas Färber regulator-boot-on; 239*54c57ae0SAndreas Färber regulator-min-microvolt = <1000000>; 240*54c57ae0SAndreas Färber regulator-max-microvolt = <1000000>; 241*54c57ae0SAndreas Färber regulator-name = "vdd10_lcd"; 242*54c57ae0SAndreas Färber }; 243*54c57ae0SAndreas Färber 244*54c57ae0SAndreas Färber vcc_18: LDO_REG7 { 245*54c57ae0SAndreas Färber regulator-always-on; 246*54c57ae0SAndreas Färber regulator-boot-on; 247*54c57ae0SAndreas Färber regulator-min-microvolt = <1800000>; 248*54c57ae0SAndreas Färber regulator-max-microvolt = <1800000>; 249*54c57ae0SAndreas Färber regulator-name = "vcc_18"; 250*54c57ae0SAndreas Färber }; 251*54c57ae0SAndreas Färber 252*54c57ae0SAndreas Färber vcc18_lcd: LDO_REG8 { 253*54c57ae0SAndreas Färber regulator-always-on; 254*54c57ae0SAndreas Färber regulator-boot-on; 255*54c57ae0SAndreas Färber regulator-min-microvolt = <1800000>; 256*54c57ae0SAndreas Färber regulator-max-microvolt = <1800000>; 257*54c57ae0SAndreas Färber regulator-name = "vcc18_lcd"; 258*54c57ae0SAndreas Färber }; 259*54c57ae0SAndreas Färber 260*54c57ae0SAndreas Färber vcc_sd: SWITCH_REG1 { 261*54c57ae0SAndreas Färber regulator-always-on; 262*54c57ae0SAndreas Färber regulator-boot-on; 263*54c57ae0SAndreas Färber regulator-name = "vcc_sd"; 264*54c57ae0SAndreas Färber }; 265*54c57ae0SAndreas Färber 266*54c57ae0SAndreas Färber vcc_lan: SWITCH_REG2 { 267*54c57ae0SAndreas Färber regulator-always-on; 268*54c57ae0SAndreas Färber regulator-boot-on; 269*54c57ae0SAndreas Färber regulator-name = "vcc_lan"; 270*54c57ae0SAndreas Färber }; 271*54c57ae0SAndreas Färber }; 272*54c57ae0SAndreas Färber }; 273*54c57ae0SAndreas Färber}; 274*54c57ae0SAndreas Färber 275*54c57ae0SAndreas Färber&pinctrl { 276*54c57ae0SAndreas Färber ir { 277*54c57ae0SAndreas Färber ir_int: ir-int { 278*54c57ae0SAndreas Färber rockchip,pins = <3 30 RK_FUNC_GPIO &pcfg_pull_none>; 279*54c57ae0SAndreas Färber }; 280*54c57ae0SAndreas Färber }; 281*54c57ae0SAndreas Färber 282*54c57ae0SAndreas Färber keys { 283*54c57ae0SAndreas Färber pwr_key: pwr-key { 284*54c57ae0SAndreas Färber rockchip,pins = <0 2 RK_FUNC_GPIO &pcfg_pull_none>; 285*54c57ae0SAndreas Färber }; 286*54c57ae0SAndreas Färber }; 287*54c57ae0SAndreas Färber 288*54c57ae0SAndreas Färber pmic { 289*54c57ae0SAndreas Färber pmic_sleep: pmic-sleep { 290*54c57ae0SAndreas Färber rockchip,pins = <0 0 RK_FUNC_2 &pcfg_pull_none>; 291*54c57ae0SAndreas Färber }; 292*54c57ae0SAndreas Färber 293*54c57ae0SAndreas Färber pmic_int: pmic-int { 294*54c57ae0SAndreas Färber rockchip,pins = <0 5 RK_FUNC_GPIO &pcfg_pull_up>; 295*54c57ae0SAndreas Färber }; 296*54c57ae0SAndreas Färber }; 297*54c57ae0SAndreas Färber}; 298*54c57ae0SAndreas Färber 299*54c57ae0SAndreas Färber&tsadc { 300*54c57ae0SAndreas Färber status = "okay"; 301*54c57ae0SAndreas Färber rockchip,hw-tshut-mode = <0>; /* CRU */ 302*54c57ae0SAndreas Färber rockchip,hw-tshut-polarity = <1>; /* high */ 303*54c57ae0SAndreas Färber}; 304*54c57ae0SAndreas Färber 305*54c57ae0SAndreas Färber&uart2 { 306*54c57ae0SAndreas Färber status = "okay"; 307*54c57ae0SAndreas Färber}; 308*54c57ae0SAndreas Färber 309*54c57ae0SAndreas Färber&usb_host0_ehci { 310*54c57ae0SAndreas Färber status = "okay"; 311*54c57ae0SAndreas Färber}; 312*54c57ae0SAndreas Färber 313*54c57ae0SAndreas Färber&usb_otg { 314*54c57ae0SAndreas Färber status = "okay"; 315*54c57ae0SAndreas Färber}; 316*54c57ae0SAndreas Färber 317*54c57ae0SAndreas Färber&wdt { 318*54c57ae0SAndreas Färber status = "okay"; 319*54c57ae0SAndreas Färber}; 320