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