1*4882a593Smuzhiyun/* 2*4882a593Smuzhiyun * This file is dual-licensed: you can use it either under the terms 3*4882a593Smuzhiyun * of the GPL or the X11 license, at your option. Note that this dual 4*4882a593Smuzhiyun * licensing only applies to this file, and not this project as a 5*4882a593Smuzhiyun * whole. 6*4882a593Smuzhiyun * 7*4882a593Smuzhiyun * a) This file is free software; you can redistribute it and/or 8*4882a593Smuzhiyun * modify it under the terms of the GNU General Public License as 9*4882a593Smuzhiyun * published by the Free Software Foundation; either version 2 of the 10*4882a593Smuzhiyun * License, or (at your option) any later version. 11*4882a593Smuzhiyun * 12*4882a593Smuzhiyun * This file is distributed in the hope that it will be useful, 13*4882a593Smuzhiyun * but WITHOUT ANY WARRANTY; without even the implied warranty of 14*4882a593Smuzhiyun * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 15*4882a593Smuzhiyun * GNU General Public License for more details. 16*4882a593Smuzhiyun * 17*4882a593Smuzhiyun * Or, alternatively, 18*4882a593Smuzhiyun * 19*4882a593Smuzhiyun * b) Permission is hereby granted, free of charge, to any person 20*4882a593Smuzhiyun * obtaining a copy of this software and associated documentation 21*4882a593Smuzhiyun * files (the "Software"), to deal in the Software without 22*4882a593Smuzhiyun * restriction, including without limitation the rights to use, 23*4882a593Smuzhiyun * copy, modify, merge, publish, distribute, sublicense, and/or 24*4882a593Smuzhiyun * sell copies of the Software, and to permit persons to whom the 25*4882a593Smuzhiyun * Software is furnished to do so, subject to the following 26*4882a593Smuzhiyun * conditions: 27*4882a593Smuzhiyun * 28*4882a593Smuzhiyun * The above copyright notice and this permission notice shall be 29*4882a593Smuzhiyun * included in all copies or substantial portions of the Software. 30*4882a593Smuzhiyun * 31*4882a593Smuzhiyun * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, 32*4882a593Smuzhiyun * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES 33*4882a593Smuzhiyun * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND 34*4882a593Smuzhiyun * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT 35*4882a593Smuzhiyun * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, 36*4882a593Smuzhiyun * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING 37*4882a593Smuzhiyun * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR 38*4882a593Smuzhiyun * OTHER DEALINGS IN THE SOFTWARE. 39*4882a593Smuzhiyun */ 40*4882a593Smuzhiyun 41*4882a593Smuzhiyun#include <dt-bindings/gpio/gpio.h> 42*4882a593Smuzhiyun#include <dt-bindings/interrupt-controller/irq.h> 43*4882a593Smuzhiyun#include <dt-bindings/interrupt-controller/arm-gic.h> 44*4882a593Smuzhiyun#include <dt-bindings/pinctrl/rockchip.h> 45*4882a593Smuzhiyun#include <dt-bindings/power/rk3128-power.h> 46*4882a593Smuzhiyun#include <dt-bindings/soc/rockchip,boot-mode.h> 47*4882a593Smuzhiyun#include <dt-bindings/soc/rockchip-system-status.h> 48*4882a593Smuzhiyun#include <dt-bindings/clock/rk3128-cru.h> 49*4882a593Smuzhiyun#include <dt-bindings/display/media-bus-format.h> 50*4882a593Smuzhiyun#include <dt-bindings/thermal/thermal.h> 51*4882a593Smuzhiyun#include "rk3128-dram-default-timing.dtsi" 52*4882a593Smuzhiyun 53*4882a593Smuzhiyun/ { 54*4882a593Smuzhiyun interrupt-parent = <&gic>; 55*4882a593Smuzhiyun #address-cells = <1>; 56*4882a593Smuzhiyun #size-cells = <1>; 57*4882a593Smuzhiyun 58*4882a593Smuzhiyun aliases { 59*4882a593Smuzhiyun ethernet0 = &gmac; 60*4882a593Smuzhiyun i2c0 = &i2c0; 61*4882a593Smuzhiyun i2c1 = &i2c1; 62*4882a593Smuzhiyun i2c2 = &i2c2; 63*4882a593Smuzhiyun i2c3 = &i2c3; 64*4882a593Smuzhiyun mmc0 = &sdmmc; 65*4882a593Smuzhiyun mmc1 = &sdio; 66*4882a593Smuzhiyun mmc2 = &emmc; 67*4882a593Smuzhiyun serial0 = &uart0; 68*4882a593Smuzhiyun serial1 = &uart1; 69*4882a593Smuzhiyun serial2 = &uart2; 70*4882a593Smuzhiyun spi0 = &spi0; 71*4882a593Smuzhiyun }; 72*4882a593Smuzhiyun 73*4882a593Smuzhiyun cpus { 74*4882a593Smuzhiyun #address-cells = <1>; 75*4882a593Smuzhiyun #size-cells = <0>; 76*4882a593Smuzhiyun 77*4882a593Smuzhiyun cpu0: cpu@f00 { 78*4882a593Smuzhiyun device_type = "cpu"; 79*4882a593Smuzhiyun compatible = "arm,cortex-a7"; 80*4882a593Smuzhiyun reg = <0xf00>; 81*4882a593Smuzhiyun operating-points-v2 = <&cpu0_opp_table>; 82*4882a593Smuzhiyun clocks = <&cru ARMCLK>; 83*4882a593Smuzhiyun #cooling-cells = <2>; /* min followed by max */ 84*4882a593Smuzhiyun dynamic-power-coefficient = <120>; 85*4882a593Smuzhiyun }; 86*4882a593Smuzhiyun cpu1: cpu@f01 { 87*4882a593Smuzhiyun device_type = "cpu"; 88*4882a593Smuzhiyun compatible = "arm,cortex-a7"; 89*4882a593Smuzhiyun reg = <0xf01>; 90*4882a593Smuzhiyun operating-points-v2 = <&cpu0_opp_table>; 91*4882a593Smuzhiyun }; 92*4882a593Smuzhiyun cpu2: cpu@f02 { 93*4882a593Smuzhiyun device_type = "cpu"; 94*4882a593Smuzhiyun compatible = "arm,cortex-a7"; 95*4882a593Smuzhiyun reg = <0xf02>; 96*4882a593Smuzhiyun operating-points-v2 = <&cpu0_opp_table>; 97*4882a593Smuzhiyun }; 98*4882a593Smuzhiyun cpu3: cpu@f03 { 99*4882a593Smuzhiyun device_type = "cpu"; 100*4882a593Smuzhiyun compatible = "arm,cortex-a7"; 101*4882a593Smuzhiyun reg = <0xf03>; 102*4882a593Smuzhiyun operating-points-v2 = <&cpu0_opp_table>; 103*4882a593Smuzhiyun }; 104*4882a593Smuzhiyun }; 105*4882a593Smuzhiyun 106*4882a593Smuzhiyun cpu0_opp_table: opp_table0 { 107*4882a593Smuzhiyun compatible = "operating-points-v2"; 108*4882a593Smuzhiyun opp-shared; 109*4882a593Smuzhiyun 110*4882a593Smuzhiyun rockchip,leakage-scaling-sel = < 111*4882a593Smuzhiyun 1 13 18 112*4882a593Smuzhiyun 14 254 0 113*4882a593Smuzhiyun >; 114*4882a593Smuzhiyun clocks = <&cru PLL_APLL>; 115*4882a593Smuzhiyun rockchip,leakage-voltage-sel = < 116*4882a593Smuzhiyun 1 13 0 117*4882a593Smuzhiyun 14 49 1 118*4882a593Smuzhiyun 50 254 2 119*4882a593Smuzhiyun >; 120*4882a593Smuzhiyun nvmem-cells = <&cpu_leakage>; 121*4882a593Smuzhiyun nvmem-cell-names = "cpu_leakage"; 122*4882a593Smuzhiyun 123*4882a593Smuzhiyun opp-216000000 { 124*4882a593Smuzhiyun opp-hz = /bits/ 64 <216000000>; 125*4882a593Smuzhiyun opp-microvolt = <1000000 1000000 1425000>; 126*4882a593Smuzhiyun opp-microvolt-L0 = <1000000 1000000 1425000>; 127*4882a593Smuzhiyun opp-microvolt-L1 = <950000 950000 1425000>; 128*4882a593Smuzhiyun opp-microvolt-L2 = <950000 950000 1425000>; 129*4882a593Smuzhiyun clock-latency-ns = <40000>; 130*4882a593Smuzhiyun }; 131*4882a593Smuzhiyun opp-408000000 { 132*4882a593Smuzhiyun opp-hz = /bits/ 64 <408000000>; 133*4882a593Smuzhiyun opp-microvolt = <1000000 1000000 1425000>; 134*4882a593Smuzhiyun opp-microvolt-L0 = <1000000 1000000 1425000>; 135*4882a593Smuzhiyun opp-microvolt-L1 = <950000 950000 1425000>; 136*4882a593Smuzhiyun opp-microvolt-L2 = <950000 950000 1425000>; 137*4882a593Smuzhiyun clock-latency-ns = <40000>; 138*4882a593Smuzhiyun }; 139*4882a593Smuzhiyun opp-600000000 { 140*4882a593Smuzhiyun opp-hz = /bits/ 64 <600000000>; 141*4882a593Smuzhiyun opp-microvolt = <1150000 1150000 1425000>; 142*4882a593Smuzhiyun opp-microvolt-L0 = <1150000 1150000 1425000>; 143*4882a593Smuzhiyun opp-microvolt-L1 = <1100000 1100000 1425000>; 144*4882a593Smuzhiyun opp-microvolt-L2 = <1050000 1050000 1425000>; 145*4882a593Smuzhiyun clock-latency-ns = <40000>; 146*4882a593Smuzhiyun }; 147*4882a593Smuzhiyun opp-696000000 { 148*4882a593Smuzhiyun opp-hz = /bits/ 64 <696000000>; 149*4882a593Smuzhiyun opp-microvolt = <1150000 1150000 1425000>; 150*4882a593Smuzhiyun opp-microvolt-L0 = <1150000 1150000 1425000>; 151*4882a593Smuzhiyun opp-microvolt-L1 = <1100000 1100000 1425000>; 152*4882a593Smuzhiyun opp-microvolt-L2 = <1050000 1050000 1425000>; 153*4882a593Smuzhiyun clock-latency-ns = <40000>; 154*4882a593Smuzhiyun }; 155*4882a593Smuzhiyun opp-816000000 { 156*4882a593Smuzhiyun opp-hz = /bits/ 64 <816000000>; 157*4882a593Smuzhiyun opp-microvolt = <1200000 1200000 1425000>; 158*4882a593Smuzhiyun opp-microvolt-L0 = <1200000 1200000 1425000>; 159*4882a593Smuzhiyun opp-microvolt-L1 = <1150000 1150000 1425000>; 160*4882a593Smuzhiyun opp-microvolt-L2 = <1100000 1100000 1425000>; 161*4882a593Smuzhiyun clock-latency-ns = <40000>; 162*4882a593Smuzhiyun opp-suspend; 163*4882a593Smuzhiyun }; 164*4882a593Smuzhiyun opp-1008000000 { 165*4882a593Smuzhiyun opp-hz = /bits/ 64 <1008000000>; 166*4882a593Smuzhiyun opp-microvolt = <1350000 1350000 1425000>; 167*4882a593Smuzhiyun opp-microvolt-L0 = <1350000 1350000 1425000>; 168*4882a593Smuzhiyun opp-microvolt-L1 = <1275000 1275000 1425000>; 169*4882a593Smuzhiyun opp-microvolt-L2 = <1225000 1225000 1425000>; 170*4882a593Smuzhiyun clock-latency-ns = <40000>; 171*4882a593Smuzhiyun }; 172*4882a593Smuzhiyun opp-1200000000 { 173*4882a593Smuzhiyun opp-hz = /bits/ 64 <1200000000>; 174*4882a593Smuzhiyun opp-microvolt = <1425000 1425000 1425000>; 175*4882a593Smuzhiyun opp-microvolt-L0 = <1425000 1425000 1425000>; 176*4882a593Smuzhiyun opp-microvolt-L1 = <1425000 1425000 1425000>; 177*4882a593Smuzhiyun opp-microvolt-L2 = <1375000 1375000 1425000>; 178*4882a593Smuzhiyun clock-latency-ns = <40000>; 179*4882a593Smuzhiyun }; 180*4882a593Smuzhiyun }; 181*4882a593Smuzhiyun 182*4882a593Smuzhiyun amba { 183*4882a593Smuzhiyun compatible = "simple-bus"; 184*4882a593Smuzhiyun #address-cells = <1>; 185*4882a593Smuzhiyun #size-cells = <1>; 186*4882a593Smuzhiyun ranges; 187*4882a593Smuzhiyun 188*4882a593Smuzhiyun pdma: pdma@20078000 { 189*4882a593Smuzhiyun compatible = "arm,pl330", "arm,primecell"; 190*4882a593Smuzhiyun reg = <0x20078000 0x4000>; 191*4882a593Smuzhiyun interrupts = <GIC_SPI 0 IRQ_TYPE_LEVEL_HIGH>, 192*4882a593Smuzhiyun <GIC_SPI 1 IRQ_TYPE_LEVEL_HIGH>; 193*4882a593Smuzhiyun #dma-cells = <1>; 194*4882a593Smuzhiyun arm,pl330-broken-no-flushp; 195*4882a593Smuzhiyun arm,pl330-periph-burst; 196*4882a593Smuzhiyun clocks = <&cru ACLK_DMAC>; 197*4882a593Smuzhiyun clock-names = "apb_pclk"; 198*4882a593Smuzhiyun }; 199*4882a593Smuzhiyun }; 200*4882a593Smuzhiyun 201*4882a593Smuzhiyun arm-pmu { 202*4882a593Smuzhiyun compatible = "arm,cortex-a7-pmu"; 203*4882a593Smuzhiyun interrupts = <GIC_SPI 76 IRQ_TYPE_LEVEL_HIGH>, 204*4882a593Smuzhiyun <GIC_SPI 77 IRQ_TYPE_LEVEL_HIGH>, 205*4882a593Smuzhiyun <GIC_SPI 78 IRQ_TYPE_LEVEL_HIGH>, 206*4882a593Smuzhiyun <GIC_SPI 79 IRQ_TYPE_LEVEL_HIGH>; 207*4882a593Smuzhiyun interrupt-affinity = <&cpu0>, <&cpu1>, <&cpu2>, <&cpu3>; 208*4882a593Smuzhiyun }; 209*4882a593Smuzhiyun 210*4882a593Smuzhiyun dfi: dfi { 211*4882a593Smuzhiyun compatible = "rockchip,rk3128-dfi"; 212*4882a593Smuzhiyun rockchip,pmu = <&pmu>; 213*4882a593Smuzhiyun rockchip,grf = <&grf>; 214*4882a593Smuzhiyun status = "disabled"; 215*4882a593Smuzhiyun }; 216*4882a593Smuzhiyun 217*4882a593Smuzhiyun display_subsystem: display-subsystem { 218*4882a593Smuzhiyun compatible = "rockchip,display-subsystem"; 219*4882a593Smuzhiyun ports = <&vop_out>; 220*4882a593Smuzhiyun status = "disabled"; 221*4882a593Smuzhiyun }; 222*4882a593Smuzhiyun 223*4882a593Smuzhiyun dmc: dmc { 224*4882a593Smuzhiyun compatible = "rockchip,rk3128-dmc"; 225*4882a593Smuzhiyun devfreq-events = <&dfi>; 226*4882a593Smuzhiyun clocks = <&cru SCLK_DDRC>; 227*4882a593Smuzhiyun clock-names = "dmc_clk"; 228*4882a593Smuzhiyun upthreshold = <55>; 229*4882a593Smuzhiyun downdifferential = <10>; 230*4882a593Smuzhiyun operating-points-v2 = <&dmc_opp_table>; 231*4882a593Smuzhiyun vop-dclk-mode = <0>; 232*4882a593Smuzhiyun min-cpu-freq = <600000>; 233*4882a593Smuzhiyun rockchip,ddr_timing = <&ddr_timing>; 234*4882a593Smuzhiyun system-status-freq = < 235*4882a593Smuzhiyun /*system status freq(KHz)*/ 236*4882a593Smuzhiyun SYS_STATUS_NORMAL 456000 237*4882a593Smuzhiyun SYS_STATUS_SUSPEND 300000 238*4882a593Smuzhiyun SYS_STATUS_REBOOT 456000 239*4882a593Smuzhiyun >; 240*4882a593Smuzhiyun auto-min-freq = <456000>; 241*4882a593Smuzhiyun auto-freq-en = <0>; 242*4882a593Smuzhiyun status = "disabled"; 243*4882a593Smuzhiyun }; 244*4882a593Smuzhiyun 245*4882a593Smuzhiyun dmc_opp_table: opp_table2 { 246*4882a593Smuzhiyun compatible = "operating-points-v2"; 247*4882a593Smuzhiyun 248*4882a593Smuzhiyun opp-200000000 { 249*4882a593Smuzhiyun opp-hz = /bits/ 64 <200000000>; 250*4882a593Smuzhiyun opp-microvolt = <1025000>; 251*4882a593Smuzhiyun status = "disabled"; 252*4882a593Smuzhiyun }; 253*4882a593Smuzhiyun opp-300000000 { 254*4882a593Smuzhiyun opp-hz = /bits/ 64 <300000000>; 255*4882a593Smuzhiyun opp-microvolt = <1025000>; 256*4882a593Smuzhiyun }; 257*4882a593Smuzhiyun opp-396000000 { 258*4882a593Smuzhiyun opp-hz = /bits/ 64 <396000000>; 259*4882a593Smuzhiyun opp-microvolt = <1100000>; 260*4882a593Smuzhiyun }; 261*4882a593Smuzhiyun opp-456000000 { 262*4882a593Smuzhiyun opp-hz = /bits/ 64 <456000000>; 263*4882a593Smuzhiyun opp-microvolt = <1200000>; 264*4882a593Smuzhiyun }; 265*4882a593Smuzhiyun }; 266*4882a593Smuzhiyun 267*4882a593Smuzhiyun firmware { 268*4882a593Smuzhiyun optee: optee { 269*4882a593Smuzhiyun compatible = "linaro,optee-tz"; 270*4882a593Smuzhiyun method = "smc"; 271*4882a593Smuzhiyun status = "disabled"; 272*4882a593Smuzhiyun }; 273*4882a593Smuzhiyun }; 274*4882a593Smuzhiyun 275*4882a593Smuzhiyun psci { 276*4882a593Smuzhiyun compatible = "arm,psci-1.0"; 277*4882a593Smuzhiyun method = "smc"; 278*4882a593Smuzhiyun }; 279*4882a593Smuzhiyun 280*4882a593Smuzhiyun timer { 281*4882a593Smuzhiyun compatible = "arm,armv7-timer"; 282*4882a593Smuzhiyun interrupts = <GIC_PPI 13 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_HIGH)>, 283*4882a593Smuzhiyun <GIC_PPI 14 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_HIGH)>, 284*4882a593Smuzhiyun <GIC_PPI 11 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_HIGH)>, 285*4882a593Smuzhiyun <GIC_PPI 10 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_HIGH)>; 286*4882a593Smuzhiyun clock-frequency = <24000000>; 287*4882a593Smuzhiyun }; 288*4882a593Smuzhiyun 289*4882a593Smuzhiyun thermal-zones { 290*4882a593Smuzhiyun soc_thermal: soc-thermal { 291*4882a593Smuzhiyun polling-delay-passive = <1000>; 292*4882a593Smuzhiyun polling-delay = <2000>; 293*4882a593Smuzhiyun sustainable-power = <200>; 294*4882a593Smuzhiyun 295*4882a593Smuzhiyun thermal-sensors = <&tsadc 0>; 296*4882a593Smuzhiyun 297*4882a593Smuzhiyun trips { 298*4882a593Smuzhiyun threshold: trip-point0 { 299*4882a593Smuzhiyun temperature = <80000>; 300*4882a593Smuzhiyun hysteresis = <2000>; 301*4882a593Smuzhiyun type = "passive"; 302*4882a593Smuzhiyun }; 303*4882a593Smuzhiyun target: trip-point1 { 304*4882a593Smuzhiyun temperature = <90000>; 305*4882a593Smuzhiyun hysteresis = <2000>; 306*4882a593Smuzhiyun type = "passive"; 307*4882a593Smuzhiyun }; 308*4882a593Smuzhiyun }; 309*4882a593Smuzhiyun 310*4882a593Smuzhiyun cooling-maps { 311*4882a593Smuzhiyun map0 { 312*4882a593Smuzhiyun trip = <&target>; 313*4882a593Smuzhiyun cooling-device = <&cpu0 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>; 314*4882a593Smuzhiyun contribution = <1024>; 315*4882a593Smuzhiyun }; 316*4882a593Smuzhiyun map1 { 317*4882a593Smuzhiyun trip = <&target>; 318*4882a593Smuzhiyun cooling-device = <&gpu THERMAL_NO_LIMIT THERMAL_NO_LIMIT>; 319*4882a593Smuzhiyun contribution = <1024>; 320*4882a593Smuzhiyun }; 321*4882a593Smuzhiyun }; 322*4882a593Smuzhiyun }; 323*4882a593Smuzhiyun 324*4882a593Smuzhiyun }; 325*4882a593Smuzhiyun 326*4882a593Smuzhiyun tsadc: tsadc { 327*4882a593Smuzhiyun compatible = "rockchip,rk3126-tsadc-virtual"; 328*4882a593Smuzhiyun nvmem-cells = <&cpu_leakage>; 329*4882a593Smuzhiyun nvmem-cell-names = "cpu_leakage"; 330*4882a593Smuzhiyun #thermal-sensor-cells = <1>; 331*4882a593Smuzhiyun status = "disabled"; 332*4882a593Smuzhiyun }; 333*4882a593Smuzhiyun 334*4882a593Smuzhiyun xin24m: oscillator { 335*4882a593Smuzhiyun compatible = "fixed-clock"; 336*4882a593Smuzhiyun clock-frequency = <24000000>; 337*4882a593Smuzhiyun clock-output-names = "xin24m"; 338*4882a593Smuzhiyun #clock-cells = <0>; 339*4882a593Smuzhiyun }; 340*4882a593Smuzhiyun 341*4882a593Smuzhiyun gpu: gpu@10090000 { 342*4882a593Smuzhiyun compatible = "arm,mali400"; 343*4882a593Smuzhiyun reg = <0x10090000 0x10000>; 344*4882a593Smuzhiyun upthreshold = <40>; 345*4882a593Smuzhiyun downdifferential = <10>; 346*4882a593Smuzhiyun 347*4882a593Smuzhiyun interrupts = <GIC_SPI 3 IRQ_TYPE_LEVEL_HIGH>, 348*4882a593Smuzhiyun <GIC_SPI 4 IRQ_TYPE_LEVEL_HIGH>, 349*4882a593Smuzhiyun <GIC_SPI 5 IRQ_TYPE_LEVEL_HIGH>, 350*4882a593Smuzhiyun <GIC_SPI 4 IRQ_TYPE_LEVEL_HIGH>, 351*4882a593Smuzhiyun <GIC_SPI 5 IRQ_TYPE_LEVEL_HIGH>, 352*4882a593Smuzhiyun <GIC_SPI 4 IRQ_TYPE_LEVEL_HIGH>; 353*4882a593Smuzhiyun 354*4882a593Smuzhiyun interrupt-names = "Mali_GP_IRQ", 355*4882a593Smuzhiyun "Mali_GP_MMU_IRQ", 356*4882a593Smuzhiyun "Mali_PP0_IRQ", 357*4882a593Smuzhiyun "Mali_PP0_MMU_IRQ", 358*4882a593Smuzhiyun "Mali_PP1_IRQ", 359*4882a593Smuzhiyun "Mali_PP1_MMU_IRQ"; 360*4882a593Smuzhiyun clocks = <&cru ACLK_GPU>; 361*4882a593Smuzhiyun #cooling-cells = <2>; /* min followed by max */ 362*4882a593Smuzhiyun clock-names = "clk_mali"; 363*4882a593Smuzhiyun power-domains = <&power RK3128_PD_GPU>; 364*4882a593Smuzhiyun operating-points-v2 = <&gpu_opp_table>; 365*4882a593Smuzhiyun status = "disabled"; 366*4882a593Smuzhiyun 367*4882a593Smuzhiyun gpu_power_model: power_model { 368*4882a593Smuzhiyun compatible = "arm,mali-simple-power-model"; 369*4882a593Smuzhiyun voltage = <900>; 370*4882a593Smuzhiyun frequency = <500>; 371*4882a593Smuzhiyun static-power = <300>; 372*4882a593Smuzhiyun dynamic-power = <396>; 373*4882a593Smuzhiyun ts = <32000 4700 (-80) 2>; 374*4882a593Smuzhiyun thermal-zone = "soc-thermal"; 375*4882a593Smuzhiyun }; 376*4882a593Smuzhiyun }; 377*4882a593Smuzhiyun 378*4882a593Smuzhiyun gpu_opp_table: opp-table2 { 379*4882a593Smuzhiyun compatible = "operating-points-v2"; 380*4882a593Smuzhiyun 381*4882a593Smuzhiyun opp-200000000 { 382*4882a593Smuzhiyun opp-hz = /bits/ 64 <200000000>; 383*4882a593Smuzhiyun opp-microvolt = <975000>; 384*4882a593Smuzhiyun }; 385*4882a593Smuzhiyun opp-300000000 { 386*4882a593Smuzhiyun opp-hz = /bits/ 64 <300000000>; 387*4882a593Smuzhiyun opp-microvolt = <1050000>; 388*4882a593Smuzhiyun }; 389*4882a593Smuzhiyun opp-400000000 { 390*4882a593Smuzhiyun opp-hz = /bits/ 64 <400000000>; 391*4882a593Smuzhiyun opp-microvolt = <1150000>; 392*4882a593Smuzhiyun }; 393*4882a593Smuzhiyun opp-480000000 { 394*4882a593Smuzhiyun opp-hz = /bits/ 64 <480000000>; 395*4882a593Smuzhiyun opp-microvolt = <1250000>; 396*4882a593Smuzhiyun }; 397*4882a593Smuzhiyun }; 398*4882a593Smuzhiyun 399*4882a593Smuzhiyun pmu: syscon@100a0000 { 400*4882a593Smuzhiyun compatible = "rockchip,rk3128-pmu", "syscon", "simple-mfd"; 401*4882a593Smuzhiyun reg = <0x100a0000 0x1000>; 402*4882a593Smuzhiyun #address-cells = <1>; 403*4882a593Smuzhiyun #size-cells = <1>; 404*4882a593Smuzhiyun 405*4882a593Smuzhiyun power: power-controller { 406*4882a593Smuzhiyun compatible = "rockchip,rk3128-power-controller"; 407*4882a593Smuzhiyun #power-domain-cells = <1>; 408*4882a593Smuzhiyun #address-cells = <1>; 409*4882a593Smuzhiyun #size-cells = <0>; 410*4882a593Smuzhiyun status = "okay"; 411*4882a593Smuzhiyun 412*4882a593Smuzhiyun pd_vio: pd_vio@RK3128_PD_VIO { 413*4882a593Smuzhiyun reg = <RK3128_PD_VIO>; 414*4882a593Smuzhiyun clocks = <&cru ACLK_RGA>, 415*4882a593Smuzhiyun <&cru ACLK_LCDC0>, 416*4882a593Smuzhiyun <&cru ACLK_IEP>, 417*4882a593Smuzhiyun <&cru ACLK_CIF>, 418*4882a593Smuzhiyun <&cru ACLK_VIO0>, 419*4882a593Smuzhiyun <&cru ACLK_VIO1>, 420*4882a593Smuzhiyun <&cru DCLK_VOP>, 421*4882a593Smuzhiyun <&cru DCLK_EBC>, 422*4882a593Smuzhiyun <&cru HCLK_RGA>, 423*4882a593Smuzhiyun <&cru HCLK_VIO>, 424*4882a593Smuzhiyun <&cru HCLK_EBC>, 425*4882a593Smuzhiyun <&cru HCLK_LCDC0>, 426*4882a593Smuzhiyun <&cru HCLK_IEP>, 427*4882a593Smuzhiyun <&cru HCLK_CIF>, 428*4882a593Smuzhiyun <&cru HCLK_VIO_H2P>, 429*4882a593Smuzhiyun <&cru PCLK_MIPI>, 430*4882a593Smuzhiyun <&cru PCLK_MIPIPHY>, 431*4882a593Smuzhiyun <&cru SCLK_VOP>; 432*4882a593Smuzhiyun pm_qos = <&qos_rga>, 433*4882a593Smuzhiyun <&qos_iep>, 434*4882a593Smuzhiyun <&qos_lcdc0>, 435*4882a593Smuzhiyun <&qos_vip0>; 436*4882a593Smuzhiyun }; 437*4882a593Smuzhiyun pd_video@RK3128_PD_VIDEO { 438*4882a593Smuzhiyun reg = <RK3128_PD_VIDEO>; 439*4882a593Smuzhiyun clocks = <&cru ACLK_VEPU>, 440*4882a593Smuzhiyun <&cru ACLK_VDPU>, 441*4882a593Smuzhiyun <&cru HCLK_VEPU>, 442*4882a593Smuzhiyun <&cru HCLK_VDPU>, 443*4882a593Smuzhiyun <&cru SCLK_HEVC_CORE>; 444*4882a593Smuzhiyun pm_qos = <&qos_vpu>; 445*4882a593Smuzhiyun }; 446*4882a593Smuzhiyun pd_gpu@RK3128_PD_GPU { 447*4882a593Smuzhiyun reg = <RK3128_PD_GPU>; 448*4882a593Smuzhiyun clocks = <&cru ACLK_GPU>; 449*4882a593Smuzhiyun pm_qos = <&qos_gpu>; 450*4882a593Smuzhiyun }; 451*4882a593Smuzhiyun }; 452*4882a593Smuzhiyun 453*4882a593Smuzhiyun reboot_mode: reboot-mode { 454*4882a593Smuzhiyun compatible = "syscon-reboot-mode"; 455*4882a593Smuzhiyun offset = <0x38>; 456*4882a593Smuzhiyun mode-bootloader = <BOOT_BL_DOWNLOAD>; 457*4882a593Smuzhiyun mode-charge = <BOOT_CHARGING>; 458*4882a593Smuzhiyun mode-fastboot = <BOOT_FASTBOOT>; 459*4882a593Smuzhiyun mode-loader = <BOOT_BL_DOWNLOAD>; 460*4882a593Smuzhiyun mode-normal = <BOOT_NORMAL>; 461*4882a593Smuzhiyun mode-recovery = <BOOT_RECOVERY>; 462*4882a593Smuzhiyun mode-ums = <BOOT_UMS>; 463*4882a593Smuzhiyun }; 464*4882a593Smuzhiyun }; 465*4882a593Smuzhiyun 466*4882a593Smuzhiyun mpp_srv: mpp-srv { 467*4882a593Smuzhiyun compatible = "rockchip,mpp-service"; 468*4882a593Smuzhiyun rockchip,taskqueue-count = <1>; 469*4882a593Smuzhiyun rockchip,resetgroup-count = <1>; 470*4882a593Smuzhiyun rockchip,grf = <&grf>; 471*4882a593Smuzhiyun rockchip,grf-offset = <0x0144>; 472*4882a593Smuzhiyun rockchip,grf-values = <0x04000400>, <0x04000400>; 473*4882a593Smuzhiyun rockchip,grf-names = "grf_vdpu1", "grf_vepu1"; 474*4882a593Smuzhiyun status = "disabled"; 475*4882a593Smuzhiyun }; 476*4882a593Smuzhiyun 477*4882a593Smuzhiyun hevc: hevc@10104000 { 478*4882a593Smuzhiyun compatible = "rockchip,hevc-decoder"; 479*4882a593Smuzhiyun reg = <0x10104000 0x400>; 480*4882a593Smuzhiyun interrupts = <GIC_SPI 66 IRQ_TYPE_LEVEL_HIGH>; 481*4882a593Smuzhiyun interrupt-names = "irq_dec"; 482*4882a593Smuzhiyun clocks = <&cru ACLK_VDPU>, <&cru HCLK_VDPU>, 483*4882a593Smuzhiyun <&cru SCLK_HEVC_CORE>; 484*4882a593Smuzhiyun clock-names = "aclk_vcodec", "hclk_vcodec", "clk_core"; 485*4882a593Smuzhiyun resets = <&cru SRST_VCODEC_H>, <&cru SRST_VCODEC_A>, 486*4882a593Smuzhiyun <&cru SRST_HEVC_CORE>; 487*4882a593Smuzhiyun reset-names = "shared_video_h", "shared_video_a", 488*4882a593Smuzhiyun "video_core"; 489*4882a593Smuzhiyun iommus = <&hevc_mmu>; 490*4882a593Smuzhiyun power-domains = <&power RK3128_PD_VIDEO>; 491*4882a593Smuzhiyun rockchip,srv = <&mpp_srv>; 492*4882a593Smuzhiyun rockchip,taskqueue-node = <0>; 493*4882a593Smuzhiyun rockchip,resetgroup-node = <0>; 494*4882a593Smuzhiyun status = "disabled"; 495*4882a593Smuzhiyun }; 496*4882a593Smuzhiyun 497*4882a593Smuzhiyun hevc_mmu: iommu@10104440 { 498*4882a593Smuzhiyun compatible = "rockchip,iommu"; 499*4882a593Smuzhiyun reg = <0x10104440 0x40>, <0x10104480 0x40>; 500*4882a593Smuzhiyun interrupts = <GIC_SPI 65 IRQ_TYPE_LEVEL_HIGH>; 501*4882a593Smuzhiyun interrupt-names = "hevc_mmu"; 502*4882a593Smuzhiyun clock-names = "aclk", "iface"; 503*4882a593Smuzhiyun clocks = <&cru ACLK_VDPU>, <&cru HCLK_VDPU>; 504*4882a593Smuzhiyun power-domains = <&power RK3128_PD_VIDEO>; 505*4882a593Smuzhiyun #iommu-cells = <0>; 506*4882a593Smuzhiyun status = "disabled"; 507*4882a593Smuzhiyun }; 508*4882a593Smuzhiyun 509*4882a593Smuzhiyun vepu: vepu@0x10106000 { 510*4882a593Smuzhiyun compatible = "rockchip,vpu-encoder-v1"; 511*4882a593Smuzhiyun reg = <0x10106000 0x400>; 512*4882a593Smuzhiyun interrupts = <GIC_SPI 6 IRQ_TYPE_LEVEL_HIGH>; 513*4882a593Smuzhiyun interrupt-names = "irq_enc"; 514*4882a593Smuzhiyun clocks = <&cru ACLK_VDPU>, <&cru HCLK_VDPU>; 515*4882a593Smuzhiyun clock-names = "aclk_vcodec", "hclk_vcodec"; 516*4882a593Smuzhiyun resets = <&cru SRST_VCODEC_H>, <&cru SRST_VCODEC_A>; 517*4882a593Smuzhiyun reset-names = "shared_video_h", "shared_video_a"; 518*4882a593Smuzhiyun iommus = <&vpu_mmu>; 519*4882a593Smuzhiyun power-domains = <&power RK3128_PD_VIDEO>; 520*4882a593Smuzhiyun rockchip,srv = <&mpp_srv>; 521*4882a593Smuzhiyun rockchip,taskqueue-node = <0>; 522*4882a593Smuzhiyun rockchip,resetgroup-node = <0>; 523*4882a593Smuzhiyun status = "disabled"; 524*4882a593Smuzhiyun }; 525*4882a593Smuzhiyun 526*4882a593Smuzhiyun vdpu: vdpu@10106400 { 527*4882a593Smuzhiyun compatible = "rockchip,vpu-decoder-v1"; 528*4882a593Smuzhiyun reg = <0x10106400 0x400>; 529*4882a593Smuzhiyun interrupts = <GIC_SPI 7 IRQ_TYPE_LEVEL_HIGH>; 530*4882a593Smuzhiyun interrupt-names = "irq_dec"; 531*4882a593Smuzhiyun clocks = <&cru ACLK_VDPU>, <&cru HCLK_VDPU>; 532*4882a593Smuzhiyun clock-names = "aclk_vcodec", "hclk_vcodec"; 533*4882a593Smuzhiyun resets = <&cru SRST_VCODEC_H>, <&cru SRST_VCODEC_A>; 534*4882a593Smuzhiyun reset-names = "shared_video_h", "shared_video_a"; 535*4882a593Smuzhiyun iommus = <&vpu_mmu>; 536*4882a593Smuzhiyun power-domains = <&power RK3128_PD_VIDEO>; 537*4882a593Smuzhiyun rockchip,srv = <&mpp_srv>; 538*4882a593Smuzhiyun rockchip,taskqueue-node = <0>; 539*4882a593Smuzhiyun rockchip,resetgroup-node = <0>; 540*4882a593Smuzhiyun status = "disabled"; 541*4882a593Smuzhiyun }; 542*4882a593Smuzhiyun 543*4882a593Smuzhiyun vpu_mmu: iommu@10106800 { 544*4882a593Smuzhiyun compatible = "rockchip,iommu"; 545*4882a593Smuzhiyun reg = <0x10106800 0x40>; 546*4882a593Smuzhiyun interrupts = <GIC_SPI 67 IRQ_TYPE_LEVEL_HIGH>; 547*4882a593Smuzhiyun interrupt-names = "vpu_mmu"; 548*4882a593Smuzhiyun clocks = <&cru ACLK_VDPU>, <&cru HCLK_VDPU>; 549*4882a593Smuzhiyun clock-names = "aclk", "iface"; 550*4882a593Smuzhiyun power-domains = <&power RK3128_PD_VIDEO>; 551*4882a593Smuzhiyun #iommu-cells = <0>; 552*4882a593Smuzhiyun status = "disabled"; 553*4882a593Smuzhiyun }; 554*4882a593Smuzhiyun 555*4882a593Smuzhiyun iep: iep@10108000 { 556*4882a593Smuzhiyun compatible = "rockchip,iep"; 557*4882a593Smuzhiyun iommu_enabled = <1>; 558*4882a593Smuzhiyun iommus = <&iep_mmu>; 559*4882a593Smuzhiyun reg = <0x10108000 0x800>; 560*4882a593Smuzhiyun interrupts = <GIC_SPI 48 IRQ_TYPE_LEVEL_HIGH>; 561*4882a593Smuzhiyun clocks = <&cru ACLK_IEP>, <&cru HCLK_IEP>; 562*4882a593Smuzhiyun clock-names = "aclk_iep", "hclk_iep"; 563*4882a593Smuzhiyun power-domains = <&power RK3128_PD_VIO>; 564*4882a593Smuzhiyun allocator = <1>; 565*4882a593Smuzhiyun version = <1>; 566*4882a593Smuzhiyun status = "disabled"; 567*4882a593Smuzhiyun }; 568*4882a593Smuzhiyun 569*4882a593Smuzhiyun iep_mmu: iommu@10108800 { 570*4882a593Smuzhiyun compatible = "rockchip,iommu"; 571*4882a593Smuzhiyun reg = <0x10108800 0x40>; 572*4882a593Smuzhiyun interrupts = <GIC_SPI 48 IRQ_TYPE_LEVEL_HIGH>; 573*4882a593Smuzhiyun interrupt-names = "iep_mmu"; 574*4882a593Smuzhiyun clocks = <&cru ACLK_IEP>, <&cru HCLK_IEP>; 575*4882a593Smuzhiyun clock-names = "aclk", "iface"; 576*4882a593Smuzhiyun power-domains = <&power RK3128_PD_VIO>; 577*4882a593Smuzhiyun #iommu-cells = <0>; 578*4882a593Smuzhiyun status = "disabled"; 579*4882a593Smuzhiyun }; 580*4882a593Smuzhiyun 581*4882a593Smuzhiyun cif: cif@1010a000 { 582*4882a593Smuzhiyun compatible = "rockchip,cif"; 583*4882a593Smuzhiyun reg = <0x1010a000 0x200>; 584*4882a593Smuzhiyun interrupts = <GIC_SPI 8 IRQ_TYPE_LEVEL_HIGH>; 585*4882a593Smuzhiyun clocks = <&cru ACLK_CIF>, <&cru HCLK_CIF>, 586*4882a593Smuzhiyun <&cru SCLK_CIF_SRC>, <&cru SCLK_CIF_OUT>; 587*4882a593Smuzhiyun clock-names = "aclk_cif0", "hclk_cif0", 588*4882a593Smuzhiyun "cif0_in", "cif0_out"; 589*4882a593Smuzhiyun resets = <&cru SRST_CIF0>; 590*4882a593Smuzhiyun reset-names = "rst_cif"; 591*4882a593Smuzhiyun power-domains = <&power RK3128_PD_VIO>; 592*4882a593Smuzhiyun status = "disabled"; 593*4882a593Smuzhiyun }; 594*4882a593Smuzhiyun 595*4882a593Smuzhiyun cif_new: cif-new@1010a000 { 596*4882a593Smuzhiyun compatible = "rockchip,rk3128-cif"; 597*4882a593Smuzhiyun reg = <0x1010a000 0x200>; 598*4882a593Smuzhiyun 599*4882a593Smuzhiyun clocks = <&cru ACLK_CIF>, <&cru HCLK_CIF>, 600*4882a593Smuzhiyun <&cru SCLK_CIF_OUT>; 601*4882a593Smuzhiyun clock-names = "aclk_cif", "hclk_cif", 602*4882a593Smuzhiyun "sclk_cif_out"; 603*4882a593Smuzhiyun resets = <&cru SRST_CIF0>; 604*4882a593Smuzhiyun reset-names = "rst_cif"; 605*4882a593Smuzhiyun interrupts = <GIC_SPI 8 IRQ_TYPE_LEVEL_HIGH>; 606*4882a593Smuzhiyun /* rk312x has not iommu attached */ 607*4882a593Smuzhiyun /* iommus = <&cif_mmu>; */ 608*4882a593Smuzhiyun power-domains = <&power RK3128_PD_VIO>; 609*4882a593Smuzhiyun 610*4882a593Smuzhiyun status = "disabled"; 611*4882a593Smuzhiyun }; 612*4882a593Smuzhiyun 613*4882a593Smuzhiyun rga: rga@1010c000 { 614*4882a593Smuzhiyun compatible = "rockchip,rk312x-rga"; 615*4882a593Smuzhiyun reg = <0x1010c000 0x1000>; 616*4882a593Smuzhiyun interrupts = <GIC_SPI 44 IRQ_TYPE_LEVEL_HIGH>; 617*4882a593Smuzhiyun clocks = <&cru ACLK_RGA>, <&cru HCLK_RGA>, <&cru SCLK_RGA>; 618*4882a593Smuzhiyun clock-names = "aclk_rga", "hclk_rga", "sclk_rga"; 619*4882a593Smuzhiyun power-domains = <&power RK3128_PD_VIO>; 620*4882a593Smuzhiyun status = "disabled"; 621*4882a593Smuzhiyun }; 622*4882a593Smuzhiyun 623*4882a593Smuzhiyun vop: vop@1010e000 { 624*4882a593Smuzhiyun compatible = "rockchip,rk3126-vop"; 625*4882a593Smuzhiyun reg = <0x1010e000 0x100>, <0x1010ec00 0x400>; 626*4882a593Smuzhiyun reg-names = "regs", "gamma_lut"; 627*4882a593Smuzhiyun interrupts = <GIC_SPI 9 IRQ_TYPE_LEVEL_HIGH>; 628*4882a593Smuzhiyun clocks = <&cru ACLK_LCDC0>, <&cru DCLK_VOP>, <&cru HCLK_LCDC0>; 629*4882a593Smuzhiyun clock-names = "aclk_vop", "dclk_vop", "hclk_vop"; 630*4882a593Smuzhiyun resets = <&cru SRST_VOP_A>, <&cru SRST_VOP_D>, <&cru SRST_VOP_H>; 631*4882a593Smuzhiyun reset-names = "axi", "ahb", "dclk"; 632*4882a593Smuzhiyun iommus = <&vop_mmu>; 633*4882a593Smuzhiyun power-domains = <&power RK3128_PD_VIO>; 634*4882a593Smuzhiyun status = "disabled"; 635*4882a593Smuzhiyun 636*4882a593Smuzhiyun vop_out: port { 637*4882a593Smuzhiyun #address-cells = <1>; 638*4882a593Smuzhiyun #size-cells = <0>; 639*4882a593Smuzhiyun 640*4882a593Smuzhiyun vop_out_dsi: endpoint@0 { 641*4882a593Smuzhiyun reg = <0>; 642*4882a593Smuzhiyun remote-endpoint = <&dsi_in_vop>; 643*4882a593Smuzhiyun }; 644*4882a593Smuzhiyun 645*4882a593Smuzhiyun vop_out_lvds: endpoint@1 { 646*4882a593Smuzhiyun reg = <1>; 647*4882a593Smuzhiyun remote-endpoint = <&lvds_in_vop>; 648*4882a593Smuzhiyun }; 649*4882a593Smuzhiyun 650*4882a593Smuzhiyun vop_out_rgb: endpoint@2 { 651*4882a593Smuzhiyun reg = <2>; 652*4882a593Smuzhiyun remote-endpoint = <&rgb_in_vop>; 653*4882a593Smuzhiyun }; 654*4882a593Smuzhiyun }; 655*4882a593Smuzhiyun }; 656*4882a593Smuzhiyun 657*4882a593Smuzhiyun vop_mmu: iommu@1010e300 { 658*4882a593Smuzhiyun compatible = "rockchip,iommu"; 659*4882a593Smuzhiyun reg = <0x1010e300 0x100>; 660*4882a593Smuzhiyun interrupts = <GIC_SPI 9 IRQ_TYPE_LEVEL_HIGH>; 661*4882a593Smuzhiyun interrupt-names = "vop_mmu"; 662*4882a593Smuzhiyun clocks = <&cru ACLK_LCDC0>, <&cru HCLK_LCDC0>; 663*4882a593Smuzhiyun clock-names = "aclk", "iface"; 664*4882a593Smuzhiyun power-domains = <&power RK3128_PD_VIO>; 665*4882a593Smuzhiyun #iommu-cells = <0>; 666*4882a593Smuzhiyun rockchip,disable-device-link-resume; 667*4882a593Smuzhiyun status = "disabled"; 668*4882a593Smuzhiyun }; 669*4882a593Smuzhiyun 670*4882a593Smuzhiyun dsi: dsi@10110000 { 671*4882a593Smuzhiyun compatible = "rockchip,rk3128-mipi-dsi"; 672*4882a593Smuzhiyun reg = <0x10110000 0x4000>; 673*4882a593Smuzhiyun interrupts = <GIC_SPI 33 IRQ_TYPE_LEVEL_HIGH>; 674*4882a593Smuzhiyun clocks = <&cru PCLK_MIPI>, <&cru HCLK_VIO_H2P>; 675*4882a593Smuzhiyun clock-names = "pclk", "hclk"; 676*4882a593Smuzhiyun resets = <&cru SRST_VIO_MIPI_DSI>; 677*4882a593Smuzhiyun reset-names = "apb"; 678*4882a593Smuzhiyun phys = <&video_phy>; 679*4882a593Smuzhiyun phy-names = "dphy"; 680*4882a593Smuzhiyun power-domains = <&power RK3128_PD_VIO>; 681*4882a593Smuzhiyun rockchip,grf = <&grf>; 682*4882a593Smuzhiyun #address-cells = <1>; 683*4882a593Smuzhiyun #size-cells = <0>; 684*4882a593Smuzhiyun status = "disabled"; 685*4882a593Smuzhiyun 686*4882a593Smuzhiyun ports { 687*4882a593Smuzhiyun port { 688*4882a593Smuzhiyun dsi_in_vop: endpoint { 689*4882a593Smuzhiyun remote-endpoint = <&vop_out_dsi>; 690*4882a593Smuzhiyun }; 691*4882a593Smuzhiyun }; 692*4882a593Smuzhiyun }; 693*4882a593Smuzhiyun }; 694*4882a593Smuzhiyun 695*4882a593Smuzhiyun qos_gpu: qos@1012d000 { 696*4882a593Smuzhiyun compatible = "syscon"; 697*4882a593Smuzhiyun reg = <0x1012d000 0x20>; 698*4882a593Smuzhiyun }; 699*4882a593Smuzhiyun 700*4882a593Smuzhiyun qos_vpu: qos@1012e000 { 701*4882a593Smuzhiyun compatible = "syscon"; 702*4882a593Smuzhiyun reg = <0x1012e000 0x20>; 703*4882a593Smuzhiyun }; 704*4882a593Smuzhiyun 705*4882a593Smuzhiyun qos_rga: qos@1012f000 { 706*4882a593Smuzhiyun compatible = "syscon"; 707*4882a593Smuzhiyun reg = <0x1012f000 0x20>; 708*4882a593Smuzhiyun }; 709*4882a593Smuzhiyun 710*4882a593Smuzhiyun qos_iep: qos@1012f100 { 711*4882a593Smuzhiyun compatible = "syscon"; 712*4882a593Smuzhiyun reg = <0x1012f100 0x20>; 713*4882a593Smuzhiyun }; 714*4882a593Smuzhiyun 715*4882a593Smuzhiyun qos_lcdc0: qos@1012f180 { 716*4882a593Smuzhiyun compatible = "syscon"; 717*4882a593Smuzhiyun reg = <0x1012f180 0x20>; 718*4882a593Smuzhiyun }; 719*4882a593Smuzhiyun 720*4882a593Smuzhiyun qos_vip0: qos@1012f200 { 721*4882a593Smuzhiyun compatible = "syscon"; 722*4882a593Smuzhiyun reg = <0x1012f200 0x20>; 723*4882a593Smuzhiyun }; 724*4882a593Smuzhiyun 725*4882a593Smuzhiyun gic: interrupt-controller@10139000 { 726*4882a593Smuzhiyun compatible = "arm,cortex-a7-gic"; 727*4882a593Smuzhiyun interrupt-controller; 728*4882a593Smuzhiyun #interrupt-cells = <3>; 729*4882a593Smuzhiyun #address-cells = <0>; 730*4882a593Smuzhiyun 731*4882a593Smuzhiyun reg = <0x10139000 0x1000>, 732*4882a593Smuzhiyun <0x1013a000 0x1000>, 733*4882a593Smuzhiyun <0x1013c000 0x2000>, 734*4882a593Smuzhiyun <0x1013e000 0x2000>; 735*4882a593Smuzhiyun interrupts = <GIC_PPI 9 0xf04>; 736*4882a593Smuzhiyun }; 737*4882a593Smuzhiyun 738*4882a593Smuzhiyun usb_otg: usb@10180000 { 739*4882a593Smuzhiyun compatible = "rockchip,rk3128-usb", "rockchip,rk3066-usb", 740*4882a593Smuzhiyun "snps,dwc2"; 741*4882a593Smuzhiyun reg = <0x10180000 0x40000>; 742*4882a593Smuzhiyun interrupts = <GIC_SPI 10 IRQ_TYPE_LEVEL_HIGH>; 743*4882a593Smuzhiyun clocks = <&cru HCLK_OTG>; 744*4882a593Smuzhiyun clock-names = "otg"; 745*4882a593Smuzhiyun dr_mode = "otg"; 746*4882a593Smuzhiyun g-np-tx-fifo-size = <16>; 747*4882a593Smuzhiyun g-rx-fifo-size = <280>; 748*4882a593Smuzhiyun g-tx-fifo-size = <256 128 128 64 32 16>; 749*4882a593Smuzhiyun g-use-dma; 750*4882a593Smuzhiyun phys = <&u2phy_otg>; 751*4882a593Smuzhiyun phy-names = "usb2-phy"; 752*4882a593Smuzhiyun status = "disabled"; 753*4882a593Smuzhiyun }; 754*4882a593Smuzhiyun 755*4882a593Smuzhiyun usb_host_ehci: usb@101c0000 { 756*4882a593Smuzhiyun compatible = "generic-ehci"; 757*4882a593Smuzhiyun reg = <0x101c0000 0x20000>; 758*4882a593Smuzhiyun interrupts = <GIC_SPI 11 IRQ_TYPE_LEVEL_HIGH>; 759*4882a593Smuzhiyun clocks = <&cru HCLK_HOST2>, <&u2phy>; 760*4882a593Smuzhiyun clock-names = "usbhost", "utmi"; 761*4882a593Smuzhiyun phys = <&u2phy_host>; 762*4882a593Smuzhiyun phy-names = "usb"; 763*4882a593Smuzhiyun status = "disabled"; 764*4882a593Smuzhiyun }; 765*4882a593Smuzhiyun 766*4882a593Smuzhiyun usb_host_ohci: usb@101e0000 { 767*4882a593Smuzhiyun compatible = "generic-ohci"; 768*4882a593Smuzhiyun reg = <0x101e0000 0x20000>; 769*4882a593Smuzhiyun interrupts = <GIC_SPI 32 IRQ_TYPE_LEVEL_HIGH>; 770*4882a593Smuzhiyun clocks = <&cru HCLK_HOST2>, <&u2phy>; 771*4882a593Smuzhiyun clock-names = "usbhost", "utmi"; 772*4882a593Smuzhiyun phys = <&u2phy_host>; 773*4882a593Smuzhiyun phy-names = "usb"; 774*4882a593Smuzhiyun status = "disabled"; 775*4882a593Smuzhiyun }; 776*4882a593Smuzhiyun 777*4882a593Smuzhiyun i2s_8ch: i2s-8ch@10200000 { 778*4882a593Smuzhiyun compatible = "rockchip,rk3128-i2s", "rockchip,rk3066-i2s"; 779*4882a593Smuzhiyun reg = <0x10200000 0x1000>; 780*4882a593Smuzhiyun clocks = <&cru SCLK_I2S0>, <&cru HCLK_I2S_8CH>; 781*4882a593Smuzhiyun clock-names = "i2s_clk", "i2s_hclk"; 782*4882a593Smuzhiyun interrupts = <GIC_SPI 68 IRQ_TYPE_LEVEL_HIGH>; 783*4882a593Smuzhiyun dmas = <&pdma 14>, <&pdma 15>; 784*4882a593Smuzhiyun dma-names = "tx", "rx"; 785*4882a593Smuzhiyun resets = <&cru SRST_I2S_8CH>; 786*4882a593Smuzhiyun reset-names = "reset-m"; 787*4882a593Smuzhiyun status = "disabled"; 788*4882a593Smuzhiyun }; 789*4882a593Smuzhiyun 790*4882a593Smuzhiyun spdif: spdif@10204000 { 791*4882a593Smuzhiyun compatible = "rockchip,rk3128-spdif"; 792*4882a593Smuzhiyun reg = <0x10204000 0x1000>; 793*4882a593Smuzhiyun interrupts = <GIC_SPI 55 IRQ_TYPE_LEVEL_HIGH>; 794*4882a593Smuzhiyun clocks = <&cru SCLK_SPDIF>, <&cru HCLK_SPDIF>; 795*4882a593Smuzhiyun clock-names = "mclk", "hclk"; 796*4882a593Smuzhiyun dmas = <&pdma 13>; 797*4882a593Smuzhiyun dma-names = "tx"; 798*4882a593Smuzhiyun pinctrl-names = "default"; 799*4882a593Smuzhiyun pinctrl-0 = <&spdif_tx>; 800*4882a593Smuzhiyun status = "disabled"; 801*4882a593Smuzhiyun }; 802*4882a593Smuzhiyun 803*4882a593Smuzhiyun sfc: sfc@1020c000 { 804*4882a593Smuzhiyun compatible = "rockchip,sfc"; 805*4882a593Smuzhiyun reg = <0x1020c000 0x8000>; 806*4882a593Smuzhiyun interrupts = <GIC_SPI 50 IRQ_TYPE_LEVEL_HIGH>; 807*4882a593Smuzhiyun clocks = <&cru SCLK_SFC>, <&cru HCLK_SFC>; 808*4882a593Smuzhiyun clock-names = "clk_sfc", "hclk_sfc"; 809*4882a593Smuzhiyun assigned-clocks = <&cru SCLK_SFC>; 810*4882a593Smuzhiyun assigned-clock-rates = <60000000>; 811*4882a593Smuzhiyun status = "disabled"; 812*4882a593Smuzhiyun }; 813*4882a593Smuzhiyun 814*4882a593Smuzhiyun i2s_2ch: i2s-2ch@10220000 { 815*4882a593Smuzhiyun compatible = "rockchip,rk3128-i2s", "rockchip,rk3066-i2s"; 816*4882a593Smuzhiyun reg = <0x10220000 0x1000>; 817*4882a593Smuzhiyun clocks = <&cru SCLK_I2S1>, <&cru HCLK_I2S_2CH>; 818*4882a593Smuzhiyun clock-names = "i2s_clk", "i2s_hclk"; 819*4882a593Smuzhiyun interrupts = <GIC_SPI 19 IRQ_TYPE_LEVEL_HIGH>; 820*4882a593Smuzhiyun dmas = <&pdma 0>, <&pdma 1>; 821*4882a593Smuzhiyun dma-names = "tx", "rx"; 822*4882a593Smuzhiyun resets = <&cru SRST_I2S_2CH>; 823*4882a593Smuzhiyun reset-names = "reset-m"; 824*4882a593Smuzhiyun status = "disabled"; 825*4882a593Smuzhiyun }; 826*4882a593Smuzhiyun 827*4882a593Smuzhiyun sdmmc: dwmmc@10214000 { 828*4882a593Smuzhiyun compatible = "rockchip,rk312x-dw-mshc", "rockchip,rk3288-dw-mshc"; 829*4882a593Smuzhiyun reg = <0x10214000 0x4000>; 830*4882a593Smuzhiyun interrupts = <GIC_SPI 14 IRQ_TYPE_LEVEL_HIGH>; 831*4882a593Smuzhiyun #address-cells = <1>; 832*4882a593Smuzhiyun #size-cells = <0>; 833*4882a593Smuzhiyun pinctrl-names = "default"; 834*4882a593Smuzhiyun pinctrl-0 = <&sdmmc_clk &sdmmc_cmd &sdmmc_bus4>; 835*4882a593Smuzhiyun max-frequency = <50000000>; 836*4882a593Smuzhiyun clocks = <&cru HCLK_SDMMC>, <&cru SCLK_SDMMC>, <&cru SCLK_SDMMC_DRV>, <&cru SCLK_SDMMC_SAMPLE>; 837*4882a593Smuzhiyun clock-names = "biu", "ciu", "ciu-drive", "ciu-sample"; 838*4882a593Smuzhiyun dmas = <&pdma 10>; 839*4882a593Smuzhiyun dma-names = "rx-tx"; 840*4882a593Smuzhiyun fifo-depth = <0x100>; 841*4882a593Smuzhiyun bus-width = <4>; 842*4882a593Smuzhiyun status = "disabled"; 843*4882a593Smuzhiyun }; 844*4882a593Smuzhiyun 845*4882a593Smuzhiyun sdio: dwmmc@10218000 { 846*4882a593Smuzhiyun compatible = "rockchip,rk312x-dw-mshc", "rockchip,rk3288-dw-mshc"; 847*4882a593Smuzhiyun reg = <0x10218000 0x4000>; 848*4882a593Smuzhiyun interrupts = <GIC_SPI 15 IRQ_TYPE_LEVEL_HIGH>; 849*4882a593Smuzhiyun #address-cells = <1>; 850*4882a593Smuzhiyun #size-cells = <0>; 851*4882a593Smuzhiyun pinctrl-names = "default"; 852*4882a593Smuzhiyun pinctrl-0 = <&sdio_pwren &sdio_cmd &sdio_clk &sdio_bus4>; 853*4882a593Smuzhiyun clock-freq-min-max = <400000 50000000>; 854*4882a593Smuzhiyun clocks = <&cru HCLK_SDIO>, <&cru SCLK_SDIO>; 855*4882a593Smuzhiyun clock-names = "biu", "ciu"; 856*4882a593Smuzhiyun dmas = <&pdma 11>; 857*4882a593Smuzhiyun dma-names = "rx-tx"; 858*4882a593Smuzhiyun num-slots = <1>; 859*4882a593Smuzhiyun fifo-depth = <0x100>; 860*4882a593Smuzhiyun bus-width = <4>; 861*4882a593Smuzhiyun status = "disabled"; 862*4882a593Smuzhiyun }; 863*4882a593Smuzhiyun 864*4882a593Smuzhiyun emmc: dwmmc@1021c000 { 865*4882a593Smuzhiyun compatible = "rockchip,rk312x-dw-mshc", "rockchip,rk3288-dw-mshc"; 866*4882a593Smuzhiyun reg = <0x1021c000 0x4000>; 867*4882a593Smuzhiyun interrupts = <GIC_SPI 16 IRQ_TYPE_LEVEL_HIGH>; 868*4882a593Smuzhiyun #address-cells = <1>; 869*4882a593Smuzhiyun #size-cells = <0>; 870*4882a593Smuzhiyun clock-freq-min-max = <400000 50000000>; 871*4882a593Smuzhiyun clocks = <&cru HCLK_EMMC>, <&cru SCLK_EMMC>; 872*4882a593Smuzhiyun clock-names = "biu", "ciu"; 873*4882a593Smuzhiyun dmas = <&pdma 12>; 874*4882a593Smuzhiyun dma-names = "rx-tx"; 875*4882a593Smuzhiyun num-slots = <1>; 876*4882a593Smuzhiyun fifo-depth = <0x100>; 877*4882a593Smuzhiyun bus-width = <8>; 878*4882a593Smuzhiyun status = "disabled"; 879*4882a593Smuzhiyun }; 880*4882a593Smuzhiyun 881*4882a593Smuzhiyun nandc: nandc@10500000 { 882*4882a593Smuzhiyun compatible = "rockchip,rk-nandc"; 883*4882a593Smuzhiyun reg = <0x10500000 0x4000>; 884*4882a593Smuzhiyun interrupts = <GIC_SPI 18 IRQ_TYPE_LEVEL_HIGH>; 885*4882a593Smuzhiyun nandc_id = <0>; 886*4882a593Smuzhiyun clocks = <&cru SCLK_NANDC>, <&cru HCLK_NANDC>; 887*4882a593Smuzhiyun clock-names = "clk_nandc", "hclk_nandc"; 888*4882a593Smuzhiyun status = "disabled"; 889*4882a593Smuzhiyun }; 890*4882a593Smuzhiyun 891*4882a593Smuzhiyun cru: clock-controller@20000000 { 892*4882a593Smuzhiyun compatible = "rockchip,rk3128-cru"; 893*4882a593Smuzhiyun reg = <0x20000000 0x1000>; 894*4882a593Smuzhiyun rockchip,grf = <&grf>; 895*4882a593Smuzhiyun #clock-cells = <1>; 896*4882a593Smuzhiyun #reset-cells = <1>; 897*4882a593Smuzhiyun assigned-clocks = <&cru PLL_GPLL>, 898*4882a593Smuzhiyun <&cru ACLK_CPU>, <&cru HCLK_CPU>, 899*4882a593Smuzhiyun <&cru PCLK_CPU>, <&cru ACLK_PERI>, 900*4882a593Smuzhiyun <&cru HCLK_PERI>, <&cru PCLK_PERI>; 901*4882a593Smuzhiyun assigned-clock-rates = <594000000>, 902*4882a593Smuzhiyun <300000000>, <150000000>, 903*4882a593Smuzhiyun <75000000>, <300000000>, 904*4882a593Smuzhiyun <150000000>, <75000000>; 905*4882a593Smuzhiyun }; 906*4882a593Smuzhiyun 907*4882a593Smuzhiyun grf: syscon@20008000 { 908*4882a593Smuzhiyun compatible = "rockchip,rk3128-grf", "syscon", "simple-mfd"; 909*4882a593Smuzhiyun reg = <0x20008000 0x1000>; 910*4882a593Smuzhiyun #address-cells = <1>; 911*4882a593Smuzhiyun #size-cells = <1>; 912*4882a593Smuzhiyun 913*4882a593Smuzhiyun lvds: lvds { 914*4882a593Smuzhiyun compatible = "rockchip,rk3126-lvds"; 915*4882a593Smuzhiyun phys = <&video_phy>; 916*4882a593Smuzhiyun phy-names = "phy"; 917*4882a593Smuzhiyun status = "disabled"; 918*4882a593Smuzhiyun 919*4882a593Smuzhiyun ports { 920*4882a593Smuzhiyun #address-cells = <1>; 921*4882a593Smuzhiyun #size-cells = <0>; 922*4882a593Smuzhiyun 923*4882a593Smuzhiyun port@0 { 924*4882a593Smuzhiyun reg = <0>; 925*4882a593Smuzhiyun 926*4882a593Smuzhiyun lvds_in_vop: endpoint { 927*4882a593Smuzhiyun remote-endpoint = <&vop_out_lvds>; 928*4882a593Smuzhiyun }; 929*4882a593Smuzhiyun }; 930*4882a593Smuzhiyun }; 931*4882a593Smuzhiyun }; 932*4882a593Smuzhiyun 933*4882a593Smuzhiyun rgb: rgb { 934*4882a593Smuzhiyun compatible = "rockchip,rk3128-rgb"; 935*4882a593Smuzhiyun phys = <&video_phy>; 936*4882a593Smuzhiyun phy-names = "phy"; 937*4882a593Smuzhiyun pinctrl-names = "default", "sleep"; 938*4882a593Smuzhiyun pinctrl-0 = <&lcdc_rgb_pins>; 939*4882a593Smuzhiyun pinctrl-1 = <&lcdc_sleep_pins>; 940*4882a593Smuzhiyun status = "disabled"; 941*4882a593Smuzhiyun 942*4882a593Smuzhiyun ports { 943*4882a593Smuzhiyun #address-cells = <1>; 944*4882a593Smuzhiyun #size-cells = <0>; 945*4882a593Smuzhiyun 946*4882a593Smuzhiyun port@0 { 947*4882a593Smuzhiyun reg = <0>; 948*4882a593Smuzhiyun 949*4882a593Smuzhiyun rgb_in_vop: endpoint { 950*4882a593Smuzhiyun remote-endpoint = <&vop_out_rgb>; 951*4882a593Smuzhiyun }; 952*4882a593Smuzhiyun }; 953*4882a593Smuzhiyun }; 954*4882a593Smuzhiyun }; 955*4882a593Smuzhiyun 956*4882a593Smuzhiyun u2phy: usb2-phy@17c { 957*4882a593Smuzhiyun compatible = "rockchip,rk3128-usb2phy"; 958*4882a593Smuzhiyun reg = <0x017c 0x0c>; 959*4882a593Smuzhiyun clocks = <&cru SCLK_OTGPHY0>; 960*4882a593Smuzhiyun clock-names = "phyclk"; 961*4882a593Smuzhiyun #clock-cells = <0>; 962*4882a593Smuzhiyun clock-output-names = "usb480m_phy"; 963*4882a593Smuzhiyun assigned-clocks = <&cru SCLK_USB480M>; 964*4882a593Smuzhiyun assigned-clock-parents = <&u2phy>; 965*4882a593Smuzhiyun status = "disabled"; 966*4882a593Smuzhiyun 967*4882a593Smuzhiyun u2phy_otg: otg-port { 968*4882a593Smuzhiyun #phy-cells = <0>; 969*4882a593Smuzhiyun interrupts = <GIC_SPI 35 IRQ_TYPE_LEVEL_HIGH>, 970*4882a593Smuzhiyun <GIC_SPI 51 IRQ_TYPE_LEVEL_HIGH>, 971*4882a593Smuzhiyun <GIC_SPI 52 IRQ_TYPE_LEVEL_HIGH>; 972*4882a593Smuzhiyun interrupt-names = "otg-bvalid", "otg-id", 973*4882a593Smuzhiyun "linestate"; 974*4882a593Smuzhiyun status = "disabled"; 975*4882a593Smuzhiyun }; 976*4882a593Smuzhiyun 977*4882a593Smuzhiyun u2phy_host: host-port { 978*4882a593Smuzhiyun #phy-cells = <0>; 979*4882a593Smuzhiyun interrupts = <GIC_SPI 53 IRQ_TYPE_LEVEL_HIGH>; 980*4882a593Smuzhiyun interrupt-names = "linestate"; 981*4882a593Smuzhiyun status = "disabled"; 982*4882a593Smuzhiyun }; 983*4882a593Smuzhiyun }; 984*4882a593Smuzhiyun }; 985*4882a593Smuzhiyun 986*4882a593Smuzhiyun codec: codec@20030000 { 987*4882a593Smuzhiyun compatible = "rockchip,rk3128-codec"; 988*4882a593Smuzhiyun reg = <0x20030000 0x4000>; 989*4882a593Smuzhiyun interrupts = <GIC_SPI 64 IRQ_TYPE_LEVEL_HIGH>; 990*4882a593Smuzhiyun boot_depop = <1>; 991*4882a593Smuzhiyun pa_enable_time = <1000>; 992*4882a593Smuzhiyun rockchip,grf = <&grf>; 993*4882a593Smuzhiyun clocks = <&cru PCLK_ACODEC>, <&cru SCLK_I2S1>; 994*4882a593Smuzhiyun clock-names = "g_pclk_acodec", "i2s_clk"; 995*4882a593Smuzhiyun status = "disabled"; 996*4882a593Smuzhiyun }; 997*4882a593Smuzhiyun 998*4882a593Smuzhiyun video_phy: video-phy@20038000 { 999*4882a593Smuzhiyun compatible = "rockchip,rk3128-dsi-dphy", "rockchip,rk3128-video-phy"; 1000*4882a593Smuzhiyun reg = <0x20038000 0x4000>, <0x10110000 0x4000>; 1001*4882a593Smuzhiyun reg-names = "phy", "host"; 1002*4882a593Smuzhiyun clocks = <&cru SCLK_MIPI_24M>, <&cru PCLK_MIPIPHY>, 1003*4882a593Smuzhiyun <&cru PCLK_MIPI>; 1004*4882a593Smuzhiyun clock-names = "ref", "pclk", "pclk_host"; 1005*4882a593Smuzhiyun #clock-cells = <0>; 1006*4882a593Smuzhiyun resets = <&cru SRST_MIPIPHY_P>; 1007*4882a593Smuzhiyun reset-names = "apb"; 1008*4882a593Smuzhiyun power-domains = <&power RK3128_PD_VIO>; 1009*4882a593Smuzhiyun #phy-cells = <0>; 1010*4882a593Smuzhiyun status = "disabled"; 1011*4882a593Smuzhiyun }; 1012*4882a593Smuzhiyun 1013*4882a593Smuzhiyun timer@20044000 { 1014*4882a593Smuzhiyun compatible = "rockchip,rk3128-timer", "rockchip,rk3288-timer"; 1015*4882a593Smuzhiyun reg = <0x20044000 0x20>; 1016*4882a593Smuzhiyun interrupts = <GIC_SPI 28 IRQ_TYPE_LEVEL_HIGH>; 1017*4882a593Smuzhiyun clocks = <&xin24m>, <&cru PCLK_TIMER>; 1018*4882a593Smuzhiyun clock-names = "timer", "pclk"; 1019*4882a593Smuzhiyun }; 1020*4882a593Smuzhiyun 1021*4882a593Smuzhiyun watchdog@2004c000 { 1022*4882a593Smuzhiyun compatible = "snps,dw-wdt"; 1023*4882a593Smuzhiyun reg = <0x2004c000 0x100>; 1024*4882a593Smuzhiyun clocks = <&cru PCLK_WDT>; 1025*4882a593Smuzhiyun interrupts = <GIC_SPI 34 IRQ_TYPE_LEVEL_HIGH>; 1026*4882a593Smuzhiyun status = "disabled"; 1027*4882a593Smuzhiyun }; 1028*4882a593Smuzhiyun 1029*4882a593Smuzhiyun pwm0: pwm@20050000 { 1030*4882a593Smuzhiyun compatible = "rockchip,rk3288-pwm"; 1031*4882a593Smuzhiyun reg = <0x20050000 0x10>; 1032*4882a593Smuzhiyun #pwm-cells = <3>; 1033*4882a593Smuzhiyun pinctrl-names = "active"; 1034*4882a593Smuzhiyun pinctrl-0 = <&pwm0_pin>; 1035*4882a593Smuzhiyun clocks = <&cru PCLK_PWM>; 1036*4882a593Smuzhiyun clock-names = "pwm"; 1037*4882a593Smuzhiyun status = "disabled"; 1038*4882a593Smuzhiyun }; 1039*4882a593Smuzhiyun 1040*4882a593Smuzhiyun pwm1: pwm@20050010 { 1041*4882a593Smuzhiyun compatible = "rockchip,rk3288-pwm"; 1042*4882a593Smuzhiyun reg = <0x20050010 0x10>; 1043*4882a593Smuzhiyun #pwm-cells = <3>; 1044*4882a593Smuzhiyun pinctrl-names = "active"; 1045*4882a593Smuzhiyun pinctrl-0 = <&pwm1_pin>; 1046*4882a593Smuzhiyun clocks = <&cru PCLK_PWM>; 1047*4882a593Smuzhiyun clock-names = "pwm"; 1048*4882a593Smuzhiyun status = "disabled"; 1049*4882a593Smuzhiyun }; 1050*4882a593Smuzhiyun 1051*4882a593Smuzhiyun pwm2: pwm@20050020 { 1052*4882a593Smuzhiyun compatible = "rockchip,rk3288-pwm"; 1053*4882a593Smuzhiyun reg = <0x20050020 0x10>; 1054*4882a593Smuzhiyun #pwm-cells = <3>; 1055*4882a593Smuzhiyun pinctrl-names = "active"; 1056*4882a593Smuzhiyun pinctrl-0 = <&pwm2_pin>; 1057*4882a593Smuzhiyun clocks = <&cru PCLK_PWM>; 1058*4882a593Smuzhiyun clock-names = "pwm"; 1059*4882a593Smuzhiyun status = "disabled"; 1060*4882a593Smuzhiyun }; 1061*4882a593Smuzhiyun 1062*4882a593Smuzhiyun pwm3: pwm@20050030 { 1063*4882a593Smuzhiyun compatible = "rockchip,rk3288-pwm"; 1064*4882a593Smuzhiyun reg = <0x20050030 0x10>; 1065*4882a593Smuzhiyun #pwm-cells = <3>; 1066*4882a593Smuzhiyun pinctrl-names = "active"; 1067*4882a593Smuzhiyun pinctrl-0 = <&pwm3_pin>; 1068*4882a593Smuzhiyun clocks = <&cru PCLK_PWM>; 1069*4882a593Smuzhiyun clock-names = "pwm"; 1070*4882a593Smuzhiyun status = "disabled"; 1071*4882a593Smuzhiyun }; 1072*4882a593Smuzhiyun 1073*4882a593Smuzhiyun i2c1: i2c@20056000 { 1074*4882a593Smuzhiyun compatible = "rockchip,rk3288-i2c"; 1075*4882a593Smuzhiyun reg = <0x20056000 0x1000>; 1076*4882a593Smuzhiyun interrupts = <GIC_SPI 25 IRQ_TYPE_LEVEL_HIGH>; 1077*4882a593Smuzhiyun #address-cells = <1>; 1078*4882a593Smuzhiyun #size-cells = <0>; 1079*4882a593Smuzhiyun clock-names = "i2c"; 1080*4882a593Smuzhiyun clocks = <&cru PCLK_I2C1>; 1081*4882a593Smuzhiyun pinctrl-names = "default"; 1082*4882a593Smuzhiyun pinctrl-0 = <&i2c1_xfer>; 1083*4882a593Smuzhiyun status = "disabled"; 1084*4882a593Smuzhiyun }; 1085*4882a593Smuzhiyun 1086*4882a593Smuzhiyun i2c2: i2c@2005a000 { 1087*4882a593Smuzhiyun compatible = "rockchip,rk3288-i2c"; 1088*4882a593Smuzhiyun reg = <0x2005a000 0x1000>; 1089*4882a593Smuzhiyun interrupts = <GIC_SPI 26 IRQ_TYPE_LEVEL_HIGH>; 1090*4882a593Smuzhiyun #address-cells = <1>; 1091*4882a593Smuzhiyun #size-cells = <0>; 1092*4882a593Smuzhiyun clock-names = "i2c"; 1093*4882a593Smuzhiyun clocks = <&cru PCLK_I2C2>; 1094*4882a593Smuzhiyun pinctrl-names = "default"; 1095*4882a593Smuzhiyun pinctrl-0 = <&i2c2_xfer>; 1096*4882a593Smuzhiyun status = "disabled"; 1097*4882a593Smuzhiyun }; 1098*4882a593Smuzhiyun 1099*4882a593Smuzhiyun i2c3: i2c@2005e000 { 1100*4882a593Smuzhiyun compatible = "rockchip,rk3288-i2c"; 1101*4882a593Smuzhiyun reg = <0x2005e000 0x1000>; 1102*4882a593Smuzhiyun interrupts = <GIC_SPI 27 IRQ_TYPE_LEVEL_HIGH>; 1103*4882a593Smuzhiyun #address-cells = <1>; 1104*4882a593Smuzhiyun #size-cells = <0>; 1105*4882a593Smuzhiyun clock-names = "i2c"; 1106*4882a593Smuzhiyun clocks = <&cru PCLK_I2C3>; 1107*4882a593Smuzhiyun pinctrl-names = "default"; 1108*4882a593Smuzhiyun pinctrl-0 = <&i2c3_xfer>; 1109*4882a593Smuzhiyun status = "disabled"; 1110*4882a593Smuzhiyun }; 1111*4882a593Smuzhiyun 1112*4882a593Smuzhiyun uart0: serial@20060000 { 1113*4882a593Smuzhiyun compatible = "rockchip,rk3128-uart", "snps,dw-apb-uart"; 1114*4882a593Smuzhiyun reg = <0x20060000 0x100>; 1115*4882a593Smuzhiyun interrupts = <GIC_SPI 20 IRQ_TYPE_LEVEL_HIGH>; 1116*4882a593Smuzhiyun clock-frequency = <24000000>; 1117*4882a593Smuzhiyun clocks = <&cru SCLK_UART0>, <&cru PCLK_UART0>; 1118*4882a593Smuzhiyun clock-names = "baudclk", "apb_pclk"; 1119*4882a593Smuzhiyun reg-shift = <2>; 1120*4882a593Smuzhiyun reg-io-width = <4>; 1121*4882a593Smuzhiyun pinctrl-names = "default"; 1122*4882a593Smuzhiyun pinctrl-0 = <&uart0_xfer &uart0_cts &uart0_rts>; 1123*4882a593Smuzhiyun status = "disabled"; 1124*4882a593Smuzhiyun }; 1125*4882a593Smuzhiyun 1126*4882a593Smuzhiyun uart1: serial@20064000 { 1127*4882a593Smuzhiyun compatible = "rockchip,rk3128-uart", "snps,dw-apb-uart"; 1128*4882a593Smuzhiyun reg = <0x20064000 0x100>; 1129*4882a593Smuzhiyun interrupts = <GIC_SPI 21 IRQ_TYPE_LEVEL_HIGH>; 1130*4882a593Smuzhiyun clock-frequency = <24000000>; 1131*4882a593Smuzhiyun clocks = <&cru SCLK_UART1>, <&cru PCLK_UART1>; 1132*4882a593Smuzhiyun clock-names = "baudclk", "apb_pclk"; 1133*4882a593Smuzhiyun reg-shift = <2>; 1134*4882a593Smuzhiyun reg-io-width = <4>; 1135*4882a593Smuzhiyun pinctrl-names = "default"; 1136*4882a593Smuzhiyun pinctrl-0 = <&uart1_xfer &uart1_cts &uart1_rts>; 1137*4882a593Smuzhiyun status = "disabled"; 1138*4882a593Smuzhiyun }; 1139*4882a593Smuzhiyun 1140*4882a593Smuzhiyun uart2: serial@20068000 { 1141*4882a593Smuzhiyun compatible = "rockchip,rk3128-uart", "snps,dw-apb-uart"; 1142*4882a593Smuzhiyun reg = <0x20068000 0x100>; 1143*4882a593Smuzhiyun interrupts = <GIC_SPI 22 IRQ_TYPE_LEVEL_HIGH>; 1144*4882a593Smuzhiyun clock-frequency = <24000000>; 1145*4882a593Smuzhiyun clocks = <&cru SCLK_UART2>, <&cru PCLK_UART2>; 1146*4882a593Smuzhiyun clock-names = "baudclk", "apb_pclk"; 1147*4882a593Smuzhiyun reg-shift = <2>; 1148*4882a593Smuzhiyun reg-io-width = <4>; 1149*4882a593Smuzhiyun pinctrl-names = "default"; 1150*4882a593Smuzhiyun pinctrl-0 = <&uart2_xfer>; 1151*4882a593Smuzhiyun status = "disabled"; 1152*4882a593Smuzhiyun }; 1153*4882a593Smuzhiyun 1154*4882a593Smuzhiyun saradc: saradc@2006c000 { 1155*4882a593Smuzhiyun compatible = "rockchip,saradc"; 1156*4882a593Smuzhiyun reg = <0x2006c000 0x100>; 1157*4882a593Smuzhiyun interrupts = <GIC_SPI 17 IRQ_TYPE_LEVEL_HIGH>; 1158*4882a593Smuzhiyun #io-channel-cells = <1>; 1159*4882a593Smuzhiyun clocks = <&cru SCLK_SARADC>, <&cru PCLK_SARADC>; 1160*4882a593Smuzhiyun clock-names = "saradc", "apb_pclk"; 1161*4882a593Smuzhiyun resets = <&cru SRST_SARADC>; 1162*4882a593Smuzhiyun reset-names = "saradc-apb"; 1163*4882a593Smuzhiyun status = "disabled"; 1164*4882a593Smuzhiyun }; 1165*4882a593Smuzhiyun 1166*4882a593Smuzhiyun i2c0: i2c@20072000 { 1167*4882a593Smuzhiyun compatible = "rockchip,rk3288-i2c"; 1168*4882a593Smuzhiyun reg = <0x20072000 0x1000>; 1169*4882a593Smuzhiyun interrupts = <GIC_SPI 24 IRQ_TYPE_LEVEL_HIGH>; 1170*4882a593Smuzhiyun #address-cells = <1>; 1171*4882a593Smuzhiyun #size-cells = <0>; 1172*4882a593Smuzhiyun clock-names = "i2c"; 1173*4882a593Smuzhiyun clocks = <&cru PCLK_I2C0>; 1174*4882a593Smuzhiyun pinctrl-names = "default"; 1175*4882a593Smuzhiyun pinctrl-0 = <&i2c0_xfer>; 1176*4882a593Smuzhiyun status = "disabled"; 1177*4882a593Smuzhiyun }; 1178*4882a593Smuzhiyun 1179*4882a593Smuzhiyun spi0: spi@20074000 { 1180*4882a593Smuzhiyun compatible = "rockchip,rk3288-spi"; 1181*4882a593Smuzhiyun reg = <0x20074000 0x1000>; 1182*4882a593Smuzhiyun interrupts = <GIC_SPI 23 IRQ_TYPE_LEVEL_HIGH>; 1183*4882a593Smuzhiyun pinctrl-names = "default"; 1184*4882a593Smuzhiyun pinctrl-0 = <&spi0m0_tx &spi0m0_rx &spi0m0_clk &spi0m0_cs0 &spi0m0_cs1>; 1185*4882a593Smuzhiyun clock-names = "spiclk", "apb_pclk"; 1186*4882a593Smuzhiyun dmas = <&pdma 8>, <&pdma 9>; 1187*4882a593Smuzhiyun dma-names = "tx", "rx"; 1188*4882a593Smuzhiyun #address-cells = <1>; 1189*4882a593Smuzhiyun #size-cells = <0>; 1190*4882a593Smuzhiyun status = "disabled"; 1191*4882a593Smuzhiyun }; 1192*4882a593Smuzhiyun 1193*4882a593Smuzhiyun gmac: eth@2008c000 { 1194*4882a593Smuzhiyun compatible = "rockchip,rk3128-gmac"; 1195*4882a593Smuzhiyun reg = <0x2008c000 0x4000>; 1196*4882a593Smuzhiyun interrupts = <GIC_SPI 56 IRQ_TYPE_LEVEL_HIGH>, 1197*4882a593Smuzhiyun <GIC_SPI 57 IRQ_TYPE_LEVEL_HIGH>; 1198*4882a593Smuzhiyun interrupt-names = "macirq", "eth_wake_irq"; 1199*4882a593Smuzhiyun rockchip,grf = <&grf>; 1200*4882a593Smuzhiyun clocks = <&cru SCLK_MAC>, 1201*4882a593Smuzhiyun <&cru SCLK_MAC_RX>, <&cru SCLK_MAC_TX>, 1202*4882a593Smuzhiyun <&cru SCLK_MAC_REF>, <&cru SCLK_MAC_REFOUT>, 1203*4882a593Smuzhiyun <&cru ACLK_GMAC>, <&cru PCLK_GMAC>; 1204*4882a593Smuzhiyun clock-names = "stmmaceth", 1205*4882a593Smuzhiyun "mac_clk_rx", "mac_clk_tx", 1206*4882a593Smuzhiyun "clk_mac_ref", "clk_mac_refout", 1207*4882a593Smuzhiyun "aclk_mac", "pclk_mac"; 1208*4882a593Smuzhiyun resets = <&cru SRST_GMAC>; 1209*4882a593Smuzhiyun reset-names = "stmmaceth"; 1210*4882a593Smuzhiyun status = "disabled"; 1211*4882a593Smuzhiyun }; 1212*4882a593Smuzhiyun 1213*4882a593Smuzhiyun efuse: efuse@20090000 { 1214*4882a593Smuzhiyun compatible = "rockchip,rk3128-efuse"; 1215*4882a593Smuzhiyun reg = <0x20090000 0x20>; 1216*4882a593Smuzhiyun #address-cells = <1>; 1217*4882a593Smuzhiyun #size-cells = <1>; 1218*4882a593Smuzhiyun clocks = <&cru PCLK_EFUSE>; 1219*4882a593Smuzhiyun clock-names = "pclk_efuse"; 1220*4882a593Smuzhiyun 1221*4882a593Smuzhiyun efuse_id: id@7 { 1222*4882a593Smuzhiyun reg = <0x7 0x10>; 1223*4882a593Smuzhiyun }; 1224*4882a593Smuzhiyun cpu_leakage: cpu_leakage@17 { 1225*4882a593Smuzhiyun reg = <0x17 0x1>; 1226*4882a593Smuzhiyun }; 1227*4882a593Smuzhiyun }; 1228*4882a593Smuzhiyun 1229*4882a593Smuzhiyun rockchip_system_monitor: rockchip-system-monitor { 1230*4882a593Smuzhiyun compatible = "rockchip,system-monitor"; 1231*4882a593Smuzhiyun }; 1232*4882a593Smuzhiyun 1233*4882a593Smuzhiyun pinctrl: pinctrl { 1234*4882a593Smuzhiyun compatible = "rockchip,rk3128-pinctrl"; 1235*4882a593Smuzhiyun rockchip,grf = <&grf>; 1236*4882a593Smuzhiyun #address-cells = <1>; 1237*4882a593Smuzhiyun #size-cells = <1>; 1238*4882a593Smuzhiyun ranges; 1239*4882a593Smuzhiyun 1240*4882a593Smuzhiyun gpio0: gpio0@2007c000 { 1241*4882a593Smuzhiyun compatible = "rockchip,gpio-bank"; 1242*4882a593Smuzhiyun reg = <0x2007c000 0x100>; 1243*4882a593Smuzhiyun interrupts = <GIC_SPI 36 IRQ_TYPE_LEVEL_HIGH>; 1244*4882a593Smuzhiyun clocks = <&cru PCLK_GPIO0>; 1245*4882a593Smuzhiyun 1246*4882a593Smuzhiyun gpio-controller; 1247*4882a593Smuzhiyun #gpio-cells = <2>; 1248*4882a593Smuzhiyun 1249*4882a593Smuzhiyun interrupt-controller; 1250*4882a593Smuzhiyun #interrupt-cells = <2>; 1251*4882a593Smuzhiyun }; 1252*4882a593Smuzhiyun 1253*4882a593Smuzhiyun gpio1: gpio1@20080000 { 1254*4882a593Smuzhiyun compatible = "rockchip,gpio-bank"; 1255*4882a593Smuzhiyun reg = <0x20080000 0x100>; 1256*4882a593Smuzhiyun interrupts = <GIC_SPI 37 IRQ_TYPE_LEVEL_HIGH>; 1257*4882a593Smuzhiyun clocks = <&cru PCLK_GPIO1>; 1258*4882a593Smuzhiyun 1259*4882a593Smuzhiyun gpio-controller; 1260*4882a593Smuzhiyun #gpio-cells = <2>; 1261*4882a593Smuzhiyun 1262*4882a593Smuzhiyun interrupt-controller; 1263*4882a593Smuzhiyun #interrupt-cells = <2>; 1264*4882a593Smuzhiyun }; 1265*4882a593Smuzhiyun 1266*4882a593Smuzhiyun gpio2: gpio2@20084000 { 1267*4882a593Smuzhiyun compatible = "rockchip,gpio-bank"; 1268*4882a593Smuzhiyun reg = <0x20084000 0x100>; 1269*4882a593Smuzhiyun interrupts = <GIC_SPI 38 IRQ_TYPE_LEVEL_HIGH>; 1270*4882a593Smuzhiyun clocks = <&cru PCLK_GPIO2>; 1271*4882a593Smuzhiyun 1272*4882a593Smuzhiyun gpio-controller; 1273*4882a593Smuzhiyun #gpio-cells = <2>; 1274*4882a593Smuzhiyun 1275*4882a593Smuzhiyun interrupt-controller; 1276*4882a593Smuzhiyun #interrupt-cells = <2>; 1277*4882a593Smuzhiyun }; 1278*4882a593Smuzhiyun 1279*4882a593Smuzhiyun gpio3: gpio3@20088000 { 1280*4882a593Smuzhiyun compatible = "rockchip,gpio-bank"; 1281*4882a593Smuzhiyun reg = <0x20088000 0x100>; 1282*4882a593Smuzhiyun interrupts = <GIC_SPI 39 IRQ_TYPE_LEVEL_HIGH>; 1283*4882a593Smuzhiyun clocks = <&cru PCLK_GPIO3>; 1284*4882a593Smuzhiyun 1285*4882a593Smuzhiyun gpio-controller; 1286*4882a593Smuzhiyun #gpio-cells = <2>; 1287*4882a593Smuzhiyun 1288*4882a593Smuzhiyun interrupt-controller; 1289*4882a593Smuzhiyun #interrupt-cells = <2>; 1290*4882a593Smuzhiyun }; 1291*4882a593Smuzhiyun 1292*4882a593Smuzhiyun pcfg_pull_default: pcfg_pull_default { 1293*4882a593Smuzhiyun bias-pull-pin-default; 1294*4882a593Smuzhiyun }; 1295*4882a593Smuzhiyun 1296*4882a593Smuzhiyun pcfg_output_high: pcfg-output-high { 1297*4882a593Smuzhiyun output-high; 1298*4882a593Smuzhiyun }; 1299*4882a593Smuzhiyun 1300*4882a593Smuzhiyun pcfg_pull_none: pcfg-pull-none { 1301*4882a593Smuzhiyun bias-disable; 1302*4882a593Smuzhiyun }; 1303*4882a593Smuzhiyun 1304*4882a593Smuzhiyun emmc { 1305*4882a593Smuzhiyun emmc_clk: emmc-clk { 1306*4882a593Smuzhiyun rockchip,pins = <2 RK_PA7 2 &pcfg_pull_none>; 1307*4882a593Smuzhiyun }; 1308*4882a593Smuzhiyun 1309*4882a593Smuzhiyun emmc_cmd: emmc-cmd { 1310*4882a593Smuzhiyun rockchip,pins = <1 RK_PC6 2 &pcfg_pull_default>; 1311*4882a593Smuzhiyun }; 1312*4882a593Smuzhiyun 1313*4882a593Smuzhiyun emmc_cmd1: emmc-cmd1 { 1314*4882a593Smuzhiyun rockchip,pins = <2 RK_PA4 2 &pcfg_pull_default>; 1315*4882a593Smuzhiyun }; 1316*4882a593Smuzhiyun 1317*4882a593Smuzhiyun emmc_pwr: emmc-pwr { 1318*4882a593Smuzhiyun rockchip,pins = <2 RK_PA5 2 &pcfg_pull_default>; 1319*4882a593Smuzhiyun }; 1320*4882a593Smuzhiyun 1321*4882a593Smuzhiyun emmc_bus1: emmc-bus1 { 1322*4882a593Smuzhiyun rockchip,pins = <1 RK_PD0 2 &pcfg_pull_default>; 1323*4882a593Smuzhiyun }; 1324*4882a593Smuzhiyun 1325*4882a593Smuzhiyun emmc_bus4: emmc-bus4 { 1326*4882a593Smuzhiyun rockchip,pins = <1 RK_PD0 2 &pcfg_pull_default>, 1327*4882a593Smuzhiyun <1 RK_PD1 2 &pcfg_pull_default>, 1328*4882a593Smuzhiyun <1 RK_PD2 2 &pcfg_pull_default>, 1329*4882a593Smuzhiyun <1 RK_PD3 2 &pcfg_pull_default>; 1330*4882a593Smuzhiyun }; 1331*4882a593Smuzhiyun 1332*4882a593Smuzhiyun emmc_bus8: emmc-bus8 { 1333*4882a593Smuzhiyun rockchip,pins = <1 RK_PD0 2 &pcfg_pull_default>, 1334*4882a593Smuzhiyun <1 RK_PD1 2 &pcfg_pull_default>, 1335*4882a593Smuzhiyun <1 RK_PD2 2 &pcfg_pull_default>, 1336*4882a593Smuzhiyun <1 RK_PD3 2 &pcfg_pull_default>, 1337*4882a593Smuzhiyun <1 RK_PD4 2 &pcfg_pull_default>, 1338*4882a593Smuzhiyun <1 RK_PD5 2 &pcfg_pull_default>, 1339*4882a593Smuzhiyun <1 RK_PD6 2 &pcfg_pull_default>, 1340*4882a593Smuzhiyun <1 RK_PD7 2 &pcfg_pull_default>; 1341*4882a593Smuzhiyun }; 1342*4882a593Smuzhiyun }; 1343*4882a593Smuzhiyun 1344*4882a593Smuzhiyun i2c0 { 1345*4882a593Smuzhiyun i2c0_xfer: i2c0-xfer { 1346*4882a593Smuzhiyun rockchip,pins = <0 RK_PA0 1 &pcfg_pull_none>, 1347*4882a593Smuzhiyun <0 RK_PA1 1 &pcfg_pull_none>; 1348*4882a593Smuzhiyun }; 1349*4882a593Smuzhiyun }; 1350*4882a593Smuzhiyun 1351*4882a593Smuzhiyun i2c1 { 1352*4882a593Smuzhiyun i2c1_xfer: i2c1-xfer { 1353*4882a593Smuzhiyun rockchip,pins = <0 RK_PA2 1 &pcfg_pull_none>, 1354*4882a593Smuzhiyun <0 RK_PA3 1 &pcfg_pull_none>; 1355*4882a593Smuzhiyun }; 1356*4882a593Smuzhiyun }; 1357*4882a593Smuzhiyun 1358*4882a593Smuzhiyun i2c2 { 1359*4882a593Smuzhiyun i2c2_xfer: i2c2-xfer { 1360*4882a593Smuzhiyun rockchip,pins = <2 RK_PC4 3 &pcfg_pull_none>, 1361*4882a593Smuzhiyun <2 RK_PC5 3 &pcfg_pull_none>; 1362*4882a593Smuzhiyun }; 1363*4882a593Smuzhiyun }; 1364*4882a593Smuzhiyun 1365*4882a593Smuzhiyun i2c3 { 1366*4882a593Smuzhiyun i2c3_xfer: i2c3-xfer { 1367*4882a593Smuzhiyun rockchip,pins = <0 RK_PA6 1 &pcfg_pull_none>, 1368*4882a593Smuzhiyun <0 RK_PA7 1 &pcfg_pull_none>; 1369*4882a593Smuzhiyun }; 1370*4882a593Smuzhiyun }; 1371*4882a593Smuzhiyun 1372*4882a593Smuzhiyun lcdc { 1373*4882a593Smuzhiyun lcdc_rgb_pins: lcdc-rgb-pins { 1374*4882a593Smuzhiyun rockchip,pins = 1375*4882a593Smuzhiyun <2 RK_PB0 1 &pcfg_pull_none>, /* LCDC_DCLK */ 1376*4882a593Smuzhiyun <2 RK_PB1 1 &pcfg_pull_none>, /* LCDC_HSYNC */ 1377*4882a593Smuzhiyun <2 RK_PB2 1 &pcfg_pull_none>, /* LCDC_VSYNC */ 1378*4882a593Smuzhiyun <2 RK_PB3 1 &pcfg_pull_none>, /* LCDC_DEN */ 1379*4882a593Smuzhiyun <2 RK_PB4 1 &pcfg_pull_none>, /* LCDC_DATA10 */ 1380*4882a593Smuzhiyun <2 RK_PB5 1 &pcfg_pull_none>, /* LCDC_DATA11 */ 1381*4882a593Smuzhiyun <2 RK_PB6 1 &pcfg_pull_none>, /* LCDC_DATA12 */ 1382*4882a593Smuzhiyun <2 RK_PB7 1 &pcfg_pull_none>, /* LCDC_DATA13 */ 1383*4882a593Smuzhiyun <2 RK_PC0 1 &pcfg_pull_none>, /* LCDC_DATA14 */ 1384*4882a593Smuzhiyun <2 RK_PC1 1 &pcfg_pull_none>, /* LCDC_DATA15 */ 1385*4882a593Smuzhiyun <2 RK_PC2 1 &pcfg_pull_none>, /* LCDC_DATA16 */ 1386*4882a593Smuzhiyun <2 RK_PC3 1 &pcfg_pull_none>, /* LCDC_DATA17 */ 1387*4882a593Smuzhiyun <2 RK_PC4 1 &pcfg_pull_none>, /* LCDC_DATA18 */ 1388*4882a593Smuzhiyun <2 RK_PC5 1 &pcfg_pull_none>, /* LCDC_DATA19 */ 1389*4882a593Smuzhiyun <2 RK_PC6 1 &pcfg_pull_none>, /* LCDC_DATA20 */ 1390*4882a593Smuzhiyun <2 RK_PC7 1 &pcfg_pull_none>, /* LCDC_DATA21 */ 1391*4882a593Smuzhiyun <2 RK_PD0 1 &pcfg_pull_none>, /* LCDC_DATA22 */ 1392*4882a593Smuzhiyun <2 RK_PD1 1 &pcfg_pull_none>; /* LCDC_DATA23 */ 1393*4882a593Smuzhiyun }; 1394*4882a593Smuzhiyun 1395*4882a593Smuzhiyun lcdc_sleep_pins: lcdc-sleep-pins { 1396*4882a593Smuzhiyun rockchip,pins = 1397*4882a593Smuzhiyun <2 RK_PB0 RK_FUNC_GPIO &pcfg_pull_none>, /* LCDC_DCLK */ 1398*4882a593Smuzhiyun <2 RK_PB1 RK_FUNC_GPIO &pcfg_pull_none>, /* LCDC_HSYNC */ 1399*4882a593Smuzhiyun <2 RK_PB2 RK_FUNC_GPIO &pcfg_pull_none>, /* LCDC_VSYNC */ 1400*4882a593Smuzhiyun <2 RK_PB3 RK_FUNC_GPIO &pcfg_pull_none>, /* LCDC_DEN */ 1401*4882a593Smuzhiyun <2 RK_PB4 RK_FUNC_GPIO &pcfg_pull_none>, /* LCDC_DATA10 */ 1402*4882a593Smuzhiyun <2 RK_PB5 RK_FUNC_GPIO &pcfg_pull_none>, /* LCDC_DATA11 */ 1403*4882a593Smuzhiyun <2 RK_PB6 RK_FUNC_GPIO &pcfg_pull_none>, /* LCDC_DATA12 */ 1404*4882a593Smuzhiyun <2 RK_PB7 RK_FUNC_GPIO &pcfg_pull_none>, /* LCDC_DATA13 */ 1405*4882a593Smuzhiyun <2 RK_PC0 RK_FUNC_GPIO &pcfg_pull_none>, /* LCDC_DATA14 */ 1406*4882a593Smuzhiyun <2 RK_PC1 RK_FUNC_GPIO &pcfg_pull_none>, /* LCDC_DATA15 */ 1407*4882a593Smuzhiyun <2 RK_PC2 RK_FUNC_GPIO &pcfg_pull_none>, /* LCDC_DATA16 */ 1408*4882a593Smuzhiyun <2 RK_PC3 RK_FUNC_GPIO &pcfg_pull_none>, /* LCDC_DATA17 */ 1409*4882a593Smuzhiyun <2 RK_PC4 RK_FUNC_GPIO &pcfg_pull_none>, /* LCDC_DATA18 */ 1410*4882a593Smuzhiyun <2 RK_PC5 RK_FUNC_GPIO &pcfg_pull_none>, /* LCDC_DATA19 */ 1411*4882a593Smuzhiyun <2 RK_PC6 RK_FUNC_GPIO &pcfg_pull_none>, /* LCDC_DATA20 */ 1412*4882a593Smuzhiyun <2 RK_PC7 RK_FUNC_GPIO &pcfg_pull_none>, /* LCDC_DATA21 */ 1413*4882a593Smuzhiyun <2 RK_PD0 RK_FUNC_GPIO &pcfg_pull_none>, /* LCDC_DATA22 */ 1414*4882a593Smuzhiyun <2 RK_PD1 RK_FUNC_GPIO &pcfg_pull_none>; /* LCDC_DATA23 */ 1415*4882a593Smuzhiyun }; 1416*4882a593Smuzhiyun }; 1417*4882a593Smuzhiyun 1418*4882a593Smuzhiyun uart0 { 1419*4882a593Smuzhiyun uart0_xfer: uart0-xfer { 1420*4882a593Smuzhiyun rockchip,pins = <2 RK_PD2 2 &pcfg_pull_default>, 1421*4882a593Smuzhiyun <2 RK_PD3 2 &pcfg_pull_none>; 1422*4882a593Smuzhiyun }; 1423*4882a593Smuzhiyun 1424*4882a593Smuzhiyun uart0_cts: uart0-cts { 1425*4882a593Smuzhiyun rockchip,pins = <2 RK_PD5 2 &pcfg_pull_none>; 1426*4882a593Smuzhiyun }; 1427*4882a593Smuzhiyun 1428*4882a593Smuzhiyun uart0_rts: uart0-rts { 1429*4882a593Smuzhiyun rockchip,pins = <0 RK_PC1 2 &pcfg_pull_none>; 1430*4882a593Smuzhiyun }; 1431*4882a593Smuzhiyun }; 1432*4882a593Smuzhiyun 1433*4882a593Smuzhiyun uart1 { 1434*4882a593Smuzhiyun uart1_xfer: uart1-xfer { 1435*4882a593Smuzhiyun rockchip,pins = <1 RK_PB1 2 &pcfg_pull_default>, 1436*4882a593Smuzhiyun <1 RK_PB2 2 &pcfg_pull_default>; 1437*4882a593Smuzhiyun }; 1438*4882a593Smuzhiyun 1439*4882a593Smuzhiyun uart1_cts: uart1-cts { 1440*4882a593Smuzhiyun rockchip,pins = <1 RK_PB0 2 &pcfg_pull_none>; 1441*4882a593Smuzhiyun }; 1442*4882a593Smuzhiyun 1443*4882a593Smuzhiyun uart1_rts: uart1-rts { 1444*4882a593Smuzhiyun rockchip,pins = <1 RK_PB3 2 &pcfg_pull_none>; 1445*4882a593Smuzhiyun }; 1446*4882a593Smuzhiyun }; 1447*4882a593Smuzhiyun 1448*4882a593Smuzhiyun uart2 { 1449*4882a593Smuzhiyun uart2_xfer: uart2-xfer { 1450*4882a593Smuzhiyun rockchip,pins = <1 RK_PC2 2 &pcfg_pull_default>, 1451*4882a593Smuzhiyun <1 RK_PC3 2 &pcfg_pull_none>; 1452*4882a593Smuzhiyun }; 1453*4882a593Smuzhiyun 1454*4882a593Smuzhiyun uart2_cts: uart2-cts { 1455*4882a593Smuzhiyun rockchip,pins = <0 RK_PD1 1 &pcfg_pull_none>; 1456*4882a593Smuzhiyun }; 1457*4882a593Smuzhiyun 1458*4882a593Smuzhiyun uart2_rts: uart2-rts { 1459*4882a593Smuzhiyun rockchip,pins = <0 RK_PD0 1 &pcfg_pull_none>; 1460*4882a593Smuzhiyun }; 1461*4882a593Smuzhiyun }; 1462*4882a593Smuzhiyun 1463*4882a593Smuzhiyun sdmmc { 1464*4882a593Smuzhiyun sdmmc_clk: sdmmc-clk { 1465*4882a593Smuzhiyun rockchip,pins = <1 RK_PC0 1 &pcfg_pull_none>; 1466*4882a593Smuzhiyun }; 1467*4882a593Smuzhiyun 1468*4882a593Smuzhiyun sdmmc_det: sdmmc-det { 1469*4882a593Smuzhiyun rockchip,pins = <1 RK_PC1 1 &pcfg_pull_none>; 1470*4882a593Smuzhiyun }; 1471*4882a593Smuzhiyun 1472*4882a593Smuzhiyun sdmmc_cmd: sdmmc-cmd { 1473*4882a593Smuzhiyun rockchip,pins = <1 RK_PB7 1 &pcfg_pull_default>; 1474*4882a593Smuzhiyun }; 1475*4882a593Smuzhiyun 1476*4882a593Smuzhiyun sdmmc_wp: sdmmc-wp { 1477*4882a593Smuzhiyun rockchip,pins = <1 RK_PA7 1 &pcfg_pull_default>; 1478*4882a593Smuzhiyun }; 1479*4882a593Smuzhiyun 1480*4882a593Smuzhiyun sdmmc_pwren: sdmmc-pwren { 1481*4882a593Smuzhiyun rockchip,pins = <1 RK_PB6 1 &pcfg_pull_default>; 1482*4882a593Smuzhiyun }; 1483*4882a593Smuzhiyun 1484*4882a593Smuzhiyun sdmmc_bus4: sdmmc-bus4 { 1485*4882a593Smuzhiyun rockchip,pins = <1 RK_PC2 1 &pcfg_pull_default>, 1486*4882a593Smuzhiyun <1 RK_PC3 1 &pcfg_pull_default>, 1487*4882a593Smuzhiyun <1 RK_PC4 1 &pcfg_pull_default>, 1488*4882a593Smuzhiyun <1 RK_PC5 1 &pcfg_pull_default>; 1489*4882a593Smuzhiyun }; 1490*4882a593Smuzhiyun }; 1491*4882a593Smuzhiyun 1492*4882a593Smuzhiyun sdio { 1493*4882a593Smuzhiyun sdio_clk: sdio-clk { 1494*4882a593Smuzhiyun rockchip,pins = <1 RK_PA0 2 &pcfg_pull_none>; 1495*4882a593Smuzhiyun }; 1496*4882a593Smuzhiyun 1497*4882a593Smuzhiyun sdio_cmd: sdio-cmd { 1498*4882a593Smuzhiyun rockchip,pins = <0 RK_PA3 2 &pcfg_pull_default>; 1499*4882a593Smuzhiyun }; 1500*4882a593Smuzhiyun 1501*4882a593Smuzhiyun sdio_pwren: sdio-pwren { 1502*4882a593Smuzhiyun rockchip,pins = <0 RK_PD6 1 &pcfg_pull_default>; 1503*4882a593Smuzhiyun }; 1504*4882a593Smuzhiyun 1505*4882a593Smuzhiyun sdio_bus4: sdio-bus4 { 1506*4882a593Smuzhiyun rockchip,pins = <1 RK_PA1 2 &pcfg_pull_default>, 1507*4882a593Smuzhiyun <1 RK_PA2 2 &pcfg_pull_default>, 1508*4882a593Smuzhiyun <1 RK_PA4 2 &pcfg_pull_default>, 1509*4882a593Smuzhiyun <1 RK_PA5 2 &pcfg_pull_default>; 1510*4882a593Smuzhiyun }; 1511*4882a593Smuzhiyun }; 1512*4882a593Smuzhiyun 1513*4882a593Smuzhiyun hdmi { 1514*4882a593Smuzhiyun hdmii2c_xfer: hdmii2c-xfer { 1515*4882a593Smuzhiyun rockchip,pins = <0 RK_PA6 2 &pcfg_pull_none>, 1516*4882a593Smuzhiyun <0 RK_PA7 2 &pcfg_pull_none>; 1517*4882a593Smuzhiyun }; 1518*4882a593Smuzhiyun 1519*4882a593Smuzhiyun hdmi_hpd: hdmi-hpd { 1520*4882a593Smuzhiyun rockchip,pins = <0 RK_PB7 1 &pcfg_pull_none>; 1521*4882a593Smuzhiyun }; 1522*4882a593Smuzhiyun 1523*4882a593Smuzhiyun hdmi_cec: hdmi-cec { 1524*4882a593Smuzhiyun rockchip,pins = <0 RK_PC4 1 &pcfg_pull_none>; 1525*4882a593Smuzhiyun }; 1526*4882a593Smuzhiyun }; 1527*4882a593Smuzhiyun 1528*4882a593Smuzhiyun i2s { 1529*4882a593Smuzhiyun i2s_bus: i2s-bus { 1530*4882a593Smuzhiyun rockchip,pins = <0 RK_PB0 1 &pcfg_pull_none>, 1531*4882a593Smuzhiyun <0 RK_PB1 1 &pcfg_pull_none>, 1532*4882a593Smuzhiyun <0 RK_PB3 1 &pcfg_pull_none>, 1533*4882a593Smuzhiyun <0 RK_PB4 1 &pcfg_pull_none>, 1534*4882a593Smuzhiyun <0 RK_PB5 1 &pcfg_pull_none>, 1535*4882a593Smuzhiyun <0 RK_PB6 1 &pcfg_pull_none>; 1536*4882a593Smuzhiyun }; 1537*4882a593Smuzhiyun 1538*4882a593Smuzhiyun i2s1_bus: i2s1-bus { 1539*4882a593Smuzhiyun rockchip,pins = <1 RK_PA0 1 &pcfg_pull_none>, 1540*4882a593Smuzhiyun <1 RK_PA1 1 &pcfg_pull_none>, 1541*4882a593Smuzhiyun <1 RK_PA2 1 &pcfg_pull_none>, 1542*4882a593Smuzhiyun <1 RK_PA3 1 &pcfg_pull_none>, 1543*4882a593Smuzhiyun <1 RK_PA4 1 &pcfg_pull_none>, 1544*4882a593Smuzhiyun <1 RK_PA5 1 &pcfg_pull_none>; 1545*4882a593Smuzhiyun }; 1546*4882a593Smuzhiyun }; 1547*4882a593Smuzhiyun 1548*4882a593Smuzhiyun pwm0 { 1549*4882a593Smuzhiyun pwm0_pin: pwm0-pin { 1550*4882a593Smuzhiyun rockchip,pins = <0 RK_PD2 1 &pcfg_pull_none>; 1551*4882a593Smuzhiyun }; 1552*4882a593Smuzhiyun }; 1553*4882a593Smuzhiyun 1554*4882a593Smuzhiyun pwm1 { 1555*4882a593Smuzhiyun pwm1_pin: pwm1-pin { 1556*4882a593Smuzhiyun rockchip,pins = <0 RK_PD3 1 &pcfg_pull_none>; 1557*4882a593Smuzhiyun }; 1558*4882a593Smuzhiyun }; 1559*4882a593Smuzhiyun 1560*4882a593Smuzhiyun pwm2 { 1561*4882a593Smuzhiyun pwm2_pin: pwm2-pin { 1562*4882a593Smuzhiyun rockchip,pins = <0 RK_PD4 1 &pcfg_pull_none>; 1563*4882a593Smuzhiyun }; 1564*4882a593Smuzhiyun }; 1565*4882a593Smuzhiyun 1566*4882a593Smuzhiyun pwm3 { 1567*4882a593Smuzhiyun pwm3_pin: pwm3-pin { 1568*4882a593Smuzhiyun rockchip,pins = <3 RK_PD2 1 &pcfg_pull_none>; 1569*4882a593Smuzhiyun }; 1570*4882a593Smuzhiyun }; 1571*4882a593Smuzhiyun 1572*4882a593Smuzhiyun gmac { 1573*4882a593Smuzhiyun rgmii_pins: rgmii-pins { 1574*4882a593Smuzhiyun rockchip,pins = <2 RK_PB0 3 &pcfg_pull_default>, 1575*4882a593Smuzhiyun <2 RK_PB1 3 &pcfg_pull_default>, 1576*4882a593Smuzhiyun <2 RK_PB3 3 &pcfg_pull_default>, 1577*4882a593Smuzhiyun <2 RK_PB4 3 &pcfg_pull_default>, 1578*4882a593Smuzhiyun <2 RK_PB5 3 &pcfg_pull_default>, 1579*4882a593Smuzhiyun <2 RK_PB6 3 &pcfg_pull_default>, 1580*4882a593Smuzhiyun <2 RK_PC0 3 &pcfg_pull_default>, 1581*4882a593Smuzhiyun <2 RK_PC1 3 &pcfg_pull_default>, 1582*4882a593Smuzhiyun <2 RK_PC2 3 &pcfg_pull_default>, 1583*4882a593Smuzhiyun <2 RK_PC3 3 &pcfg_pull_default>, 1584*4882a593Smuzhiyun <2 RK_PD1 3 &pcfg_pull_default>, 1585*4882a593Smuzhiyun <2 RK_PC4 4 &pcfg_pull_default>, 1586*4882a593Smuzhiyun <2 RK_PC5 4 &pcfg_pull_default>, 1587*4882a593Smuzhiyun <2 RK_PC6 4 &pcfg_pull_default>, 1588*4882a593Smuzhiyun <2 RK_PC7 4 &pcfg_pull_default>; 1589*4882a593Smuzhiyun }; 1590*4882a593Smuzhiyun 1591*4882a593Smuzhiyun rmii_pins: rmii-pins { 1592*4882a593Smuzhiyun rockchip,pins = <2 RK_PB0 3 &pcfg_pull_default>, 1593*4882a593Smuzhiyun <2 RK_PB4 3 &pcfg_pull_default>, 1594*4882a593Smuzhiyun <2 RK_PB5 3 &pcfg_pull_default>, 1595*4882a593Smuzhiyun <2 RK_PB6 3 &pcfg_pull_default>, 1596*4882a593Smuzhiyun <2 RK_PB7 3 &pcfg_pull_default>, 1597*4882a593Smuzhiyun <2 RK_PC0 3 &pcfg_pull_default>, 1598*4882a593Smuzhiyun <2 RK_PC1 3 &pcfg_pull_default>, 1599*4882a593Smuzhiyun <2 RK_PC2 3 &pcfg_pull_default>, 1600*4882a593Smuzhiyun <2 RK_PC3 3 &pcfg_pull_default>, 1601*4882a593Smuzhiyun <2 RK_PD1 3 &pcfg_pull_default>; 1602*4882a593Smuzhiyun }; 1603*4882a593Smuzhiyun }; 1604*4882a593Smuzhiyun 1605*4882a593Smuzhiyun spdif { 1606*4882a593Smuzhiyun spdif_tx: spdif-tx { 1607*4882a593Smuzhiyun rockchip,pins = <3 RK_PD3 1 &pcfg_pull_none>; 1608*4882a593Smuzhiyun }; 1609*4882a593Smuzhiyun }; 1610*4882a593Smuzhiyun 1611*4882a593Smuzhiyun spi0 { 1612*4882a593Smuzhiyun spi0m0_clk: spi0m0-clk { 1613*4882a593Smuzhiyun rockchip,pins = <1 RK_PB0 1 &pcfg_pull_default>; 1614*4882a593Smuzhiyun }; 1615*4882a593Smuzhiyun 1616*4882a593Smuzhiyun spi0m0_cs0: spi0m0-cs0 { 1617*4882a593Smuzhiyun rockchip,pins = <1 RK_PB3 1 &pcfg_pull_default>; 1618*4882a593Smuzhiyun }; 1619*4882a593Smuzhiyun 1620*4882a593Smuzhiyun spi0m0_tx: spi0m0-tx { 1621*4882a593Smuzhiyun rockchip,pins = <1 RK_PB1 1 &pcfg_pull_default>; 1622*4882a593Smuzhiyun }; 1623*4882a593Smuzhiyun 1624*4882a593Smuzhiyun spi0m0_rx: spi0m0-rx { 1625*4882a593Smuzhiyun rockchip,pins = <1 RK_PB2 1 &pcfg_pull_default>; 1626*4882a593Smuzhiyun }; 1627*4882a593Smuzhiyun 1628*4882a593Smuzhiyun spi0m0_cs1: spi0m0-cs1 { 1629*4882a593Smuzhiyun rockchip,pins = <1 RK_PB4 1 &pcfg_pull_default>; 1630*4882a593Smuzhiyun }; 1631*4882a593Smuzhiyun 1632*4882a593Smuzhiyun spi0m1_clk: spi0m1-clk { 1633*4882a593Smuzhiyun rockchip,pins = <2 RK_PA0 2 &pcfg_pull_default>; 1634*4882a593Smuzhiyun }; 1635*4882a593Smuzhiyun 1636*4882a593Smuzhiyun spi0m1_cs0: spi0m1-cs0 { 1637*4882a593Smuzhiyun rockchip,pins = <1 RK_PD6 3 &pcfg_pull_default>; 1638*4882a593Smuzhiyun }; 1639*4882a593Smuzhiyun 1640*4882a593Smuzhiyun spi0m1_tx: spi0m1-tx { 1641*4882a593Smuzhiyun rockchip,pins = <1 RK_PD5 3 &pcfg_pull_default>; 1642*4882a593Smuzhiyun }; 1643*4882a593Smuzhiyun 1644*4882a593Smuzhiyun spi0m1_rx: spi0m1-rx { 1645*4882a593Smuzhiyun rockchip,pins = <1 RK_PD4 3 &pcfg_pull_default>; 1646*4882a593Smuzhiyun }; 1647*4882a593Smuzhiyun 1648*4882a593Smuzhiyun spi0m1_cs1: spi0m1-cs1 { 1649*4882a593Smuzhiyun rockchip,pins = <1 RK_PD7 3 &pcfg_pull_default>; 1650*4882a593Smuzhiyun }; 1651*4882a593Smuzhiyun 1652*4882a593Smuzhiyun spi0m2_clk: spi0m2-clk { 1653*4882a593Smuzhiyun rockchip,pins = <0 RK_PB1 2 &pcfg_pull_default>; 1654*4882a593Smuzhiyun }; 1655*4882a593Smuzhiyun 1656*4882a593Smuzhiyun spi0m2_cs0: spi0m2-cs0 { 1657*4882a593Smuzhiyun rockchip,pins = <0 RK_PB6 2 &pcfg_pull_default>; 1658*4882a593Smuzhiyun }; 1659*4882a593Smuzhiyun 1660*4882a593Smuzhiyun spi0m2_tx: spi0m2-tx { 1661*4882a593Smuzhiyun rockchip,pins = <0 RK_PB3 2 &pcfg_pull_default>; 1662*4882a593Smuzhiyun }; 1663*4882a593Smuzhiyun 1664*4882a593Smuzhiyun spi0m2_rx: spi0m2-rx { 1665*4882a593Smuzhiyun rockchip,pins = <0 RK_PB5 2 &pcfg_pull_default>; 1666*4882a593Smuzhiyun }; 1667*4882a593Smuzhiyun }; 1668*4882a593Smuzhiyun }; 1669*4882a593Smuzhiyun}; 1670