1*4882a593Smuzhiyun// SPDX-License-Identifier: (GPL-2.0+ OR MIT) 2*4882a593Smuzhiyun 3*4882a593Smuzhiyun#include <dt-bindings/gpio/gpio.h> 4*4882a593Smuzhiyun#include <dt-bindings/interrupt-controller/irq.h> 5*4882a593Smuzhiyun#include <dt-bindings/interrupt-controller/arm-gic.h> 6*4882a593Smuzhiyun#include <dt-bindings/pinctrl/rockchip.h> 7*4882a593Smuzhiyun#include <dt-bindings/clock/rk3288-cru.h> 8*4882a593Smuzhiyun#include <dt-bindings/power/rk3288-power.h> 9*4882a593Smuzhiyun#include <dt-bindings/thermal/thermal.h> 10*4882a593Smuzhiyun#include <dt-bindings/soc/rockchip,boot-mode.h> 11*4882a593Smuzhiyun#include <dt-bindings/suspend/rockchip-rk3288.h> 12*4882a593Smuzhiyun 13*4882a593Smuzhiyun/ { 14*4882a593Smuzhiyun #address-cells = <2>; 15*4882a593Smuzhiyun #size-cells = <2>; 16*4882a593Smuzhiyun 17*4882a593Smuzhiyun compatible = "rockchip,rk3288"; 18*4882a593Smuzhiyun 19*4882a593Smuzhiyun interrupt-parent = <&gic>; 20*4882a593Smuzhiyun 21*4882a593Smuzhiyun aliases { 22*4882a593Smuzhiyun dsi0 = &dsi0; 23*4882a593Smuzhiyun dsi1 = &dsi1; 24*4882a593Smuzhiyun ethernet0 = &gmac; 25*4882a593Smuzhiyun gpio0 = &gpio0; 26*4882a593Smuzhiyun gpio1 = &gpio1; 27*4882a593Smuzhiyun gpio2 = &gpio2; 28*4882a593Smuzhiyun gpio3 = &gpio3; 29*4882a593Smuzhiyun gpio4 = &gpio4; 30*4882a593Smuzhiyun gpio5 = &gpio5; 31*4882a593Smuzhiyun gpio6 = &gpio6; 32*4882a593Smuzhiyun gpio7 = &gpio7; 33*4882a593Smuzhiyun gpio8 = &gpio8; 34*4882a593Smuzhiyun i2c0 = &i2c0; 35*4882a593Smuzhiyun i2c1 = &i2c1; 36*4882a593Smuzhiyun i2c2 = &i2c2; 37*4882a593Smuzhiyun i2c3 = &i2c3; 38*4882a593Smuzhiyun i2c4 = &i2c4; 39*4882a593Smuzhiyun i2c5 = &i2c5; 40*4882a593Smuzhiyun mshc0 = &emmc; 41*4882a593Smuzhiyun mshc1 = &sdmmc; 42*4882a593Smuzhiyun mshc2 = &sdio0; 43*4882a593Smuzhiyun mshc3 = &sdio1; 44*4882a593Smuzhiyun serial0 = &uart0; 45*4882a593Smuzhiyun serial1 = &uart1; 46*4882a593Smuzhiyun serial2 = &uart2; 47*4882a593Smuzhiyun serial3 = &uart3; 48*4882a593Smuzhiyun serial4 = &uart4; 49*4882a593Smuzhiyun spi0 = &spi0; 50*4882a593Smuzhiyun spi1 = &spi1; 51*4882a593Smuzhiyun spi2 = &spi2; 52*4882a593Smuzhiyun }; 53*4882a593Smuzhiyun 54*4882a593Smuzhiyun arm-pmu { 55*4882a593Smuzhiyun compatible = "arm,cortex-a12-pmu"; 56*4882a593Smuzhiyun interrupts = <GIC_SPI 151 IRQ_TYPE_LEVEL_HIGH>, 57*4882a593Smuzhiyun <GIC_SPI 152 IRQ_TYPE_LEVEL_HIGH>, 58*4882a593Smuzhiyun <GIC_SPI 153 IRQ_TYPE_LEVEL_HIGH>, 59*4882a593Smuzhiyun <GIC_SPI 154 IRQ_TYPE_LEVEL_HIGH>; 60*4882a593Smuzhiyun interrupt-affinity = <&cpu0>, <&cpu1>, <&cpu2>, <&cpu3>; 61*4882a593Smuzhiyun }; 62*4882a593Smuzhiyun 63*4882a593Smuzhiyun psci { 64*4882a593Smuzhiyun compatible = "arm,psci-1.0"; 65*4882a593Smuzhiyun method = "smc"; 66*4882a593Smuzhiyun }; 67*4882a593Smuzhiyun 68*4882a593Smuzhiyun cpus { 69*4882a593Smuzhiyun #address-cells = <1>; 70*4882a593Smuzhiyun #size-cells = <0>; 71*4882a593Smuzhiyun enable-method = "rockchip,rk3066-smp"; 72*4882a593Smuzhiyun rockchip,pmu = <&pmu>; 73*4882a593Smuzhiyun 74*4882a593Smuzhiyun cpu0: cpu@500 { 75*4882a593Smuzhiyun device_type = "cpu"; 76*4882a593Smuzhiyun compatible = "arm,cortex-a12"; 77*4882a593Smuzhiyun reg = <0x500>; 78*4882a593Smuzhiyun enable-method = "psci"; 79*4882a593Smuzhiyun resets = <&cru SRST_CORE0>; 80*4882a593Smuzhiyun operating-points-v2 = <&cpu_opp_table>; 81*4882a593Smuzhiyun #cooling-cells = <2>; /* min followed by max */ 82*4882a593Smuzhiyun clock-latency = <40000>; 83*4882a593Smuzhiyun clocks = <&cru ARMCLK>; 84*4882a593Smuzhiyun dynamic-power-coefficient = <370>; 85*4882a593Smuzhiyun }; 86*4882a593Smuzhiyun cpu1: cpu@501 { 87*4882a593Smuzhiyun device_type = "cpu"; 88*4882a593Smuzhiyun compatible = "arm,cortex-a12"; 89*4882a593Smuzhiyun reg = <0x501>; 90*4882a593Smuzhiyun enable-method = "psci"; 91*4882a593Smuzhiyun resets = <&cru SRST_CORE1>; 92*4882a593Smuzhiyun operating-points-v2 = <&cpu_opp_table>; 93*4882a593Smuzhiyun #cooling-cells = <2>; /* min followed by max */ 94*4882a593Smuzhiyun clock-latency = <40000>; 95*4882a593Smuzhiyun clocks = <&cru ARMCLK>; 96*4882a593Smuzhiyun dynamic-power-coefficient = <370>; 97*4882a593Smuzhiyun }; 98*4882a593Smuzhiyun cpu2: cpu@502 { 99*4882a593Smuzhiyun device_type = "cpu"; 100*4882a593Smuzhiyun compatible = "arm,cortex-a12"; 101*4882a593Smuzhiyun reg = <0x502>; 102*4882a593Smuzhiyun enable-method = "psci"; 103*4882a593Smuzhiyun resets = <&cru SRST_CORE2>; 104*4882a593Smuzhiyun operating-points-v2 = <&cpu_opp_table>; 105*4882a593Smuzhiyun #cooling-cells = <2>; /* min followed by max */ 106*4882a593Smuzhiyun clock-latency = <40000>; 107*4882a593Smuzhiyun clocks = <&cru ARMCLK>; 108*4882a593Smuzhiyun dynamic-power-coefficient = <370>; 109*4882a593Smuzhiyun }; 110*4882a593Smuzhiyun cpu3: cpu@503 { 111*4882a593Smuzhiyun device_type = "cpu"; 112*4882a593Smuzhiyun compatible = "arm,cortex-a12"; 113*4882a593Smuzhiyun reg = <0x503>; 114*4882a593Smuzhiyun enable-method = "psci"; 115*4882a593Smuzhiyun resets = <&cru SRST_CORE3>; 116*4882a593Smuzhiyun operating-points-v2 = <&cpu_opp_table>; 117*4882a593Smuzhiyun #cooling-cells = <2>; /* min followed by max */ 118*4882a593Smuzhiyun clock-latency = <40000>; 119*4882a593Smuzhiyun clocks = <&cru ARMCLK>; 120*4882a593Smuzhiyun dynamic-power-coefficient = <370>; 121*4882a593Smuzhiyun }; 122*4882a593Smuzhiyun }; 123*4882a593Smuzhiyun 124*4882a593Smuzhiyun cpu_opp_table: cpu-opp-table { 125*4882a593Smuzhiyun compatible = "operating-points-v2"; 126*4882a593Smuzhiyun opp-shared; 127*4882a593Smuzhiyun 128*4882a593Smuzhiyun clocks = <&cru PLL_APLL>; 129*4882a593Smuzhiyun rockchip,avs-scale = <17>; 130*4882a593Smuzhiyun rockchip,max-volt = <1350000>; 131*4882a593Smuzhiyun nvmem-cells = <&cpu_leakage>, <&special_function>, 132*4882a593Smuzhiyun <&performance>, <&process_version>, 133*4882a593Smuzhiyun <&performance_w>, <&package_info>; 134*4882a593Smuzhiyun nvmem-cell-names = "leakage", "special", 135*4882a593Smuzhiyun "performance", "process", 136*4882a593Smuzhiyun "performance-w", "package"; 137*4882a593Smuzhiyun rockchip,bin-scaling-sel = < 138*4882a593Smuzhiyun 0 17 139*4882a593Smuzhiyun 1 25 140*4882a593Smuzhiyun 2 27 141*4882a593Smuzhiyun 3 31 142*4882a593Smuzhiyun >; 143*4882a593Smuzhiyun rockchip,pvtm-voltage-sel = < 144*4882a593Smuzhiyun 0 15300 0 145*4882a593Smuzhiyun 15301 16000 1 146*4882a593Smuzhiyun 16001 17000 2 147*4882a593Smuzhiyun 17001 99999 3 148*4882a593Smuzhiyun >; 149*4882a593Smuzhiyun rockchip,pvtm-freq = <408000>; 150*4882a593Smuzhiyun rockchip,pvtm-volt = <1000000>; 151*4882a593Smuzhiyun rockchip,pvtm-ch = <0 0>; 152*4882a593Smuzhiyun rockchip,pvtm-sample-time = <1000>; 153*4882a593Smuzhiyun rockchip,pvtm-number = <10>; 154*4882a593Smuzhiyun rockchip,pvtm-error = <1000>; 155*4882a593Smuzhiyun rockchip,pvtm-ref-temp = <35>; 156*4882a593Smuzhiyun rockchip,pvtm-temp-prop = <(-18) (-18)>; 157*4882a593Smuzhiyun rockchip,thermal-zone = "cpu-thermal"; 158*4882a593Smuzhiyun 159*4882a593Smuzhiyun opp-126000000 { 160*4882a593Smuzhiyun opp-hz = /bits/ 64 <126000000>; 161*4882a593Smuzhiyun opp-microvolt = <950000 950000 1350000>; 162*4882a593Smuzhiyun opp-microvolt-L0 = <950000 950000 1350000>; 163*4882a593Smuzhiyun opp-microvolt-L1 = <950000 950000 1350000>; 164*4882a593Smuzhiyun opp-microvolt-L2 = <950000 950000 1350000>; 165*4882a593Smuzhiyun opp-microvolt-L3 = <950000 950000 1350000>; 166*4882a593Smuzhiyun clock-latency-ns = <40000>; 167*4882a593Smuzhiyun }; 168*4882a593Smuzhiyun opp-216000000 { 169*4882a593Smuzhiyun opp-hz = /bits/ 64 <216000000>; 170*4882a593Smuzhiyun opp-microvolt = <950000 950000 1350000>; 171*4882a593Smuzhiyun opp-microvolt-L0 = <950000 950000 1350000>; 172*4882a593Smuzhiyun opp-microvolt-L1 = <950000 950000 1350000>; 173*4882a593Smuzhiyun opp-microvolt-L2 = <950000 950000 1350000>; 174*4882a593Smuzhiyun opp-microvolt-L3 = <950000 950000 1350000>; 175*4882a593Smuzhiyun clock-latency-ns = <40000>; 176*4882a593Smuzhiyun }; 177*4882a593Smuzhiyun opp-408000000 { 178*4882a593Smuzhiyun opp-hz = /bits/ 64 <408000000>; 179*4882a593Smuzhiyun opp-microvolt = <975000 975000 1350000>; 180*4882a593Smuzhiyun opp-microvolt-L0 = <975000 975000 1350000>; 181*4882a593Smuzhiyun opp-microvolt-L1 = <950000 950000 1350000>; 182*4882a593Smuzhiyun opp-microvolt-L2 = <950000 950000 1350000>; 183*4882a593Smuzhiyun opp-microvolt-L3 = <950000 950000 1350000>; 184*4882a593Smuzhiyun clock-latency-ns = <40000>; 185*4882a593Smuzhiyun }; 186*4882a593Smuzhiyun opp-600000000 { 187*4882a593Smuzhiyun opp-hz = /bits/ 64 <600000000>; 188*4882a593Smuzhiyun opp-microvolt = <975000 975000 1350000>; 189*4882a593Smuzhiyun opp-microvolt-L0 = <975000 975000 1350000>; 190*4882a593Smuzhiyun opp-microvolt-L1 = <950000 950000 1350000>; 191*4882a593Smuzhiyun opp-microvolt-L2 = <950000 950000 1350000>; 192*4882a593Smuzhiyun opp-microvolt-L3 = <950000 950000 1350000>; 193*4882a593Smuzhiyun clock-latency-ns = <40000>; 194*4882a593Smuzhiyun }; 195*4882a593Smuzhiyun opp-696000000 { 196*4882a593Smuzhiyun opp-hz = /bits/ 64 <696000000>; 197*4882a593Smuzhiyun opp-microvolt = <975000 975000 1350000>; 198*4882a593Smuzhiyun opp-microvolt-L0 = <975000 975000 1350000>; 199*4882a593Smuzhiyun opp-microvolt-L1 = <950000 950000 1350000>; 200*4882a593Smuzhiyun opp-microvolt-L2 = <950000 950000 1350000>; 201*4882a593Smuzhiyun opp-microvolt-L3 = <950000 950000 1350000>; 202*4882a593Smuzhiyun clock-latency-ns = <40000>; 203*4882a593Smuzhiyun }; 204*4882a593Smuzhiyun opp-816000000 { 205*4882a593Smuzhiyun opp-hz = /bits/ 64 <816000000>; 206*4882a593Smuzhiyun opp-microvolt = <1075000 1075000 1350000>; 207*4882a593Smuzhiyun opp-microvolt-L0 = <1075000 1075000 1350000>; 208*4882a593Smuzhiyun opp-microvolt-L1 = <1050000 1050000 1350000>; 209*4882a593Smuzhiyun opp-microvolt-L2 = <1000000 1000000 1350000>; 210*4882a593Smuzhiyun opp-microvolt-L3 = <950000 950000 1350000>; 211*4882a593Smuzhiyun clock-latency-ns = <40000>; 212*4882a593Smuzhiyun opp-suspend; 213*4882a593Smuzhiyun }; 214*4882a593Smuzhiyun opp-1008000000 { 215*4882a593Smuzhiyun opp-hz = /bits/ 64 <1008000000>; 216*4882a593Smuzhiyun opp-microvolt = <1150000 1150000 1350000>; 217*4882a593Smuzhiyun opp-microvolt-L0 = <1150000 1150000 1350000>; 218*4882a593Smuzhiyun opp-microvolt-L1 = <1100000 1100000 1350000>; 219*4882a593Smuzhiyun opp-microvolt-L2 = <1050000 1050000 1350000>; 220*4882a593Smuzhiyun opp-microvolt-L3 = <1000000 1000000 1350000>; 221*4882a593Smuzhiyun clock-latency-ns = <40000>; 222*4882a593Smuzhiyun }; 223*4882a593Smuzhiyun opp-1200000000 { 224*4882a593Smuzhiyun opp-hz = /bits/ 64 <1200000000>; 225*4882a593Smuzhiyun opp-microvolt = <1200000 1200000 1350000>; 226*4882a593Smuzhiyun opp-microvolt-L0 = <1200000 1200000 1350000>; 227*4882a593Smuzhiyun opp-microvolt-L1 = <1150000 1150000 1350000>; 228*4882a593Smuzhiyun opp-microvolt-L2 = <1100000 1100000 1350000>; 229*4882a593Smuzhiyun opp-microvolt-L3 = <1050000 1050000 1350000>; 230*4882a593Smuzhiyun clock-latency-ns = <40000>; 231*4882a593Smuzhiyun }; 232*4882a593Smuzhiyun opp-1416000000 { 233*4882a593Smuzhiyun opp-hz = /bits/ 64 <1416000000>; 234*4882a593Smuzhiyun opp-microvolt = <1300000 1300000 1350000>; 235*4882a593Smuzhiyun opp-microvolt-L0 = <1300000 1300000 1350000>; 236*4882a593Smuzhiyun opp-microvolt-L1 = <1250000 1250000 1350000>; 237*4882a593Smuzhiyun opp-microvolt-L2 = <1200000 1200000 1350000>; 238*4882a593Smuzhiyun opp-microvolt-L3 = <1150000 1150000 1350000>; 239*4882a593Smuzhiyun clock-latency-ns = <40000>; 240*4882a593Smuzhiyun }; 241*4882a593Smuzhiyun opp-1512000000 { 242*4882a593Smuzhiyun opp-hz = /bits/ 64 <1512000000>; 243*4882a593Smuzhiyun opp-microvolt = <1350000 1350000 1350000>; 244*4882a593Smuzhiyun opp-microvolt-L0 = <1350000 1350000 1350000>; 245*4882a593Smuzhiyun opp-microvolt-L1 = <1300000 1300000 1350000>; 246*4882a593Smuzhiyun opp-microvolt-L2 = <1250000 1250000 1350000>; 247*4882a593Smuzhiyun opp-microvolt-L3 = <1200000 1200000 1350000>; 248*4882a593Smuzhiyun clock-latency-ns = <40000>; 249*4882a593Smuzhiyun }; 250*4882a593Smuzhiyun opp-1608000000 { 251*4882a593Smuzhiyun opp-hz = /bits/ 64 <1608000000>; 252*4882a593Smuzhiyun opp-microvolt = <1350000 1350000 1350000>; 253*4882a593Smuzhiyun opp-microvolt-L0 = <1350000 1350000 1350000>; 254*4882a593Smuzhiyun opp-microvolt-L1 = <1350000 1350000 1350000>; 255*4882a593Smuzhiyun opp-microvolt-L2 = <1300000 1300000 1350000>; 256*4882a593Smuzhiyun opp-microvolt-L3 = <1250000 1250000 1350000>; 257*4882a593Smuzhiyun clock-latency-ns = <40000>; 258*4882a593Smuzhiyun }; 259*4882a593Smuzhiyun }; 260*4882a593Smuzhiyun 261*4882a593Smuzhiyun amba: bus { 262*4882a593Smuzhiyun compatible = "simple-bus"; 263*4882a593Smuzhiyun #address-cells = <2>; 264*4882a593Smuzhiyun #size-cells = <2>; 265*4882a593Smuzhiyun ranges; 266*4882a593Smuzhiyun 267*4882a593Smuzhiyun dmac_peri: dma-controller@ff250000 { 268*4882a593Smuzhiyun compatible = "arm,pl330", "arm,primecell"; 269*4882a593Smuzhiyun reg = <0x0 0xff250000 0x0 0x4000>; 270*4882a593Smuzhiyun interrupts = <GIC_SPI 2 IRQ_TYPE_LEVEL_HIGH>, 271*4882a593Smuzhiyun <GIC_SPI 3 IRQ_TYPE_LEVEL_HIGH>; 272*4882a593Smuzhiyun #dma-cells = <1>; 273*4882a593Smuzhiyun arm,pl330-broken-no-flushp; 274*4882a593Smuzhiyun arm,pl330-periph-burst; 275*4882a593Smuzhiyun clocks = <&cru ACLK_DMAC2>; 276*4882a593Smuzhiyun clock-names = "apb_pclk"; 277*4882a593Smuzhiyun }; 278*4882a593Smuzhiyun 279*4882a593Smuzhiyun dmac_bus_ns: dma-controller@ff600000 { 280*4882a593Smuzhiyun compatible = "arm,pl330", "arm,primecell"; 281*4882a593Smuzhiyun reg = <0x0 0xff600000 0x0 0x4000>; 282*4882a593Smuzhiyun interrupts = <GIC_SPI 0 IRQ_TYPE_LEVEL_HIGH>, 283*4882a593Smuzhiyun <GIC_SPI 1 IRQ_TYPE_LEVEL_HIGH>; 284*4882a593Smuzhiyun #dma-cells = <1>; 285*4882a593Smuzhiyun arm,pl330-broken-no-flushp; 286*4882a593Smuzhiyun arm,pl330-periph-burst; 287*4882a593Smuzhiyun clocks = <&cru ACLK_DMAC1>; 288*4882a593Smuzhiyun clock-names = "apb_pclk"; 289*4882a593Smuzhiyun status = "disabled"; 290*4882a593Smuzhiyun }; 291*4882a593Smuzhiyun 292*4882a593Smuzhiyun dmac_bus_s: dma-controller@ffb20000 { 293*4882a593Smuzhiyun compatible = "arm,pl330", "arm,primecell"; 294*4882a593Smuzhiyun reg = <0x0 0xffb20000 0x0 0x4000>; 295*4882a593Smuzhiyun interrupts = <GIC_SPI 0 IRQ_TYPE_LEVEL_HIGH>, 296*4882a593Smuzhiyun <GIC_SPI 1 IRQ_TYPE_LEVEL_HIGH>; 297*4882a593Smuzhiyun #dma-cells = <1>; 298*4882a593Smuzhiyun arm,pl330-broken-no-flushp; 299*4882a593Smuzhiyun arm,pl330-periph-burst; 300*4882a593Smuzhiyun clocks = <&cru ACLK_DMAC1>; 301*4882a593Smuzhiyun clock-names = "apb_pclk"; 302*4882a593Smuzhiyun }; 303*4882a593Smuzhiyun }; 304*4882a593Smuzhiyun 305*4882a593Smuzhiyun firmware { 306*4882a593Smuzhiyun optee: optee { 307*4882a593Smuzhiyun compatible = "linaro,optee-tz"; 308*4882a593Smuzhiyun method = "smc"; 309*4882a593Smuzhiyun }; 310*4882a593Smuzhiyun }; 311*4882a593Smuzhiyun 312*4882a593Smuzhiyun reserved-memory { 313*4882a593Smuzhiyun #address-cells = <2>; 314*4882a593Smuzhiyun #size-cells = <2>; 315*4882a593Smuzhiyun ranges; 316*4882a593Smuzhiyun 317*4882a593Smuzhiyun /* 318*4882a593Smuzhiyun * The rk3288 cannot use the memory area above 0xfe000000 319*4882a593Smuzhiyun * for dma operations for some reason. While there is 320*4882a593Smuzhiyun * probably a better solution available somewhere, we 321*4882a593Smuzhiyun * haven't found it yet and while devices with 2GB of ram 322*4882a593Smuzhiyun * are not affected, this issue prevents 4GB from booting. 323*4882a593Smuzhiyun * So to make these devices at least bootable, block 324*4882a593Smuzhiyun * this area for the time being until the real solution 325*4882a593Smuzhiyun * is found. 326*4882a593Smuzhiyun */ 327*4882a593Smuzhiyun dma-unusable@fe000000 { 328*4882a593Smuzhiyun reg = <0x0 0xfe000000 0x0 0x1000000>; 329*4882a593Smuzhiyun }; 330*4882a593Smuzhiyun }; 331*4882a593Smuzhiyun 332*4882a593Smuzhiyun xin24m: oscillator { 333*4882a593Smuzhiyun compatible = "fixed-clock"; 334*4882a593Smuzhiyun clock-frequency = <24000000>; 335*4882a593Smuzhiyun clock-output-names = "xin24m"; 336*4882a593Smuzhiyun #clock-cells = <0>; 337*4882a593Smuzhiyun }; 338*4882a593Smuzhiyun 339*4882a593Smuzhiyun timer { 340*4882a593Smuzhiyun compatible = "arm,armv7-timer"; 341*4882a593Smuzhiyun arm,cpu-registers-not-fw-configured; 342*4882a593Smuzhiyun interrupts = <GIC_PPI 13 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_HIGH)>, 343*4882a593Smuzhiyun <GIC_PPI 14 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_HIGH)>, 344*4882a593Smuzhiyun <GIC_PPI 11 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_HIGH)>, 345*4882a593Smuzhiyun <GIC_PPI 10 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_HIGH)>; 346*4882a593Smuzhiyun clock-frequency = <24000000>; 347*4882a593Smuzhiyun arm,no-tick-in-suspend; 348*4882a593Smuzhiyun }; 349*4882a593Smuzhiyun 350*4882a593Smuzhiyun display-subsystem { 351*4882a593Smuzhiyun compatible = "rockchip,display-subsystem"; 352*4882a593Smuzhiyun ports = <&vopl_out>, <&vopb_out>; 353*4882a593Smuzhiyun }; 354*4882a593Smuzhiyun 355*4882a593Smuzhiyun sdmmc: mmc@ff0c0000 { 356*4882a593Smuzhiyun compatible = "rockchip,rk3288-dw-mshc"; 357*4882a593Smuzhiyun max-frequency = <150000000>; 358*4882a593Smuzhiyun clocks = <&cru HCLK_SDMMC>, <&cru SCLK_SDMMC>, 359*4882a593Smuzhiyun <&cru SCLK_SDMMC_DRV>, <&cru SCLK_SDMMC_SAMPLE>; 360*4882a593Smuzhiyun clock-names = "biu", "ciu", "ciu-drive", "ciu-sample"; 361*4882a593Smuzhiyun fifo-depth = <0x100>; 362*4882a593Smuzhiyun interrupts = <GIC_SPI 32 IRQ_TYPE_LEVEL_HIGH>; 363*4882a593Smuzhiyun reg = <0x0 0xff0c0000 0x0 0x4000>; 364*4882a593Smuzhiyun resets = <&cru SRST_MMC0>; 365*4882a593Smuzhiyun reset-names = "reset"; 366*4882a593Smuzhiyun status = "disabled"; 367*4882a593Smuzhiyun }; 368*4882a593Smuzhiyun 369*4882a593Smuzhiyun sdio0: mmc@ff0d0000 { 370*4882a593Smuzhiyun compatible = "rockchip,rk3288-dw-mshc"; 371*4882a593Smuzhiyun max-frequency = <150000000>; 372*4882a593Smuzhiyun clocks = <&cru HCLK_SDIO0>, <&cru SCLK_SDIO0>, 373*4882a593Smuzhiyun <&cru SCLK_SDIO0_DRV>, <&cru SCLK_SDIO0_SAMPLE>; 374*4882a593Smuzhiyun clock-names = "biu", "ciu", "ciu-drive", "ciu-sample"; 375*4882a593Smuzhiyun fifo-depth = <0x100>; 376*4882a593Smuzhiyun interrupts = <GIC_SPI 33 IRQ_TYPE_LEVEL_HIGH>; 377*4882a593Smuzhiyun reg = <0x0 0xff0d0000 0x0 0x4000>; 378*4882a593Smuzhiyun resets = <&cru SRST_SDIO0>; 379*4882a593Smuzhiyun reset-names = "reset"; 380*4882a593Smuzhiyun status = "disabled"; 381*4882a593Smuzhiyun }; 382*4882a593Smuzhiyun 383*4882a593Smuzhiyun sdio1: mmc@ff0e0000 { 384*4882a593Smuzhiyun compatible = "rockchip,rk3288-dw-mshc"; 385*4882a593Smuzhiyun max-frequency = <150000000>; 386*4882a593Smuzhiyun clocks = <&cru HCLK_SDIO1>, <&cru SCLK_SDIO1>, 387*4882a593Smuzhiyun <&cru SCLK_SDIO1_DRV>, <&cru SCLK_SDIO1_SAMPLE>; 388*4882a593Smuzhiyun clock-names = "biu", "ciu", "ciu-drive", "ciu-sample"; 389*4882a593Smuzhiyun fifo-depth = <0x100>; 390*4882a593Smuzhiyun interrupts = <GIC_SPI 34 IRQ_TYPE_LEVEL_HIGH>; 391*4882a593Smuzhiyun reg = <0x0 0xff0e0000 0x0 0x4000>; 392*4882a593Smuzhiyun resets = <&cru SRST_SDIO1>; 393*4882a593Smuzhiyun reset-names = "reset"; 394*4882a593Smuzhiyun status = "disabled"; 395*4882a593Smuzhiyun }; 396*4882a593Smuzhiyun 397*4882a593Smuzhiyun emmc: mmc@ff0f0000 { 398*4882a593Smuzhiyun compatible = "rockchip,rk3288-dw-mshc"; 399*4882a593Smuzhiyun max-frequency = <150000000>; 400*4882a593Smuzhiyun clocks = <&cru HCLK_EMMC>, <&cru SCLK_EMMC>, 401*4882a593Smuzhiyun <&cru SCLK_EMMC_DRV>, <&cru SCLK_EMMC_SAMPLE>; 402*4882a593Smuzhiyun clock-names = "biu", "ciu", "ciu-drive", "ciu-sample"; 403*4882a593Smuzhiyun fifo-depth = <0x100>; 404*4882a593Smuzhiyun interrupts = <GIC_SPI 35 IRQ_TYPE_LEVEL_HIGH>; 405*4882a593Smuzhiyun reg = <0x0 0xff0f0000 0x0 0x4000>; 406*4882a593Smuzhiyun resets = <&cru SRST_EMMC>; 407*4882a593Smuzhiyun reset-names = "reset"; 408*4882a593Smuzhiyun status = "disabled"; 409*4882a593Smuzhiyun }; 410*4882a593Smuzhiyun 411*4882a593Smuzhiyun saradc: saradc@ff100000 { 412*4882a593Smuzhiyun compatible = "rockchip,saradc"; 413*4882a593Smuzhiyun reg = <0x0 0xff100000 0x0 0x100>; 414*4882a593Smuzhiyun interrupts = <GIC_SPI 36 IRQ_TYPE_LEVEL_HIGH>; 415*4882a593Smuzhiyun #io-channel-cells = <1>; 416*4882a593Smuzhiyun clocks = <&cru SCLK_SARADC>, <&cru PCLK_SARADC>; 417*4882a593Smuzhiyun clock-names = "saradc", "apb_pclk"; 418*4882a593Smuzhiyun resets = <&cru SRST_SARADC>; 419*4882a593Smuzhiyun reset-names = "saradc-apb"; 420*4882a593Smuzhiyun status = "disabled"; 421*4882a593Smuzhiyun }; 422*4882a593Smuzhiyun 423*4882a593Smuzhiyun spi0: spi@ff110000 { 424*4882a593Smuzhiyun compatible = "rockchip,rk3288-spi", "rockchip,rk3066-spi"; 425*4882a593Smuzhiyun clocks = <&cru SCLK_SPI0>, <&cru PCLK_SPI0>; 426*4882a593Smuzhiyun clock-names = "spiclk", "apb_pclk"; 427*4882a593Smuzhiyun dmas = <&dmac_peri 11>, <&dmac_peri 12>; 428*4882a593Smuzhiyun dma-names = "tx", "rx"; 429*4882a593Smuzhiyun interrupts = <GIC_SPI 44 IRQ_TYPE_LEVEL_HIGH>; 430*4882a593Smuzhiyun pinctrl-names = "default"; 431*4882a593Smuzhiyun pinctrl-0 = <&spi0_clk &spi0_tx &spi0_rx &spi0_cs0>; 432*4882a593Smuzhiyun reg = <0x0 0xff110000 0x0 0x1000>; 433*4882a593Smuzhiyun #address-cells = <1>; 434*4882a593Smuzhiyun #size-cells = <0>; 435*4882a593Smuzhiyun status = "disabled"; 436*4882a593Smuzhiyun }; 437*4882a593Smuzhiyun 438*4882a593Smuzhiyun spi1: spi@ff120000 { 439*4882a593Smuzhiyun compatible = "rockchip,rk3288-spi", "rockchip,rk3066-spi"; 440*4882a593Smuzhiyun clocks = <&cru SCLK_SPI1>, <&cru PCLK_SPI1>; 441*4882a593Smuzhiyun clock-names = "spiclk", "apb_pclk"; 442*4882a593Smuzhiyun dmas = <&dmac_peri 13>, <&dmac_peri 14>; 443*4882a593Smuzhiyun dma-names = "tx", "rx"; 444*4882a593Smuzhiyun interrupts = <GIC_SPI 45 IRQ_TYPE_LEVEL_HIGH>; 445*4882a593Smuzhiyun pinctrl-names = "default"; 446*4882a593Smuzhiyun pinctrl-0 = <&spi1_clk &spi1_tx &spi1_rx &spi1_cs0>; 447*4882a593Smuzhiyun reg = <0x0 0xff120000 0x0 0x1000>; 448*4882a593Smuzhiyun #address-cells = <1>; 449*4882a593Smuzhiyun #size-cells = <0>; 450*4882a593Smuzhiyun status = "disabled"; 451*4882a593Smuzhiyun }; 452*4882a593Smuzhiyun 453*4882a593Smuzhiyun spi2: spi@ff130000 { 454*4882a593Smuzhiyun compatible = "rockchip,rk3288-spi", "rockchip,rk3066-spi"; 455*4882a593Smuzhiyun clocks = <&cru SCLK_SPI2>, <&cru PCLK_SPI2>; 456*4882a593Smuzhiyun clock-names = "spiclk", "apb_pclk"; 457*4882a593Smuzhiyun dmas = <&dmac_peri 15>, <&dmac_peri 16>; 458*4882a593Smuzhiyun dma-names = "tx", "rx"; 459*4882a593Smuzhiyun interrupts = <GIC_SPI 46 IRQ_TYPE_LEVEL_HIGH>; 460*4882a593Smuzhiyun pinctrl-names = "default"; 461*4882a593Smuzhiyun pinctrl-0 = <&spi2_clk &spi2_tx &spi2_rx &spi2_cs0>; 462*4882a593Smuzhiyun reg = <0x0 0xff130000 0x0 0x1000>; 463*4882a593Smuzhiyun #address-cells = <1>; 464*4882a593Smuzhiyun #size-cells = <0>; 465*4882a593Smuzhiyun status = "disabled"; 466*4882a593Smuzhiyun }; 467*4882a593Smuzhiyun 468*4882a593Smuzhiyun i2c0: i2c@ff650000 { 469*4882a593Smuzhiyun compatible = "rockchip,rk3288-i2c"; 470*4882a593Smuzhiyun reg = <0x0 0xff650000 0x0 0x1000>; 471*4882a593Smuzhiyun interrupts = <GIC_SPI 60 IRQ_TYPE_LEVEL_HIGH>; 472*4882a593Smuzhiyun #address-cells = <1>; 473*4882a593Smuzhiyun #size-cells = <0>; 474*4882a593Smuzhiyun clock-names = "i2c"; 475*4882a593Smuzhiyun clocks = <&cru PCLK_I2C0>; 476*4882a593Smuzhiyun pinctrl-names = "default"; 477*4882a593Smuzhiyun pinctrl-0 = <&i2c0_xfer>; 478*4882a593Smuzhiyun status = "disabled"; 479*4882a593Smuzhiyun }; 480*4882a593Smuzhiyun 481*4882a593Smuzhiyun i2c1: i2c@ff140000 { 482*4882a593Smuzhiyun compatible = "rockchip,rk3288-i2c"; 483*4882a593Smuzhiyun reg = <0x0 0xff140000 0x0 0x1000>; 484*4882a593Smuzhiyun interrupts = <GIC_SPI 62 IRQ_TYPE_LEVEL_HIGH>; 485*4882a593Smuzhiyun #address-cells = <1>; 486*4882a593Smuzhiyun #size-cells = <0>; 487*4882a593Smuzhiyun clock-names = "i2c"; 488*4882a593Smuzhiyun clocks = <&cru PCLK_I2C1>; 489*4882a593Smuzhiyun pinctrl-names = "default"; 490*4882a593Smuzhiyun pinctrl-0 = <&i2c1_xfer>; 491*4882a593Smuzhiyun status = "disabled"; 492*4882a593Smuzhiyun }; 493*4882a593Smuzhiyun 494*4882a593Smuzhiyun i2c3: i2c@ff150000 { 495*4882a593Smuzhiyun compatible = "rockchip,rk3288-i2c"; 496*4882a593Smuzhiyun reg = <0x0 0xff150000 0x0 0x1000>; 497*4882a593Smuzhiyun interrupts = <GIC_SPI 63 IRQ_TYPE_LEVEL_HIGH>; 498*4882a593Smuzhiyun #address-cells = <1>; 499*4882a593Smuzhiyun #size-cells = <0>; 500*4882a593Smuzhiyun clock-names = "i2c"; 501*4882a593Smuzhiyun clocks = <&cru PCLK_I2C3>; 502*4882a593Smuzhiyun pinctrl-names = "default"; 503*4882a593Smuzhiyun pinctrl-0 = <&i2c3_xfer>; 504*4882a593Smuzhiyun status = "disabled"; 505*4882a593Smuzhiyun }; 506*4882a593Smuzhiyun 507*4882a593Smuzhiyun i2c4: i2c@ff160000 { 508*4882a593Smuzhiyun compatible = "rockchip,rk3288-i2c"; 509*4882a593Smuzhiyun reg = <0x0 0xff160000 0x0 0x1000>; 510*4882a593Smuzhiyun interrupts = <GIC_SPI 64 IRQ_TYPE_LEVEL_HIGH>; 511*4882a593Smuzhiyun #address-cells = <1>; 512*4882a593Smuzhiyun #size-cells = <0>; 513*4882a593Smuzhiyun clock-names = "i2c"; 514*4882a593Smuzhiyun clocks = <&cru PCLK_I2C4>; 515*4882a593Smuzhiyun pinctrl-names = "default"; 516*4882a593Smuzhiyun pinctrl-0 = <&i2c4_xfer>; 517*4882a593Smuzhiyun status = "disabled"; 518*4882a593Smuzhiyun }; 519*4882a593Smuzhiyun 520*4882a593Smuzhiyun i2c5: i2c@ff170000 { 521*4882a593Smuzhiyun compatible = "rockchip,rk3288-i2c"; 522*4882a593Smuzhiyun reg = <0x0 0xff170000 0x0 0x1000>; 523*4882a593Smuzhiyun interrupts = <GIC_SPI 65 IRQ_TYPE_LEVEL_HIGH>; 524*4882a593Smuzhiyun #address-cells = <1>; 525*4882a593Smuzhiyun #size-cells = <0>; 526*4882a593Smuzhiyun clock-names = "i2c"; 527*4882a593Smuzhiyun clocks = <&cru PCLK_I2C5>; 528*4882a593Smuzhiyun pinctrl-names = "default"; 529*4882a593Smuzhiyun pinctrl-0 = <&i2c5_xfer>; 530*4882a593Smuzhiyun status = "disabled"; 531*4882a593Smuzhiyun }; 532*4882a593Smuzhiyun 533*4882a593Smuzhiyun uart0: serial@ff180000 { 534*4882a593Smuzhiyun compatible = "rockchip,rk3288-uart", "snps,dw-apb-uart"; 535*4882a593Smuzhiyun reg = <0x0 0xff180000 0x0 0x100>; 536*4882a593Smuzhiyun interrupts = <GIC_SPI 55 IRQ_TYPE_LEVEL_HIGH>; 537*4882a593Smuzhiyun reg-shift = <2>; 538*4882a593Smuzhiyun reg-io-width = <4>; 539*4882a593Smuzhiyun clocks = <&cru SCLK_UART0>, <&cru PCLK_UART0>; 540*4882a593Smuzhiyun clock-names = "baudclk", "apb_pclk"; 541*4882a593Smuzhiyun dmas = <&dmac_peri 1>, <&dmac_peri 2>; 542*4882a593Smuzhiyun dma-names = "tx", "rx"; 543*4882a593Smuzhiyun pinctrl-names = "default"; 544*4882a593Smuzhiyun pinctrl-0 = <&uart0_xfer>; 545*4882a593Smuzhiyun status = "disabled"; 546*4882a593Smuzhiyun }; 547*4882a593Smuzhiyun 548*4882a593Smuzhiyun uart1: serial@ff190000 { 549*4882a593Smuzhiyun compatible = "rockchip,rk3288-uart", "snps,dw-apb-uart"; 550*4882a593Smuzhiyun reg = <0x0 0xff190000 0x0 0x100>; 551*4882a593Smuzhiyun interrupts = <GIC_SPI 56 IRQ_TYPE_LEVEL_HIGH>; 552*4882a593Smuzhiyun reg-shift = <2>; 553*4882a593Smuzhiyun reg-io-width = <4>; 554*4882a593Smuzhiyun clocks = <&cru SCLK_UART1>, <&cru PCLK_UART1>; 555*4882a593Smuzhiyun clock-names = "baudclk", "apb_pclk"; 556*4882a593Smuzhiyun dmas = <&dmac_peri 3>, <&dmac_peri 4>; 557*4882a593Smuzhiyun dma-names = "tx", "rx"; 558*4882a593Smuzhiyun pinctrl-names = "default"; 559*4882a593Smuzhiyun pinctrl-0 = <&uart1_xfer>; 560*4882a593Smuzhiyun status = "disabled"; 561*4882a593Smuzhiyun }; 562*4882a593Smuzhiyun 563*4882a593Smuzhiyun uart2: serial@ff690000 { 564*4882a593Smuzhiyun compatible = "rockchip,rk3288-uart", "snps,dw-apb-uart"; 565*4882a593Smuzhiyun reg = <0x0 0xff690000 0x0 0x100>; 566*4882a593Smuzhiyun interrupts = <GIC_SPI 57 IRQ_TYPE_LEVEL_HIGH>; 567*4882a593Smuzhiyun reg-shift = <2>; 568*4882a593Smuzhiyun reg-io-width = <4>; 569*4882a593Smuzhiyun clocks = <&cru SCLK_UART2>, <&cru PCLK_UART2>; 570*4882a593Smuzhiyun clock-names = "baudclk", "apb_pclk"; 571*4882a593Smuzhiyun pinctrl-names = "default"; 572*4882a593Smuzhiyun pinctrl-0 = <&uart2_xfer>; 573*4882a593Smuzhiyun status = "disabled"; 574*4882a593Smuzhiyun }; 575*4882a593Smuzhiyun 576*4882a593Smuzhiyun uart3: serial@ff1b0000 { 577*4882a593Smuzhiyun compatible = "rockchip,rk3288-uart", "snps,dw-apb-uart"; 578*4882a593Smuzhiyun reg = <0x0 0xff1b0000 0x0 0x100>; 579*4882a593Smuzhiyun interrupts = <GIC_SPI 58 IRQ_TYPE_LEVEL_HIGH>; 580*4882a593Smuzhiyun reg-shift = <2>; 581*4882a593Smuzhiyun reg-io-width = <4>; 582*4882a593Smuzhiyun clocks = <&cru SCLK_UART3>, <&cru PCLK_UART3>; 583*4882a593Smuzhiyun clock-names = "baudclk", "apb_pclk"; 584*4882a593Smuzhiyun dmas = <&dmac_peri 7>, <&dmac_peri 8>; 585*4882a593Smuzhiyun dma-names = "tx", "rx"; 586*4882a593Smuzhiyun pinctrl-names = "default"; 587*4882a593Smuzhiyun pinctrl-0 = <&uart3_xfer>; 588*4882a593Smuzhiyun status = "disabled"; 589*4882a593Smuzhiyun }; 590*4882a593Smuzhiyun 591*4882a593Smuzhiyun uart4: serial@ff1c0000 { 592*4882a593Smuzhiyun compatible = "rockchip,rk3288-uart", "snps,dw-apb-uart"; 593*4882a593Smuzhiyun reg = <0x0 0xff1c0000 0x0 0x100>; 594*4882a593Smuzhiyun interrupts = <GIC_SPI 59 IRQ_TYPE_LEVEL_HIGH>; 595*4882a593Smuzhiyun reg-shift = <2>; 596*4882a593Smuzhiyun reg-io-width = <4>; 597*4882a593Smuzhiyun clocks = <&cru SCLK_UART4>, <&cru PCLK_UART4>; 598*4882a593Smuzhiyun clock-names = "baudclk", "apb_pclk"; 599*4882a593Smuzhiyun dmas = <&dmac_peri 9>, <&dmac_peri 10>; 600*4882a593Smuzhiyun dma-names = "tx", "rx"; 601*4882a593Smuzhiyun pinctrl-names = "default"; 602*4882a593Smuzhiyun pinctrl-0 = <&uart4_xfer>; 603*4882a593Smuzhiyun status = "disabled"; 604*4882a593Smuzhiyun }; 605*4882a593Smuzhiyun 606*4882a593Smuzhiyun thermal-zones { 607*4882a593Smuzhiyun reserve_thermal: reserve_thermal { 608*4882a593Smuzhiyun polling-delay-passive = <1000>; /* milliseconds */ 609*4882a593Smuzhiyun polling-delay = <5000>; /* milliseconds */ 610*4882a593Smuzhiyun 611*4882a593Smuzhiyun thermal-sensors = <&tsadc 0>; 612*4882a593Smuzhiyun }; 613*4882a593Smuzhiyun 614*4882a593Smuzhiyun cpu_thermal: cpu-thermal { 615*4882a593Smuzhiyun polling-delay-passive = <100>; /* milliseconds */ 616*4882a593Smuzhiyun polling-delay = <5000>; /* milliseconds */ 617*4882a593Smuzhiyun 618*4882a593Smuzhiyun thermal-sensors = <&tsadc 1>; 619*4882a593Smuzhiyun 620*4882a593Smuzhiyun trips { 621*4882a593Smuzhiyun cpu_alert0: cpu_alert0 { 622*4882a593Smuzhiyun temperature = <70000>; /* millicelsius */ 623*4882a593Smuzhiyun hysteresis = <2000>; /* millicelsius */ 624*4882a593Smuzhiyun type = "passive"; 625*4882a593Smuzhiyun }; 626*4882a593Smuzhiyun cpu_alert1: cpu_alert1 { 627*4882a593Smuzhiyun temperature = <75000>; /* millicelsius */ 628*4882a593Smuzhiyun hysteresis = <2000>; /* millicelsius */ 629*4882a593Smuzhiyun type = "passive"; 630*4882a593Smuzhiyun }; 631*4882a593Smuzhiyun cpu_crit: cpu_crit { 632*4882a593Smuzhiyun temperature = <90000>; /* millicelsius */ 633*4882a593Smuzhiyun hysteresis = <2000>; /* millicelsius */ 634*4882a593Smuzhiyun type = "critical"; 635*4882a593Smuzhiyun }; 636*4882a593Smuzhiyun }; 637*4882a593Smuzhiyun 638*4882a593Smuzhiyun cooling-maps { 639*4882a593Smuzhiyun map0 { 640*4882a593Smuzhiyun trip = <&cpu_alert0>; 641*4882a593Smuzhiyun cooling-device = 642*4882a593Smuzhiyun <&cpu0 THERMAL_NO_LIMIT 6>, 643*4882a593Smuzhiyun <&cpu1 THERMAL_NO_LIMIT 6>, 644*4882a593Smuzhiyun <&cpu2 THERMAL_NO_LIMIT 6>, 645*4882a593Smuzhiyun <&cpu3 THERMAL_NO_LIMIT 6>; 646*4882a593Smuzhiyun }; 647*4882a593Smuzhiyun map1 { 648*4882a593Smuzhiyun trip = <&cpu_alert1>; 649*4882a593Smuzhiyun cooling-device = 650*4882a593Smuzhiyun <&cpu0 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>, 651*4882a593Smuzhiyun <&cpu1 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>, 652*4882a593Smuzhiyun <&cpu2 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>, 653*4882a593Smuzhiyun <&cpu3 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>; 654*4882a593Smuzhiyun }; 655*4882a593Smuzhiyun }; 656*4882a593Smuzhiyun }; 657*4882a593Smuzhiyun 658*4882a593Smuzhiyun gpu_thermal: gpu-thermal { 659*4882a593Smuzhiyun polling-delay-passive = <100>; /* milliseconds */ 660*4882a593Smuzhiyun polling-delay = <5000>; /* milliseconds */ 661*4882a593Smuzhiyun 662*4882a593Smuzhiyun thermal-sensors = <&tsadc 2>; 663*4882a593Smuzhiyun 664*4882a593Smuzhiyun trips { 665*4882a593Smuzhiyun gpu_alert0: gpu_alert0 { 666*4882a593Smuzhiyun temperature = <70000>; /* millicelsius */ 667*4882a593Smuzhiyun hysteresis = <2000>; /* millicelsius */ 668*4882a593Smuzhiyun type = "passive"; 669*4882a593Smuzhiyun }; 670*4882a593Smuzhiyun gpu_crit: gpu_crit { 671*4882a593Smuzhiyun temperature = <90000>; /* millicelsius */ 672*4882a593Smuzhiyun hysteresis = <2000>; /* millicelsius */ 673*4882a593Smuzhiyun type = "critical"; 674*4882a593Smuzhiyun }; 675*4882a593Smuzhiyun }; 676*4882a593Smuzhiyun 677*4882a593Smuzhiyun cooling-maps { 678*4882a593Smuzhiyun map0 { 679*4882a593Smuzhiyun trip = <&gpu_alert0>; 680*4882a593Smuzhiyun cooling-device = 681*4882a593Smuzhiyun <&gpu THERMAL_NO_LIMIT THERMAL_NO_LIMIT>; 682*4882a593Smuzhiyun }; 683*4882a593Smuzhiyun }; 684*4882a593Smuzhiyun }; 685*4882a593Smuzhiyun }; 686*4882a593Smuzhiyun 687*4882a593Smuzhiyun tsadc: tsadc@ff280000 { 688*4882a593Smuzhiyun compatible = "rockchip,rk3288-tsadc"; 689*4882a593Smuzhiyun reg = <0x0 0xff280000 0x0 0x100>; 690*4882a593Smuzhiyun interrupts = <GIC_SPI 37 IRQ_TYPE_LEVEL_HIGH>; 691*4882a593Smuzhiyun clocks = <&cru SCLK_TSADC>, <&cru PCLK_TSADC>; 692*4882a593Smuzhiyun clock-names = "tsadc", "apb_pclk"; 693*4882a593Smuzhiyun assigned-clocks = <&cru SCLK_TSADC>; 694*4882a593Smuzhiyun assigned-clock-rates = <5000>; 695*4882a593Smuzhiyun resets = <&cru SRST_TSADC>; 696*4882a593Smuzhiyun reset-names = "tsadc-apb"; 697*4882a593Smuzhiyun pinctrl-names = "gpio", "otpout"; 698*4882a593Smuzhiyun pinctrl-0 = <&otp_pin>; 699*4882a593Smuzhiyun pinctrl-1 = <&otp_out>; 700*4882a593Smuzhiyun #thermal-sensor-cells = <1>; 701*4882a593Smuzhiyun rockchip,grf = <&grf>; 702*4882a593Smuzhiyun rockchip,hw-tshut-temp = <95000>; 703*4882a593Smuzhiyun status = "disabled"; 704*4882a593Smuzhiyun }; 705*4882a593Smuzhiyun 706*4882a593Smuzhiyun gmac: ethernet@ff290000 { 707*4882a593Smuzhiyun compatible = "rockchip,rk3288-gmac"; 708*4882a593Smuzhiyun reg = <0x0 0xff290000 0x0 0x10000>; 709*4882a593Smuzhiyun interrupts = <GIC_SPI 27 IRQ_TYPE_LEVEL_HIGH>, 710*4882a593Smuzhiyun <GIC_SPI 28 IRQ_TYPE_LEVEL_HIGH>; 711*4882a593Smuzhiyun interrupt-names = "macirq", "eth_wake_irq"; 712*4882a593Smuzhiyun rockchip,grf = <&grf>; 713*4882a593Smuzhiyun clocks = <&cru SCLK_MAC>, 714*4882a593Smuzhiyun <&cru SCLK_MAC_RX>, <&cru SCLK_MAC_TX>, 715*4882a593Smuzhiyun <&cru SCLK_MACREF>, <&cru SCLK_MACREF_OUT>, 716*4882a593Smuzhiyun <&cru ACLK_GMAC>, <&cru PCLK_GMAC>; 717*4882a593Smuzhiyun clock-names = "stmmaceth", 718*4882a593Smuzhiyun "mac_clk_rx", "mac_clk_tx", 719*4882a593Smuzhiyun "clk_mac_ref", "clk_mac_refout", 720*4882a593Smuzhiyun "aclk_mac", "pclk_mac"; 721*4882a593Smuzhiyun resets = <&cru SRST_MAC>; 722*4882a593Smuzhiyun reset-names = "stmmaceth"; 723*4882a593Smuzhiyun status = "disabled"; 724*4882a593Smuzhiyun }; 725*4882a593Smuzhiyun 726*4882a593Smuzhiyun usb_host0_ehci: usb@ff500000 { 727*4882a593Smuzhiyun compatible = "generic-ehci"; 728*4882a593Smuzhiyun reg = <0x0 0xff500000 0x0 0x100>; 729*4882a593Smuzhiyun interrupts = <GIC_SPI 24 IRQ_TYPE_LEVEL_HIGH>; 730*4882a593Smuzhiyun clocks = <&cru HCLK_USBHOST0>, <&usbphy1>; 731*4882a593Smuzhiyun clock-names = "usbhost", "utmi"; 732*4882a593Smuzhiyun phys = <&usbphy1>; 733*4882a593Smuzhiyun phy-names = "usb"; 734*4882a593Smuzhiyun status = "disabled"; 735*4882a593Smuzhiyun }; 736*4882a593Smuzhiyun 737*4882a593Smuzhiyun /* NOTE: doesn't work on RK3288, but was fixed on RK3288W */ 738*4882a593Smuzhiyun usb_host0_ohci: usb@ff520000 { 739*4882a593Smuzhiyun compatible = "generic-ohci"; 740*4882a593Smuzhiyun reg = <0x0 0xff520000 0x0 0x100>; 741*4882a593Smuzhiyun interrupts = <GIC_SPI 41 IRQ_TYPE_LEVEL_HIGH>; 742*4882a593Smuzhiyun clocks = <&cru HCLK_USBHOST0>, <&usbphy1>; 743*4882a593Smuzhiyun clock-names = "usbhost", "utmi"; 744*4882a593Smuzhiyun phys = <&usbphy1>; 745*4882a593Smuzhiyun phy-names = "usb"; 746*4882a593Smuzhiyun status = "disabled"; 747*4882a593Smuzhiyun }; 748*4882a593Smuzhiyun 749*4882a593Smuzhiyun usb_host1: usb@ff540000 { 750*4882a593Smuzhiyun compatible = "rockchip,rk3288-usb", "rockchip,rk3066-usb", 751*4882a593Smuzhiyun "snps,dwc2"; 752*4882a593Smuzhiyun reg = <0x0 0xff540000 0x0 0x40000>; 753*4882a593Smuzhiyun interrupts = <GIC_SPI 25 IRQ_TYPE_LEVEL_HIGH>; 754*4882a593Smuzhiyun clocks = <&cru HCLK_USBHOST1>; 755*4882a593Smuzhiyun clock-names = "otg"; 756*4882a593Smuzhiyun dr_mode = "host"; 757*4882a593Smuzhiyun phys = <&usbphy2>; 758*4882a593Smuzhiyun phy-names = "usb2-phy"; 759*4882a593Smuzhiyun snps,reset-phy-on-wake; 760*4882a593Smuzhiyun status = "disabled"; 761*4882a593Smuzhiyun }; 762*4882a593Smuzhiyun 763*4882a593Smuzhiyun usb_otg: usb@ff580000 { 764*4882a593Smuzhiyun compatible = "rockchip,rk3288-usb", "rockchip,rk3066-usb", 765*4882a593Smuzhiyun "snps,dwc2"; 766*4882a593Smuzhiyun reg = <0x0 0xff580000 0x0 0x40000>; 767*4882a593Smuzhiyun interrupts = <GIC_SPI 23 IRQ_TYPE_LEVEL_HIGH>; 768*4882a593Smuzhiyun clocks = <&cru HCLK_OTG0>; 769*4882a593Smuzhiyun clock-names = "otg"; 770*4882a593Smuzhiyun dr_mode = "otg"; 771*4882a593Smuzhiyun g-np-tx-fifo-size = <16>; 772*4882a593Smuzhiyun g-rx-fifo-size = <280>; 773*4882a593Smuzhiyun g-tx-fifo-size = <256 128 128 64 32 16>; 774*4882a593Smuzhiyun phys = <&usbphy0>; 775*4882a593Smuzhiyun phy-names = "usb2-phy"; 776*4882a593Smuzhiyun status = "disabled"; 777*4882a593Smuzhiyun }; 778*4882a593Smuzhiyun 779*4882a593Smuzhiyun usb_hsic: usb@ff5c0000 { 780*4882a593Smuzhiyun compatible = "generic-ehci"; 781*4882a593Smuzhiyun reg = <0x0 0xff5c0000 0x0 0x100>; 782*4882a593Smuzhiyun interrupts = <GIC_SPI 26 IRQ_TYPE_LEVEL_HIGH>; 783*4882a593Smuzhiyun clocks = <&cru HCLK_HSIC>; 784*4882a593Smuzhiyun status = "disabled"; 785*4882a593Smuzhiyun }; 786*4882a593Smuzhiyun 787*4882a593Smuzhiyun i2c2: i2c@ff660000 { 788*4882a593Smuzhiyun compatible = "rockchip,rk3288-i2c"; 789*4882a593Smuzhiyun reg = <0x0 0xff660000 0x0 0x1000>; 790*4882a593Smuzhiyun interrupts = <GIC_SPI 61 IRQ_TYPE_LEVEL_HIGH>; 791*4882a593Smuzhiyun #address-cells = <1>; 792*4882a593Smuzhiyun #size-cells = <0>; 793*4882a593Smuzhiyun clock-names = "i2c"; 794*4882a593Smuzhiyun clocks = <&cru PCLK_I2C2>; 795*4882a593Smuzhiyun pinctrl-names = "default"; 796*4882a593Smuzhiyun pinctrl-0 = <&i2c2_xfer>; 797*4882a593Smuzhiyun status = "disabled"; 798*4882a593Smuzhiyun }; 799*4882a593Smuzhiyun 800*4882a593Smuzhiyun pwm0: pwm@ff680000 { 801*4882a593Smuzhiyun compatible = "rockchip,rk3288-pwm"; 802*4882a593Smuzhiyun reg = <0x0 0xff680000 0x0 0x10>; 803*4882a593Smuzhiyun #pwm-cells = <3>; 804*4882a593Smuzhiyun pinctrl-names = "active"; 805*4882a593Smuzhiyun pinctrl-0 = <&pwm0_pin>; 806*4882a593Smuzhiyun clocks = <&cru PCLK_RKPWM>; 807*4882a593Smuzhiyun clock-names = "pwm"; 808*4882a593Smuzhiyun status = "disabled"; 809*4882a593Smuzhiyun }; 810*4882a593Smuzhiyun 811*4882a593Smuzhiyun pwm1: pwm@ff680010 { 812*4882a593Smuzhiyun compatible = "rockchip,rk3288-pwm"; 813*4882a593Smuzhiyun reg = <0x0 0xff680010 0x0 0x10>; 814*4882a593Smuzhiyun #pwm-cells = <3>; 815*4882a593Smuzhiyun pinctrl-names = "active"; 816*4882a593Smuzhiyun pinctrl-0 = <&pwm1_pin>; 817*4882a593Smuzhiyun clocks = <&cru PCLK_RKPWM>; 818*4882a593Smuzhiyun clock-names = "pwm"; 819*4882a593Smuzhiyun status = "disabled"; 820*4882a593Smuzhiyun }; 821*4882a593Smuzhiyun 822*4882a593Smuzhiyun pwm2: pwm@ff680020 { 823*4882a593Smuzhiyun compatible = "rockchip,rk3288-pwm"; 824*4882a593Smuzhiyun reg = <0x0 0xff680020 0x0 0x10>; 825*4882a593Smuzhiyun #pwm-cells = <3>; 826*4882a593Smuzhiyun pinctrl-names = "active"; 827*4882a593Smuzhiyun pinctrl-0 = <&pwm2_pin>; 828*4882a593Smuzhiyun clocks = <&cru PCLK_RKPWM>; 829*4882a593Smuzhiyun clock-names = "pwm"; 830*4882a593Smuzhiyun status = "disabled"; 831*4882a593Smuzhiyun }; 832*4882a593Smuzhiyun 833*4882a593Smuzhiyun pwm3: pwm@ff680030 { 834*4882a593Smuzhiyun compatible = "rockchip,rk3288-pwm"; 835*4882a593Smuzhiyun reg = <0x0 0xff680030 0x0 0x10>; 836*4882a593Smuzhiyun #pwm-cells = <3>; 837*4882a593Smuzhiyun pinctrl-names = "active"; 838*4882a593Smuzhiyun pinctrl-0 = <&pwm3_pin>; 839*4882a593Smuzhiyun clocks = <&cru PCLK_RKPWM>; 840*4882a593Smuzhiyun clock-names = "pwm"; 841*4882a593Smuzhiyun status = "disabled"; 842*4882a593Smuzhiyun }; 843*4882a593Smuzhiyun 844*4882a593Smuzhiyun timer: timer@ff6b0000 { 845*4882a593Smuzhiyun compatible = "rockchip,rk3288-timer"; 846*4882a593Smuzhiyun reg = <0x0 0xff6b0000 0x0 0x20>; 847*4882a593Smuzhiyun interrupts = <GIC_SPI 66 IRQ_TYPE_LEVEL_HIGH>; 848*4882a593Smuzhiyun clocks = <&cru PCLK_TIMER>, <&xin24m>; 849*4882a593Smuzhiyun clock-names = "pclk", "timer"; 850*4882a593Smuzhiyun }; 851*4882a593Smuzhiyun 852*4882a593Smuzhiyun bus_intmem: sram@ff700000 { 853*4882a593Smuzhiyun compatible = "mmio-sram"; 854*4882a593Smuzhiyun reg = <0x0 0xff700000 0x0 0x18000>; 855*4882a593Smuzhiyun #address-cells = <1>; 856*4882a593Smuzhiyun #size-cells = <1>; 857*4882a593Smuzhiyun ranges = <0 0x0 0xff700000 0x18000>; 858*4882a593Smuzhiyun smp-sram@0 { 859*4882a593Smuzhiyun compatible = "rockchip,rk3066-smp-sram"; 860*4882a593Smuzhiyun reg = <0x00 0x10>; 861*4882a593Smuzhiyun }; 862*4882a593Smuzhiyun }; 863*4882a593Smuzhiyun 864*4882a593Smuzhiyun pmu_sram: sram@ff720000 { 865*4882a593Smuzhiyun compatible = "rockchip,rk3288-pmu-sram", "mmio-sram"; 866*4882a593Smuzhiyun reg = <0x0 0xff720000 0x0 0x1000>; 867*4882a593Smuzhiyun }; 868*4882a593Smuzhiyun 869*4882a593Smuzhiyun pmu: power-management@ff730000 { 870*4882a593Smuzhiyun compatible = "rockchip,rk3288-pmu", "syscon", "simple-mfd"; 871*4882a593Smuzhiyun reg = <0x0 0xff730000 0x0 0x100>; 872*4882a593Smuzhiyun 873*4882a593Smuzhiyun power: power-controller { 874*4882a593Smuzhiyun compatible = "rockchip,rk3288-power-controller"; 875*4882a593Smuzhiyun #power-domain-cells = <1>; 876*4882a593Smuzhiyun #address-cells = <1>; 877*4882a593Smuzhiyun #size-cells = <0>; 878*4882a593Smuzhiyun 879*4882a593Smuzhiyun assigned-clocks = <&cru SCLK_EDP_24M>; 880*4882a593Smuzhiyun assigned-clock-parents = <&xin24m>; 881*4882a593Smuzhiyun 882*4882a593Smuzhiyun /* 883*4882a593Smuzhiyun * Note: Although SCLK_* are the working clocks 884*4882a593Smuzhiyun * of device without including on the NOC, needed for 885*4882a593Smuzhiyun * synchronous reset. 886*4882a593Smuzhiyun * 887*4882a593Smuzhiyun * The clocks on the which NOC: 888*4882a593Smuzhiyun * ACLK_IEP/ACLK_VIP/ACLK_VOP0 are on ACLK_VIO0_NIU. 889*4882a593Smuzhiyun * ACLK_ISP/ACLK_VOP1 are on ACLK_VIO1_NIU. 890*4882a593Smuzhiyun * ACLK_RGA is on ACLK_RGA_NIU. 891*4882a593Smuzhiyun * The others (HCLK_*,PLCK_*) are on HCLK_VIO_NIU. 892*4882a593Smuzhiyun * 893*4882a593Smuzhiyun * Which clock are device clocks: 894*4882a593Smuzhiyun * clocks devices 895*4882a593Smuzhiyun * *_IEP IEP:Image Enhancement Processor 896*4882a593Smuzhiyun * *_ISP ISP:Image Signal Processing 897*4882a593Smuzhiyun * *_VIP VIP:Video Input Processor 898*4882a593Smuzhiyun * *_VOP* VOP:Visual Output Processor 899*4882a593Smuzhiyun * *_RGA RGA 900*4882a593Smuzhiyun * *_EDP* EDP 901*4882a593Smuzhiyun * *_LVDS_* LVDS 902*4882a593Smuzhiyun * *_HDMI HDMI 903*4882a593Smuzhiyun * *_MIPI_* MIPI 904*4882a593Smuzhiyun */ 905*4882a593Smuzhiyun power-domain@RK3288_PD_VIO { 906*4882a593Smuzhiyun reg = <RK3288_PD_VIO>; 907*4882a593Smuzhiyun clocks = <&cru ACLK_IEP>, 908*4882a593Smuzhiyun <&cru ACLK_ISP>, 909*4882a593Smuzhiyun <&cru ACLK_RGA>, 910*4882a593Smuzhiyun <&cru ACLK_VIP>, 911*4882a593Smuzhiyun <&cru ACLK_VOP0>, 912*4882a593Smuzhiyun <&cru ACLK_VOP1>, 913*4882a593Smuzhiyun <&cru DCLK_VOP0>, 914*4882a593Smuzhiyun <&cru DCLK_VOP1>, 915*4882a593Smuzhiyun <&cru HCLK_IEP>, 916*4882a593Smuzhiyun <&cru HCLK_ISP>, 917*4882a593Smuzhiyun <&cru HCLK_RGA>, 918*4882a593Smuzhiyun <&cru HCLK_VIP>, 919*4882a593Smuzhiyun <&cru HCLK_VOP0>, 920*4882a593Smuzhiyun <&cru HCLK_VOP1>, 921*4882a593Smuzhiyun <&cru PCLK_EDP_CTRL>, 922*4882a593Smuzhiyun <&cru PCLK_HDMI_CTRL>, 923*4882a593Smuzhiyun <&cru PCLK_LVDS_PHY>, 924*4882a593Smuzhiyun <&cru PCLK_MIPI_CSI>, 925*4882a593Smuzhiyun <&cru PCLK_MIPI_DSI0>, 926*4882a593Smuzhiyun <&cru PCLK_MIPI_DSI1>, 927*4882a593Smuzhiyun <&cru SCLK_EDP_24M>, 928*4882a593Smuzhiyun <&cru SCLK_EDP>, 929*4882a593Smuzhiyun <&cru SCLK_HDMI_CEC>, 930*4882a593Smuzhiyun <&cru SCLK_ISP_JPE>, 931*4882a593Smuzhiyun <&cru SCLK_ISP>, 932*4882a593Smuzhiyun <&cru SCLK_RGA>; 933*4882a593Smuzhiyun pm_qos = <&qos_vio0_iep>, 934*4882a593Smuzhiyun <&qos_vio1_vop>, 935*4882a593Smuzhiyun <&qos_vio1_isp_w0>, 936*4882a593Smuzhiyun <&qos_vio1_isp_w1>, 937*4882a593Smuzhiyun <&qos_vio0_vop>, 938*4882a593Smuzhiyun <&qos_vio0_vip>, 939*4882a593Smuzhiyun <&qos_vio2_rga_r>, 940*4882a593Smuzhiyun <&qos_vio2_rga_w>, 941*4882a593Smuzhiyun <&qos_vio1_isp_r>; 942*4882a593Smuzhiyun }; 943*4882a593Smuzhiyun 944*4882a593Smuzhiyun /* 945*4882a593Smuzhiyun * Note: The following 3 are HEVC(H.265) clocks, 946*4882a593Smuzhiyun * and on the ACLK_HEVC_NIU (NOC). 947*4882a593Smuzhiyun */ 948*4882a593Smuzhiyun power-domain@RK3288_PD_HEVC { 949*4882a593Smuzhiyun reg = <RK3288_PD_HEVC>; 950*4882a593Smuzhiyun clocks = <&cru ACLK_HEVC>, 951*4882a593Smuzhiyun <&cru SCLK_HEVC_CABAC>, 952*4882a593Smuzhiyun <&cru SCLK_HEVC_CORE>; 953*4882a593Smuzhiyun pm_qos = <&qos_hevc_r>, 954*4882a593Smuzhiyun <&qos_hevc_w>; 955*4882a593Smuzhiyun }; 956*4882a593Smuzhiyun 957*4882a593Smuzhiyun /* 958*4882a593Smuzhiyun * Note: ACLK_VCODEC/HCLK_VCODEC are VCODEC 959*4882a593Smuzhiyun * (video endecoder & decoder) clocks that on the 960*4882a593Smuzhiyun * ACLK_VCODEC_NIU and HCLK_VCODEC_NIU (NOC). 961*4882a593Smuzhiyun */ 962*4882a593Smuzhiyun power-domain@RK3288_PD_VIDEO { 963*4882a593Smuzhiyun reg = <RK3288_PD_VIDEO>; 964*4882a593Smuzhiyun clocks = <&cru ACLK_VCODEC>, 965*4882a593Smuzhiyun <&cru HCLK_VCODEC>; 966*4882a593Smuzhiyun pm_qos = <&qos_video>; 967*4882a593Smuzhiyun }; 968*4882a593Smuzhiyun 969*4882a593Smuzhiyun /* 970*4882a593Smuzhiyun * Note: ACLK_GPU is the GPU clock, 971*4882a593Smuzhiyun * and on the ACLK_GPU_NIU (NOC). 972*4882a593Smuzhiyun */ 973*4882a593Smuzhiyun power-domain@RK3288_PD_GPU { 974*4882a593Smuzhiyun reg = <RK3288_PD_GPU>; 975*4882a593Smuzhiyun clocks = <&cru ACLK_GPU>; 976*4882a593Smuzhiyun pm_qos = <&qos_gpu_r>, 977*4882a593Smuzhiyun <&qos_gpu_w>; 978*4882a593Smuzhiyun }; 979*4882a593Smuzhiyun }; 980*4882a593Smuzhiyun 981*4882a593Smuzhiyun reboot-mode { 982*4882a593Smuzhiyun compatible = "syscon-reboot-mode"; 983*4882a593Smuzhiyun offset = <0x94>; 984*4882a593Smuzhiyun mode-normal = <BOOT_NORMAL>; 985*4882a593Smuzhiyun mode-recovery = <BOOT_RECOVERY>; 986*4882a593Smuzhiyun mode-bootloader = <BOOT_FASTBOOT>; 987*4882a593Smuzhiyun mode-loader = <BOOT_BL_DOWNLOAD>; 988*4882a593Smuzhiyun mode-ums = <BOOT_UMS>; 989*4882a593Smuzhiyun }; 990*4882a593Smuzhiyun }; 991*4882a593Smuzhiyun 992*4882a593Smuzhiyun sgrf: syscon@ff740000 { 993*4882a593Smuzhiyun compatible = "rockchip,rk3288-sgrf", "syscon"; 994*4882a593Smuzhiyun reg = <0x0 0xff740000 0x0 0x1000>; 995*4882a593Smuzhiyun }; 996*4882a593Smuzhiyun 997*4882a593Smuzhiyun cru: clock-controller@ff760000 { 998*4882a593Smuzhiyun compatible = "rockchip,rk3288-cru"; 999*4882a593Smuzhiyun reg = <0x0 0xff760000 0x0 0x1000>; 1000*4882a593Smuzhiyun rockchip,grf = <&grf>; 1001*4882a593Smuzhiyun #clock-cells = <1>; 1002*4882a593Smuzhiyun #reset-cells = <1>; 1003*4882a593Smuzhiyun assigned-clocks = <&cru PLL_GPLL>, <&cru PLL_NPLL>, 1004*4882a593Smuzhiyun <&cru ACLK_CPU>, <&cru HCLK_CPU>, 1005*4882a593Smuzhiyun <&cru PCLK_CPU>, <&cru ACLK_PERI>, 1006*4882a593Smuzhiyun <&cru HCLK_PERI>, <&cru PCLK_PERI>, 1007*4882a593Smuzhiyun <&cru ACLK_VIO0>, <&cru ACLK_VIO1>; 1008*4882a593Smuzhiyun assigned-clock-rates = <594000000>, <500000000>, 1009*4882a593Smuzhiyun <300000000>, <150000000>, 1010*4882a593Smuzhiyun <75000000>, <300000000>, 1011*4882a593Smuzhiyun <150000000>, <75000000>, 1012*4882a593Smuzhiyun <594000000>, <297000000>; 1013*4882a593Smuzhiyun }; 1014*4882a593Smuzhiyun 1015*4882a593Smuzhiyun grf: syscon@ff770000 { 1016*4882a593Smuzhiyun compatible = "rockchip,rk3288-grf", "syscon", "simple-mfd"; 1017*4882a593Smuzhiyun reg = <0x0 0xff770000 0x0 0x1000>; 1018*4882a593Smuzhiyun 1019*4882a593Smuzhiyun edp_phy: edp-phy { 1020*4882a593Smuzhiyun compatible = "rockchip,rk3288-dp-phy"; 1021*4882a593Smuzhiyun clocks = <&cru SCLK_EDP_24M>; 1022*4882a593Smuzhiyun clock-names = "24m"; 1023*4882a593Smuzhiyun #phy-cells = <0>; 1024*4882a593Smuzhiyun status = "disabled"; 1025*4882a593Smuzhiyun }; 1026*4882a593Smuzhiyun 1027*4882a593Smuzhiyun io_domains: io-domains { 1028*4882a593Smuzhiyun compatible = "rockchip,rk3288-io-voltage-domain"; 1029*4882a593Smuzhiyun status = "disabled"; 1030*4882a593Smuzhiyun }; 1031*4882a593Smuzhiyun 1032*4882a593Smuzhiyun mipi_phy_rx0: mipi-phy-rx0 { 1033*4882a593Smuzhiyun compatible = "rockchip,rk3288-mipi-dphy"; 1034*4882a593Smuzhiyun clocks = <&cru SCLK_MIPIDSI_24M>, <&cru PCLK_MIPI_CSI>; 1035*4882a593Smuzhiyun clock-names = "dphy-ref", "pclk"; 1036*4882a593Smuzhiyun status = "disabled"; 1037*4882a593Smuzhiyun }; 1038*4882a593Smuzhiyun 1039*4882a593Smuzhiyun lvds: lvds { 1040*4882a593Smuzhiyun compatible = "rockchip,rk3288-lvds"; 1041*4882a593Smuzhiyun phys = <&video_phy>; 1042*4882a593Smuzhiyun phy-names = "phy"; 1043*4882a593Smuzhiyun status = "disabled"; 1044*4882a593Smuzhiyun 1045*4882a593Smuzhiyun ports { 1046*4882a593Smuzhiyun #address-cells = <1>; 1047*4882a593Smuzhiyun #size-cells = <0>; 1048*4882a593Smuzhiyun 1049*4882a593Smuzhiyun port@0 { 1050*4882a593Smuzhiyun reg = <0>; 1051*4882a593Smuzhiyun #address-cells = <1>; 1052*4882a593Smuzhiyun #size-cells = <0>; 1053*4882a593Smuzhiyun 1054*4882a593Smuzhiyun lvds_in_vopb: endpoint@0 { 1055*4882a593Smuzhiyun reg = <0>; 1056*4882a593Smuzhiyun remote-endpoint = <&vopb_out_lvds>; 1057*4882a593Smuzhiyun }; 1058*4882a593Smuzhiyun 1059*4882a593Smuzhiyun lvds_in_vopl: endpoint@1 { 1060*4882a593Smuzhiyun reg = <1>; 1061*4882a593Smuzhiyun remote-endpoint = <&vopl_out_lvds>; 1062*4882a593Smuzhiyun }; 1063*4882a593Smuzhiyun }; 1064*4882a593Smuzhiyun }; 1065*4882a593Smuzhiyun }; 1066*4882a593Smuzhiyun 1067*4882a593Smuzhiyun rgb: rgb { 1068*4882a593Smuzhiyun compatible = "rockchip,rk3288-rgb"; 1069*4882a593Smuzhiyun pinctrl-names = "default", "sleep"; 1070*4882a593Smuzhiyun pinctrl-0 = <&lcdc_rgb_pins>; 1071*4882a593Smuzhiyun pinctrl-1 = <&lcdc_sleep_pins>; 1072*4882a593Smuzhiyun phys = <&video_phy>; 1073*4882a593Smuzhiyun phy-names = "phy"; 1074*4882a593Smuzhiyun status = "disabled"; 1075*4882a593Smuzhiyun 1076*4882a593Smuzhiyun ports { 1077*4882a593Smuzhiyun #address-cells = <1>; 1078*4882a593Smuzhiyun #size-cells = <0>; 1079*4882a593Smuzhiyun 1080*4882a593Smuzhiyun port@0 { 1081*4882a593Smuzhiyun reg = <0>; 1082*4882a593Smuzhiyun #address-cells = <1>; 1083*4882a593Smuzhiyun #size-cells = <0>; 1084*4882a593Smuzhiyun 1085*4882a593Smuzhiyun rgb_in_vopb: endpoint@0 { 1086*4882a593Smuzhiyun reg = <0>; 1087*4882a593Smuzhiyun remote-endpoint = <&vopb_out_rgb>; 1088*4882a593Smuzhiyun }; 1089*4882a593Smuzhiyun 1090*4882a593Smuzhiyun rgb_in_vopl: endpoint@1 { 1091*4882a593Smuzhiyun reg = <1>; 1092*4882a593Smuzhiyun remote-endpoint = <&vopl_out_rgb>; 1093*4882a593Smuzhiyun }; 1094*4882a593Smuzhiyun }; 1095*4882a593Smuzhiyun }; 1096*4882a593Smuzhiyun }; 1097*4882a593Smuzhiyun 1098*4882a593Smuzhiyun usbphy: usbphy { 1099*4882a593Smuzhiyun compatible = "rockchip,rk3288-usb-phy"; 1100*4882a593Smuzhiyun #address-cells = <1>; 1101*4882a593Smuzhiyun #size-cells = <0>; 1102*4882a593Smuzhiyun status = "disabled"; 1103*4882a593Smuzhiyun 1104*4882a593Smuzhiyun usbphy0: usb-phy@320 { 1105*4882a593Smuzhiyun #phy-cells = <0>; 1106*4882a593Smuzhiyun reg = <0x320>; 1107*4882a593Smuzhiyun clocks = <&cru SCLK_OTGPHY0>; 1108*4882a593Smuzhiyun clock-names = "phyclk"; 1109*4882a593Smuzhiyun #clock-cells = <0>; 1110*4882a593Smuzhiyun resets = <&cru SRST_USBOTG_PHY>; 1111*4882a593Smuzhiyun reset-names = "phy-reset"; 1112*4882a593Smuzhiyun interrupts = <GIC_SPI 94 IRQ_TYPE_LEVEL_HIGH>; 1113*4882a593Smuzhiyun interrupt-names = "otg-bvalid"; 1114*4882a593Smuzhiyun }; 1115*4882a593Smuzhiyun 1116*4882a593Smuzhiyun usbphy1: usb-phy@334 { 1117*4882a593Smuzhiyun #phy-cells = <0>; 1118*4882a593Smuzhiyun reg = <0x334>; 1119*4882a593Smuzhiyun clocks = <&cru SCLK_OTGPHY1>; 1120*4882a593Smuzhiyun clock-names = "phyclk"; 1121*4882a593Smuzhiyun #clock-cells = <0>; 1122*4882a593Smuzhiyun resets = <&cru SRST_USBHOST0_PHY>; 1123*4882a593Smuzhiyun reset-names = "phy-reset"; 1124*4882a593Smuzhiyun }; 1125*4882a593Smuzhiyun 1126*4882a593Smuzhiyun usbphy2: usb-phy@348 { 1127*4882a593Smuzhiyun #phy-cells = <0>; 1128*4882a593Smuzhiyun reg = <0x348>; 1129*4882a593Smuzhiyun clocks = <&cru SCLK_OTGPHY2>; 1130*4882a593Smuzhiyun clock-names = "phyclk"; 1131*4882a593Smuzhiyun #clock-cells = <0>; 1132*4882a593Smuzhiyun resets = <&cru SRST_USBHOST1_PHY>; 1133*4882a593Smuzhiyun reset-names = "phy-reset"; 1134*4882a593Smuzhiyun }; 1135*4882a593Smuzhiyun }; 1136*4882a593Smuzhiyun 1137*4882a593Smuzhiyun pvtm: pvtm { 1138*4882a593Smuzhiyun compatible = "rockchip,rk3288-pvtm"; 1139*4882a593Smuzhiyun #address-cells = <1>; 1140*4882a593Smuzhiyun #size-cells = <0>; 1141*4882a593Smuzhiyun status = "okay"; 1142*4882a593Smuzhiyun 1143*4882a593Smuzhiyun pvtm@0 { 1144*4882a593Smuzhiyun reg = <0>; 1145*4882a593Smuzhiyun clocks = <&cru SCLK_PVTM_CORE>; 1146*4882a593Smuzhiyun clock-names = "clk"; 1147*4882a593Smuzhiyun resets = <&cru SRST_CORE_PVTM>; 1148*4882a593Smuzhiyun reset-names = "rst"; 1149*4882a593Smuzhiyun }; 1150*4882a593Smuzhiyun pvtm@1 { 1151*4882a593Smuzhiyun reg = <1>; 1152*4882a593Smuzhiyun clocks = <&cru SCLK_PVTM_GPU>; 1153*4882a593Smuzhiyun clock-names = "clk"; 1154*4882a593Smuzhiyun resets = <&cru SRST_GPU_PVTM>; 1155*4882a593Smuzhiyun reset-names = "rst"; 1156*4882a593Smuzhiyun }; 1157*4882a593Smuzhiyun }; 1158*4882a593Smuzhiyun }; 1159*4882a593Smuzhiyun 1160*4882a593Smuzhiyun wdt: watchdog@ff800000 { 1161*4882a593Smuzhiyun compatible = "rockchip,rk3288-wdt", "snps,dw-wdt"; 1162*4882a593Smuzhiyun reg = <0x0 0xff800000 0x0 0x100>; 1163*4882a593Smuzhiyun clocks = <&cru PCLK_WDT>; 1164*4882a593Smuzhiyun interrupts = <GIC_SPI 79 IRQ_TYPE_LEVEL_HIGH>; 1165*4882a593Smuzhiyun status = "disabled"; 1166*4882a593Smuzhiyun }; 1167*4882a593Smuzhiyun 1168*4882a593Smuzhiyun spdif_2ch: sound@ff880000 { 1169*4882a593Smuzhiyun compatible = "rockchip,rk3288-spdif", "rockchip,rk3066-spdif"; 1170*4882a593Smuzhiyun reg = <0x0 0xff880000 0x0 0x10000>; 1171*4882a593Smuzhiyun #sound-dai-cells = <0>; 1172*4882a593Smuzhiyun clocks = <&cru SCLK_SPDIF>, <&cru HCLK_SPDIF>; 1173*4882a593Smuzhiyun clock-names = "mclk", "hclk"; 1174*4882a593Smuzhiyun dmas = <&dmac_bus_s 2>; 1175*4882a593Smuzhiyun dma-names = "tx"; 1176*4882a593Smuzhiyun interrupts = <GIC_SPI 54 IRQ_TYPE_LEVEL_HIGH>; 1177*4882a593Smuzhiyun pinctrl-names = "default"; 1178*4882a593Smuzhiyun pinctrl-0 = <&spdif_tx>; 1179*4882a593Smuzhiyun rockchip,grf = <&grf>; 1180*4882a593Smuzhiyun status = "disabled"; 1181*4882a593Smuzhiyun }; 1182*4882a593Smuzhiyun 1183*4882a593Smuzhiyun i2s: i2s@ff890000 { 1184*4882a593Smuzhiyun compatible = "rockchip,rk3288-i2s", "rockchip,rk3066-i2s"; 1185*4882a593Smuzhiyun reg = <0x0 0xff890000 0x0 0x10000>; 1186*4882a593Smuzhiyun #sound-dai-cells = <0>; 1187*4882a593Smuzhiyun interrupts = <GIC_SPI 53 IRQ_TYPE_LEVEL_HIGH>; 1188*4882a593Smuzhiyun clocks = <&cru SCLK_I2S0>, <&cru HCLK_I2S0>; 1189*4882a593Smuzhiyun clock-names = "i2s_clk", "i2s_hclk"; 1190*4882a593Smuzhiyun assigned-clocks = <&cru SCLK_I2S_SRC>; 1191*4882a593Smuzhiyun assigned-clock-parents = <&cru PLL_GPLL>; 1192*4882a593Smuzhiyun dmas = <&dmac_bus_s 0>, <&dmac_bus_s 1>; 1193*4882a593Smuzhiyun dma-names = "tx", "rx"; 1194*4882a593Smuzhiyun pinctrl-names = "default"; 1195*4882a593Smuzhiyun pinctrl-0 = <&i2s0_bus>; 1196*4882a593Smuzhiyun resets = <&cru SRST_I2S0>; 1197*4882a593Smuzhiyun reset-names = "reset-m"; 1198*4882a593Smuzhiyun rockchip,playback-channels = <8>; 1199*4882a593Smuzhiyun rockchip,capture-channels = <2>; 1200*4882a593Smuzhiyun status = "disabled"; 1201*4882a593Smuzhiyun }; 1202*4882a593Smuzhiyun 1203*4882a593Smuzhiyun rng: rng@ff8a0000 { 1204*4882a593Smuzhiyun compatible = "rockchip,cryptov1-rng"; 1205*4882a593Smuzhiyun reg = <0x0 0xff8a0000 0x0 0x4000>; 1206*4882a593Smuzhiyun clocks = <&cru SCLK_CRYPTO>, <&cru HCLK_CRYPTO>; 1207*4882a593Smuzhiyun clock-names = "clk_crypto", "hclk_crypto"; 1208*4882a593Smuzhiyun assigned-clocks = <&cru SCLK_CRYPTO>, <&cru HCLK_CRYPTO>; 1209*4882a593Smuzhiyun assigned-clock-rates = <150000000>, <100000000>; 1210*4882a593Smuzhiyun status = "disabled"; 1211*4882a593Smuzhiyun }; 1212*4882a593Smuzhiyun 1213*4882a593Smuzhiyun crypto: crypto@ff8a0000 { 1214*4882a593Smuzhiyun compatible = "rockchip,rk3288-crypto"; 1215*4882a593Smuzhiyun reg = <0x0 0xff8a0000 0x0 0x4000>; 1216*4882a593Smuzhiyun interrupts = <GIC_SPI 48 IRQ_TYPE_LEVEL_HIGH>; 1217*4882a593Smuzhiyun clocks = <&cru ACLK_CRYPTO>, <&cru HCLK_CRYPTO>, 1218*4882a593Smuzhiyun <&cru SCLK_CRYPTO>, <&cru ACLK_DMAC1>; 1219*4882a593Smuzhiyun clock-names = "aclk", "hclk", "sclk", "apb_pclk"; 1220*4882a593Smuzhiyun resets = <&cru SRST_CRYPTO>; 1221*4882a593Smuzhiyun reset-names = "crypto-rst"; 1222*4882a593Smuzhiyun status = "disabled"; 1223*4882a593Smuzhiyun }; 1224*4882a593Smuzhiyun 1225*4882a593Smuzhiyun spdif: sound@ff8b0000 { 1226*4882a593Smuzhiyun compatible = "rockchip,rk3288-spdif", "rockchip,rk3066-spdif"; 1227*4882a593Smuzhiyun reg = <0x0 0xff8b0000 0x0 0x10000>; 1228*4882a593Smuzhiyun #sound-dai-cells = <0>; 1229*4882a593Smuzhiyun clocks = <&cru SCLK_SPDIF8CH>, <&cru HCLK_SPDIF8CH>; 1230*4882a593Smuzhiyun clock-names = "mclk", "hclk"; 1231*4882a593Smuzhiyun dmas = <&dmac_bus_s 3>; 1232*4882a593Smuzhiyun dma-names = "tx"; 1233*4882a593Smuzhiyun interrupts = <GIC_SPI 54 IRQ_TYPE_LEVEL_HIGH>; 1234*4882a593Smuzhiyun pinctrl-names = "default"; 1235*4882a593Smuzhiyun pinctrl-0 = <&spdif_tx>; 1236*4882a593Smuzhiyun rockchip,grf = <&grf>; 1237*4882a593Smuzhiyun status = "disabled"; 1238*4882a593Smuzhiyun }; 1239*4882a593Smuzhiyun 1240*4882a593Smuzhiyun iep: iep@ff90000 { 1241*4882a593Smuzhiyun compatible = "rockchip,iep"; 1242*4882a593Smuzhiyun iommu_enabled = <1>; 1243*4882a593Smuzhiyun iommus = <&iep_mmu>; 1244*4882a593Smuzhiyun reg = <0x0 0xff900000 0x0 0x800>; 1245*4882a593Smuzhiyun interrupts = <GIC_SPI 17 IRQ_TYPE_LEVEL_HIGH>; 1246*4882a593Smuzhiyun clocks = <&cru ACLK_IEP>, <&cru HCLK_IEP>; 1247*4882a593Smuzhiyun clock-names = "aclk_iep", "hclk_iep"; 1248*4882a593Smuzhiyun power-domains = <&power RK3288_PD_VIO>; 1249*4882a593Smuzhiyun allocator = <1>; 1250*4882a593Smuzhiyun version = <1>; 1251*4882a593Smuzhiyun status = "disabled"; 1252*4882a593Smuzhiyun }; 1253*4882a593Smuzhiyun 1254*4882a593Smuzhiyun iep_mmu: iommu@ff900800 { 1255*4882a593Smuzhiyun compatible = "rockchip,iommu"; 1256*4882a593Smuzhiyun reg = <0x0 0xff900800 0x0 0x40>; 1257*4882a593Smuzhiyun interrupts = <GIC_SPI 17 IRQ_TYPE_LEVEL_HIGH>; 1258*4882a593Smuzhiyun interrupt-names = "iep_mmu"; 1259*4882a593Smuzhiyun clocks = <&cru ACLK_IEP>, <&cru HCLK_IEP>; 1260*4882a593Smuzhiyun clock-names = "aclk", "iface"; 1261*4882a593Smuzhiyun #iommu-cells = <0>; 1262*4882a593Smuzhiyun status = "disabled"; 1263*4882a593Smuzhiyun }; 1264*4882a593Smuzhiyun 1265*4882a593Smuzhiyun isp: isp@ff910000 { 1266*4882a593Smuzhiyun compatible = "rockchip,rk3288-isp", "rockchip,isp"; 1267*4882a593Smuzhiyun reg = <0x0 0xff910000 0x0 0x4000>; 1268*4882a593Smuzhiyun interrupts = <GIC_SPI 14 IRQ_TYPE_LEVEL_HIGH>; 1269*4882a593Smuzhiyun power-domains = <&power RK3288_PD_VIO>; 1270*4882a593Smuzhiyun clocks = 1271*4882a593Smuzhiyun <&cru ACLK_ISP>, <&cru HCLK_ISP>, <&cru SCLK_ISP>, 1272*4882a593Smuzhiyun <&cru SCLK_ISP_JPE>, <&cru PCLK_ISP_IN>, 1273*4882a593Smuzhiyun <&cru SCLK_VIP_OUT>, <&cru SCLK_MIPIDSI_24M>, 1274*4882a593Smuzhiyun <&cru SCLK_VIP_OUT>, <&cru PCLK_MIPI_CSI>; 1275*4882a593Smuzhiyun clock-names = 1276*4882a593Smuzhiyun "aclk_isp", "hclk_isp", "clk_isp", 1277*4882a593Smuzhiyun "clk_isp_jpe", "pclkin_isp", "clk_cif_out", 1278*4882a593Smuzhiyun "clk_mipi_24m", "clk_cif_pll", "hclk_mipiphy1"; 1279*4882a593Smuzhiyun pinctrl-names = 1280*4882a593Smuzhiyun "default", "isp_dvp8bit2", "isp_dvp10bit", 1281*4882a593Smuzhiyun "isp_dvp12bit", "isp_dvp8bit0", "isp_mipi_fl", 1282*4882a593Smuzhiyun "isp_mipi_fl_prefl", "isp_flash_as_gpio", 1283*4882a593Smuzhiyun "isp_flash_as_trigger_out"; 1284*4882a593Smuzhiyun pinctrl-0 = <&isp_mipi>; 1285*4882a593Smuzhiyun pinctrl-1 = <&isp_mipi &isp_dvp_d2d9>; 1286*4882a593Smuzhiyun pinctrl-2 = <&isp_mipi &isp_dvp_d2d9 &isp_dvp_d0d1>; 1287*4882a593Smuzhiyun pinctrl-3 = <&isp_mipi &isp_dvp_d2d9 &isp_dvp_d0d1 1288*4882a593Smuzhiyun &isp_dvp_d10d11>; 1289*4882a593Smuzhiyun pinctrl-4 = <&isp_mipi &isp_dvp_d0d7>; 1290*4882a593Smuzhiyun pinctrl-5 = <&isp_mipi>; 1291*4882a593Smuzhiyun pinctrl-6 = <&isp_mipi &isp_prelight>; 1292*4882a593Smuzhiyun pinctrl-7 = <&isp_flash_trigger_as_gpio>; 1293*4882a593Smuzhiyun pinctrl-8 = <&isp_flash_trigger>; 1294*4882a593Smuzhiyun rockchip,isp,mipiphy = <2>; 1295*4882a593Smuzhiyun rockchip,isp,cifphy = <1>; 1296*4882a593Smuzhiyun rockchip,isp,mipiphy1,reg = <0xff968000 0x4000>; 1297*4882a593Smuzhiyun rockchip,grf = <&grf>; 1298*4882a593Smuzhiyun rockchip,cru = <&cru>; 1299*4882a593Smuzhiyun rockchip,gpios = <&gpio7 13 GPIO_ACTIVE_HIGH>; 1300*4882a593Smuzhiyun rockchip,isp,iommu_enable = <1>; 1301*4882a593Smuzhiyun iommus = <&isp_mmu>; 1302*4882a593Smuzhiyun status = "disabled"; 1303*4882a593Smuzhiyun }; 1304*4882a593Smuzhiyun 1305*4882a593Smuzhiyun rkisp1: rkisp1@ff910000 { 1306*4882a593Smuzhiyun compatible = "rockchip,rk3288-rkisp1"; 1307*4882a593Smuzhiyun reg = <0x0 0xff910000 0x0 0x4000>; 1308*4882a593Smuzhiyun interrupts = <GIC_SPI 14 IRQ_TYPE_LEVEL_HIGH>; 1309*4882a593Smuzhiyun interrupt-names = "isp_irq"; 1310*4882a593Smuzhiyun clocks = <&cru SCLK_ISP>, <&cru ACLK_ISP>, 1311*4882a593Smuzhiyun <&cru HCLK_ISP>, <&cru PCLK_ISP_IN>, 1312*4882a593Smuzhiyun <&cru SCLK_ISP_JPE>; 1313*4882a593Smuzhiyun clock-names = "clk_isp", "aclk_isp", 1314*4882a593Smuzhiyun "hclk_isp", "pclk_isp_in", 1315*4882a593Smuzhiyun "sclk_isp_jpe"; 1316*4882a593Smuzhiyun assigned-clocks = <&cru SCLK_ISP>, <&cru SCLK_ISP_JPE>; 1317*4882a593Smuzhiyun assigned-clock-rates = <400000000>, <400000000>; 1318*4882a593Smuzhiyun power-domains = <&power RK3288_PD_VIO>; 1319*4882a593Smuzhiyun iommus = <&isp_mmu>; 1320*4882a593Smuzhiyun status = "disabled"; 1321*4882a593Smuzhiyun }; 1322*4882a593Smuzhiyun 1323*4882a593Smuzhiyun isp_mmu: iommu@ff914000 { 1324*4882a593Smuzhiyun compatible = "rockchip,iommu"; 1325*4882a593Smuzhiyun reg = <0x0 0xff914000 0x0 0x100>, <0x0 0xff915000 0x0 0x100>; 1326*4882a593Smuzhiyun interrupts = <GIC_SPI 14 IRQ_TYPE_LEVEL_HIGH>; 1327*4882a593Smuzhiyun interrupt-names = "isp_mmu"; 1328*4882a593Smuzhiyun clocks = <&cru ACLK_ISP>, <&cru HCLK_ISP>; 1329*4882a593Smuzhiyun clock-names = "aclk", "iface"; 1330*4882a593Smuzhiyun #iommu-cells = <0>; 1331*4882a593Smuzhiyun rockchip,disable-mmu-reset; 1332*4882a593Smuzhiyun status = "disabled"; 1333*4882a593Smuzhiyun }; 1334*4882a593Smuzhiyun 1335*4882a593Smuzhiyun rga: rga@ff920000 { 1336*4882a593Smuzhiyun compatible = "rockchip,rk3288-rga"; 1337*4882a593Smuzhiyun reg = <0x0 0xff920000 0x0 0x180>; 1338*4882a593Smuzhiyun interrupts = <GIC_SPI 18 IRQ_TYPE_LEVEL_HIGH>; 1339*4882a593Smuzhiyun clocks = <&cru ACLK_RGA>, <&cru HCLK_RGA>, <&cru SCLK_RGA>; 1340*4882a593Smuzhiyun clock-names = "aclk", "hclk", "sclk"; 1341*4882a593Smuzhiyun power-domains = <&power RK3288_PD_VIO>; 1342*4882a593Smuzhiyun resets = <&cru SRST_RGA_CORE>, <&cru SRST_RGA_AXI>, <&cru SRST_RGA_AHB>; 1343*4882a593Smuzhiyun reset-names = "core", "axi", "ahb"; 1344*4882a593Smuzhiyun status = "disabled"; 1345*4882a593Smuzhiyun }; 1346*4882a593Smuzhiyun 1347*4882a593Smuzhiyun vopb: vop@ff930000 { 1348*4882a593Smuzhiyun compatible = "rockchip,rk3288-vop-big"; 1349*4882a593Smuzhiyun reg = <0x0 0xff930000 0x0 0x19c>, <0x0 0xff931000 0x0 0x1000>; 1350*4882a593Smuzhiyun reg-names = "regs", "gamma_lut"; 1351*4882a593Smuzhiyun interrupts = <GIC_SPI 15 IRQ_TYPE_LEVEL_HIGH>; 1352*4882a593Smuzhiyun clocks = <&cru ACLK_VOP0>, <&cru DCLK_VOP0>, <&cru HCLK_VOP0>; 1353*4882a593Smuzhiyun clock-names = "aclk_vop", "dclk_vop", "hclk_vop"; 1354*4882a593Smuzhiyun power-domains = <&power RK3288_PD_VIO>; 1355*4882a593Smuzhiyun resets = <&cru SRST_LCDC0_AXI>, <&cru SRST_LCDC0_AHB>, <&cru SRST_LCDC0_DCLK>; 1356*4882a593Smuzhiyun reset-names = "axi", "ahb", "dclk"; 1357*4882a593Smuzhiyun iommus = <&vopb_mmu>; 1358*4882a593Smuzhiyun status = "disabled"; 1359*4882a593Smuzhiyun 1360*4882a593Smuzhiyun vopb_out: port { 1361*4882a593Smuzhiyun #address-cells = <1>; 1362*4882a593Smuzhiyun #size-cells = <0>; 1363*4882a593Smuzhiyun 1364*4882a593Smuzhiyun vopb_out_hdmi: endpoint@0 { 1365*4882a593Smuzhiyun reg = <0>; 1366*4882a593Smuzhiyun remote-endpoint = <&hdmi_in_vopb>; 1367*4882a593Smuzhiyun }; 1368*4882a593Smuzhiyun 1369*4882a593Smuzhiyun vopb_out_edp: endpoint@1 { 1370*4882a593Smuzhiyun reg = <1>; 1371*4882a593Smuzhiyun remote-endpoint = <&edp_in_vopb>; 1372*4882a593Smuzhiyun }; 1373*4882a593Smuzhiyun 1374*4882a593Smuzhiyun vopb_out_dsi0: endpoint@2 { 1375*4882a593Smuzhiyun reg = <2>; 1376*4882a593Smuzhiyun remote-endpoint = <&dsi0_in_vopb>; 1377*4882a593Smuzhiyun }; 1378*4882a593Smuzhiyun 1379*4882a593Smuzhiyun vopb_out_dsi1: endpoint@3 { 1380*4882a593Smuzhiyun reg = <3>; 1381*4882a593Smuzhiyun remote-endpoint = <&dsi1_in_vopb>; 1382*4882a593Smuzhiyun }; 1383*4882a593Smuzhiyun 1384*4882a593Smuzhiyun vopb_out_lvds: endpoint@4 { 1385*4882a593Smuzhiyun reg = <4>; 1386*4882a593Smuzhiyun remote-endpoint = <&lvds_in_vopb>; 1387*4882a593Smuzhiyun }; 1388*4882a593Smuzhiyun 1389*4882a593Smuzhiyun vopb_out_rgb: endpoint@5 { 1390*4882a593Smuzhiyun reg = <5>; 1391*4882a593Smuzhiyun remote-endpoint = <&rgb_in_vopb>; 1392*4882a593Smuzhiyun }; 1393*4882a593Smuzhiyun }; 1394*4882a593Smuzhiyun }; 1395*4882a593Smuzhiyun 1396*4882a593Smuzhiyun vopb_mmu: iommu@ff930300 { 1397*4882a593Smuzhiyun compatible = "rockchip,iommu"; 1398*4882a593Smuzhiyun reg = <0x0 0xff930300 0x0 0x100>; 1399*4882a593Smuzhiyun interrupts = <GIC_SPI 15 IRQ_TYPE_LEVEL_HIGH>; 1400*4882a593Smuzhiyun interrupt-names = "vopb_mmu"; 1401*4882a593Smuzhiyun clocks = <&cru ACLK_VOP0>, <&cru HCLK_VOP0>; 1402*4882a593Smuzhiyun clock-names = "aclk", "iface"; 1403*4882a593Smuzhiyun power-domains = <&power RK3288_PD_VIO>; 1404*4882a593Smuzhiyun #iommu-cells = <0>; 1405*4882a593Smuzhiyun rockchip,disable-device-link-resume; 1406*4882a593Smuzhiyun status = "disabled"; 1407*4882a593Smuzhiyun }; 1408*4882a593Smuzhiyun 1409*4882a593Smuzhiyun vopl: vop@ff940000 { 1410*4882a593Smuzhiyun compatible = "rockchip,rk3288-vop-lit"; 1411*4882a593Smuzhiyun reg = <0x0 0xff940000 0x0 0x19c>, <0x0 0xff941000 0x0 0x1000>; 1412*4882a593Smuzhiyun reg-names = "regs", "gamma_lut"; 1413*4882a593Smuzhiyun interrupts = <GIC_SPI 16 IRQ_TYPE_LEVEL_HIGH>; 1414*4882a593Smuzhiyun clocks = <&cru ACLK_VOP1>, <&cru DCLK_VOP1>, <&cru HCLK_VOP1>; 1415*4882a593Smuzhiyun clock-names = "aclk_vop", "dclk_vop", "hclk_vop"; 1416*4882a593Smuzhiyun power-domains = <&power RK3288_PD_VIO>; 1417*4882a593Smuzhiyun resets = <&cru SRST_LCDC1_AXI>, <&cru SRST_LCDC1_AHB>, <&cru SRST_LCDC1_DCLK>; 1418*4882a593Smuzhiyun reset-names = "axi", "ahb", "dclk"; 1419*4882a593Smuzhiyun iommus = <&vopl_mmu>; 1420*4882a593Smuzhiyun status = "disabled"; 1421*4882a593Smuzhiyun 1422*4882a593Smuzhiyun vopl_out: port { 1423*4882a593Smuzhiyun #address-cells = <1>; 1424*4882a593Smuzhiyun #size-cells = <0>; 1425*4882a593Smuzhiyun 1426*4882a593Smuzhiyun vopl_out_hdmi: endpoint@0 { 1427*4882a593Smuzhiyun reg = <0>; 1428*4882a593Smuzhiyun remote-endpoint = <&hdmi_in_vopl>; 1429*4882a593Smuzhiyun }; 1430*4882a593Smuzhiyun 1431*4882a593Smuzhiyun vopl_out_edp: endpoint@1 { 1432*4882a593Smuzhiyun reg = <1>; 1433*4882a593Smuzhiyun remote-endpoint = <&edp_in_vopl>; 1434*4882a593Smuzhiyun }; 1435*4882a593Smuzhiyun 1436*4882a593Smuzhiyun vopl_out_dsi0: endpoint@2 { 1437*4882a593Smuzhiyun reg = <2>; 1438*4882a593Smuzhiyun remote-endpoint = <&dsi0_in_vopl>; 1439*4882a593Smuzhiyun }; 1440*4882a593Smuzhiyun 1441*4882a593Smuzhiyun vopl_out_dsi1: endpoint@3 { 1442*4882a593Smuzhiyun reg = <3>; 1443*4882a593Smuzhiyun remote-endpoint = <&dsi1_in_vopl>; 1444*4882a593Smuzhiyun }; 1445*4882a593Smuzhiyun 1446*4882a593Smuzhiyun vopl_out_lvds: endpoint@4 { 1447*4882a593Smuzhiyun reg = <4>; 1448*4882a593Smuzhiyun remote-endpoint = <&lvds_in_vopl>; 1449*4882a593Smuzhiyun }; 1450*4882a593Smuzhiyun 1451*4882a593Smuzhiyun vopl_out_rgb: endpoint@5 { 1452*4882a593Smuzhiyun reg = <5>; 1453*4882a593Smuzhiyun remote-endpoint = <&rgb_in_vopl>; 1454*4882a593Smuzhiyun }; 1455*4882a593Smuzhiyun }; 1456*4882a593Smuzhiyun }; 1457*4882a593Smuzhiyun 1458*4882a593Smuzhiyun vopl_mmu: iommu@ff940300 { 1459*4882a593Smuzhiyun compatible = "rockchip,iommu"; 1460*4882a593Smuzhiyun reg = <0x0 0xff940300 0x0 0x100>; 1461*4882a593Smuzhiyun interrupts = <GIC_SPI 16 IRQ_TYPE_LEVEL_HIGH>; 1462*4882a593Smuzhiyun interrupt-names = "vopl_mmu"; 1463*4882a593Smuzhiyun clocks = <&cru ACLK_VOP1>, <&cru HCLK_VOP1>; 1464*4882a593Smuzhiyun clock-names = "aclk", "iface"; 1465*4882a593Smuzhiyun power-domains = <&power RK3288_PD_VIO>; 1466*4882a593Smuzhiyun #iommu-cells = <0>; 1467*4882a593Smuzhiyun rockchip,disable-device-link-resume; 1468*4882a593Smuzhiyun status = "disabled"; 1469*4882a593Smuzhiyun }; 1470*4882a593Smuzhiyun 1471*4882a593Smuzhiyun cif: cif@ff950000 { 1472*4882a593Smuzhiyun compatible = "rockchip,cif", "rockchip,rk3288-cif"; 1473*4882a593Smuzhiyun reg = <0x0 0xff950000 0x0 0x400>; 1474*4882a593Smuzhiyun interrupts = <GIC_SPI 13 IRQ_TYPE_LEVEL_HIGH>; 1475*4882a593Smuzhiyun clocks = <&cru ACLK_VIP>, <&cru HCLK_VIP>, 1476*4882a593Smuzhiyun <&cru PCLK_VIP_IN>, <&cru SCLK_VIP_OUT>; 1477*4882a593Smuzhiyun clock-names = "aclk_cif0", "hclk_cif0", 1478*4882a593Smuzhiyun "cif0_in", "cif0_out"; 1479*4882a593Smuzhiyun resets = <&cru SRST_VIP>; 1480*4882a593Smuzhiyun reset-names = "rst_cif"; 1481*4882a593Smuzhiyun pinctrl-names = "cif_pin_all"; 1482*4882a593Smuzhiyun pinctrl-0 = <&isp_mipi &isp_dvp_d2d9 &isp_dvp_d10d11>; 1483*4882a593Smuzhiyun rockchip,grf = <&grf>; 1484*4882a593Smuzhiyun rockchip,cru = <&cru>; 1485*4882a593Smuzhiyun power-domains = <&power RK3288_PD_VIO>; 1486*4882a593Smuzhiyun status = "disabled"; 1487*4882a593Smuzhiyun }; 1488*4882a593Smuzhiyun 1489*4882a593Smuzhiyun dsi0: dsi@ff960000 { 1490*4882a593Smuzhiyun compatible = "rockchip,rk3288-mipi-dsi", "snps,dw-mipi-dsi"; 1491*4882a593Smuzhiyun reg = <0x0 0xff960000 0x0 0x4000>; 1492*4882a593Smuzhiyun interrupts = <GIC_SPI 19 IRQ_TYPE_LEVEL_HIGH>; 1493*4882a593Smuzhiyun clocks = <&cru SCLK_MIPIDSI_24M>, <&cru PCLK_MIPI_DSI0>; 1494*4882a593Smuzhiyun clock-names = "ref", "pclk"; 1495*4882a593Smuzhiyun resets = <&cru SRST_MIPIDSI0>; 1496*4882a593Smuzhiyun reset-names = "apb"; 1497*4882a593Smuzhiyun power-domains = <&power RK3288_PD_VIO>; 1498*4882a593Smuzhiyun rockchip,grf = <&grf>; 1499*4882a593Smuzhiyun #address-cells = <1>; 1500*4882a593Smuzhiyun #size-cells = <0>; 1501*4882a593Smuzhiyun status = "disabled"; 1502*4882a593Smuzhiyun 1503*4882a593Smuzhiyun ports { 1504*4882a593Smuzhiyun mipi_in: port { 1505*4882a593Smuzhiyun #address-cells = <1>; 1506*4882a593Smuzhiyun #size-cells = <0>; 1507*4882a593Smuzhiyun dsi0_in_vopb: endpoint@0 { 1508*4882a593Smuzhiyun reg = <0>; 1509*4882a593Smuzhiyun remote-endpoint = <&vopb_out_dsi0>; 1510*4882a593Smuzhiyun }; 1511*4882a593Smuzhiyun dsi0_in_vopl: endpoint@1 { 1512*4882a593Smuzhiyun reg = <1>; 1513*4882a593Smuzhiyun remote-endpoint = <&vopl_out_dsi0>; 1514*4882a593Smuzhiyun }; 1515*4882a593Smuzhiyun }; 1516*4882a593Smuzhiyun }; 1517*4882a593Smuzhiyun }; 1518*4882a593Smuzhiyun 1519*4882a593Smuzhiyun dsi1: dsi@ff964000 { 1520*4882a593Smuzhiyun compatible = "rockchip,rk3288-mipi-dsi", "snps,dw-mipi-dsi"; 1521*4882a593Smuzhiyun reg = <0x0 0xff964000 0x0 0x4000>; 1522*4882a593Smuzhiyun interrupts = <GIC_SPI 20 IRQ_TYPE_LEVEL_HIGH>; 1523*4882a593Smuzhiyun clocks = <&cru SCLK_MIPIDSI_24M>, <&cru PCLK_MIPI_DSI1>; 1524*4882a593Smuzhiyun clock-names = "ref", "pclk"; 1525*4882a593Smuzhiyun resets = <&cru SRST_MIPIDSI1>; 1526*4882a593Smuzhiyun reset-names = "apb"; 1527*4882a593Smuzhiyun power-domains = <&power RK3288_PD_VIO>; 1528*4882a593Smuzhiyun rockchip,grf = <&grf>; 1529*4882a593Smuzhiyun #address-cells = <1>; 1530*4882a593Smuzhiyun #size-cells = <0>; 1531*4882a593Smuzhiyun status = "disabled"; 1532*4882a593Smuzhiyun 1533*4882a593Smuzhiyun ports { 1534*4882a593Smuzhiyun #address-cells = <1>; 1535*4882a593Smuzhiyun #size-cells = <0>; 1536*4882a593Smuzhiyun 1537*4882a593Smuzhiyun dsi1_in: port { 1538*4882a593Smuzhiyun #address-cells = <1>; 1539*4882a593Smuzhiyun #size-cells = <0>; 1540*4882a593Smuzhiyun 1541*4882a593Smuzhiyun dsi1_in_vopb: endpoint@0 { 1542*4882a593Smuzhiyun reg = <0>; 1543*4882a593Smuzhiyun remote-endpoint = <&vopb_out_dsi1>; 1544*4882a593Smuzhiyun }; 1545*4882a593Smuzhiyun dsi1_in_vopl: endpoint@1 { 1546*4882a593Smuzhiyun reg = <1>; 1547*4882a593Smuzhiyun remote-endpoint = <&vopl_out_dsi1>; 1548*4882a593Smuzhiyun }; 1549*4882a593Smuzhiyun }; 1550*4882a593Smuzhiyun }; 1551*4882a593Smuzhiyun }; 1552*4882a593Smuzhiyun 1553*4882a593Smuzhiyun video_phy: video-phy@ff96c000 { 1554*4882a593Smuzhiyun compatible = "rockchip,rk3288-video-phy"; 1555*4882a593Smuzhiyun reg = <0x0 0xff96c000 0x0 0x4000>; 1556*4882a593Smuzhiyun clocks = <&cru PCLK_LVDS_PHY>; 1557*4882a593Smuzhiyun clock-names = "pclk"; 1558*4882a593Smuzhiyun resets = <&cru SRST_LVDS_PHY>; 1559*4882a593Smuzhiyun reset-names = "rst"; 1560*4882a593Smuzhiyun power-domains = <&power RK3288_PD_VIO>; 1561*4882a593Smuzhiyun #phy-cells = <0>; 1562*4882a593Smuzhiyun status = "disabled"; 1563*4882a593Smuzhiyun }; 1564*4882a593Smuzhiyun 1565*4882a593Smuzhiyun edp: dp@ff970000 { 1566*4882a593Smuzhiyun compatible = "rockchip,rk3288-dp"; 1567*4882a593Smuzhiyun reg = <0x0 0xff970000 0x0 0x4000>; 1568*4882a593Smuzhiyun interrupts = <GIC_SPI 98 IRQ_TYPE_LEVEL_HIGH>; 1569*4882a593Smuzhiyun clocks = <&cru SCLK_EDP_24M>, <&cru PCLK_EDP_CTRL>, 1570*4882a593Smuzhiyun <&cru SCLK_EDP>; 1571*4882a593Smuzhiyun clock-names = "dp", "pclk", "spdif"; 1572*4882a593Smuzhiyun assigned-clocks = <&cru SCLK_EDP_24M>; 1573*4882a593Smuzhiyun assigned-clock-parents = <&xin24m>; 1574*4882a593Smuzhiyun power-domains = <&power RK3288_PD_VIO>; 1575*4882a593Smuzhiyun resets = <&cru SRST_EDP>; 1576*4882a593Smuzhiyun reset-names = "dp"; 1577*4882a593Smuzhiyun rockchip,grf = <&grf>; 1578*4882a593Smuzhiyun status = "disabled"; 1579*4882a593Smuzhiyun 1580*4882a593Smuzhiyun ports { 1581*4882a593Smuzhiyun #address-cells = <1>; 1582*4882a593Smuzhiyun #size-cells = <0>; 1583*4882a593Smuzhiyun edp_in: port@0 { 1584*4882a593Smuzhiyun reg = <0>; 1585*4882a593Smuzhiyun #address-cells = <1>; 1586*4882a593Smuzhiyun #size-cells = <0>; 1587*4882a593Smuzhiyun edp_in_vopb: endpoint@0 { 1588*4882a593Smuzhiyun reg = <0>; 1589*4882a593Smuzhiyun remote-endpoint = <&vopb_out_edp>; 1590*4882a593Smuzhiyun }; 1591*4882a593Smuzhiyun edp_in_vopl: endpoint@1 { 1592*4882a593Smuzhiyun reg = <1>; 1593*4882a593Smuzhiyun remote-endpoint = <&vopl_out_edp>; 1594*4882a593Smuzhiyun }; 1595*4882a593Smuzhiyun }; 1596*4882a593Smuzhiyun }; 1597*4882a593Smuzhiyun }; 1598*4882a593Smuzhiyun 1599*4882a593Smuzhiyun hdmi: hdmi@ff980000 { 1600*4882a593Smuzhiyun compatible = "rockchip,rk3288-dw-hdmi"; 1601*4882a593Smuzhiyun reg = <0x0 0xff980000 0x0 0x20000>; 1602*4882a593Smuzhiyun reg-io-width = <4>; 1603*4882a593Smuzhiyun #sound-dai-cells = <0>; 1604*4882a593Smuzhiyun rockchip,grf = <&grf>; 1605*4882a593Smuzhiyun interrupts = <GIC_SPI 103 IRQ_TYPE_LEVEL_HIGH>; 1606*4882a593Smuzhiyun clocks = <&cru PCLK_HDMI_CTRL>, <&cru SCLK_HDMI_HDCP>, <&cru SCLK_HDMI_CEC>; 1607*4882a593Smuzhiyun clock-names = "iahb", "isfr", "cec"; 1608*4882a593Smuzhiyun pinctrl-names = "default", "sleep"; 1609*4882a593Smuzhiyun pinctrl-0 = <&hdmi_ddc>; 1610*4882a593Smuzhiyun pinctrl-1 = <&hdmi_gpio>; 1611*4882a593Smuzhiyun power-domains = <&power RK3288_PD_VIO>; 1612*4882a593Smuzhiyun unsupported-yuv-input; 1613*4882a593Smuzhiyun status = "disabled"; 1614*4882a593Smuzhiyun 1615*4882a593Smuzhiyun ports { 1616*4882a593Smuzhiyun hdmi_in: port { 1617*4882a593Smuzhiyun #address-cells = <1>; 1618*4882a593Smuzhiyun #size-cells = <0>; 1619*4882a593Smuzhiyun hdmi_in_vopb: endpoint@0 { 1620*4882a593Smuzhiyun reg = <0>; 1621*4882a593Smuzhiyun remote-endpoint = <&vopb_out_hdmi>; 1622*4882a593Smuzhiyun }; 1623*4882a593Smuzhiyun hdmi_in_vopl: endpoint@1 { 1624*4882a593Smuzhiyun reg = <1>; 1625*4882a593Smuzhiyun remote-endpoint = <&vopl_out_hdmi>; 1626*4882a593Smuzhiyun }; 1627*4882a593Smuzhiyun }; 1628*4882a593Smuzhiyun }; 1629*4882a593Smuzhiyun }; 1630*4882a593Smuzhiyun 1631*4882a593Smuzhiyun vpu: video-codec@ff9a0000 { 1632*4882a593Smuzhiyun compatible = "rockchip,rk3288-vpu"; 1633*4882a593Smuzhiyun reg = <0x0 0xff9a0000 0x0 0x800>; 1634*4882a593Smuzhiyun interrupts = <GIC_SPI 9 IRQ_TYPE_LEVEL_HIGH>, 1635*4882a593Smuzhiyun <GIC_SPI 10 IRQ_TYPE_LEVEL_HIGH>; 1636*4882a593Smuzhiyun interrupt-names = "vepu", "vdpu"; 1637*4882a593Smuzhiyun clocks = <&cru ACLK_VCODEC>, <&cru HCLK_VCODEC>; 1638*4882a593Smuzhiyun clock-names = "aclk", "hclk"; 1639*4882a593Smuzhiyun iommus = <&vpu_mmu>; 1640*4882a593Smuzhiyun power-domains = <&power RK3288_PD_VIDEO>; 1641*4882a593Smuzhiyun status = "disabled"; 1642*4882a593Smuzhiyun }; 1643*4882a593Smuzhiyun 1644*4882a593Smuzhiyun mpp_srv: mpp-srv { 1645*4882a593Smuzhiyun compatible = "rockchip,mpp-service"; 1646*4882a593Smuzhiyun rockchip,taskqueue-count = <2>; 1647*4882a593Smuzhiyun rockchip,resetgroup-count = <2>; 1648*4882a593Smuzhiyun status = "disabled"; 1649*4882a593Smuzhiyun }; 1650*4882a593Smuzhiyun 1651*4882a593Smuzhiyun vepu: vepu@ff9a0000 { 1652*4882a593Smuzhiyun compatible = "rockchip,vpu-encoder-v1"; 1653*4882a593Smuzhiyun reg = <0x0 0xff9a0000 0x0 0x400>; 1654*4882a593Smuzhiyun interrupts = <GIC_SPI 9 IRQ_TYPE_LEVEL_HIGH>; 1655*4882a593Smuzhiyun interrupt-names = "irq_enc"; 1656*4882a593Smuzhiyun clocks = <&cru ACLK_VCODEC>, <&cru HCLK_VCODEC>; 1657*4882a593Smuzhiyun clock-names = "aclk_vcodec", "hclk_vcodec"; 1658*4882a593Smuzhiyun resets = <&cru SRST_VCODEC_AXI>, <&cru SRST_VCODEC_AHB>; 1659*4882a593Smuzhiyun reset-names = "shared_video_a", "shared_video_h"; 1660*4882a593Smuzhiyun assigned-clocks = <&cru ACLK_VCODEC>; 1661*4882a593Smuzhiyun assigned-clock-rates = <400000000>; 1662*4882a593Smuzhiyun iommus = <&vpu_mmu>; 1663*4882a593Smuzhiyun power-domains = <&power RK3288_PD_VIDEO>; 1664*4882a593Smuzhiyun rockchip,srv = <&mpp_srv>; 1665*4882a593Smuzhiyun rockchip,taskqueue-node = <0>; 1666*4882a593Smuzhiyun rockchip,resetgroup-node = <0>; 1667*4882a593Smuzhiyun status = "disabled"; 1668*4882a593Smuzhiyun }; 1669*4882a593Smuzhiyun 1670*4882a593Smuzhiyun vdpu: vdpu@ff9a0400 { 1671*4882a593Smuzhiyun compatible = "rockchip,vpu-decoder-rk3288", "rockchip,vpu-decoder-v1"; 1672*4882a593Smuzhiyun reg = <0x0 0xff9a0400 0x0 0x400>; 1673*4882a593Smuzhiyun interrupts = <GIC_SPI 10 IRQ_TYPE_LEVEL_HIGH>; 1674*4882a593Smuzhiyun interrupt-names = "irq_dec"; 1675*4882a593Smuzhiyun clocks = <&cru ACLK_VCODEC>, <&cru HCLK_VCODEC>; 1676*4882a593Smuzhiyun clock-names = "aclk_vcodec", "hclk_vcodec"; 1677*4882a593Smuzhiyun rockchip,normal-rates = <300000000>, <0>; 1678*4882a593Smuzhiyun rockchip,advanced-rates = <600000000>, <0>; 1679*4882a593Smuzhiyun resets = <&cru SRST_VCODEC_AXI>, <&cru SRST_VCODEC_AHB>; 1680*4882a593Smuzhiyun reset-names = "shared_video_a", "shared_video_h"; 1681*4882a593Smuzhiyun assigned-clocks = <&cru ACLK_VCODEC>; 1682*4882a593Smuzhiyun assigned-clock-rates = <400000000>; 1683*4882a593Smuzhiyun iommus = <&vpu_mmu>; 1684*4882a593Smuzhiyun power-domains = <&power RK3288_PD_VIDEO>; 1685*4882a593Smuzhiyun rockchip,srv = <&mpp_srv>; 1686*4882a593Smuzhiyun rockchip,taskqueue-node = <0>; 1687*4882a593Smuzhiyun rockchip,resetgroup-node = <0>; 1688*4882a593Smuzhiyun status = "disabled"; 1689*4882a593Smuzhiyun }; 1690*4882a593Smuzhiyun 1691*4882a593Smuzhiyun vpu_mmu: iommu@ff9a0800 { 1692*4882a593Smuzhiyun compatible = "rockchip,iommu"; 1693*4882a593Smuzhiyun reg = <0x0 0xff9a0800 0x0 0x100>; 1694*4882a593Smuzhiyun interrupts = <GIC_SPI 11 IRQ_TYPE_LEVEL_HIGH>; 1695*4882a593Smuzhiyun interrupt-names = "vpu_mmu"; 1696*4882a593Smuzhiyun clocks = <&cru ACLK_VCODEC>, <&cru HCLK_VCODEC>; 1697*4882a593Smuzhiyun clock-names = "aclk", "iface"; 1698*4882a593Smuzhiyun #iommu-cells = <0>; 1699*4882a593Smuzhiyun power-domains = <&power RK3288_PD_VIDEO>; 1700*4882a593Smuzhiyun status = "disabled"; 1701*4882a593Smuzhiyun }; 1702*4882a593Smuzhiyun 1703*4882a593Smuzhiyun hevc: hevc_service@ff9c0000 { 1704*4882a593Smuzhiyun compatible = "rockchip,hevc-decoder"; 1705*4882a593Smuzhiyun reg = <0x0 0xff9c0000 0x0 0x400>; 1706*4882a593Smuzhiyun interrupts = <GIC_SPI 12 IRQ_TYPE_LEVEL_HIGH>; 1707*4882a593Smuzhiyun interrupt-names = "irq_dec"; 1708*4882a593Smuzhiyun clocks = <&cru ACLK_HEVC>, <&cru HCLK_HEVC>, <&cru SCLK_HEVC_CORE>, 1709*4882a593Smuzhiyun <&cru SCLK_HEVC_CABAC>; 1710*4882a593Smuzhiyun clock-names = "aclk_vcodec", "hclk_vcodec", "clk_core", 1711*4882a593Smuzhiyun "clk_cabac"; 1712*4882a593Smuzhiyun rockchip,normal-rates = <300000000>, <0>, <200000000>, 1713*4882a593Smuzhiyun <200000000>; 1714*4882a593Smuzhiyun rockchip,advanced-rates = <500000000>, <0>, <400000000>, 1715*4882a593Smuzhiyun <400000000>; 1716*4882a593Smuzhiyun rockchip,default-max-load = <2088960>; 1717*4882a593Smuzhiyun resets = <&cru SRST_HEVC>; 1718*4882a593Smuzhiyun reset-names = "video_core"; 1719*4882a593Smuzhiyun 1720*4882a593Smuzhiyun /* 1721*4882a593Smuzhiyun * The 4K hevc would also work well with 500/125/300/300, 1722*4882a593Smuzhiyun * no more err irq and reset request. 1723*4882a593Smuzhiyun */ 1724*4882a593Smuzhiyun assigned-clocks = <&cru ACLK_HEVC>, <&cru HCLK_HEVC>, 1725*4882a593Smuzhiyun <&cru SCLK_HEVC_CORE>, 1726*4882a593Smuzhiyun <&cru SCLK_HEVC_CABAC>; 1727*4882a593Smuzhiyun assigned-clock-rates = <400000000>, <100000000>, 1728*4882a593Smuzhiyun <300000000>, <300000000>; 1729*4882a593Smuzhiyun iommus = <&hevc_mmu>; 1730*4882a593Smuzhiyun rockchip,srv = <&mpp_srv>; 1731*4882a593Smuzhiyun rockchip,taskqueue-node = <1>; 1732*4882a593Smuzhiyun rockchip,resetgroup-node = <1>; 1733*4882a593Smuzhiyun power-domains = <&power RK3288_PD_HEVC>; 1734*4882a593Smuzhiyun status = "disabled"; 1735*4882a593Smuzhiyun }; 1736*4882a593Smuzhiyun 1737*4882a593Smuzhiyun hevc_mmu: iommu@ff9c0440 { 1738*4882a593Smuzhiyun compatible = "rockchip,iommu"; 1739*4882a593Smuzhiyun reg = <0x0 0xff9c0440 0x0 0x40>, <0x0 0xff9c0480 0x0 0x40>; 1740*4882a593Smuzhiyun interrupts = <GIC_SPI 111 IRQ_TYPE_LEVEL_HIGH>; 1741*4882a593Smuzhiyun interrupt-names = "hevc_mmu"; 1742*4882a593Smuzhiyun clocks = <&cru ACLK_HEVC>, <&cru HCLK_HEVC>; 1743*4882a593Smuzhiyun clock-names = "aclk", "iface"; 1744*4882a593Smuzhiyun power-domains = <&power RK3288_PD_HEVC>; 1745*4882a593Smuzhiyun #iommu-cells = <0>; 1746*4882a593Smuzhiyun status = "disabled"; 1747*4882a593Smuzhiyun }; 1748*4882a593Smuzhiyun 1749*4882a593Smuzhiyun gpu: gpu@ffa30000 { 1750*4882a593Smuzhiyun compatible = "rockchip,rk3288-mali", "arm,mali-t760", 1751*4882a593Smuzhiyun "arm,malit764", "arm,malit76x", "arm,malit7xx", 1752*4882a593Smuzhiyun "arm,mali-midgard"; 1753*4882a593Smuzhiyun reg = <0x0 0xffa30000 0x0 0x10000>; 1754*4882a593Smuzhiyun interrupts = <GIC_SPI 6 IRQ_TYPE_LEVEL_HIGH>, 1755*4882a593Smuzhiyun <GIC_SPI 7 IRQ_TYPE_LEVEL_HIGH>, 1756*4882a593Smuzhiyun <GIC_SPI 8 IRQ_TYPE_LEVEL_HIGH>; 1757*4882a593Smuzhiyun interrupt-names = "job", "mmu", "gpu"; 1758*4882a593Smuzhiyun clocks = <&cru ACLK_GPU>; 1759*4882a593Smuzhiyun clock-names = "clk_mali"; 1760*4882a593Smuzhiyun operating-points-v2 = <&gpu_opp_table>; 1761*4882a593Smuzhiyun #cooling-cells = <2>; /* min followed by max */ 1762*4882a593Smuzhiyun power-domains = <&power RK3288_PD_GPU>; 1763*4882a593Smuzhiyun status = "disabled"; 1764*4882a593Smuzhiyun 1765*4882a593Smuzhiyun upthreshold = <75>; 1766*4882a593Smuzhiyun downdifferential = <10>; 1767*4882a593Smuzhiyun 1768*4882a593Smuzhiyun gpu_power_model: power_model { 1769*4882a593Smuzhiyun compatible = "arm,mali-simple-power-model"; 1770*4882a593Smuzhiyun static-coefficient = <411000>; 1771*4882a593Smuzhiyun dynamic-coefficient = <733>; 1772*4882a593Smuzhiyun ts = <32000 4700 (-80) 2>; 1773*4882a593Smuzhiyun thermal-zone = "gpu-thermal"; 1774*4882a593Smuzhiyun }; 1775*4882a593Smuzhiyun }; 1776*4882a593Smuzhiyun 1777*4882a593Smuzhiyun gpu_opp_table: gpu-opp-table { 1778*4882a593Smuzhiyun compatible = "operating-points-v2"; 1779*4882a593Smuzhiyun 1780*4882a593Smuzhiyun clocks = <&cru PLL_GPLL>; 1781*4882a593Smuzhiyun nvmem-cells = <&performance>, <&performance_w>; 1782*4882a593Smuzhiyun nvmem-cell-names = "performance", "performance-w"; 1783*4882a593Smuzhiyun rockchip,bin-scaling-sel = < 1784*4882a593Smuzhiyun 0 55 1785*4882a593Smuzhiyun 1 59 1786*4882a593Smuzhiyun 2 61 1787*4882a593Smuzhiyun 3 61 1788*4882a593Smuzhiyun >; 1789*4882a593Smuzhiyun 1790*4882a593Smuzhiyun opp-100000000 { 1791*4882a593Smuzhiyun opp-hz = /bits/ 64 <100000000>; 1792*4882a593Smuzhiyun opp-microvolt = <950000>; 1793*4882a593Smuzhiyun }; 1794*4882a593Smuzhiyun opp-200000000 { 1795*4882a593Smuzhiyun opp-hz = /bits/ 64 <200000000>; 1796*4882a593Smuzhiyun opp-microvolt = <950000>; 1797*4882a593Smuzhiyun }; 1798*4882a593Smuzhiyun opp-300000000 { 1799*4882a593Smuzhiyun opp-hz = /bits/ 64 <300000000>; 1800*4882a593Smuzhiyun opp-microvolt = <1000000>; 1801*4882a593Smuzhiyun }; 1802*4882a593Smuzhiyun opp-420000000 { 1803*4882a593Smuzhiyun opp-hz = /bits/ 64 <420000000>; 1804*4882a593Smuzhiyun opp-microvolt = <1100000>; 1805*4882a593Smuzhiyun }; 1806*4882a593Smuzhiyun opp-600000000 { 1807*4882a593Smuzhiyun opp-hz = /bits/ 64 <600000000>; 1808*4882a593Smuzhiyun opp-microvolt = <1250000>; 1809*4882a593Smuzhiyun }; 1810*4882a593Smuzhiyun }; 1811*4882a593Smuzhiyun 1812*4882a593Smuzhiyun qos_gpu_r: qos@ffaa0000 { 1813*4882a593Smuzhiyun compatible = "syscon"; 1814*4882a593Smuzhiyun reg = <0x0 0xffaa0000 0x0 0x20>; 1815*4882a593Smuzhiyun }; 1816*4882a593Smuzhiyun 1817*4882a593Smuzhiyun qos_gpu_w: qos@ffaa0080 { 1818*4882a593Smuzhiyun compatible = "syscon"; 1819*4882a593Smuzhiyun reg = <0x0 0xffaa0080 0x0 0x20>; 1820*4882a593Smuzhiyun }; 1821*4882a593Smuzhiyun 1822*4882a593Smuzhiyun qos_vio1_vop: qos@ffad0000 { 1823*4882a593Smuzhiyun compatible = "syscon"; 1824*4882a593Smuzhiyun reg = <0x0 0xffad0000 0x0 0x20>; 1825*4882a593Smuzhiyun }; 1826*4882a593Smuzhiyun 1827*4882a593Smuzhiyun qos_vio1_isp_w0: qos@ffad0100 { 1828*4882a593Smuzhiyun compatible = "syscon"; 1829*4882a593Smuzhiyun reg = <0x0 0xffad0100 0x0 0x20>; 1830*4882a593Smuzhiyun }; 1831*4882a593Smuzhiyun 1832*4882a593Smuzhiyun qos_vio1_isp_w1: qos@ffad0180 { 1833*4882a593Smuzhiyun compatible = "syscon"; 1834*4882a593Smuzhiyun reg = <0x0 0xffad0180 0x0 0x20>; 1835*4882a593Smuzhiyun }; 1836*4882a593Smuzhiyun 1837*4882a593Smuzhiyun qos_vio0_vop: qos@ffad0400 { 1838*4882a593Smuzhiyun compatible = "syscon"; 1839*4882a593Smuzhiyun reg = <0x0 0xffad0400 0x0 0x20>; 1840*4882a593Smuzhiyun }; 1841*4882a593Smuzhiyun 1842*4882a593Smuzhiyun qos_vio0_vip: qos@ffad0480 { 1843*4882a593Smuzhiyun compatible = "syscon"; 1844*4882a593Smuzhiyun reg = <0x0 0xffad0480 0x0 0x20>; 1845*4882a593Smuzhiyun }; 1846*4882a593Smuzhiyun 1847*4882a593Smuzhiyun qos_vio0_iep: qos@ffad0500 { 1848*4882a593Smuzhiyun compatible = "syscon"; 1849*4882a593Smuzhiyun reg = <0x0 0xffad0500 0x0 0x20>; 1850*4882a593Smuzhiyun }; 1851*4882a593Smuzhiyun 1852*4882a593Smuzhiyun qos_vio2_rga_r: qos@ffad0800 { 1853*4882a593Smuzhiyun compatible = "syscon"; 1854*4882a593Smuzhiyun reg = <0x0 0xffad0800 0x0 0x20>; 1855*4882a593Smuzhiyun }; 1856*4882a593Smuzhiyun 1857*4882a593Smuzhiyun qos_vio2_rga_w: qos@ffad0880 { 1858*4882a593Smuzhiyun compatible = "syscon"; 1859*4882a593Smuzhiyun reg = <0x0 0xffad0880 0x0 0x20>; 1860*4882a593Smuzhiyun }; 1861*4882a593Smuzhiyun 1862*4882a593Smuzhiyun qos_vio1_isp_r: qos@ffad0900 { 1863*4882a593Smuzhiyun compatible = "syscon"; 1864*4882a593Smuzhiyun reg = <0x0 0xffad0900 0x0 0x20>; 1865*4882a593Smuzhiyun }; 1866*4882a593Smuzhiyun 1867*4882a593Smuzhiyun qos_video: qos@ffae0000 { 1868*4882a593Smuzhiyun compatible = "syscon"; 1869*4882a593Smuzhiyun reg = <0x0 0xffae0000 0x0 0x20>; 1870*4882a593Smuzhiyun }; 1871*4882a593Smuzhiyun 1872*4882a593Smuzhiyun qos_hevc_r: qos@ffaf0000 { 1873*4882a593Smuzhiyun compatible = "syscon"; 1874*4882a593Smuzhiyun reg = <0x0 0xffaf0000 0x0 0x20>; 1875*4882a593Smuzhiyun }; 1876*4882a593Smuzhiyun 1877*4882a593Smuzhiyun qos_hevc_w: qos@ffaf0080 { 1878*4882a593Smuzhiyun compatible = "syscon"; 1879*4882a593Smuzhiyun reg = <0x0 0xffaf0080 0x0 0x20>; 1880*4882a593Smuzhiyun }; 1881*4882a593Smuzhiyun 1882*4882a593Smuzhiyun efuse: efuse@ffb40000 { 1883*4882a593Smuzhiyun compatible = "rockchip,rk3288-efuse"; 1884*4882a593Smuzhiyun reg = <0x0 0xffb40000 0x0 0x20>; 1885*4882a593Smuzhiyun #address-cells = <1>; 1886*4882a593Smuzhiyun #size-cells = <1>; 1887*4882a593Smuzhiyun clocks = <&cru PCLK_EFUSE256>; 1888*4882a593Smuzhiyun clock-names = "pclk_efuse"; 1889*4882a593Smuzhiyun 1890*4882a593Smuzhiyun special_function: special-function@5 { 1891*4882a593Smuzhiyun reg = <0x5 0x1>; 1892*4882a593Smuzhiyun bits = <4 4>; 1893*4882a593Smuzhiyun }; 1894*4882a593Smuzhiyun package_info: package-info@5 { 1895*4882a593Smuzhiyun reg = <0x5 0x1>; 1896*4882a593Smuzhiyun bits = <2 2>; 1897*4882a593Smuzhiyun }; 1898*4882a593Smuzhiyun process_version: process-version@6 { 1899*4882a593Smuzhiyun reg = <0x6 0x1>; 1900*4882a593Smuzhiyun bits = <0 4>; 1901*4882a593Smuzhiyun }; 1902*4882a593Smuzhiyun cpu_id: cpu-id@7 { 1903*4882a593Smuzhiyun reg = <0x07 0x10>; 1904*4882a593Smuzhiyun }; 1905*4882a593Smuzhiyun cpu_leakage: cpu_leakage@17 { 1906*4882a593Smuzhiyun reg = <0x17 0x1>; 1907*4882a593Smuzhiyun }; 1908*4882a593Smuzhiyun performance_w: performance@1c { 1909*4882a593Smuzhiyun reg = <0x1c 0x1>; 1910*4882a593Smuzhiyun bits = <4 3>; 1911*4882a593Smuzhiyun }; 1912*4882a593Smuzhiyun performance: performance@1d { 1913*4882a593Smuzhiyun reg = <0x1d 0x1>; 1914*4882a593Smuzhiyun bits = <4 3>; 1915*4882a593Smuzhiyun }; 1916*4882a593Smuzhiyun }; 1917*4882a593Smuzhiyun 1918*4882a593Smuzhiyun gic: interrupt-controller@ffc01000 { 1919*4882a593Smuzhiyun compatible = "arm,gic-400"; 1920*4882a593Smuzhiyun interrupt-controller; 1921*4882a593Smuzhiyun #interrupt-cells = <3>; 1922*4882a593Smuzhiyun #address-cells = <0>; 1923*4882a593Smuzhiyun 1924*4882a593Smuzhiyun reg = <0x0 0xffc01000 0x0 0x1000>, 1925*4882a593Smuzhiyun <0x0 0xffc02000 0x0 0x2000>, 1926*4882a593Smuzhiyun <0x0 0xffc04000 0x0 0x2000>, 1927*4882a593Smuzhiyun <0x0 0xffc06000 0x0 0x2000>; 1928*4882a593Smuzhiyun interrupts = <GIC_PPI 9 0xf04>; 1929*4882a593Smuzhiyun }; 1930*4882a593Smuzhiyun 1931*4882a593Smuzhiyun rockchip_system_monitor: rockchip-system-monitor { 1932*4882a593Smuzhiyun compatible = "rockchip,system-monitor"; 1933*4882a593Smuzhiyun }; 1934*4882a593Smuzhiyun 1935*4882a593Smuzhiyun rockchip_suspend: rockchip-suspend { 1936*4882a593Smuzhiyun compatible = "rockchip,pm-rk3288"; 1937*4882a593Smuzhiyun status = "disabled"; 1938*4882a593Smuzhiyun rockchip,sleep-mode-config = < 1939*4882a593Smuzhiyun (0 1940*4882a593Smuzhiyun |RKPM_CTR_PWR_DMNS 1941*4882a593Smuzhiyun |RKPM_CTR_GTCLKS 1942*4882a593Smuzhiyun |RKPM_CTR_PLLS 1943*4882a593Smuzhiyun |RKPM_CTR_ARMOFF_LPMD 1944*4882a593Smuzhiyun |RKPM_CTR_SYSCLK_OSC_DIS 1945*4882a593Smuzhiyun ) 1946*4882a593Smuzhiyun >; 1947*4882a593Smuzhiyun rockchip,wakeup-config = < 1948*4882a593Smuzhiyun (0 1949*4882a593Smuzhiyun | RKPM_GPIO_WKUP_EN 1950*4882a593Smuzhiyun ) 1951*4882a593Smuzhiyun >; 1952*4882a593Smuzhiyun rockchip,pwm-regulator-config = < 1953*4882a593Smuzhiyun (0 1954*4882a593Smuzhiyun | PWM2_REGULATOR_EN 1955*4882a593Smuzhiyun ) 1956*4882a593Smuzhiyun >; 1957*4882a593Smuzhiyun }; 1958*4882a593Smuzhiyun 1959*4882a593Smuzhiyun pinctrl: pinctrl { 1960*4882a593Smuzhiyun compatible = "rockchip,rk3288-pinctrl"; 1961*4882a593Smuzhiyun rockchip,grf = <&grf>; 1962*4882a593Smuzhiyun rockchip,pmu = <&pmu>; 1963*4882a593Smuzhiyun #address-cells = <2>; 1964*4882a593Smuzhiyun #size-cells = <2>; 1965*4882a593Smuzhiyun ranges; 1966*4882a593Smuzhiyun 1967*4882a593Smuzhiyun gpio0: gpio0@ff750000 { 1968*4882a593Smuzhiyun compatible = "rockchip,gpio-bank"; 1969*4882a593Smuzhiyun reg = <0x0 0xff750000 0x0 0x100>; 1970*4882a593Smuzhiyun interrupts = <GIC_SPI 81 IRQ_TYPE_LEVEL_HIGH>; 1971*4882a593Smuzhiyun clocks = <&cru PCLK_GPIO0>; 1972*4882a593Smuzhiyun 1973*4882a593Smuzhiyun gpio-controller; 1974*4882a593Smuzhiyun #gpio-cells = <2>; 1975*4882a593Smuzhiyun 1976*4882a593Smuzhiyun interrupt-controller; 1977*4882a593Smuzhiyun #interrupt-cells = <2>; 1978*4882a593Smuzhiyun }; 1979*4882a593Smuzhiyun 1980*4882a593Smuzhiyun gpio1: gpio1@ff780000 { 1981*4882a593Smuzhiyun compatible = "rockchip,gpio-bank"; 1982*4882a593Smuzhiyun reg = <0x0 0xff780000 0x0 0x100>; 1983*4882a593Smuzhiyun interrupts = <GIC_SPI 82 IRQ_TYPE_LEVEL_HIGH>; 1984*4882a593Smuzhiyun clocks = <&cru PCLK_GPIO1>; 1985*4882a593Smuzhiyun 1986*4882a593Smuzhiyun gpio-controller; 1987*4882a593Smuzhiyun #gpio-cells = <2>; 1988*4882a593Smuzhiyun 1989*4882a593Smuzhiyun interrupt-controller; 1990*4882a593Smuzhiyun #interrupt-cells = <2>; 1991*4882a593Smuzhiyun }; 1992*4882a593Smuzhiyun 1993*4882a593Smuzhiyun gpio2: gpio2@ff790000 { 1994*4882a593Smuzhiyun compatible = "rockchip,gpio-bank"; 1995*4882a593Smuzhiyun reg = <0x0 0xff790000 0x0 0x100>; 1996*4882a593Smuzhiyun interrupts = <GIC_SPI 83 IRQ_TYPE_LEVEL_HIGH>; 1997*4882a593Smuzhiyun clocks = <&cru PCLK_GPIO2>; 1998*4882a593Smuzhiyun 1999*4882a593Smuzhiyun gpio-controller; 2000*4882a593Smuzhiyun #gpio-cells = <2>; 2001*4882a593Smuzhiyun 2002*4882a593Smuzhiyun interrupt-controller; 2003*4882a593Smuzhiyun #interrupt-cells = <2>; 2004*4882a593Smuzhiyun }; 2005*4882a593Smuzhiyun 2006*4882a593Smuzhiyun gpio3: gpio3@ff7a0000 { 2007*4882a593Smuzhiyun compatible = "rockchip,gpio-bank"; 2008*4882a593Smuzhiyun reg = <0x0 0xff7a0000 0x0 0x100>; 2009*4882a593Smuzhiyun interrupts = <GIC_SPI 84 IRQ_TYPE_LEVEL_HIGH>; 2010*4882a593Smuzhiyun clocks = <&cru PCLK_GPIO3>; 2011*4882a593Smuzhiyun 2012*4882a593Smuzhiyun gpio-controller; 2013*4882a593Smuzhiyun #gpio-cells = <2>; 2014*4882a593Smuzhiyun 2015*4882a593Smuzhiyun interrupt-controller; 2016*4882a593Smuzhiyun #interrupt-cells = <2>; 2017*4882a593Smuzhiyun }; 2018*4882a593Smuzhiyun 2019*4882a593Smuzhiyun gpio4: gpio4@ff7b0000 { 2020*4882a593Smuzhiyun compatible = "rockchip,gpio-bank"; 2021*4882a593Smuzhiyun reg = <0x0 0xff7b0000 0x0 0x100>; 2022*4882a593Smuzhiyun interrupts = <GIC_SPI 85 IRQ_TYPE_LEVEL_HIGH>; 2023*4882a593Smuzhiyun clocks = <&cru PCLK_GPIO4>; 2024*4882a593Smuzhiyun 2025*4882a593Smuzhiyun gpio-controller; 2026*4882a593Smuzhiyun #gpio-cells = <2>; 2027*4882a593Smuzhiyun 2028*4882a593Smuzhiyun interrupt-controller; 2029*4882a593Smuzhiyun #interrupt-cells = <2>; 2030*4882a593Smuzhiyun }; 2031*4882a593Smuzhiyun 2032*4882a593Smuzhiyun gpio5: gpio5@ff7c0000 { 2033*4882a593Smuzhiyun compatible = "rockchip,gpio-bank"; 2034*4882a593Smuzhiyun reg = <0x0 0xff7c0000 0x0 0x100>; 2035*4882a593Smuzhiyun interrupts = <GIC_SPI 86 IRQ_TYPE_LEVEL_HIGH>; 2036*4882a593Smuzhiyun clocks = <&cru PCLK_GPIO5>; 2037*4882a593Smuzhiyun 2038*4882a593Smuzhiyun gpio-controller; 2039*4882a593Smuzhiyun #gpio-cells = <2>; 2040*4882a593Smuzhiyun 2041*4882a593Smuzhiyun interrupt-controller; 2042*4882a593Smuzhiyun #interrupt-cells = <2>; 2043*4882a593Smuzhiyun }; 2044*4882a593Smuzhiyun 2045*4882a593Smuzhiyun gpio6: gpio6@ff7d0000 { 2046*4882a593Smuzhiyun compatible = "rockchip,gpio-bank"; 2047*4882a593Smuzhiyun reg = <0x0 0xff7d0000 0x0 0x100>; 2048*4882a593Smuzhiyun interrupts = <GIC_SPI 87 IRQ_TYPE_LEVEL_HIGH>; 2049*4882a593Smuzhiyun clocks = <&cru PCLK_GPIO6>; 2050*4882a593Smuzhiyun 2051*4882a593Smuzhiyun gpio-controller; 2052*4882a593Smuzhiyun #gpio-cells = <2>; 2053*4882a593Smuzhiyun 2054*4882a593Smuzhiyun interrupt-controller; 2055*4882a593Smuzhiyun #interrupt-cells = <2>; 2056*4882a593Smuzhiyun }; 2057*4882a593Smuzhiyun 2058*4882a593Smuzhiyun gpio7: gpio7@ff7e0000 { 2059*4882a593Smuzhiyun compatible = "rockchip,gpio-bank"; 2060*4882a593Smuzhiyun reg = <0x0 0xff7e0000 0x0 0x100>; 2061*4882a593Smuzhiyun interrupts = <GIC_SPI 88 IRQ_TYPE_LEVEL_HIGH>; 2062*4882a593Smuzhiyun clocks = <&cru PCLK_GPIO7>; 2063*4882a593Smuzhiyun 2064*4882a593Smuzhiyun gpio-controller; 2065*4882a593Smuzhiyun #gpio-cells = <2>; 2066*4882a593Smuzhiyun 2067*4882a593Smuzhiyun interrupt-controller; 2068*4882a593Smuzhiyun #interrupt-cells = <2>; 2069*4882a593Smuzhiyun }; 2070*4882a593Smuzhiyun 2071*4882a593Smuzhiyun gpio8: gpio8@ff7f0000 { 2072*4882a593Smuzhiyun compatible = "rockchip,gpio-bank"; 2073*4882a593Smuzhiyun reg = <0x0 0xff7f0000 0x0 0x100>; 2074*4882a593Smuzhiyun interrupts = <GIC_SPI 89 IRQ_TYPE_LEVEL_HIGH>; 2075*4882a593Smuzhiyun clocks = <&cru PCLK_GPIO8>; 2076*4882a593Smuzhiyun 2077*4882a593Smuzhiyun gpio-controller; 2078*4882a593Smuzhiyun #gpio-cells = <2>; 2079*4882a593Smuzhiyun 2080*4882a593Smuzhiyun interrupt-controller; 2081*4882a593Smuzhiyun #interrupt-cells = <2>; 2082*4882a593Smuzhiyun }; 2083*4882a593Smuzhiyun 2084*4882a593Smuzhiyun pcfg_pull_none_12ma: pcfg-pull-none-12ma { 2085*4882a593Smuzhiyun bias-disable; 2086*4882a593Smuzhiyun drive-strength = <12>; 2087*4882a593Smuzhiyun }; 2088*4882a593Smuzhiyun }; 2089*4882a593Smuzhiyun}; 2090*4882a593Smuzhiyun 2091*4882a593Smuzhiyun#include "rk3288-pinctrl.dtsi" 2092