186e8f528SBintian Wang/* 286e8f528SBintian Wang * dts file for Hisilicon Hi6220 SoC 386e8f528SBintian Wang * 486e8f528SBintian Wang * Copyright (C) 2015, Hisilicon Ltd. 586e8f528SBintian Wang */ 686e8f528SBintian Wang 786e8f528SBintian Wang#include <dt-bindings/interrupt-controller/arm-gic.h> 8a362ec8fSTyler Baker#include <dt-bindings/clock/hi6220-clock.h> 9379e9bf5SZhong Kaihua#include <dt-bindings/pinctrl/hisi.h> 1086e8f528SBintian Wang 1186e8f528SBintian Wang/ { 1286e8f528SBintian Wang compatible = "hisilicon,hi6220"; 1386e8f528SBintian Wang interrupt-parent = <&gic>; 1486e8f528SBintian Wang #address-cells = <2>; 1586e8f528SBintian Wang #size-cells = <2>; 1686e8f528SBintian Wang 1786e8f528SBintian Wang psci { 1886e8f528SBintian Wang compatible = "arm,psci-0.2"; 1986e8f528SBintian Wang method = "smc"; 2086e8f528SBintian Wang }; 2186e8f528SBintian Wang 2286e8f528SBintian Wang cpus { 2386e8f528SBintian Wang #address-cells = <2>; 2486e8f528SBintian Wang #size-cells = <0>; 2586e8f528SBintian Wang 2686e8f528SBintian Wang cpu-map { 2786e8f528SBintian Wang cluster0 { 2886e8f528SBintian Wang core0 { 2986e8f528SBintian Wang cpu = <&cpu0>; 3086e8f528SBintian Wang }; 3186e8f528SBintian Wang core1 { 3286e8f528SBintian Wang cpu = <&cpu1>; 3386e8f528SBintian Wang }; 3486e8f528SBintian Wang core2 { 3586e8f528SBintian Wang cpu = <&cpu2>; 3686e8f528SBintian Wang }; 3786e8f528SBintian Wang core3 { 3886e8f528SBintian Wang cpu = <&cpu3>; 3986e8f528SBintian Wang }; 4086e8f528SBintian Wang }; 4186e8f528SBintian Wang cluster1 { 4286e8f528SBintian Wang core0 { 4386e8f528SBintian Wang cpu = <&cpu4>; 4486e8f528SBintian Wang }; 4586e8f528SBintian Wang core1 { 4686e8f528SBintian Wang cpu = <&cpu5>; 4786e8f528SBintian Wang }; 4886e8f528SBintian Wang core2 { 4986e8f528SBintian Wang cpu = <&cpu6>; 5086e8f528SBintian Wang }; 5186e8f528SBintian Wang core3 { 5286e8f528SBintian Wang cpu = <&cpu7>; 5386e8f528SBintian Wang }; 5486e8f528SBintian Wang }; 5586e8f528SBintian Wang }; 5686e8f528SBintian Wang 5758fa29bfSLeo Yan idle-states { 5858fa29bfSLeo Yan entry-method = "psci"; 5958fa29bfSLeo Yan 6058fa29bfSLeo Yan CPU_SLEEP: cpu-sleep { 6158fa29bfSLeo Yan compatible = "arm,idle-state"; 6258fa29bfSLeo Yan local-timer-stop; 6358fa29bfSLeo Yan arm,psci-suspend-param = <0x0010000>; 6458fa29bfSLeo Yan entry-latency-us = <700>; 6558fa29bfSLeo Yan exit-latency-us = <250>; 6658fa29bfSLeo Yan min-residency-us = <1000>; 6758fa29bfSLeo Yan }; 6858fa29bfSLeo Yan 6958fa29bfSLeo Yan CLUSTER_SLEEP: cluster-sleep { 7058fa29bfSLeo Yan compatible = "arm,idle-state"; 7158fa29bfSLeo Yan local-timer-stop; 7258fa29bfSLeo Yan arm,psci-suspend-param = <0x1010000>; 7358fa29bfSLeo Yan entry-latency-us = <1000>; 7458fa29bfSLeo Yan exit-latency-us = <700>; 7558fa29bfSLeo Yan min-residency-us = <2700>; 7658fa29bfSLeo Yan wakeup-latency-us = <1500>; 7758fa29bfSLeo Yan }; 7858fa29bfSLeo Yan }; 7958fa29bfSLeo Yan 8086e8f528SBintian Wang cpu0: cpu@0 { 8186e8f528SBintian Wang compatible = "arm,cortex-a53", "arm,armv8"; 8286e8f528SBintian Wang device_type = "cpu"; 8386e8f528SBintian Wang reg = <0x0 0x0>; 8486e8f528SBintian Wang enable-method = "psci"; 8558fa29bfSLeo Yan cpu-idle-states = <&CPU_SLEEP &CLUSTER_SLEEP>; 8686e8f528SBintian Wang }; 8786e8f528SBintian Wang 8886e8f528SBintian Wang cpu1: cpu@1 { 8986e8f528SBintian Wang compatible = "arm,cortex-a53", "arm,armv8"; 9086e8f528SBintian Wang device_type = "cpu"; 9186e8f528SBintian Wang reg = <0x0 0x1>; 9286e8f528SBintian Wang enable-method = "psci"; 9358fa29bfSLeo Yan cpu-idle-states = <&CPU_SLEEP &CLUSTER_SLEEP>; 9486e8f528SBintian Wang }; 9586e8f528SBintian Wang 9686e8f528SBintian Wang cpu2: cpu@2 { 9786e8f528SBintian Wang compatible = "arm,cortex-a53", "arm,armv8"; 9886e8f528SBintian Wang device_type = "cpu"; 9986e8f528SBintian Wang reg = <0x0 0x2>; 10086e8f528SBintian Wang enable-method = "psci"; 10158fa29bfSLeo Yan cpu-idle-states = <&CPU_SLEEP &CLUSTER_SLEEP>; 10286e8f528SBintian Wang }; 10386e8f528SBintian Wang 10486e8f528SBintian Wang cpu3: cpu@3 { 10586e8f528SBintian Wang compatible = "arm,cortex-a53", "arm,armv8"; 10686e8f528SBintian Wang device_type = "cpu"; 10786e8f528SBintian Wang reg = <0x0 0x3>; 10886e8f528SBintian Wang enable-method = "psci"; 10958fa29bfSLeo Yan cpu-idle-states = <&CPU_SLEEP &CLUSTER_SLEEP>; 11086e8f528SBintian Wang }; 11186e8f528SBintian Wang 11286e8f528SBintian Wang cpu4: cpu@100 { 11386e8f528SBintian Wang compatible = "arm,cortex-a53", "arm,armv8"; 11486e8f528SBintian Wang device_type = "cpu"; 11586e8f528SBintian Wang reg = <0x0 0x100>; 11686e8f528SBintian Wang enable-method = "psci"; 11758fa29bfSLeo Yan cpu-idle-states = <&CPU_SLEEP &CLUSTER_SLEEP>; 11886e8f528SBintian Wang }; 11986e8f528SBintian Wang 12086e8f528SBintian Wang cpu5: cpu@101 { 12186e8f528SBintian Wang compatible = "arm,cortex-a53", "arm,armv8"; 12286e8f528SBintian Wang device_type = "cpu"; 12386e8f528SBintian Wang reg = <0x0 0x101>; 12486e8f528SBintian Wang enable-method = "psci"; 12558fa29bfSLeo Yan cpu-idle-states = <&CPU_SLEEP &CLUSTER_SLEEP>; 12686e8f528SBintian Wang }; 12786e8f528SBintian Wang 12886e8f528SBintian Wang cpu6: cpu@102 { 12986e8f528SBintian Wang compatible = "arm,cortex-a53", "arm,armv8"; 13086e8f528SBintian Wang device_type = "cpu"; 13186e8f528SBintian Wang reg = <0x0 0x102>; 13286e8f528SBintian Wang enable-method = "psci"; 13358fa29bfSLeo Yan cpu-idle-states = <&CPU_SLEEP &CLUSTER_SLEEP>; 13486e8f528SBintian Wang }; 13586e8f528SBintian Wang 13686e8f528SBintian Wang cpu7: cpu@103 { 13786e8f528SBintian Wang compatible = "arm,cortex-a53", "arm,armv8"; 13886e8f528SBintian Wang device_type = "cpu"; 13986e8f528SBintian Wang reg = <0x0 0x103>; 14086e8f528SBintian Wang enable-method = "psci"; 14158fa29bfSLeo Yan cpu-idle-states = <&CPU_SLEEP &CLUSTER_SLEEP>; 14286e8f528SBintian Wang }; 14386e8f528SBintian Wang }; 14486e8f528SBintian Wang 14586e8f528SBintian Wang gic: interrupt-controller@f6801000 { 14686e8f528SBintian Wang compatible = "arm,gic-400"; 14786e8f528SBintian Wang reg = <0x0 0xf6801000 0 0x1000>, /* GICD */ 14886e8f528SBintian Wang <0x0 0xf6802000 0 0x2000>, /* GICC */ 14986e8f528SBintian Wang <0x0 0xf6804000 0 0x2000>, /* GICH */ 15086e8f528SBintian Wang <0x0 0xf6806000 0 0x2000>; /* GICV */ 15186e8f528SBintian Wang #address-cells = <0>; 15286e8f528SBintian Wang #interrupt-cells = <3>; 15386e8f528SBintian Wang interrupt-controller; 15486e8f528SBintian Wang interrupts = <GIC_PPI 9 (GIC_CPU_MASK_SIMPLE(8) | IRQ_TYPE_LEVEL_HIGH)>; 15586e8f528SBintian Wang }; 15686e8f528SBintian Wang 15786e8f528SBintian Wang timer { 15886e8f528SBintian Wang compatible = "arm,armv8-timer"; 15986e8f528SBintian Wang interrupt-parent = <&gic>; 16086e8f528SBintian Wang interrupts = <GIC_PPI 13 (GIC_CPU_MASK_SIMPLE(8) | IRQ_TYPE_LEVEL_LOW)>, 16186e8f528SBintian Wang <GIC_PPI 14 (GIC_CPU_MASK_SIMPLE(8) | IRQ_TYPE_LEVEL_LOW)>, 16286e8f528SBintian Wang <GIC_PPI 11 (GIC_CPU_MASK_SIMPLE(8) | IRQ_TYPE_LEVEL_LOW)>, 16386e8f528SBintian Wang <GIC_PPI 10 (GIC_CPU_MASK_SIMPLE(8) | IRQ_TYPE_LEVEL_LOW)>; 16486e8f528SBintian Wang }; 16586e8f528SBintian Wang 16686e8f528SBintian Wang soc { 16786e8f528SBintian Wang compatible = "simple-bus"; 16886e8f528SBintian Wang #address-cells = <2>; 16986e8f528SBintian Wang #size-cells = <2>; 17086e8f528SBintian Wang ranges; 17186e8f528SBintian Wang 17286e8f528SBintian Wang ao_ctrl: ao_ctrl@f7800000 { 17386e8f528SBintian Wang compatible = "hisilicon,hi6220-aoctrl", "syscon"; 17486e8f528SBintian Wang reg = <0x0 0xf7800000 0x0 0x2000>; 17586e8f528SBintian Wang #clock-cells = <1>; 17686e8f528SBintian Wang }; 17786e8f528SBintian Wang 17886e8f528SBintian Wang sys_ctrl: sys_ctrl@f7030000 { 17986e8f528SBintian Wang compatible = "hisilicon,hi6220-sysctrl", "syscon"; 18086e8f528SBintian Wang reg = <0x0 0xf7030000 0x0 0x2000>; 18186e8f528SBintian Wang #clock-cells = <1>; 1823e14cd4cSChen Feng #reset-cells = <1>; 18386e8f528SBintian Wang }; 18486e8f528SBintian Wang 18586e8f528SBintian Wang media_ctrl: media_ctrl@f4410000 { 18686e8f528SBintian Wang compatible = "hisilicon,hi6220-mediactrl", "syscon"; 18786e8f528SBintian Wang reg = <0x0 0xf4410000 0x0 0x1000>; 18886e8f528SBintian Wang #clock-cells = <1>; 18986e8f528SBintian Wang }; 19086e8f528SBintian Wang 19186e8f528SBintian Wang pm_ctrl: pm_ctrl@f7032000 { 19286e8f528SBintian Wang compatible = "hisilicon,hi6220-pmctrl", "syscon"; 19386e8f528SBintian Wang reg = <0x0 0xf7032000 0x0 0x1000>; 19486e8f528SBintian Wang #clock-cells = <1>; 19586e8f528SBintian Wang }; 19686e8f528SBintian Wang 19786e8f528SBintian Wang uart0: uart@f8015000 { /* console */ 19886e8f528SBintian Wang compatible = "arm,pl011", "arm,primecell"; 19986e8f528SBintian Wang reg = <0x0 0xf8015000 0x0 0x1000>; 20086e8f528SBintian Wang interrupts = <GIC_SPI 36 IRQ_TYPE_LEVEL_HIGH>; 201a362ec8fSTyler Baker clocks = <&ao_ctrl HI6220_UART0_PCLK>, 202a362ec8fSTyler Baker <&ao_ctrl HI6220_UART0_PCLK>; 20386e8f528SBintian Wang clock-names = "uartclk", "apb_pclk"; 20486e8f528SBintian Wang }; 205a362ec8fSTyler Baker 206a362ec8fSTyler Baker uart1: uart@f7111000 { 207a362ec8fSTyler Baker compatible = "arm,pl011", "arm,primecell"; 208a362ec8fSTyler Baker reg = <0x0 0xf7111000 0x0 0x1000>; 209a362ec8fSTyler Baker interrupts = <GIC_SPI 37 IRQ_TYPE_LEVEL_HIGH>; 210a362ec8fSTyler Baker clocks = <&sys_ctrl HI6220_UART1_PCLK>, 211a362ec8fSTyler Baker <&sys_ctrl HI6220_UART1_PCLK>; 212a362ec8fSTyler Baker clock-names = "uartclk", "apb_pclk"; 213a362ec8fSTyler Baker status = "disabled"; 214a362ec8fSTyler Baker }; 215a362ec8fSTyler Baker 216a362ec8fSTyler Baker uart2: uart@f7112000 { 217a362ec8fSTyler Baker compatible = "arm,pl011", "arm,primecell"; 218a362ec8fSTyler Baker reg = <0x0 0xf7112000 0x0 0x1000>; 219a362ec8fSTyler Baker interrupts = <GIC_SPI 38 IRQ_TYPE_LEVEL_HIGH>; 220a362ec8fSTyler Baker clocks = <&sys_ctrl HI6220_UART2_PCLK>, 221a362ec8fSTyler Baker <&sys_ctrl HI6220_UART2_PCLK>; 222a362ec8fSTyler Baker clock-names = "uartclk", "apb_pclk"; 223a362ec8fSTyler Baker status = "disabled"; 224a362ec8fSTyler Baker }; 225a362ec8fSTyler Baker 226a362ec8fSTyler Baker uart3: uart@f7113000 { 227a362ec8fSTyler Baker compatible = "arm,pl011", "arm,primecell"; 228a362ec8fSTyler Baker reg = <0x0 0xf7113000 0x0 0x1000>; 229a362ec8fSTyler Baker interrupts = <GIC_SPI 39 IRQ_TYPE_LEVEL_HIGH>; 230a362ec8fSTyler Baker clocks = <&sys_ctrl HI6220_UART3_PCLK>, 231a362ec8fSTyler Baker <&sys_ctrl HI6220_UART3_PCLK>; 232a362ec8fSTyler Baker clock-names = "uartclk", "apb_pclk"; 233a362ec8fSTyler Baker }; 234a362ec8fSTyler Baker 235a362ec8fSTyler Baker uart4: uart@f7114000 { 236a362ec8fSTyler Baker compatible = "arm,pl011", "arm,primecell"; 237a362ec8fSTyler Baker reg = <0x0 0xf7114000 0x0 0x1000>; 238a362ec8fSTyler Baker interrupts = <GIC_SPI 40 IRQ_TYPE_LEVEL_HIGH>; 239a362ec8fSTyler Baker clocks = <&sys_ctrl HI6220_UART4_PCLK>, 240a362ec8fSTyler Baker <&sys_ctrl HI6220_UART4_PCLK>; 241a362ec8fSTyler Baker clock-names = "uartclk", "apb_pclk"; 242a362ec8fSTyler Baker status = "disabled"; 243a362ec8fSTyler Baker }; 2449e927031SLeo Yan 2459e927031SLeo Yan dual_timer0: timer@f8008000 { 2469e927031SLeo Yan compatible = "arm,sp804", "arm,primecell"; 2479e927031SLeo Yan reg = <0x0 0xf8008000 0x0 0x1000>; 2489e927031SLeo Yan interrupts = <GIC_SPI 14 IRQ_TYPE_LEVEL_HIGH>, 2499e927031SLeo Yan <GIC_SPI 15 IRQ_TYPE_LEVEL_HIGH>; 2509e927031SLeo Yan clocks = <&ao_ctrl HI6220_TIMER0_PCLK>, 2519e927031SLeo Yan <&ao_ctrl HI6220_TIMER0_PCLK>, 2529e927031SLeo Yan <&ao_ctrl HI6220_TIMER0_PCLK>; 2539e927031SLeo Yan clock-names = "timer1", "timer2", "apb_pclk"; 2549e927031SLeo Yan }; 255f2bfacf9SZhong Kaihua 256379e9bf5SZhong Kaihua pmx0: pinmux@f7010000 { 257379e9bf5SZhong Kaihua compatible = "pinctrl-single"; 258379e9bf5SZhong Kaihua reg = <0x0 0xf7010000 0x0 0x27c>; 259379e9bf5SZhong Kaihua #address-cells = <1>; 260379e9bf5SZhong Kaihua #size-cells = <1>; 261379e9bf5SZhong Kaihua #gpio-range-cells = <3>; 262379e9bf5SZhong Kaihua pinctrl-single,register-width = <32>; 263379e9bf5SZhong Kaihua pinctrl-single,function-mask = <7>; 264379e9bf5SZhong Kaihua pinctrl-single,gpio-range = < 265379e9bf5SZhong Kaihua &range 80 8 MUX_M0 /* gpio 3: [0..7] */ 266379e9bf5SZhong Kaihua &range 88 8 MUX_M0 /* gpio 4: [0..7] */ 267379e9bf5SZhong Kaihua &range 96 8 MUX_M0 /* gpio 5: [0..7] */ 268379e9bf5SZhong Kaihua &range 104 8 MUX_M0 /* gpio 6: [0..7] */ 269379e9bf5SZhong Kaihua &range 112 8 MUX_M0 /* gpio 7: [0..7] */ 270379e9bf5SZhong Kaihua &range 120 2 MUX_M0 /* gpio 8: [0..1] */ 271379e9bf5SZhong Kaihua &range 2 6 MUX_M1 /* gpio 8: [2..7] */ 272379e9bf5SZhong Kaihua &range 8 8 MUX_M1 /* gpio 9: [0..7] */ 273379e9bf5SZhong Kaihua &range 0 1 MUX_M1 /* gpio 10: [0] */ 274379e9bf5SZhong Kaihua &range 16 7 MUX_M1 /* gpio 10: [1..7] */ 275379e9bf5SZhong Kaihua &range 23 3 MUX_M1 /* gpio 11: [0..2] */ 276379e9bf5SZhong Kaihua &range 28 5 MUX_M1 /* gpio 11: [3..7] */ 277379e9bf5SZhong Kaihua &range 33 3 MUX_M1 /* gpio 12: [0..2] */ 278379e9bf5SZhong Kaihua &range 43 5 MUX_M1 /* gpio 12: [3..7] */ 279379e9bf5SZhong Kaihua &range 48 8 MUX_M1 /* gpio 13: [0..7] */ 280379e9bf5SZhong Kaihua &range 56 8 MUX_M1 /* gpio 14: [0..7] */ 281379e9bf5SZhong Kaihua &range 74 6 MUX_M1 /* gpio 15: [0..5] */ 282379e9bf5SZhong Kaihua &range 122 1 MUX_M1 /* gpio 15: [6] */ 283379e9bf5SZhong Kaihua &range 126 1 MUX_M1 /* gpio 15: [7] */ 284379e9bf5SZhong Kaihua &range 127 8 MUX_M1 /* gpio 16: [0..7] */ 285379e9bf5SZhong Kaihua &range 135 8 MUX_M1 /* gpio 17: [0..7] */ 286379e9bf5SZhong Kaihua &range 143 8 MUX_M1 /* gpio 18: [0..7] */ 287379e9bf5SZhong Kaihua &range 151 8 MUX_M1 /* gpio 19: [0..7] */ 288379e9bf5SZhong Kaihua >; 289379e9bf5SZhong Kaihua range: gpio-range { 290379e9bf5SZhong Kaihua #pinctrl-single,gpio-range-cells = <3>; 291379e9bf5SZhong Kaihua }; 292379e9bf5SZhong Kaihua }; 293379e9bf5SZhong Kaihua 294379e9bf5SZhong Kaihua pmx1: pinmux@f7010800 { 295379e9bf5SZhong Kaihua compatible = "pinconf-single"; 296379e9bf5SZhong Kaihua reg = <0x0 0xf7010800 0x0 0x28c>; 297379e9bf5SZhong Kaihua #address-cells = <1>; 298379e9bf5SZhong Kaihua #size-cells = <1>; 299379e9bf5SZhong Kaihua pinctrl-single,register-width = <32>; 300379e9bf5SZhong Kaihua }; 301379e9bf5SZhong Kaihua 302379e9bf5SZhong Kaihua pmx2: pinmux@f8001800 { 303379e9bf5SZhong Kaihua compatible = "pinconf-single"; 304379e9bf5SZhong Kaihua reg = <0x0 0xf8001800 0x0 0x78>; 305379e9bf5SZhong Kaihua #address-cells = <1>; 306379e9bf5SZhong Kaihua #size-cells = <1>; 307379e9bf5SZhong Kaihua pinctrl-single,register-width = <32>; 308379e9bf5SZhong Kaihua }; 309379e9bf5SZhong Kaihua 310f2bfacf9SZhong Kaihua gpio0: gpio@f8011000 { 311f2bfacf9SZhong Kaihua compatible = "arm,pl061", "arm,primecell"; 312f2bfacf9SZhong Kaihua reg = <0x0 0xf8011000 0x0 0x1000>; 313f2bfacf9SZhong Kaihua interrupts = <0 52 0x4>; 314f2bfacf9SZhong Kaihua gpio-controller; 315f2bfacf9SZhong Kaihua #gpio-cells = <2>; 316f2bfacf9SZhong Kaihua interrupt-controller; 317f2bfacf9SZhong Kaihua #interrupt-cells = <2>; 318f2bfacf9SZhong Kaihua clocks = <&ao_ctrl 2>; 319f2bfacf9SZhong Kaihua clock-names = "apb_pclk"; 320f2bfacf9SZhong Kaihua }; 321f2bfacf9SZhong Kaihua 322f2bfacf9SZhong Kaihua gpio1: gpio@f8012000 { 323f2bfacf9SZhong Kaihua compatible = "arm,pl061", "arm,primecell"; 324f2bfacf9SZhong Kaihua reg = <0x0 0xf8012000 0x0 0x1000>; 325f2bfacf9SZhong Kaihua interrupts = <0 53 0x4>; 326f2bfacf9SZhong Kaihua gpio-controller; 327f2bfacf9SZhong Kaihua #gpio-cells = <2>; 328f2bfacf9SZhong Kaihua interrupt-controller; 329f2bfacf9SZhong Kaihua #interrupt-cells = <2>; 330f2bfacf9SZhong Kaihua clocks = <&ao_ctrl 2>; 331f2bfacf9SZhong Kaihua clock-names = "apb_pclk"; 332f2bfacf9SZhong Kaihua }; 333f2bfacf9SZhong Kaihua 334f2bfacf9SZhong Kaihua gpio2: gpio@f8013000 { 335f2bfacf9SZhong Kaihua compatible = "arm,pl061", "arm,primecell"; 336f2bfacf9SZhong Kaihua reg = <0x0 0xf8013000 0x0 0x1000>; 337f2bfacf9SZhong Kaihua interrupts = <0 54 0x4>; 338f2bfacf9SZhong Kaihua gpio-controller; 339f2bfacf9SZhong Kaihua #gpio-cells = <2>; 340f2bfacf9SZhong Kaihua interrupt-controller; 341f2bfacf9SZhong Kaihua #interrupt-cells = <2>; 342f2bfacf9SZhong Kaihua clocks = <&ao_ctrl 2>; 343f2bfacf9SZhong Kaihua clock-names = "apb_pclk"; 344f2bfacf9SZhong Kaihua }; 345f2bfacf9SZhong Kaihua 346f2bfacf9SZhong Kaihua gpio3: gpio@f8014000 { 347f2bfacf9SZhong Kaihua compatible = "arm,pl061", "arm,primecell"; 348f2bfacf9SZhong Kaihua reg = <0x0 0xf8014000 0x0 0x1000>; 349f2bfacf9SZhong Kaihua interrupts = <0 55 0x4>; 350f2bfacf9SZhong Kaihua gpio-controller; 351f2bfacf9SZhong Kaihua #gpio-cells = <2>; 352379e9bf5SZhong Kaihua gpio-ranges = <&pmx0 0 80 8>; 353f2bfacf9SZhong Kaihua interrupt-controller; 354f2bfacf9SZhong Kaihua #interrupt-cells = <2>; 355f2bfacf9SZhong Kaihua clocks = <&ao_ctrl 2>; 356f2bfacf9SZhong Kaihua clock-names = "apb_pclk"; 357f2bfacf9SZhong Kaihua }; 358f2bfacf9SZhong Kaihua 359f2bfacf9SZhong Kaihua gpio4: gpio@f7020000 { 360f2bfacf9SZhong Kaihua compatible = "arm,pl061", "arm,primecell"; 361f2bfacf9SZhong Kaihua reg = <0x0 0xf7020000 0x0 0x1000>; 362f2bfacf9SZhong Kaihua interrupts = <0 56 0x4>; 363f2bfacf9SZhong Kaihua gpio-controller; 364f2bfacf9SZhong Kaihua #gpio-cells = <2>; 365379e9bf5SZhong Kaihua gpio-ranges = <&pmx0 0 88 8>; 366f2bfacf9SZhong Kaihua interrupt-controller; 367f2bfacf9SZhong Kaihua #interrupt-cells = <2>; 368f2bfacf9SZhong Kaihua clocks = <&ao_ctrl 2>; 369f2bfacf9SZhong Kaihua clock-names = "apb_pclk"; 370f2bfacf9SZhong Kaihua }; 371f2bfacf9SZhong Kaihua 372f2bfacf9SZhong Kaihua gpio5: gpio@f7021000 { 373f2bfacf9SZhong Kaihua compatible = "arm,pl061", "arm,primecell"; 374f2bfacf9SZhong Kaihua reg = <0x0 0xf7021000 0x0 0x1000>; 375f2bfacf9SZhong Kaihua interrupts = <0 57 0x4>; 376f2bfacf9SZhong Kaihua gpio-controller; 377f2bfacf9SZhong Kaihua #gpio-cells = <2>; 378379e9bf5SZhong Kaihua gpio-ranges = <&pmx0 0 96 8>; 379f2bfacf9SZhong Kaihua interrupt-controller; 380f2bfacf9SZhong Kaihua #interrupt-cells = <2>; 381f2bfacf9SZhong Kaihua clocks = <&ao_ctrl 2>; 382f2bfacf9SZhong Kaihua clock-names = "apb_pclk"; 383f2bfacf9SZhong Kaihua }; 384f2bfacf9SZhong Kaihua 385f2bfacf9SZhong Kaihua gpio6: gpio@f7022000 { 386f2bfacf9SZhong Kaihua compatible = "arm,pl061", "arm,primecell"; 387f2bfacf9SZhong Kaihua reg = <0x0 0xf7022000 0x0 0x1000>; 388f2bfacf9SZhong Kaihua interrupts = <0 58 0x4>; 389f2bfacf9SZhong Kaihua gpio-controller; 390f2bfacf9SZhong Kaihua #gpio-cells = <2>; 391379e9bf5SZhong Kaihua gpio-ranges = <&pmx0 0 104 8>; 392f2bfacf9SZhong Kaihua interrupt-controller; 393f2bfacf9SZhong Kaihua #interrupt-cells = <2>; 394f2bfacf9SZhong Kaihua clocks = <&ao_ctrl 2>; 395f2bfacf9SZhong Kaihua clock-names = "apb_pclk"; 396f2bfacf9SZhong Kaihua }; 397f2bfacf9SZhong Kaihua 398f2bfacf9SZhong Kaihua gpio7: gpio@f7023000 { 399f2bfacf9SZhong Kaihua compatible = "arm,pl061", "arm,primecell"; 400f2bfacf9SZhong Kaihua reg = <0x0 0xf7023000 0x0 0x1000>; 401f2bfacf9SZhong Kaihua interrupts = <0 59 0x4>; 402f2bfacf9SZhong Kaihua gpio-controller; 403f2bfacf9SZhong Kaihua #gpio-cells = <2>; 404379e9bf5SZhong Kaihua gpio-ranges = <&pmx0 0 112 8>; 405f2bfacf9SZhong Kaihua interrupt-controller; 406f2bfacf9SZhong Kaihua #interrupt-cells = <2>; 407f2bfacf9SZhong Kaihua clocks = <&ao_ctrl 2>; 408f2bfacf9SZhong Kaihua clock-names = "apb_pclk"; 409f2bfacf9SZhong Kaihua }; 410f2bfacf9SZhong Kaihua 411f2bfacf9SZhong Kaihua gpio8: gpio@f7024000 { 412f2bfacf9SZhong Kaihua compatible = "arm,pl061", "arm,primecell"; 413f2bfacf9SZhong Kaihua reg = <0x0 0xf7024000 0x0 0x1000>; 414f2bfacf9SZhong Kaihua interrupts = <0 60 0x4>; 415f2bfacf9SZhong Kaihua gpio-controller; 416f2bfacf9SZhong Kaihua #gpio-cells = <2>; 417379e9bf5SZhong Kaihua gpio-ranges = <&pmx0 0 120 2 &pmx0 2 2 6>; 418f2bfacf9SZhong Kaihua interrupt-controller; 419f2bfacf9SZhong Kaihua #interrupt-cells = <2>; 420f2bfacf9SZhong Kaihua clocks = <&ao_ctrl 2>; 421f2bfacf9SZhong Kaihua clock-names = "apb_pclk"; 422f2bfacf9SZhong Kaihua }; 423f2bfacf9SZhong Kaihua 424f2bfacf9SZhong Kaihua gpio9: gpio@f7025000 { 425f2bfacf9SZhong Kaihua compatible = "arm,pl061", "arm,primecell"; 426f2bfacf9SZhong Kaihua reg = <0x0 0xf7025000 0x0 0x1000>; 427f2bfacf9SZhong Kaihua interrupts = <0 61 0x4>; 428f2bfacf9SZhong Kaihua gpio-controller; 429f2bfacf9SZhong Kaihua #gpio-cells = <2>; 430379e9bf5SZhong Kaihua gpio-ranges = <&pmx0 0 8 8>; 431f2bfacf9SZhong Kaihua interrupt-controller; 432f2bfacf9SZhong Kaihua #interrupt-cells = <2>; 433f2bfacf9SZhong Kaihua clocks = <&ao_ctrl 2>; 434f2bfacf9SZhong Kaihua clock-names = "apb_pclk"; 435f2bfacf9SZhong Kaihua }; 436f2bfacf9SZhong Kaihua 437f2bfacf9SZhong Kaihua gpio10: gpio@f7026000 { 438f2bfacf9SZhong Kaihua compatible = "arm,pl061", "arm,primecell"; 439f2bfacf9SZhong Kaihua reg = <0x0 0xf7026000 0x0 0x1000>; 440f2bfacf9SZhong Kaihua interrupts = <0 62 0x4>; 441f2bfacf9SZhong Kaihua gpio-controller; 442f2bfacf9SZhong Kaihua #gpio-cells = <2>; 443379e9bf5SZhong Kaihua gpio-ranges = <&pmx0 0 0 1 &pmx0 1 16 7>; 444f2bfacf9SZhong Kaihua interrupt-controller; 445f2bfacf9SZhong Kaihua #interrupt-cells = <2>; 446f2bfacf9SZhong Kaihua clocks = <&ao_ctrl 2>; 447f2bfacf9SZhong Kaihua clock-names = "apb_pclk"; 448f2bfacf9SZhong Kaihua }; 449f2bfacf9SZhong Kaihua 450f2bfacf9SZhong Kaihua gpio11: gpio@f7027000 { 451f2bfacf9SZhong Kaihua compatible = "arm,pl061", "arm,primecell"; 452f2bfacf9SZhong Kaihua reg = <0x0 0xf7027000 0x0 0x1000>; 453f2bfacf9SZhong Kaihua interrupts = <0 63 0x4>; 454f2bfacf9SZhong Kaihua gpio-controller; 455f2bfacf9SZhong Kaihua #gpio-cells = <2>; 456379e9bf5SZhong Kaihua gpio-ranges = <&pmx0 0 23 3 &pmx0 3 28 5>; 457f2bfacf9SZhong Kaihua interrupt-controller; 458f2bfacf9SZhong Kaihua #interrupt-cells = <2>; 459f2bfacf9SZhong Kaihua clocks = <&ao_ctrl 2>; 460f2bfacf9SZhong Kaihua clock-names = "apb_pclk"; 461f2bfacf9SZhong Kaihua }; 462f2bfacf9SZhong Kaihua 463f2bfacf9SZhong Kaihua gpio12: gpio@f7028000 { 464f2bfacf9SZhong Kaihua compatible = "arm,pl061", "arm,primecell"; 465f2bfacf9SZhong Kaihua reg = <0x0 0xf7028000 0x0 0x1000>; 466f2bfacf9SZhong Kaihua interrupts = <0 64 0x4>; 467f2bfacf9SZhong Kaihua gpio-controller; 468f2bfacf9SZhong Kaihua #gpio-cells = <2>; 469379e9bf5SZhong Kaihua gpio-ranges = <&pmx0 0 33 3 &pmx0 3 43 5>; 470f2bfacf9SZhong Kaihua interrupt-controller; 471f2bfacf9SZhong Kaihua #interrupt-cells = <2>; 472f2bfacf9SZhong Kaihua clocks = <&ao_ctrl 2>; 473f2bfacf9SZhong Kaihua clock-names = "apb_pclk"; 474f2bfacf9SZhong Kaihua }; 475f2bfacf9SZhong Kaihua 476f2bfacf9SZhong Kaihua gpio13: gpio@f7029000 { 477f2bfacf9SZhong Kaihua compatible = "arm,pl061", "arm,primecell"; 478f2bfacf9SZhong Kaihua reg = <0x0 0xf7029000 0x0 0x1000>; 479f2bfacf9SZhong Kaihua interrupts = <0 65 0x4>; 480f2bfacf9SZhong Kaihua gpio-controller; 481379e9bf5SZhong Kaihua #gpio-cells = <2>; 482379e9bf5SZhong Kaihua gpio-ranges = <&pmx0 0 48 8>; 483f2bfacf9SZhong Kaihua interrupt-controller; 484f2bfacf9SZhong Kaihua #interrupt-cells = <2>; 485f2bfacf9SZhong Kaihua clocks = <&ao_ctrl 2>; 486f2bfacf9SZhong Kaihua clock-names = "apb_pclk"; 487f2bfacf9SZhong Kaihua }; 488f2bfacf9SZhong Kaihua 489f2bfacf9SZhong Kaihua gpio14: gpio@f702a000 { 490f2bfacf9SZhong Kaihua compatible = "arm,pl061", "arm,primecell"; 491f2bfacf9SZhong Kaihua reg = <0x0 0xf702a000 0x0 0x1000>; 492f2bfacf9SZhong Kaihua interrupts = <0 66 0x4>; 493f2bfacf9SZhong Kaihua gpio-controller; 494f2bfacf9SZhong Kaihua #gpio-cells = <2>; 495379e9bf5SZhong Kaihua gpio-ranges = <&pmx0 0 56 8>; 496f2bfacf9SZhong Kaihua interrupt-controller; 497f2bfacf9SZhong Kaihua #interrupt-cells = <2>; 498f2bfacf9SZhong Kaihua clocks = <&ao_ctrl 2>; 499f2bfacf9SZhong Kaihua clock-names = "apb_pclk"; 500f2bfacf9SZhong Kaihua }; 501f2bfacf9SZhong Kaihua 502f2bfacf9SZhong Kaihua gpio15: gpio@f702b000 { 503f2bfacf9SZhong Kaihua compatible = "arm,pl061", "arm,primecell"; 504f2bfacf9SZhong Kaihua reg = <0x0 0xf702b000 0x0 0x1000>; 505f2bfacf9SZhong Kaihua interrupts = <0 67 0x4>; 506f2bfacf9SZhong Kaihua gpio-controller; 507f2bfacf9SZhong Kaihua #gpio-cells = <2>; 508379e9bf5SZhong Kaihua gpio-ranges = < 509379e9bf5SZhong Kaihua &pmx0 0 74 6 510379e9bf5SZhong Kaihua &pmx0 6 122 1 511379e9bf5SZhong Kaihua &pmx0 7 126 1 512379e9bf5SZhong Kaihua >; 513f2bfacf9SZhong Kaihua interrupt-controller; 514f2bfacf9SZhong Kaihua #interrupt-cells = <2>; 515f2bfacf9SZhong Kaihua clocks = <&ao_ctrl 2>; 516f2bfacf9SZhong Kaihua clock-names = "apb_pclk"; 517f2bfacf9SZhong Kaihua }; 518f2bfacf9SZhong Kaihua 519f2bfacf9SZhong Kaihua gpio16: gpio@f702c000 { 520f2bfacf9SZhong Kaihua compatible = "arm,pl061", "arm,primecell"; 521f2bfacf9SZhong Kaihua reg = <0x0 0xf702c000 0x0 0x1000>; 522f2bfacf9SZhong Kaihua interrupts = <0 68 0x4>; 523f2bfacf9SZhong Kaihua gpio-controller; 524f2bfacf9SZhong Kaihua #gpio-cells = <2>; 525379e9bf5SZhong Kaihua gpio-ranges = <&pmx0 0 127 8>; 526f2bfacf9SZhong Kaihua interrupt-controller; 527f2bfacf9SZhong Kaihua #interrupt-cells = <2>; 528f2bfacf9SZhong Kaihua clocks = <&ao_ctrl 2>; 529f2bfacf9SZhong Kaihua clock-names = "apb_pclk"; 530f2bfacf9SZhong Kaihua }; 531f2bfacf9SZhong Kaihua 532f2bfacf9SZhong Kaihua gpio17: gpio@f702d000 { 533f2bfacf9SZhong Kaihua compatible = "arm,pl061", "arm,primecell"; 534f2bfacf9SZhong Kaihua reg = <0x0 0xf702d000 0x0 0x1000>; 535f2bfacf9SZhong Kaihua interrupts = <0 69 0x4>; 536f2bfacf9SZhong Kaihua gpio-controller; 537f2bfacf9SZhong Kaihua #gpio-cells = <2>; 538379e9bf5SZhong Kaihua gpio-ranges = <&pmx0 0 135 8>; 539f2bfacf9SZhong Kaihua interrupt-controller; 540f2bfacf9SZhong Kaihua #interrupt-cells = <2>; 541f2bfacf9SZhong Kaihua clocks = <&ao_ctrl 2>; 542f2bfacf9SZhong Kaihua clock-names = "apb_pclk"; 543f2bfacf9SZhong Kaihua }; 544f2bfacf9SZhong Kaihua 545f2bfacf9SZhong Kaihua gpio18: gpio@f702e000 { 546f2bfacf9SZhong Kaihua compatible = "arm,pl061", "arm,primecell"; 547f2bfacf9SZhong Kaihua reg = <0x0 0xf702e000 0x0 0x1000>; 548f2bfacf9SZhong Kaihua interrupts = <0 70 0x4>; 549f2bfacf9SZhong Kaihua gpio-controller; 550f2bfacf9SZhong Kaihua #gpio-cells = <2>; 551379e9bf5SZhong Kaihua gpio-ranges = <&pmx0 0 143 8>; 552f2bfacf9SZhong Kaihua interrupt-controller; 553f2bfacf9SZhong Kaihua #interrupt-cells = <2>; 554f2bfacf9SZhong Kaihua clocks = <&ao_ctrl 2>; 555f2bfacf9SZhong Kaihua clock-names = "apb_pclk"; 556f2bfacf9SZhong Kaihua }; 557f2bfacf9SZhong Kaihua 558f2bfacf9SZhong Kaihua gpio19: gpio@f702f000 { 559f2bfacf9SZhong Kaihua compatible = "arm,pl061", "arm,primecell"; 560f2bfacf9SZhong Kaihua reg = <0x0 0xf702f000 0x0 0x1000>; 561f2bfacf9SZhong Kaihua interrupts = <0 71 0x4>; 562f2bfacf9SZhong Kaihua gpio-controller; 563f2bfacf9SZhong Kaihua #gpio-cells = <2>; 564379e9bf5SZhong Kaihua gpio-ranges = <&pmx0 0 151 8>; 565f2bfacf9SZhong Kaihua interrupt-controller; 566f2bfacf9SZhong Kaihua #interrupt-cells = <2>; 567f2bfacf9SZhong Kaihua clocks = <&ao_ctrl 2>; 568f2bfacf9SZhong Kaihua clock-names = "apb_pclk"; 569f2bfacf9SZhong Kaihua }; 57060dac1b1SZhong Kaihua 57160dac1b1SZhong Kaihua spi0: spi@f7106000 { 57260dac1b1SZhong Kaihua compatible = "arm,pl022", "arm,primecell"; 57360dac1b1SZhong Kaihua reg = <0x0 0xf7106000 0x0 0x1000>; 57460dac1b1SZhong Kaihua interrupts = <0 50 4>; 57560dac1b1SZhong Kaihua bus-id = <0>; 57660dac1b1SZhong Kaihua enable-dma = <0>; 57760dac1b1SZhong Kaihua clocks = <&sys_ctrl HI6220_SPI_CLK>; 57860dac1b1SZhong Kaihua clock-names = "apb_pclk"; 57960dac1b1SZhong Kaihua pinctrl-names = "default"; 58060dac1b1SZhong Kaihua pinctrl-0 = <&spi0_pmx_func &spi0_cfg_func>; 58160dac1b1SZhong Kaihua num-cs = <1>; 58260dac1b1SZhong Kaihua cs-gpios = <&gpio6 2 0>; 58360dac1b1SZhong Kaihua status = "disabled"; 58460dac1b1SZhong Kaihua }; 5855ff3a4ddSXinwei Kong 5865ff3a4ddSXinwei Kong i2c0: i2c@f7100000 { 5875ff3a4ddSXinwei Kong compatible = "snps,designware-i2c"; 5885ff3a4ddSXinwei Kong reg = <0x0 0xf7100000 0x0 0x1000>; 5895ff3a4ddSXinwei Kong interrupts = <0 44 4>; 5905ff3a4ddSXinwei Kong clocks = <&sys_ctrl HI6220_I2C0_CLK>; 5915ff3a4ddSXinwei Kong i2c-sda-hold-time-ns = <300>; 5925ff3a4ddSXinwei Kong pinctrl-names = "default"; 5935ff3a4ddSXinwei Kong pinctrl-0 = <&i2c0_pmx_func &i2c0_cfg_func>; 5945ff3a4ddSXinwei Kong status = "disabled"; 5955ff3a4ddSXinwei Kong }; 5965ff3a4ddSXinwei Kong 5975ff3a4ddSXinwei Kong i2c1: i2c@f7101000 { 5985ff3a4ddSXinwei Kong compatible = "snps,designware-i2c"; 5995ff3a4ddSXinwei Kong reg = <0x0 0xf7101000 0x0 0x1000>; 6005ff3a4ddSXinwei Kong clocks = <&sys_ctrl HI6220_I2C1_CLK>; 6015ff3a4ddSXinwei Kong interrupts = <0 45 4>; 6025ff3a4ddSXinwei Kong i2c-sda-hold-time-ns = <300>; 6035ff3a4ddSXinwei Kong pinctrl-names = "default"; 6045ff3a4ddSXinwei Kong pinctrl-0 = <&i2c1_pmx_func &i2c1_cfg_func>; 6055ff3a4ddSXinwei Kong status = "disabled"; 6065ff3a4ddSXinwei Kong }; 6075ff3a4ddSXinwei Kong 6085ff3a4ddSXinwei Kong i2c2: i2c@f7102000 { 6095ff3a4ddSXinwei Kong compatible = "snps,designware-i2c"; 6105ff3a4ddSXinwei Kong reg = <0x0 0xf7102000 0x0 0x1000>; 6115ff3a4ddSXinwei Kong clocks = <&sys_ctrl HI6220_I2C2_CLK>; 6125ff3a4ddSXinwei Kong interrupts = <0 46 4>; 6135ff3a4ddSXinwei Kong i2c-sda-hold-time-ns = <300>; 6145ff3a4ddSXinwei Kong pinctrl-names = "default"; 6155ff3a4ddSXinwei Kong pinctrl-0 = <&i2c2_pmx_func &i2c2_cfg_func>; 6165ff3a4ddSXinwei Kong status = "disabled"; 6175ff3a4ddSXinwei Kong }; 618b4b31a7cSZhangfei Gao 619b4b31a7cSZhangfei Gao fixed_5v_hub: regulator@0 { 620b4b31a7cSZhangfei Gao compatible = "regulator-fixed"; 621b4b31a7cSZhangfei Gao regulator-name = "fixed_5v_hub"; 622b4b31a7cSZhangfei Gao regulator-min-microvolt = <5000000>; 623b4b31a7cSZhangfei Gao regulator-max-microvolt = <5000000>; 624b4b31a7cSZhangfei Gao regulator-boot-on; 625b4b31a7cSZhangfei Gao gpio = <&gpio0 7 0>; 626b4b31a7cSZhangfei Gao regulator-always-on; 627b4b31a7cSZhangfei Gao }; 628b4b31a7cSZhangfei Gao 629b4b31a7cSZhangfei Gao usb_phy: usbphy { 630b4b31a7cSZhangfei Gao compatible = "hisilicon,hi6220-usb-phy"; 631b4b31a7cSZhangfei Gao #phy-cells = <0>; 632b4b31a7cSZhangfei Gao phy-supply = <&fixed_5v_hub>; 633b4b31a7cSZhangfei Gao hisilicon,peripheral-syscon = <&sys_ctrl>; 634b4b31a7cSZhangfei Gao }; 635b4b31a7cSZhangfei Gao 636b4b31a7cSZhangfei Gao usb: usb@f72c0000 { 637b4b31a7cSZhangfei Gao compatible = "hisilicon,hi6220-usb"; 638b4b31a7cSZhangfei Gao reg = <0x0 0xf72c0000 0x0 0x40000>; 639b4b31a7cSZhangfei Gao phys = <&usb_phy>; 640b4b31a7cSZhangfei Gao phy-names = "usb2-phy"; 641b4b31a7cSZhangfei Gao clocks = <&sys_ctrl HI6220_USBOTG_HCLK>; 642b4b31a7cSZhangfei Gao clock-names = "otg"; 643b4b31a7cSZhangfei Gao dr_mode = "otg"; 644b4b31a7cSZhangfei Gao g-use-dma; 645b4b31a7cSZhangfei Gao g-rx-fifo-size = <512>; 646b4b31a7cSZhangfei Gao g-np-tx-fifo-size = <128>; 647b4b31a7cSZhangfei Gao g-tx-fifo-size = <128 128 128 128 128 128>; 648b4b31a7cSZhangfei Gao interrupts = <0 77 0x4>; 649b4b31a7cSZhangfei Gao }; 650*86073570SLeo Yan 651*86073570SLeo Yan mailbox: mailbox@f7510000 { 652*86073570SLeo Yan compatible = "hisilicon,hi6220-mbox"; 653*86073570SLeo Yan reg = <0x0 0xf7510000 0x0 0x1000>, /* IPC_S */ 654*86073570SLeo Yan <0x0 0x06dff800 0x0 0x0800>; /* Mailbox buffer */ 655*86073570SLeo Yan interrupts = <GIC_SPI 94 IRQ_TYPE_LEVEL_HIGH>; 656*86073570SLeo Yan #mbox-cells = <3>; 657*86073570SLeo Yan }; 65886e8f528SBintian Wang }; 65986e8f528SBintian Wang}; 660