1*4882a593Smuzhiyun/* 2*4882a593Smuzhiyun * SPDX-License-Identifier: GPL-2.0+ 3*4882a593Smuzhiyun */ 4*4882a593Smuzhiyun 5*4882a593Smuzhiyun#include <dt-bindings/gpio/gpio.h> 6*4882a593Smuzhiyun#include <dt-bindings/interrupt-controller/irq.h> 7*4882a593Smuzhiyun#include <dt-bindings/interrupt-controller/arm-gic.h> 8*4882a593Smuzhiyun#include <dt-bindings/pinctrl/rockchip.h> 9*4882a593Smuzhiyun#include <dt-bindings/clock/rk3036-cru.h> 10*4882a593Smuzhiyun#include "skeleton.dtsi" 11*4882a593Smuzhiyun 12*4882a593Smuzhiyun/ { 13*4882a593Smuzhiyun compatible = "rockchip,rk3036"; 14*4882a593Smuzhiyun 15*4882a593Smuzhiyun interrupt-parent = <&gic>; 16*4882a593Smuzhiyun 17*4882a593Smuzhiyun aliases { 18*4882a593Smuzhiyun gpio0 = &gpio0; 19*4882a593Smuzhiyun gpio1 = &gpio1; 20*4882a593Smuzhiyun gpio2 = &gpio2; 21*4882a593Smuzhiyun i2c1 = &i2c1; 22*4882a593Smuzhiyun serial0 = &uart0; 23*4882a593Smuzhiyun serial1 = &uart1; 24*4882a593Smuzhiyun serial2 = &uart2; 25*4882a593Smuzhiyun mmc0 = &emmc; 26*4882a593Smuzhiyun mmc1 = &sdmmc; 27*4882a593Smuzhiyun }; 28*4882a593Smuzhiyun 29*4882a593Smuzhiyun memory { 30*4882a593Smuzhiyun device_type = "memory"; 31*4882a593Smuzhiyun reg = <0x60000000 0x40000000>; 32*4882a593Smuzhiyun }; 33*4882a593Smuzhiyun 34*4882a593Smuzhiyun arm-pmu { 35*4882a593Smuzhiyun compatible = "arm,cortex-a7-pmu"; 36*4882a593Smuzhiyun interrupts = <GIC_SPI 76 IRQ_TYPE_LEVEL_HIGH>, 37*4882a593Smuzhiyun <GIC_SPI 77 IRQ_TYPE_LEVEL_HIGH>; 38*4882a593Smuzhiyun interrupt-affinity = <&cpu0>, <&cpu1>; 39*4882a593Smuzhiyun }; 40*4882a593Smuzhiyun 41*4882a593Smuzhiyun cpus { 42*4882a593Smuzhiyun #address-cells = <1>; 43*4882a593Smuzhiyun #size-cells = <0>; 44*4882a593Smuzhiyun enable-method = "rockchip,rk3036-smp"; 45*4882a593Smuzhiyun 46*4882a593Smuzhiyun cpu0: cpu@f00 { 47*4882a593Smuzhiyun device_type = "cpu"; 48*4882a593Smuzhiyun compatible = "arm,cortex-a7"; 49*4882a593Smuzhiyun reg = <0xf00>; 50*4882a593Smuzhiyun operating-points = < 51*4882a593Smuzhiyun /* KHz uV */ 52*4882a593Smuzhiyun 816000 1000000 53*4882a593Smuzhiyun >; 54*4882a593Smuzhiyun #cooling-cells = <2>; /* min followed by max */ 55*4882a593Smuzhiyun clock-latency = <40000>; 56*4882a593Smuzhiyun clocks = <&cru ARMCLK>; 57*4882a593Smuzhiyun resets = <&cru SRST_CORE0>; 58*4882a593Smuzhiyun }; 59*4882a593Smuzhiyun cpu1: cpu@f01 { 60*4882a593Smuzhiyun device_type = "cpu"; 61*4882a593Smuzhiyun compatible = "arm,cortex-a7"; 62*4882a593Smuzhiyun reg = <0xf01>; 63*4882a593Smuzhiyun resets = <&cru SRST_CORE1>; 64*4882a593Smuzhiyun }; 65*4882a593Smuzhiyun }; 66*4882a593Smuzhiyun 67*4882a593Smuzhiyun amba { 68*4882a593Smuzhiyun compatible = "arm,amba-bus"; 69*4882a593Smuzhiyun #address-cells = <1>; 70*4882a593Smuzhiyun #size-cells = <1>; 71*4882a593Smuzhiyun ranges; 72*4882a593Smuzhiyun 73*4882a593Smuzhiyun pdma: pdma@20078000 { 74*4882a593Smuzhiyun compatible = "arm,pl330", "arm,primecell"; 75*4882a593Smuzhiyun reg = <0x20078000 0x4000>; 76*4882a593Smuzhiyun arm,pl330-broken-no-flushp; 77*4882a593Smuzhiyun interrupts = <GIC_SPI 0 IRQ_TYPE_LEVEL_HIGH>, 78*4882a593Smuzhiyun <GIC_SPI 1 IRQ_TYPE_LEVEL_HIGH>; 79*4882a593Smuzhiyun #dma-cells = <1>; 80*4882a593Smuzhiyun clocks = <&cru ACLK_DMAC2>; 81*4882a593Smuzhiyun clock-names = "apb_pclk"; 82*4882a593Smuzhiyun }; 83*4882a593Smuzhiyun }; 84*4882a593Smuzhiyun 85*4882a593Smuzhiyun xin24m: oscillator { 86*4882a593Smuzhiyun compatible = "fixed-clock"; 87*4882a593Smuzhiyun clock-frequency = <24000000>; 88*4882a593Smuzhiyun clock-output-names = "xin24m"; 89*4882a593Smuzhiyun #clock-cells = <0>; 90*4882a593Smuzhiyun }; 91*4882a593Smuzhiyun 92*4882a593Smuzhiyun psci: psci { 93*4882a593Smuzhiyun compatible = "arm,psci-1.0"; 94*4882a593Smuzhiyun method = "smc"; 95*4882a593Smuzhiyun }; 96*4882a593Smuzhiyun 97*4882a593Smuzhiyun timer { 98*4882a593Smuzhiyun compatible = "arm,armv7-timer"; 99*4882a593Smuzhiyun arm,cpu-registers-not-fw-configured; 100*4882a593Smuzhiyun interrupts = <GIC_PPI 13 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_HIGH)>, 101*4882a593Smuzhiyun <GIC_PPI 14 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_HIGH)>, 102*4882a593Smuzhiyun <GIC_PPI 11 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_HIGH)>, 103*4882a593Smuzhiyun <GIC_PPI 10 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_HIGH)>; 104*4882a593Smuzhiyun clock-frequency = <24000000>; 105*4882a593Smuzhiyun }; 106*4882a593Smuzhiyun 107*4882a593Smuzhiyun cru: clock-controller@20000000 { 108*4882a593Smuzhiyun compatible = "rockchip,rk3036-cru"; 109*4882a593Smuzhiyun reg = <0x20000000 0x1000>; 110*4882a593Smuzhiyun rockchip,grf = <&grf>; 111*4882a593Smuzhiyun #clock-cells = <1>; 112*4882a593Smuzhiyun #reset-cells = <1>; 113*4882a593Smuzhiyun assigned-clocks = <&cru PLL_GPLL>; 114*4882a593Smuzhiyun assigned-clock-rates = <594000000>; 115*4882a593Smuzhiyun }; 116*4882a593Smuzhiyun 117*4882a593Smuzhiyun dmc: dmc@20004000 { 118*4882a593Smuzhiyun compatible = "rockchip,rk3036-dmc", "syscon"; 119*4882a593Smuzhiyun reg = <0x0 0x20004000 0x0 0x1000>; 120*4882a593Smuzhiyun }; 121*4882a593Smuzhiyun 122*4882a593Smuzhiyun uart0: serial@20060000 { 123*4882a593Smuzhiyun compatible = "rockchip,rk3036-uart", "snps,dw-apb-uart"; 124*4882a593Smuzhiyun reg = <0x20060000 0x100>; 125*4882a593Smuzhiyun interrupts = <GIC_SPI 20 IRQ_TYPE_LEVEL_HIGH>; 126*4882a593Smuzhiyun reg-shift = <2>; 127*4882a593Smuzhiyun reg-io-width = <4>; 128*4882a593Smuzhiyun clock-frequency = <24000000>; 129*4882a593Smuzhiyun clocks = <&cru SCLK_UART0>, <&cru PCLK_UART0>; 130*4882a593Smuzhiyun clock-names = "baudclk", "apb_pclk"; 131*4882a593Smuzhiyun pinctrl-names = "default"; 132*4882a593Smuzhiyun pinctrl-0 = <&uart0_xfer &uart0_cts &uart0_rts>; 133*4882a593Smuzhiyun }; 134*4882a593Smuzhiyun 135*4882a593Smuzhiyun uart1: serial@20064000 { 136*4882a593Smuzhiyun compatible = "rockchip,rk3036-uart", "snps,dw-apb-uart"; 137*4882a593Smuzhiyun reg = <0x20064000 0x100>; 138*4882a593Smuzhiyun interrupts = <GIC_SPI 21 IRQ_TYPE_LEVEL_HIGH>; 139*4882a593Smuzhiyun reg-shift = <2>; 140*4882a593Smuzhiyun reg-io-width = <4>; 141*4882a593Smuzhiyun clock-frequency = <24000000>; 142*4882a593Smuzhiyun clocks = <&cru SCLK_UART1>, <&cru PCLK_UART1>; 143*4882a593Smuzhiyun clock-names = "baudclk", "apb_pclk"; 144*4882a593Smuzhiyun pinctrl-names = "default"; 145*4882a593Smuzhiyun pinctrl-0 = <&uart1_xfer>; 146*4882a593Smuzhiyun }; 147*4882a593Smuzhiyun 148*4882a593Smuzhiyun uart2: serial@20068000 { 149*4882a593Smuzhiyun compatible = "rockchip,rk3036-uart", "snps,dw-apb-uart"; 150*4882a593Smuzhiyun reg = <0x20068000 0x100>; 151*4882a593Smuzhiyun interrupts = <GIC_SPI 22 IRQ_TYPE_LEVEL_HIGH>; 152*4882a593Smuzhiyun reg-shift = <2>; 153*4882a593Smuzhiyun reg-io-width = <4>; 154*4882a593Smuzhiyun clock-frequency = <24000000>; 155*4882a593Smuzhiyun clocks = <&cru SCLK_UART2>, <&cru PCLK_UART2>; 156*4882a593Smuzhiyun clock-names = "baudclk", "apb_pclk"; 157*4882a593Smuzhiyun pinctrl-names = "default"; 158*4882a593Smuzhiyun pinctrl-0 = <&uart2_xfer>; 159*4882a593Smuzhiyun }; 160*4882a593Smuzhiyun 161*4882a593Smuzhiyun pwm0: pwm@20050000 { 162*4882a593Smuzhiyun compatible = "rockchip,rk2928-pwm"; 163*4882a593Smuzhiyun reg = <0x20050000 0x10>; 164*4882a593Smuzhiyun #pwm-cells = <3>; 165*4882a593Smuzhiyun pinctrl-names = "active"; 166*4882a593Smuzhiyun pinctrl-0 = <&pwm0_pin>; 167*4882a593Smuzhiyun clocks = <&cru PCLK_PWM>; 168*4882a593Smuzhiyun clock-names = "pwm"; 169*4882a593Smuzhiyun status = "disabled"; 170*4882a593Smuzhiyun }; 171*4882a593Smuzhiyun 172*4882a593Smuzhiyun pwm1: pwm@20050010 { 173*4882a593Smuzhiyun compatible = "rockchip,rk2928-pwm"; 174*4882a593Smuzhiyun reg = <0x20050010 0x10>; 175*4882a593Smuzhiyun #pwm-cells = <3>; 176*4882a593Smuzhiyun pinctrl-names = "active"; 177*4882a593Smuzhiyun pinctrl-0 = <&pwm1_pin>; 178*4882a593Smuzhiyun clocks = <&cru PCLK_PWM>; 179*4882a593Smuzhiyun clock-names = "pwm"; 180*4882a593Smuzhiyun status = "disabled"; 181*4882a593Smuzhiyun }; 182*4882a593Smuzhiyun 183*4882a593Smuzhiyun pwm2: pwm@20050020 { 184*4882a593Smuzhiyun compatible = "rockchip,rk2928-pwm"; 185*4882a593Smuzhiyun reg = <0x20050020 0x10>; 186*4882a593Smuzhiyun #pwm-cells = <3>; 187*4882a593Smuzhiyun pinctrl-names = "active"; 188*4882a593Smuzhiyun pinctrl-0 = <&pwm2_pin>; 189*4882a593Smuzhiyun clocks = <&cru PCLK_PWM>; 190*4882a593Smuzhiyun clock-names = "pwm"; 191*4882a593Smuzhiyun status = "disabled"; 192*4882a593Smuzhiyun }; 193*4882a593Smuzhiyun 194*4882a593Smuzhiyun pwm3: pwm@20050030 { 195*4882a593Smuzhiyun compatible = "rockchip,rk2928-pwm"; 196*4882a593Smuzhiyun reg = <0x20050030 0x10>; 197*4882a593Smuzhiyun #pwm-cells = <2>; 198*4882a593Smuzhiyun pinctrl-names = "active"; 199*4882a593Smuzhiyun pinctrl-0 = <&pwm3_pin>; 200*4882a593Smuzhiyun clocks = <&cru PCLK_PWM>; 201*4882a593Smuzhiyun clock-names = "pwm"; 202*4882a593Smuzhiyun status = "disabled"; 203*4882a593Smuzhiyun }; 204*4882a593Smuzhiyun 205*4882a593Smuzhiyun sram: sram@10080000 { 206*4882a593Smuzhiyun compatible = "rockchip,rk3036-smp-sram", "mmio-sram"; 207*4882a593Smuzhiyun reg = <0x10080000 0x2000>; 208*4882a593Smuzhiyun }; 209*4882a593Smuzhiyun 210*4882a593Smuzhiyun gic: interrupt-controller@10139000 { 211*4882a593Smuzhiyun compatible = "arm,gic-400"; 212*4882a593Smuzhiyun interrupt-controller; 213*4882a593Smuzhiyun #interrupt-cells = <3>; 214*4882a593Smuzhiyun #address-cells = <0>; 215*4882a593Smuzhiyun 216*4882a593Smuzhiyun reg = <0x10139000 0x1000>, 217*4882a593Smuzhiyun <0x1013a000 0x1000>, 218*4882a593Smuzhiyun <0x1013c000 0x2000>, 219*4882a593Smuzhiyun <0x1013e000 0x2000>; 220*4882a593Smuzhiyun interrupts = <GIC_PPI 9 0xf04>; 221*4882a593Smuzhiyun }; 222*4882a593Smuzhiyun 223*4882a593Smuzhiyun grf: syscon@20008000 { 224*4882a593Smuzhiyun compatible = "rockchip,rk3036-grf", "syscon"; 225*4882a593Smuzhiyun reg = <0x20008000 0x1000>; 226*4882a593Smuzhiyun #address-cells = <1>; 227*4882a593Smuzhiyun #size-cells = <1>; 228*4882a593Smuzhiyun 229*4882a593Smuzhiyun usb2phy: usb2-phy@17c { 230*4882a593Smuzhiyun compatible = "rockchip,rk3036-usb2phy"; 231*4882a593Smuzhiyun reg = <0x017c 0x0c>; 232*4882a593Smuzhiyun clocks = <&cru SCLK_OTGPHY0>; 233*4882a593Smuzhiyun clock-names = "phyclk"; 234*4882a593Smuzhiyun #clock-cells = <0>; 235*4882a593Smuzhiyun clock-output-names = "usb480m_phy"; 236*4882a593Smuzhiyun status = "disabled"; 237*4882a593Smuzhiyun 238*4882a593Smuzhiyun u2phy_otg: otg-port { 239*4882a593Smuzhiyun #phy-cells = <0>; 240*4882a593Smuzhiyun interrupts = <GIC_SPI 35 IRQ_TYPE_LEVEL_HIGH>, 241*4882a593Smuzhiyun <GIC_SPI 51 IRQ_TYPE_LEVEL_HIGH>, 242*4882a593Smuzhiyun <GIC_SPI 52 IRQ_TYPE_LEVEL_HIGH>; 243*4882a593Smuzhiyun interrupt-names = "otg-bvalid", "otg-id", 244*4882a593Smuzhiyun "linestate"; 245*4882a593Smuzhiyun status = "disabled"; 246*4882a593Smuzhiyun }; 247*4882a593Smuzhiyun 248*4882a593Smuzhiyun u2phy_host: host-port { 249*4882a593Smuzhiyun #phy-cells = <0>; 250*4882a593Smuzhiyun interrupts = <GIC_SPI 53 IRQ_TYPE_LEVEL_HIGH>; 251*4882a593Smuzhiyun interrupt-names = "linestate"; 252*4882a593Smuzhiyun status = "disabled"; 253*4882a593Smuzhiyun }; 254*4882a593Smuzhiyun }; 255*4882a593Smuzhiyun }; 256*4882a593Smuzhiyun 257*4882a593Smuzhiyun usb_otg: usb@10180000 { 258*4882a593Smuzhiyun compatible = "rockchip,rk3288-usb", "rockchip,rk3066-usb", 259*4882a593Smuzhiyun "snps,dwc2"; 260*4882a593Smuzhiyun reg = <0x10180000 0x40000>; 261*4882a593Smuzhiyun interrupts = <GIC_SPI 10 IRQ_TYPE_LEVEL_HIGH>; 262*4882a593Smuzhiyun clocks = <&cru HCLK_OTG0>; 263*4882a593Smuzhiyun clock-names = "otg"; 264*4882a593Smuzhiyun dr_mode = "otg"; 265*4882a593Smuzhiyun g-np-tx-fifo-size = <16>; 266*4882a593Smuzhiyun g-rx-fifo-size = <275>; 267*4882a593Smuzhiyun g-tx-fifo-size = <256 128 128 64 64 32>; 268*4882a593Smuzhiyun g-use-dma; 269*4882a593Smuzhiyun status = "disabled"; 270*4882a593Smuzhiyun }; 271*4882a593Smuzhiyun 272*4882a593Smuzhiyun usb_host: usb@101c0000 { 273*4882a593Smuzhiyun compatible = "rockchip,rk3288-usb", "rockchip,rk3066-usb", 274*4882a593Smuzhiyun "snps,dwc2"; 275*4882a593Smuzhiyun reg = <0x101c0000 0x40000>; 276*4882a593Smuzhiyun interrupts = <GIC_SPI 11 IRQ_TYPE_LEVEL_HIGH>; 277*4882a593Smuzhiyun clocks = <&cru HCLK_OTG1>; 278*4882a593Smuzhiyun clock-names = "otg"; 279*4882a593Smuzhiyun dr_mode = "host"; 280*4882a593Smuzhiyun status = "disabled"; 281*4882a593Smuzhiyun }; 282*4882a593Smuzhiyun 283*4882a593Smuzhiyun emmc: dwmmc@1021c000 { 284*4882a593Smuzhiyun compatible = "rockchip,rk3288-dw-mshc"; 285*4882a593Smuzhiyun clock-frequency = <37500000>; 286*4882a593Smuzhiyun max-frequency = <37500000>; 287*4882a593Smuzhiyun clocks = <&cru HCLK_EMMC>, <&cru SCLK_EMMC>, 288*4882a593Smuzhiyun <&cru SCLK_EMMC_DRV>, <&cru SCLK_EMMC_SAMPLE>; 289*4882a593Smuzhiyun clock-names = "biu", "ciu", "ciu-drv", "ciu-sample"; 290*4882a593Smuzhiyun dmas = <&pdma 12>; 291*4882a593Smuzhiyun dma-names = "rx-tx"; 292*4882a593Smuzhiyun fifo-depth = <0x100>; 293*4882a593Smuzhiyun interrupts = <GIC_SPI 16 IRQ_TYPE_LEVEL_HIGH>; 294*4882a593Smuzhiyun reg = <0x1021c000 0x4000>; 295*4882a593Smuzhiyun broken-cd; 296*4882a593Smuzhiyun bus-width = <8>; 297*4882a593Smuzhiyun cap-mmc-highspeed; 298*4882a593Smuzhiyun mmc-ddr-1_8v; 299*4882a593Smuzhiyun disable-wp; 300*4882a593Smuzhiyun fifo-mode; 301*4882a593Smuzhiyun non-removable; 302*4882a593Smuzhiyun num-slots = <1>; 303*4882a593Smuzhiyun default-sample-phase = <158>; 304*4882a593Smuzhiyun pinctrl-names = "default"; 305*4882a593Smuzhiyun pinctrl-0 = <&emmc_clk &emmc_cmd &emmc_bus8>; 306*4882a593Smuzhiyun }; 307*4882a593Smuzhiyun 308*4882a593Smuzhiyun sfc: sfc@102080000 { 309*4882a593Smuzhiyun compatible = "rockchip,rksfc"; 310*4882a593Smuzhiyun reg = <0x10208000 0x4000>; 311*4882a593Smuzhiyun #address-cells = <1>; 312*4882a593Smuzhiyun #size-cells = <0>; 313*4882a593Smuzhiyun interrupts = <GIC_SPI 9 IRQ_TYPE_LEVEL_HIGH>; 314*4882a593Smuzhiyun clocks = <&cru SCLK_SFC>, <&cru HCLK_SFC>; 315*4882a593Smuzhiyun clock-names = "clk_sfc", "hclk_sfc"; 316*4882a593Smuzhiyun status = "disabled"; 317*4882a593Smuzhiyun }; 318*4882a593Smuzhiyun 319*4882a593Smuzhiyun sdmmc: dwmmc@10214000 { 320*4882a593Smuzhiyun compatible = "rockchip,rk3036-dw-mshc", "rockchip,rk3288-dw-mshc"; 321*4882a593Smuzhiyun reg = <0x10214000 0x4000>; 322*4882a593Smuzhiyun clock-frequency = <37500000>; 323*4882a593Smuzhiyun max-frequency = <37500000>; 324*4882a593Smuzhiyun clocks = <&cru HCLK_SDMMC>, <&cru SCLK_SDMMC>; 325*4882a593Smuzhiyun clock-names = "biu", "ciu"; 326*4882a593Smuzhiyun fifo-depth = <0x100>; 327*4882a593Smuzhiyun interrupts = <GIC_SPI 14 IRQ_TYPE_LEVEL_HIGH>; 328*4882a593Smuzhiyun status = "disabled"; 329*4882a593Smuzhiyun }; 330*4882a593Smuzhiyun 331*4882a593Smuzhiyun nandc: nandc@10500000 { 332*4882a593Smuzhiyun compatible = "rockchip,rk-nandc"; 333*4882a593Smuzhiyun reg = <0x10500000 0x4000>; 334*4882a593Smuzhiyun interrupts = <GIC_SPI 18 IRQ_TYPE_LEVEL_HIGH>; 335*4882a593Smuzhiyun nandc_id = <0>; 336*4882a593Smuzhiyun clocks = <&cru SCLK_NANDC>, <&cru HCLK_NANDC>; 337*4882a593Smuzhiyun clock-names = "clk_nandc", "hclk_nandc"; 338*4882a593Smuzhiyun status = "disabled"; 339*4882a593Smuzhiyun }; 340*4882a593Smuzhiyun 341*4882a593Smuzhiyun pinctrl: pinctrl { 342*4882a593Smuzhiyun compatible = "rockchip,rk3036-pinctrl"; 343*4882a593Smuzhiyun rockchip,grf = <&grf>; 344*4882a593Smuzhiyun #address-cells = <1>; 345*4882a593Smuzhiyun #size-cells = <1>; 346*4882a593Smuzhiyun ranges; 347*4882a593Smuzhiyun 348*4882a593Smuzhiyun gpio0: gpio0@2007c000 { 349*4882a593Smuzhiyun compatible = "rockchip,gpio-bank"; 350*4882a593Smuzhiyun reg = <0x2007c000 0x100>; 351*4882a593Smuzhiyun interrupts = <GIC_SPI 36 IRQ_TYPE_LEVEL_HIGH>; 352*4882a593Smuzhiyun clocks = <&cru PCLK_GPIO0>; 353*4882a593Smuzhiyun 354*4882a593Smuzhiyun gpio-controller; 355*4882a593Smuzhiyun #gpio-cells = <2>; 356*4882a593Smuzhiyun 357*4882a593Smuzhiyun interrupt-controller; 358*4882a593Smuzhiyun #interrupt-cells = <2>; 359*4882a593Smuzhiyun }; 360*4882a593Smuzhiyun 361*4882a593Smuzhiyun gpio1: gpio1@20080000 { 362*4882a593Smuzhiyun compatible = "rockchip,gpio-bank"; 363*4882a593Smuzhiyun reg = <0x20080000 0x100>; 364*4882a593Smuzhiyun interrupts = <GIC_SPI 37 IRQ_TYPE_LEVEL_HIGH>; 365*4882a593Smuzhiyun clocks = <&cru PCLK_GPIO1>; 366*4882a593Smuzhiyun 367*4882a593Smuzhiyun gpio-controller; 368*4882a593Smuzhiyun #gpio-cells = <2>; 369*4882a593Smuzhiyun 370*4882a593Smuzhiyun interrupt-controller; 371*4882a593Smuzhiyun #interrupt-cells = <2>; 372*4882a593Smuzhiyun }; 373*4882a593Smuzhiyun 374*4882a593Smuzhiyun gpio2: gpio2@20084000 { 375*4882a593Smuzhiyun compatible = "rockchip,gpio-bank"; 376*4882a593Smuzhiyun reg = <0x20084000 0x100>; 377*4882a593Smuzhiyun interrupts = <GIC_SPI 38 IRQ_TYPE_LEVEL_HIGH>; 378*4882a593Smuzhiyun clocks = <&cru PCLK_GPIO2>; 379*4882a593Smuzhiyun 380*4882a593Smuzhiyun gpio-controller; 381*4882a593Smuzhiyun #gpio-cells = <2>; 382*4882a593Smuzhiyun 383*4882a593Smuzhiyun interrupt-controller; 384*4882a593Smuzhiyun #interrupt-cells = <2>; 385*4882a593Smuzhiyun }; 386*4882a593Smuzhiyun 387*4882a593Smuzhiyun pcfg_pull_up: pcfg-pull-up { 388*4882a593Smuzhiyun bias-pull-up; 389*4882a593Smuzhiyun }; 390*4882a593Smuzhiyun 391*4882a593Smuzhiyun pcfg_pull_down: pcfg-pull-down { 392*4882a593Smuzhiyun bias-pull-down; 393*4882a593Smuzhiyun }; 394*4882a593Smuzhiyun 395*4882a593Smuzhiyun pcfg_pull_none: pcfg-pull-none { 396*4882a593Smuzhiyun bias-disable; 397*4882a593Smuzhiyun }; 398*4882a593Smuzhiyun 399*4882a593Smuzhiyun emmc { 400*4882a593Smuzhiyun /* 401*4882a593Smuzhiyun * We run eMMC at max speed; bump up drive strength. 402*4882a593Smuzhiyun * We also have external pulls, so disable the internal ones. 403*4882a593Smuzhiyun */ 404*4882a593Smuzhiyun emmc_clk: emmc-clk { 405*4882a593Smuzhiyun rockchip,pins = <2 4 RK_FUNC_2 &pcfg_pull_none>; 406*4882a593Smuzhiyun }; 407*4882a593Smuzhiyun 408*4882a593Smuzhiyun emmc_cmd: emmc-cmd { 409*4882a593Smuzhiyun rockchip,pins = <2 1 RK_FUNC_2 &pcfg_pull_none>; 410*4882a593Smuzhiyun }; 411*4882a593Smuzhiyun 412*4882a593Smuzhiyun emmc_bus8: emmc-bus8 { 413*4882a593Smuzhiyun rockchip,pins = <1 24 RK_FUNC_2 &pcfg_pull_none>, 414*4882a593Smuzhiyun <1 25 RK_FUNC_2 &pcfg_pull_none>, 415*4882a593Smuzhiyun <1 26 RK_FUNC_2 &pcfg_pull_none>, 416*4882a593Smuzhiyun <1 27 RK_FUNC_2 &pcfg_pull_none>; 417*4882a593Smuzhiyun /* 418*4882a593Smuzhiyun <1 28 RK_FUNC_2 &pcfg_pull_up>, 419*4882a593Smuzhiyun <1 29 RK_FUNC_2 &pcfg_pull_up>, 420*4882a593Smuzhiyun <1 30 RK_FUNC_2 &pcfg_pull_up>, 421*4882a593Smuzhiyun <1 31 RK_FUNC_2 &pcfg_pull_up>; 422*4882a593Smuzhiyun */ 423*4882a593Smuzhiyun }; 424*4882a593Smuzhiyun }; 425*4882a593Smuzhiyun 426*4882a593Smuzhiyun uart0 { 427*4882a593Smuzhiyun uart0_xfer: uart0-xfer { 428*4882a593Smuzhiyun rockchip,pins = <0 16 RK_FUNC_1 &pcfg_pull_none>, 429*4882a593Smuzhiyun <0 17 RK_FUNC_1 &pcfg_pull_none>; 430*4882a593Smuzhiyun }; 431*4882a593Smuzhiyun 432*4882a593Smuzhiyun uart0_cts: uart0-cts { 433*4882a593Smuzhiyun rockchip,pins = <0 18 RK_FUNC_1 &pcfg_pull_none>; 434*4882a593Smuzhiyun }; 435*4882a593Smuzhiyun 436*4882a593Smuzhiyun uart0_rts: uart0-rts { 437*4882a593Smuzhiyun rockchip,pins = <0 19 RK_FUNC_1 &pcfg_pull_none>; 438*4882a593Smuzhiyun }; 439*4882a593Smuzhiyun }; 440*4882a593Smuzhiyun 441*4882a593Smuzhiyun uart1 { 442*4882a593Smuzhiyun uart1_xfer: uart1-xfer { 443*4882a593Smuzhiyun rockchip,pins = <2 22 RK_FUNC_1 &pcfg_pull_none>, 444*4882a593Smuzhiyun <2 23 RK_FUNC_1 &pcfg_pull_none>; 445*4882a593Smuzhiyun }; 446*4882a593Smuzhiyun /* no rts / cts for uart1 */ 447*4882a593Smuzhiyun }; 448*4882a593Smuzhiyun 449*4882a593Smuzhiyun uart2 { 450*4882a593Smuzhiyun uart2_xfer: uart2-xfer { 451*4882a593Smuzhiyun rockchip,pins = <1 18 RK_FUNC_2 &pcfg_pull_none>, 452*4882a593Smuzhiyun <1 19 RK_FUNC_2 &pcfg_pull_none>; 453*4882a593Smuzhiyun }; 454*4882a593Smuzhiyun /* no rts / cts for uart2 */ 455*4882a593Smuzhiyun }; 456*4882a593Smuzhiyun 457*4882a593Smuzhiyun pwm0 { 458*4882a593Smuzhiyun pwm0_pin: pwm0-pin { 459*4882a593Smuzhiyun rockchip,pins = <0 0 RK_FUNC_2 &pcfg_pull_none>; 460*4882a593Smuzhiyun }; 461*4882a593Smuzhiyun }; 462*4882a593Smuzhiyun 463*4882a593Smuzhiyun pwm1 { 464*4882a593Smuzhiyun pwm1_pin: pwm1-pin { 465*4882a593Smuzhiyun rockchip,pins = <0 1 RK_FUNC_2 &pcfg_pull_none>; 466*4882a593Smuzhiyun }; 467*4882a593Smuzhiyun }; 468*4882a593Smuzhiyun 469*4882a593Smuzhiyun pwm2 { 470*4882a593Smuzhiyun pwm2_pin: pwm2-pin { 471*4882a593Smuzhiyun rockchip,pins = <0 1 2 &pcfg_pull_none>; 472*4882a593Smuzhiyun }; 473*4882a593Smuzhiyun }; 474*4882a593Smuzhiyun 475*4882a593Smuzhiyun pwm3 { 476*4882a593Smuzhiyun pwm3_pin: pwm3-pin { 477*4882a593Smuzhiyun rockchip,pins = <0 27 1 &pcfg_pull_none>; 478*4882a593Smuzhiyun }; 479*4882a593Smuzhiyun }; 480*4882a593Smuzhiyun 481*4882a593Smuzhiyun i2c1 { 482*4882a593Smuzhiyun i2c1_xfer: i2c1-xfer { 483*4882a593Smuzhiyun rockchip,pins = <0 2 RK_FUNC_1 &pcfg_pull_none>, 484*4882a593Smuzhiyun <0 3 RK_FUNC_1 &pcfg_pull_none>; 485*4882a593Smuzhiyun }; 486*4882a593Smuzhiyun }; 487*4882a593Smuzhiyun }; 488*4882a593Smuzhiyun 489*4882a593Smuzhiyun i2c1: i2c@20056000 { 490*4882a593Smuzhiyun compatible = "rockchip,rk3288-i2c"; 491*4882a593Smuzhiyun reg = <0x20056000 0x1000>; 492*4882a593Smuzhiyun interrupts = <GIC_SPI 25 IRQ_TYPE_LEVEL_HIGH>; 493*4882a593Smuzhiyun #address-cells = <1>; 494*4882a593Smuzhiyun #size-cells = <0>; 495*4882a593Smuzhiyun clock-names = "i2c"; 496*4882a593Smuzhiyun clocks = <&cru PCLK_I2C1>; 497*4882a593Smuzhiyun pinctrl-names = "default"; 498*4882a593Smuzhiyun pinctrl-0 = <&i2c1_xfer>; 499*4882a593Smuzhiyun status = "disabled"; 500*4882a593Smuzhiyun }; 501*4882a593Smuzhiyun}; 502