1*4882a593Smuzhiyun// SPDX-License-Identifier: GPL-2.0+ OR MIT 2*4882a593Smuzhiyun// 3*4882a593Smuzhiyun// Copyright 2015 Freescale Semiconductor, Inc. 4*4882a593Smuzhiyun// Copyright 2016 Toradex AG 5*4882a593Smuzhiyun 6*4882a593Smuzhiyun#include <dt-bindings/clock/imx7d-clock.h> 7*4882a593Smuzhiyun#include <dt-bindings/power/imx7-power.h> 8*4882a593Smuzhiyun#include <dt-bindings/gpio/gpio.h> 9*4882a593Smuzhiyun#include <dt-bindings/input/input.h> 10*4882a593Smuzhiyun#include <dt-bindings/interrupt-controller/arm-gic.h> 11*4882a593Smuzhiyun#include <dt-bindings/reset/imx7-reset.h> 12*4882a593Smuzhiyun#include "imx7d-pinfunc.h" 13*4882a593Smuzhiyun 14*4882a593Smuzhiyun/ { 15*4882a593Smuzhiyun #address-cells = <1>; 16*4882a593Smuzhiyun #size-cells = <1>; 17*4882a593Smuzhiyun /* 18*4882a593Smuzhiyun * The decompressor and also some bootloaders rely on a 19*4882a593Smuzhiyun * pre-existing /chosen node to be available to insert the 20*4882a593Smuzhiyun * command line and merge other ATAGS info. 21*4882a593Smuzhiyun */ 22*4882a593Smuzhiyun chosen {}; 23*4882a593Smuzhiyun 24*4882a593Smuzhiyun aliases { 25*4882a593Smuzhiyun gpio0 = &gpio1; 26*4882a593Smuzhiyun gpio1 = &gpio2; 27*4882a593Smuzhiyun gpio2 = &gpio3; 28*4882a593Smuzhiyun gpio3 = &gpio4; 29*4882a593Smuzhiyun gpio4 = &gpio5; 30*4882a593Smuzhiyun gpio5 = &gpio6; 31*4882a593Smuzhiyun gpio6 = &gpio7; 32*4882a593Smuzhiyun i2c0 = &i2c1; 33*4882a593Smuzhiyun i2c1 = &i2c2; 34*4882a593Smuzhiyun i2c2 = &i2c3; 35*4882a593Smuzhiyun i2c3 = &i2c4; 36*4882a593Smuzhiyun mmc0 = &usdhc1; 37*4882a593Smuzhiyun mmc1 = &usdhc2; 38*4882a593Smuzhiyun mmc2 = &usdhc3; 39*4882a593Smuzhiyun serial0 = &uart1; 40*4882a593Smuzhiyun serial1 = &uart2; 41*4882a593Smuzhiyun serial2 = &uart3; 42*4882a593Smuzhiyun serial3 = &uart4; 43*4882a593Smuzhiyun serial4 = &uart5; 44*4882a593Smuzhiyun serial5 = &uart6; 45*4882a593Smuzhiyun serial6 = &uart7; 46*4882a593Smuzhiyun spi0 = &ecspi1; 47*4882a593Smuzhiyun spi1 = &ecspi2; 48*4882a593Smuzhiyun spi2 = &ecspi3; 49*4882a593Smuzhiyun spi3 = &ecspi4; 50*4882a593Smuzhiyun }; 51*4882a593Smuzhiyun 52*4882a593Smuzhiyun cpus { 53*4882a593Smuzhiyun #address-cells = <1>; 54*4882a593Smuzhiyun #size-cells = <0>; 55*4882a593Smuzhiyun 56*4882a593Smuzhiyun idle-states { 57*4882a593Smuzhiyun entry-method = "psci"; 58*4882a593Smuzhiyun 59*4882a593Smuzhiyun cpu_sleep_wait: cpu-sleep-wait { 60*4882a593Smuzhiyun compatible = "arm,idle-state"; 61*4882a593Smuzhiyun arm,psci-suspend-param = <0x0010000>; 62*4882a593Smuzhiyun local-timer-stop; 63*4882a593Smuzhiyun entry-latency-us = <100>; 64*4882a593Smuzhiyun exit-latency-us = <50>; 65*4882a593Smuzhiyun min-residency-us = <1000>; 66*4882a593Smuzhiyun }; 67*4882a593Smuzhiyun }; 68*4882a593Smuzhiyun 69*4882a593Smuzhiyun cpu0: cpu@0 { 70*4882a593Smuzhiyun compatible = "arm,cortex-a7"; 71*4882a593Smuzhiyun device_type = "cpu"; 72*4882a593Smuzhiyun reg = <0>; 73*4882a593Smuzhiyun clock-frequency = <792000000>; 74*4882a593Smuzhiyun clock-latency = <61036>; /* two CLK32 periods */ 75*4882a593Smuzhiyun clocks = <&clks IMX7D_CLK_ARM>; 76*4882a593Smuzhiyun cpu-idle-states = <&cpu_sleep_wait>; 77*4882a593Smuzhiyun }; 78*4882a593Smuzhiyun }; 79*4882a593Smuzhiyun 80*4882a593Smuzhiyun ckil: clock-cki { 81*4882a593Smuzhiyun compatible = "fixed-clock"; 82*4882a593Smuzhiyun #clock-cells = <0>; 83*4882a593Smuzhiyun clock-frequency = <32768>; 84*4882a593Smuzhiyun clock-output-names = "ckil"; 85*4882a593Smuzhiyun }; 86*4882a593Smuzhiyun 87*4882a593Smuzhiyun osc: clock-osc { 88*4882a593Smuzhiyun compatible = "fixed-clock"; 89*4882a593Smuzhiyun #clock-cells = <0>; 90*4882a593Smuzhiyun clock-frequency = <24000000>; 91*4882a593Smuzhiyun clock-output-names = "osc"; 92*4882a593Smuzhiyun }; 93*4882a593Smuzhiyun 94*4882a593Smuzhiyun usbphynop1: usbphynop1 { 95*4882a593Smuzhiyun compatible = "usb-nop-xceiv"; 96*4882a593Smuzhiyun clocks = <&clks IMX7D_USB_PHY1_CLK>; 97*4882a593Smuzhiyun clock-names = "main_clk"; 98*4882a593Smuzhiyun #phy-cells = <0>; 99*4882a593Smuzhiyun }; 100*4882a593Smuzhiyun 101*4882a593Smuzhiyun usbphynop3: usbphynop3 { 102*4882a593Smuzhiyun compatible = "usb-nop-xceiv"; 103*4882a593Smuzhiyun clocks = <&clks IMX7D_USB_HSIC_ROOT_CLK>; 104*4882a593Smuzhiyun clock-names = "main_clk"; 105*4882a593Smuzhiyun power-domains = <&pgc_hsic_phy>; 106*4882a593Smuzhiyun #phy-cells = <0>; 107*4882a593Smuzhiyun }; 108*4882a593Smuzhiyun 109*4882a593Smuzhiyun pmu { 110*4882a593Smuzhiyun compatible = "arm,cortex-a7-pmu"; 111*4882a593Smuzhiyun interrupt-parent = <&gpc>; 112*4882a593Smuzhiyun interrupts = <GIC_SPI 92 IRQ_TYPE_LEVEL_HIGH>; 113*4882a593Smuzhiyun interrupt-affinity = <&cpu0>; 114*4882a593Smuzhiyun }; 115*4882a593Smuzhiyun 116*4882a593Smuzhiyun replicator { 117*4882a593Smuzhiyun /* 118*4882a593Smuzhiyun * non-configurable replicators don't show up on the 119*4882a593Smuzhiyun * AMBA bus. As such no need to add "arm,primecell" 120*4882a593Smuzhiyun */ 121*4882a593Smuzhiyun compatible = "arm,coresight-static-replicator"; 122*4882a593Smuzhiyun 123*4882a593Smuzhiyun out-ports { 124*4882a593Smuzhiyun #address-cells = <1>; 125*4882a593Smuzhiyun #size-cells = <0>; 126*4882a593Smuzhiyun /* replicator output ports */ 127*4882a593Smuzhiyun port@0 { 128*4882a593Smuzhiyun reg = <0>; 129*4882a593Smuzhiyun replicator_out_port0: endpoint { 130*4882a593Smuzhiyun remote-endpoint = <&tpiu_in_port>; 131*4882a593Smuzhiyun }; 132*4882a593Smuzhiyun }; 133*4882a593Smuzhiyun 134*4882a593Smuzhiyun port@1 { 135*4882a593Smuzhiyun reg = <1>; 136*4882a593Smuzhiyun replicator_out_port1: endpoint { 137*4882a593Smuzhiyun remote-endpoint = <&etr_in_port>; 138*4882a593Smuzhiyun }; 139*4882a593Smuzhiyun }; 140*4882a593Smuzhiyun }; 141*4882a593Smuzhiyun 142*4882a593Smuzhiyun in-ports { 143*4882a593Smuzhiyun port { 144*4882a593Smuzhiyun replicator_in_port0: endpoint { 145*4882a593Smuzhiyun remote-endpoint = <&etf_out_port>; 146*4882a593Smuzhiyun }; 147*4882a593Smuzhiyun }; 148*4882a593Smuzhiyun }; 149*4882a593Smuzhiyun }; 150*4882a593Smuzhiyun 151*4882a593Smuzhiyun timer { 152*4882a593Smuzhiyun compatible = "arm,armv7-timer"; 153*4882a593Smuzhiyun interrupt-parent = <&intc>; 154*4882a593Smuzhiyun interrupts = <GIC_PPI 13 (GIC_CPU_MASK_SIMPLE(1) | IRQ_TYPE_LEVEL_LOW)>, 155*4882a593Smuzhiyun <GIC_PPI 14 (GIC_CPU_MASK_SIMPLE(1) | IRQ_TYPE_LEVEL_LOW)>, 156*4882a593Smuzhiyun <GIC_PPI 11 (GIC_CPU_MASK_SIMPLE(1) | IRQ_TYPE_LEVEL_LOW)>, 157*4882a593Smuzhiyun <GIC_PPI 10 (GIC_CPU_MASK_SIMPLE(1) | IRQ_TYPE_LEVEL_LOW)>; 158*4882a593Smuzhiyun }; 159*4882a593Smuzhiyun 160*4882a593Smuzhiyun soc { 161*4882a593Smuzhiyun #address-cells = <1>; 162*4882a593Smuzhiyun #size-cells = <1>; 163*4882a593Smuzhiyun compatible = "simple-bus"; 164*4882a593Smuzhiyun interrupt-parent = <&gpc>; 165*4882a593Smuzhiyun ranges; 166*4882a593Smuzhiyun 167*4882a593Smuzhiyun funnel@30041000 { 168*4882a593Smuzhiyun compatible = "arm,coresight-dynamic-funnel", "arm,primecell"; 169*4882a593Smuzhiyun reg = <0x30041000 0x1000>; 170*4882a593Smuzhiyun clocks = <&clks IMX7D_MAIN_AXI_ROOT_CLK>; 171*4882a593Smuzhiyun clock-names = "apb_pclk"; 172*4882a593Smuzhiyun 173*4882a593Smuzhiyun ca_funnel_in_ports: in-ports { 174*4882a593Smuzhiyun port { 175*4882a593Smuzhiyun ca_funnel_in_port0: endpoint { 176*4882a593Smuzhiyun remote-endpoint = <&etm0_out_port>; 177*4882a593Smuzhiyun }; 178*4882a593Smuzhiyun }; 179*4882a593Smuzhiyun 180*4882a593Smuzhiyun /* the other input ports are not connect to anything */ 181*4882a593Smuzhiyun }; 182*4882a593Smuzhiyun 183*4882a593Smuzhiyun out-ports { 184*4882a593Smuzhiyun port { 185*4882a593Smuzhiyun ca_funnel_out_port0: endpoint { 186*4882a593Smuzhiyun remote-endpoint = <&hugo_funnel_in_port0>; 187*4882a593Smuzhiyun }; 188*4882a593Smuzhiyun }; 189*4882a593Smuzhiyun 190*4882a593Smuzhiyun }; 191*4882a593Smuzhiyun }; 192*4882a593Smuzhiyun 193*4882a593Smuzhiyun etm@3007c000 { 194*4882a593Smuzhiyun compatible = "arm,coresight-etm3x", "arm,primecell"; 195*4882a593Smuzhiyun reg = <0x3007c000 0x1000>; 196*4882a593Smuzhiyun cpu = <&cpu0>; 197*4882a593Smuzhiyun clocks = <&clks IMX7D_MAIN_AXI_ROOT_CLK>; 198*4882a593Smuzhiyun clock-names = "apb_pclk"; 199*4882a593Smuzhiyun 200*4882a593Smuzhiyun out-ports { 201*4882a593Smuzhiyun port { 202*4882a593Smuzhiyun etm0_out_port: endpoint { 203*4882a593Smuzhiyun remote-endpoint = <&ca_funnel_in_port0>; 204*4882a593Smuzhiyun }; 205*4882a593Smuzhiyun }; 206*4882a593Smuzhiyun }; 207*4882a593Smuzhiyun }; 208*4882a593Smuzhiyun 209*4882a593Smuzhiyun funnel@30083000 { 210*4882a593Smuzhiyun compatible = "arm,coresight-dynamic-funnel", "arm,primecell"; 211*4882a593Smuzhiyun reg = <0x30083000 0x1000>; 212*4882a593Smuzhiyun clocks = <&clks IMX7D_MAIN_AXI_ROOT_CLK>; 213*4882a593Smuzhiyun clock-names = "apb_pclk"; 214*4882a593Smuzhiyun 215*4882a593Smuzhiyun in-ports { 216*4882a593Smuzhiyun #address-cells = <1>; 217*4882a593Smuzhiyun #size-cells = <0>; 218*4882a593Smuzhiyun 219*4882a593Smuzhiyun port@0 { 220*4882a593Smuzhiyun reg = <0>; 221*4882a593Smuzhiyun hugo_funnel_in_port0: endpoint { 222*4882a593Smuzhiyun remote-endpoint = <&ca_funnel_out_port0>; 223*4882a593Smuzhiyun }; 224*4882a593Smuzhiyun }; 225*4882a593Smuzhiyun 226*4882a593Smuzhiyun port@1 { 227*4882a593Smuzhiyun reg = <1>; 228*4882a593Smuzhiyun hugo_funnel_in_port1: endpoint { 229*4882a593Smuzhiyun /* M4 input */ 230*4882a593Smuzhiyun }; 231*4882a593Smuzhiyun }; 232*4882a593Smuzhiyun /* the other input ports are not connect to anything */ 233*4882a593Smuzhiyun }; 234*4882a593Smuzhiyun 235*4882a593Smuzhiyun out-ports { 236*4882a593Smuzhiyun port { 237*4882a593Smuzhiyun hugo_funnel_out_port0: endpoint { 238*4882a593Smuzhiyun remote-endpoint = <&etf_in_port>; 239*4882a593Smuzhiyun }; 240*4882a593Smuzhiyun }; 241*4882a593Smuzhiyun }; 242*4882a593Smuzhiyun }; 243*4882a593Smuzhiyun 244*4882a593Smuzhiyun etf@30084000 { 245*4882a593Smuzhiyun compatible = "arm,coresight-tmc", "arm,primecell"; 246*4882a593Smuzhiyun reg = <0x30084000 0x1000>; 247*4882a593Smuzhiyun clocks = <&clks IMX7D_MAIN_AXI_ROOT_CLK>; 248*4882a593Smuzhiyun clock-names = "apb_pclk"; 249*4882a593Smuzhiyun 250*4882a593Smuzhiyun in-ports { 251*4882a593Smuzhiyun port { 252*4882a593Smuzhiyun etf_in_port: endpoint { 253*4882a593Smuzhiyun remote-endpoint = <&hugo_funnel_out_port0>; 254*4882a593Smuzhiyun }; 255*4882a593Smuzhiyun }; 256*4882a593Smuzhiyun }; 257*4882a593Smuzhiyun 258*4882a593Smuzhiyun out-ports { 259*4882a593Smuzhiyun port { 260*4882a593Smuzhiyun etf_out_port: endpoint { 261*4882a593Smuzhiyun remote-endpoint = <&replicator_in_port0>; 262*4882a593Smuzhiyun }; 263*4882a593Smuzhiyun }; 264*4882a593Smuzhiyun }; 265*4882a593Smuzhiyun }; 266*4882a593Smuzhiyun 267*4882a593Smuzhiyun etr@30086000 { 268*4882a593Smuzhiyun compatible = "arm,coresight-tmc", "arm,primecell"; 269*4882a593Smuzhiyun reg = <0x30086000 0x1000>; 270*4882a593Smuzhiyun clocks = <&clks IMX7D_MAIN_AXI_ROOT_CLK>; 271*4882a593Smuzhiyun clock-names = "apb_pclk"; 272*4882a593Smuzhiyun 273*4882a593Smuzhiyun in-ports { 274*4882a593Smuzhiyun port { 275*4882a593Smuzhiyun etr_in_port: endpoint { 276*4882a593Smuzhiyun remote-endpoint = <&replicator_out_port1>; 277*4882a593Smuzhiyun }; 278*4882a593Smuzhiyun }; 279*4882a593Smuzhiyun }; 280*4882a593Smuzhiyun }; 281*4882a593Smuzhiyun 282*4882a593Smuzhiyun tpiu@30087000 { 283*4882a593Smuzhiyun compatible = "arm,coresight-tpiu", "arm,primecell"; 284*4882a593Smuzhiyun reg = <0x30087000 0x1000>; 285*4882a593Smuzhiyun clocks = <&clks IMX7D_MAIN_AXI_ROOT_CLK>; 286*4882a593Smuzhiyun clock-names = "apb_pclk"; 287*4882a593Smuzhiyun 288*4882a593Smuzhiyun in-ports { 289*4882a593Smuzhiyun port { 290*4882a593Smuzhiyun tpiu_in_port: endpoint { 291*4882a593Smuzhiyun remote-endpoint = <&replicator_out_port0>; 292*4882a593Smuzhiyun }; 293*4882a593Smuzhiyun }; 294*4882a593Smuzhiyun }; 295*4882a593Smuzhiyun }; 296*4882a593Smuzhiyun 297*4882a593Smuzhiyun intc: interrupt-controller@31001000 { 298*4882a593Smuzhiyun compatible = "arm,cortex-a7-gic"; 299*4882a593Smuzhiyun interrupts = <GIC_PPI 9 (GIC_CPU_MASK_SIMPLE(1) | IRQ_TYPE_LEVEL_HIGH)>; 300*4882a593Smuzhiyun #interrupt-cells = <3>; 301*4882a593Smuzhiyun interrupt-controller; 302*4882a593Smuzhiyun interrupt-parent = <&intc>; 303*4882a593Smuzhiyun reg = <0x31001000 0x1000>, 304*4882a593Smuzhiyun <0x31002000 0x2000>, 305*4882a593Smuzhiyun <0x31004000 0x2000>, 306*4882a593Smuzhiyun <0x31006000 0x2000>; 307*4882a593Smuzhiyun }; 308*4882a593Smuzhiyun 309*4882a593Smuzhiyun aips1: bus@30000000 { 310*4882a593Smuzhiyun compatible = "fsl,aips-bus", "simple-bus"; 311*4882a593Smuzhiyun #address-cells = <1>; 312*4882a593Smuzhiyun #size-cells = <1>; 313*4882a593Smuzhiyun reg = <0x30000000 0x400000>; 314*4882a593Smuzhiyun ranges; 315*4882a593Smuzhiyun 316*4882a593Smuzhiyun gpio1: gpio@30200000 { 317*4882a593Smuzhiyun compatible = "fsl,imx7d-gpio", "fsl,imx35-gpio"; 318*4882a593Smuzhiyun reg = <0x30200000 0x10000>; 319*4882a593Smuzhiyun interrupts = <GIC_SPI 64 IRQ_TYPE_LEVEL_HIGH>, /* GPIO1_INT15_0 */ 320*4882a593Smuzhiyun <GIC_SPI 65 IRQ_TYPE_LEVEL_HIGH>; /* GPIO1_INT31_16 */ 321*4882a593Smuzhiyun gpio-controller; 322*4882a593Smuzhiyun #gpio-cells = <2>; 323*4882a593Smuzhiyun interrupt-controller; 324*4882a593Smuzhiyun #interrupt-cells = <2>; 325*4882a593Smuzhiyun gpio-ranges = <&iomuxc_lpsr 0 0 8>, <&iomuxc 8 5 8>; 326*4882a593Smuzhiyun }; 327*4882a593Smuzhiyun 328*4882a593Smuzhiyun gpio2: gpio@30210000 { 329*4882a593Smuzhiyun compatible = "fsl,imx7d-gpio", "fsl,imx35-gpio"; 330*4882a593Smuzhiyun reg = <0x30210000 0x10000>; 331*4882a593Smuzhiyun interrupts = <GIC_SPI 66 IRQ_TYPE_LEVEL_HIGH>, 332*4882a593Smuzhiyun <GIC_SPI 67 IRQ_TYPE_LEVEL_HIGH>; 333*4882a593Smuzhiyun gpio-controller; 334*4882a593Smuzhiyun #gpio-cells = <2>; 335*4882a593Smuzhiyun interrupt-controller; 336*4882a593Smuzhiyun #interrupt-cells = <2>; 337*4882a593Smuzhiyun gpio-ranges = <&iomuxc 0 13 32>; 338*4882a593Smuzhiyun }; 339*4882a593Smuzhiyun 340*4882a593Smuzhiyun gpio3: gpio@30220000 { 341*4882a593Smuzhiyun compatible = "fsl,imx7d-gpio", "fsl,imx35-gpio"; 342*4882a593Smuzhiyun reg = <0x30220000 0x10000>; 343*4882a593Smuzhiyun interrupts = <GIC_SPI 68 IRQ_TYPE_LEVEL_HIGH>, 344*4882a593Smuzhiyun <GIC_SPI 69 IRQ_TYPE_LEVEL_HIGH>; 345*4882a593Smuzhiyun gpio-controller; 346*4882a593Smuzhiyun #gpio-cells = <2>; 347*4882a593Smuzhiyun interrupt-controller; 348*4882a593Smuzhiyun #interrupt-cells = <2>; 349*4882a593Smuzhiyun gpio-ranges = <&iomuxc 0 45 29>; 350*4882a593Smuzhiyun }; 351*4882a593Smuzhiyun 352*4882a593Smuzhiyun gpio4: gpio@30230000 { 353*4882a593Smuzhiyun compatible = "fsl,imx7d-gpio", "fsl,imx35-gpio"; 354*4882a593Smuzhiyun reg = <0x30230000 0x10000>; 355*4882a593Smuzhiyun interrupts = <GIC_SPI 70 IRQ_TYPE_LEVEL_HIGH>, 356*4882a593Smuzhiyun <GIC_SPI 71 IRQ_TYPE_LEVEL_HIGH>; 357*4882a593Smuzhiyun gpio-controller; 358*4882a593Smuzhiyun #gpio-cells = <2>; 359*4882a593Smuzhiyun interrupt-controller; 360*4882a593Smuzhiyun #interrupt-cells = <2>; 361*4882a593Smuzhiyun gpio-ranges = <&iomuxc 0 74 24>; 362*4882a593Smuzhiyun }; 363*4882a593Smuzhiyun 364*4882a593Smuzhiyun gpio5: gpio@30240000 { 365*4882a593Smuzhiyun compatible = "fsl,imx7d-gpio", "fsl,imx35-gpio"; 366*4882a593Smuzhiyun reg = <0x30240000 0x10000>; 367*4882a593Smuzhiyun interrupts = <GIC_SPI 72 IRQ_TYPE_LEVEL_HIGH>, 368*4882a593Smuzhiyun <GIC_SPI 73 IRQ_TYPE_LEVEL_HIGH>; 369*4882a593Smuzhiyun gpio-controller; 370*4882a593Smuzhiyun #gpio-cells = <2>; 371*4882a593Smuzhiyun interrupt-controller; 372*4882a593Smuzhiyun #interrupt-cells = <2>; 373*4882a593Smuzhiyun gpio-ranges = <&iomuxc 0 98 18>; 374*4882a593Smuzhiyun }; 375*4882a593Smuzhiyun 376*4882a593Smuzhiyun gpio6: gpio@30250000 { 377*4882a593Smuzhiyun compatible = "fsl,imx7d-gpio", "fsl,imx35-gpio"; 378*4882a593Smuzhiyun reg = <0x30250000 0x10000>; 379*4882a593Smuzhiyun interrupts = <GIC_SPI 74 IRQ_TYPE_LEVEL_HIGH>, 380*4882a593Smuzhiyun <GIC_SPI 75 IRQ_TYPE_LEVEL_HIGH>; 381*4882a593Smuzhiyun gpio-controller; 382*4882a593Smuzhiyun #gpio-cells = <2>; 383*4882a593Smuzhiyun interrupt-controller; 384*4882a593Smuzhiyun #interrupt-cells = <2>; 385*4882a593Smuzhiyun gpio-ranges = <&iomuxc 0 116 23>; 386*4882a593Smuzhiyun }; 387*4882a593Smuzhiyun 388*4882a593Smuzhiyun gpio7: gpio@30260000 { 389*4882a593Smuzhiyun compatible = "fsl,imx7d-gpio", "fsl,imx35-gpio"; 390*4882a593Smuzhiyun reg = <0x30260000 0x10000>; 391*4882a593Smuzhiyun interrupts = <GIC_SPI 76 IRQ_TYPE_LEVEL_HIGH>, 392*4882a593Smuzhiyun <GIC_SPI 77 IRQ_TYPE_LEVEL_HIGH>; 393*4882a593Smuzhiyun gpio-controller; 394*4882a593Smuzhiyun #gpio-cells = <2>; 395*4882a593Smuzhiyun interrupt-controller; 396*4882a593Smuzhiyun #interrupt-cells = <2>; 397*4882a593Smuzhiyun gpio-ranges = <&iomuxc 0 139 16>; 398*4882a593Smuzhiyun }; 399*4882a593Smuzhiyun 400*4882a593Smuzhiyun wdog1: watchdog@30280000 { 401*4882a593Smuzhiyun compatible = "fsl,imx7d-wdt", "fsl,imx21-wdt"; 402*4882a593Smuzhiyun reg = <0x30280000 0x10000>; 403*4882a593Smuzhiyun interrupts = <GIC_SPI 78 IRQ_TYPE_LEVEL_HIGH>; 404*4882a593Smuzhiyun clocks = <&clks IMX7D_WDOG1_ROOT_CLK>; 405*4882a593Smuzhiyun }; 406*4882a593Smuzhiyun 407*4882a593Smuzhiyun wdog2: watchdog@30290000 { 408*4882a593Smuzhiyun compatible = "fsl,imx7d-wdt", "fsl,imx21-wdt"; 409*4882a593Smuzhiyun reg = <0x30290000 0x10000>; 410*4882a593Smuzhiyun interrupts = <GIC_SPI 79 IRQ_TYPE_LEVEL_HIGH>; 411*4882a593Smuzhiyun clocks = <&clks IMX7D_WDOG2_ROOT_CLK>; 412*4882a593Smuzhiyun status = "disabled"; 413*4882a593Smuzhiyun }; 414*4882a593Smuzhiyun 415*4882a593Smuzhiyun wdog3: watchdog@302a0000 { 416*4882a593Smuzhiyun compatible = "fsl,imx7d-wdt", "fsl,imx21-wdt"; 417*4882a593Smuzhiyun reg = <0x302a0000 0x10000>; 418*4882a593Smuzhiyun interrupts = <GIC_SPI 10 IRQ_TYPE_LEVEL_HIGH>; 419*4882a593Smuzhiyun clocks = <&clks IMX7D_WDOG3_ROOT_CLK>; 420*4882a593Smuzhiyun status = "disabled"; 421*4882a593Smuzhiyun }; 422*4882a593Smuzhiyun 423*4882a593Smuzhiyun wdog4: watchdog@302b0000 { 424*4882a593Smuzhiyun compatible = "fsl,imx7d-wdt", "fsl,imx21-wdt"; 425*4882a593Smuzhiyun reg = <0x302b0000 0x10000>; 426*4882a593Smuzhiyun interrupts = <GIC_SPI 109 IRQ_TYPE_LEVEL_HIGH>; 427*4882a593Smuzhiyun clocks = <&clks IMX7D_WDOG4_ROOT_CLK>; 428*4882a593Smuzhiyun status = "disabled"; 429*4882a593Smuzhiyun }; 430*4882a593Smuzhiyun 431*4882a593Smuzhiyun iomuxc_lpsr: iomuxc-lpsr@302c0000 { 432*4882a593Smuzhiyun compatible = "fsl,imx7d-iomuxc-lpsr"; 433*4882a593Smuzhiyun reg = <0x302c0000 0x10000>; 434*4882a593Smuzhiyun fsl,input-sel = <&iomuxc>; 435*4882a593Smuzhiyun }; 436*4882a593Smuzhiyun 437*4882a593Smuzhiyun gpt1: timer@302d0000 { 438*4882a593Smuzhiyun compatible = "fsl,imx7d-gpt", "fsl,imx6sx-gpt"; 439*4882a593Smuzhiyun reg = <0x302d0000 0x10000>; 440*4882a593Smuzhiyun interrupts = <GIC_SPI 55 IRQ_TYPE_LEVEL_HIGH>; 441*4882a593Smuzhiyun clocks = <&clks IMX7D_GPT1_ROOT_CLK>, 442*4882a593Smuzhiyun <&clks IMX7D_GPT1_ROOT_CLK>; 443*4882a593Smuzhiyun clock-names = "ipg", "per"; 444*4882a593Smuzhiyun }; 445*4882a593Smuzhiyun 446*4882a593Smuzhiyun gpt2: timer@302e0000 { 447*4882a593Smuzhiyun compatible = "fsl,imx7d-gpt", "fsl,imx6sx-gpt"; 448*4882a593Smuzhiyun reg = <0x302e0000 0x10000>; 449*4882a593Smuzhiyun interrupts = <GIC_SPI 54 IRQ_TYPE_LEVEL_HIGH>; 450*4882a593Smuzhiyun clocks = <&clks IMX7D_GPT2_ROOT_CLK>, 451*4882a593Smuzhiyun <&clks IMX7D_GPT2_ROOT_CLK>; 452*4882a593Smuzhiyun clock-names = "ipg", "per"; 453*4882a593Smuzhiyun status = "disabled"; 454*4882a593Smuzhiyun }; 455*4882a593Smuzhiyun 456*4882a593Smuzhiyun gpt3: timer@302f0000 { 457*4882a593Smuzhiyun compatible = "fsl,imx7d-gpt", "fsl,imx6sx-gpt"; 458*4882a593Smuzhiyun reg = <0x302f0000 0x10000>; 459*4882a593Smuzhiyun interrupts = <GIC_SPI 53 IRQ_TYPE_LEVEL_HIGH>; 460*4882a593Smuzhiyun clocks = <&clks IMX7D_GPT3_ROOT_CLK>, 461*4882a593Smuzhiyun <&clks IMX7D_GPT3_ROOT_CLK>; 462*4882a593Smuzhiyun clock-names = "ipg", "per"; 463*4882a593Smuzhiyun status = "disabled"; 464*4882a593Smuzhiyun }; 465*4882a593Smuzhiyun 466*4882a593Smuzhiyun gpt4: timer@30300000 { 467*4882a593Smuzhiyun compatible = "fsl,imx7d-gpt", "fsl,imx6sx-gpt"; 468*4882a593Smuzhiyun reg = <0x30300000 0x10000>; 469*4882a593Smuzhiyun interrupts = <GIC_SPI 52 IRQ_TYPE_LEVEL_HIGH>; 470*4882a593Smuzhiyun clocks = <&clks IMX7D_GPT4_ROOT_CLK>, 471*4882a593Smuzhiyun <&clks IMX7D_GPT4_ROOT_CLK>; 472*4882a593Smuzhiyun clock-names = "ipg", "per"; 473*4882a593Smuzhiyun status = "disabled"; 474*4882a593Smuzhiyun }; 475*4882a593Smuzhiyun 476*4882a593Smuzhiyun kpp: keypad@30320000 { 477*4882a593Smuzhiyun compatible = "fsl,imx7d-kpp", "fsl,imx21-kpp"; 478*4882a593Smuzhiyun reg = <0x30320000 0x10000>; 479*4882a593Smuzhiyun interrupts = <GIC_SPI 80 IRQ_TYPE_LEVEL_HIGH>; 480*4882a593Smuzhiyun clocks = <&clks IMX7D_KPP_ROOT_CLK>; 481*4882a593Smuzhiyun status = "disabled"; 482*4882a593Smuzhiyun }; 483*4882a593Smuzhiyun 484*4882a593Smuzhiyun iomuxc: pinctrl@30330000 { 485*4882a593Smuzhiyun compatible = "fsl,imx7d-iomuxc"; 486*4882a593Smuzhiyun reg = <0x30330000 0x10000>; 487*4882a593Smuzhiyun }; 488*4882a593Smuzhiyun 489*4882a593Smuzhiyun gpr: iomuxc-gpr@30340000 { 490*4882a593Smuzhiyun compatible = "fsl,imx7d-iomuxc-gpr", 491*4882a593Smuzhiyun "fsl,imx6q-iomuxc-gpr", "syscon", 492*4882a593Smuzhiyun "simple-mfd"; 493*4882a593Smuzhiyun reg = <0x30340000 0x10000>; 494*4882a593Smuzhiyun 495*4882a593Smuzhiyun mux: mux-controller { 496*4882a593Smuzhiyun compatible = "mmio-mux"; 497*4882a593Smuzhiyun #mux-control-cells = <0>; 498*4882a593Smuzhiyun mux-reg-masks = <0x14 0x00000010>; 499*4882a593Smuzhiyun }; 500*4882a593Smuzhiyun 501*4882a593Smuzhiyun video_mux: csi-mux { 502*4882a593Smuzhiyun compatible = "video-mux"; 503*4882a593Smuzhiyun mux-controls = <&mux 0>; 504*4882a593Smuzhiyun #address-cells = <1>; 505*4882a593Smuzhiyun #size-cells = <0>; 506*4882a593Smuzhiyun status = "disabled"; 507*4882a593Smuzhiyun 508*4882a593Smuzhiyun port@0 { 509*4882a593Smuzhiyun reg = <0>; 510*4882a593Smuzhiyun }; 511*4882a593Smuzhiyun 512*4882a593Smuzhiyun port@1 { 513*4882a593Smuzhiyun reg = <1>; 514*4882a593Smuzhiyun 515*4882a593Smuzhiyun csi_mux_from_mipi_vc0: endpoint { 516*4882a593Smuzhiyun remote-endpoint = <&mipi_vc0_to_csi_mux>; 517*4882a593Smuzhiyun }; 518*4882a593Smuzhiyun }; 519*4882a593Smuzhiyun 520*4882a593Smuzhiyun port@2 { 521*4882a593Smuzhiyun reg = <2>; 522*4882a593Smuzhiyun 523*4882a593Smuzhiyun csi_mux_to_csi: endpoint { 524*4882a593Smuzhiyun remote-endpoint = <&csi_from_csi_mux>; 525*4882a593Smuzhiyun }; 526*4882a593Smuzhiyun }; 527*4882a593Smuzhiyun }; 528*4882a593Smuzhiyun }; 529*4882a593Smuzhiyun 530*4882a593Smuzhiyun ocotp: efuse@30350000 { 531*4882a593Smuzhiyun #address-cells = <1>; 532*4882a593Smuzhiyun #size-cells = <1>; 533*4882a593Smuzhiyun compatible = "fsl,imx7d-ocotp", "syscon"; 534*4882a593Smuzhiyun reg = <0x30350000 0x10000>; 535*4882a593Smuzhiyun clocks = <&clks IMX7D_OCOTP_CLK>; 536*4882a593Smuzhiyun 537*4882a593Smuzhiyun tempmon_calib: calib@3c { 538*4882a593Smuzhiyun reg = <0x3c 0x4>; 539*4882a593Smuzhiyun }; 540*4882a593Smuzhiyun 541*4882a593Smuzhiyun fuse_grade: fuse-grade@10 { 542*4882a593Smuzhiyun reg = <0x10 0x4>; 543*4882a593Smuzhiyun }; 544*4882a593Smuzhiyun }; 545*4882a593Smuzhiyun 546*4882a593Smuzhiyun anatop: anatop@30360000 { 547*4882a593Smuzhiyun compatible = "fsl,imx7d-anatop", "fsl,imx6q-anatop", 548*4882a593Smuzhiyun "syscon", "simple-mfd"; 549*4882a593Smuzhiyun reg = <0x30360000 0x10000>; 550*4882a593Smuzhiyun interrupts = <GIC_SPI 49 IRQ_TYPE_LEVEL_HIGH>, 551*4882a593Smuzhiyun <GIC_SPI 51 IRQ_TYPE_LEVEL_HIGH>; 552*4882a593Smuzhiyun 553*4882a593Smuzhiyun reg_1p0d: regulator-vdd1p0d { 554*4882a593Smuzhiyun compatible = "fsl,anatop-regulator"; 555*4882a593Smuzhiyun regulator-name = "vdd1p0d"; 556*4882a593Smuzhiyun regulator-min-microvolt = <800000>; 557*4882a593Smuzhiyun regulator-max-microvolt = <1200000>; 558*4882a593Smuzhiyun anatop-reg-offset = <0x210>; 559*4882a593Smuzhiyun anatop-vol-bit-shift = <8>; 560*4882a593Smuzhiyun anatop-vol-bit-width = <5>; 561*4882a593Smuzhiyun anatop-min-bit-val = <8>; 562*4882a593Smuzhiyun anatop-min-voltage = <800000>; 563*4882a593Smuzhiyun anatop-max-voltage = <1200000>; 564*4882a593Smuzhiyun anatop-enable-bit = <0>; 565*4882a593Smuzhiyun }; 566*4882a593Smuzhiyun 567*4882a593Smuzhiyun reg_1p2: regulator-vdd1p2 { 568*4882a593Smuzhiyun compatible = "fsl,anatop-regulator"; 569*4882a593Smuzhiyun regulator-name = "vdd1p2"; 570*4882a593Smuzhiyun regulator-min-microvolt = <1100000>; 571*4882a593Smuzhiyun regulator-max-microvolt = <1300000>; 572*4882a593Smuzhiyun anatop-reg-offset = <0x220>; 573*4882a593Smuzhiyun anatop-vol-bit-shift = <8>; 574*4882a593Smuzhiyun anatop-vol-bit-width = <5>; 575*4882a593Smuzhiyun anatop-min-bit-val = <0x14>; 576*4882a593Smuzhiyun anatop-min-voltage = <1100000>; 577*4882a593Smuzhiyun anatop-max-voltage = <1300000>; 578*4882a593Smuzhiyun anatop-enable-bit = <0>; 579*4882a593Smuzhiyun }; 580*4882a593Smuzhiyun 581*4882a593Smuzhiyun tempmon: tempmon { 582*4882a593Smuzhiyun compatible = "fsl,imx7d-tempmon"; 583*4882a593Smuzhiyun interrupt-parent = <&gpc>; 584*4882a593Smuzhiyun interrupts = <GIC_SPI 49 IRQ_TYPE_LEVEL_HIGH>; 585*4882a593Smuzhiyun fsl,tempmon = <&anatop>; 586*4882a593Smuzhiyun nvmem-cells = <&tempmon_calib>, <&fuse_grade>; 587*4882a593Smuzhiyun nvmem-cell-names = "calib", "temp_grade"; 588*4882a593Smuzhiyun clocks = <&clks IMX7D_PLL_SYS_MAIN_CLK>; 589*4882a593Smuzhiyun }; 590*4882a593Smuzhiyun }; 591*4882a593Smuzhiyun 592*4882a593Smuzhiyun snvs: snvs@30370000 { 593*4882a593Smuzhiyun compatible = "fsl,sec-v4.0-mon", "syscon", "simple-mfd"; 594*4882a593Smuzhiyun reg = <0x30370000 0x10000>; 595*4882a593Smuzhiyun 596*4882a593Smuzhiyun snvs_rtc: snvs-rtc-lp { 597*4882a593Smuzhiyun compatible = "fsl,sec-v4.0-mon-rtc-lp"; 598*4882a593Smuzhiyun regmap = <&snvs>; 599*4882a593Smuzhiyun offset = <0x34>; 600*4882a593Smuzhiyun interrupts = <GIC_SPI 19 IRQ_TYPE_LEVEL_HIGH>, 601*4882a593Smuzhiyun <GIC_SPI 20 IRQ_TYPE_LEVEL_HIGH>; 602*4882a593Smuzhiyun clocks = <&clks IMX7D_SNVS_CLK>; 603*4882a593Smuzhiyun clock-names = "snvs-rtc"; 604*4882a593Smuzhiyun }; 605*4882a593Smuzhiyun 606*4882a593Smuzhiyun snvs_pwrkey: snvs-powerkey { 607*4882a593Smuzhiyun compatible = "fsl,sec-v4.0-pwrkey"; 608*4882a593Smuzhiyun regmap = <&snvs>; 609*4882a593Smuzhiyun interrupts = <GIC_SPI 4 IRQ_TYPE_LEVEL_HIGH>; 610*4882a593Smuzhiyun clocks = <&clks IMX7D_SNVS_CLK>; 611*4882a593Smuzhiyun clock-names = "snvs-pwrkey"; 612*4882a593Smuzhiyun linux,keycode = <KEY_POWER>; 613*4882a593Smuzhiyun wakeup-source; 614*4882a593Smuzhiyun status = "disabled"; 615*4882a593Smuzhiyun }; 616*4882a593Smuzhiyun }; 617*4882a593Smuzhiyun 618*4882a593Smuzhiyun clks: clock-controller@30380000 { 619*4882a593Smuzhiyun compatible = "fsl,imx7d-ccm"; 620*4882a593Smuzhiyun reg = <0x30380000 0x10000>; 621*4882a593Smuzhiyun interrupts = <GIC_SPI 85 IRQ_TYPE_LEVEL_HIGH>, 622*4882a593Smuzhiyun <GIC_SPI 86 IRQ_TYPE_LEVEL_HIGH>; 623*4882a593Smuzhiyun #clock-cells = <1>; 624*4882a593Smuzhiyun clocks = <&ckil>, <&osc>; 625*4882a593Smuzhiyun clock-names = "ckil", "osc"; 626*4882a593Smuzhiyun }; 627*4882a593Smuzhiyun 628*4882a593Smuzhiyun src: reset-controller@30390000 { 629*4882a593Smuzhiyun compatible = "fsl,imx7d-src", "syscon"; 630*4882a593Smuzhiyun reg = <0x30390000 0x10000>; 631*4882a593Smuzhiyun interrupts = <GIC_SPI 89 IRQ_TYPE_LEVEL_HIGH>; 632*4882a593Smuzhiyun #reset-cells = <1>; 633*4882a593Smuzhiyun }; 634*4882a593Smuzhiyun 635*4882a593Smuzhiyun gpc: gpc@303a0000 { 636*4882a593Smuzhiyun compatible = "fsl,imx7d-gpc"; 637*4882a593Smuzhiyun reg = <0x303a0000 0x10000>; 638*4882a593Smuzhiyun interrupt-controller; 639*4882a593Smuzhiyun interrupts = <GIC_SPI 87 IRQ_TYPE_LEVEL_HIGH>; 640*4882a593Smuzhiyun #interrupt-cells = <3>; 641*4882a593Smuzhiyun interrupt-parent = <&intc>; 642*4882a593Smuzhiyun #power-domain-cells = <1>; 643*4882a593Smuzhiyun 644*4882a593Smuzhiyun pgc { 645*4882a593Smuzhiyun #address-cells = <1>; 646*4882a593Smuzhiyun #size-cells = <0>; 647*4882a593Smuzhiyun 648*4882a593Smuzhiyun pgc_mipi_phy: power-domain@0 { 649*4882a593Smuzhiyun #power-domain-cells = <0>; 650*4882a593Smuzhiyun reg = <0>; 651*4882a593Smuzhiyun power-supply = <®_1p0d>; 652*4882a593Smuzhiyun }; 653*4882a593Smuzhiyun 654*4882a593Smuzhiyun pgc_pcie_phy: power-domain@1 { 655*4882a593Smuzhiyun #power-domain-cells = <0>; 656*4882a593Smuzhiyun reg = <1>; 657*4882a593Smuzhiyun power-supply = <®_1p0d>; 658*4882a593Smuzhiyun }; 659*4882a593Smuzhiyun 660*4882a593Smuzhiyun pgc_hsic_phy: power-domain@2 { 661*4882a593Smuzhiyun #power-domain-cells = <0>; 662*4882a593Smuzhiyun reg = <2>; 663*4882a593Smuzhiyun power-supply = <®_1p2>; 664*4882a593Smuzhiyun }; 665*4882a593Smuzhiyun }; 666*4882a593Smuzhiyun }; 667*4882a593Smuzhiyun }; 668*4882a593Smuzhiyun 669*4882a593Smuzhiyun aips2: bus@30400000 { 670*4882a593Smuzhiyun compatible = "fsl,aips-bus", "simple-bus"; 671*4882a593Smuzhiyun #address-cells = <1>; 672*4882a593Smuzhiyun #size-cells = <1>; 673*4882a593Smuzhiyun reg = <0x30400000 0x400000>; 674*4882a593Smuzhiyun ranges; 675*4882a593Smuzhiyun 676*4882a593Smuzhiyun adc1: adc@30610000 { 677*4882a593Smuzhiyun compatible = "fsl,imx7d-adc"; 678*4882a593Smuzhiyun reg = <0x30610000 0x10000>; 679*4882a593Smuzhiyun interrupts = <GIC_SPI 98 IRQ_TYPE_LEVEL_HIGH>; 680*4882a593Smuzhiyun clocks = <&clks IMX7D_ADC_ROOT_CLK>; 681*4882a593Smuzhiyun clock-names = "adc"; 682*4882a593Smuzhiyun #io-channel-cells = <1>; 683*4882a593Smuzhiyun status = "disabled"; 684*4882a593Smuzhiyun }; 685*4882a593Smuzhiyun 686*4882a593Smuzhiyun adc2: adc@30620000 { 687*4882a593Smuzhiyun compatible = "fsl,imx7d-adc"; 688*4882a593Smuzhiyun reg = <0x30620000 0x10000>; 689*4882a593Smuzhiyun interrupts = <GIC_SPI 99 IRQ_TYPE_LEVEL_HIGH>; 690*4882a593Smuzhiyun clocks = <&clks IMX7D_ADC_ROOT_CLK>; 691*4882a593Smuzhiyun clock-names = "adc"; 692*4882a593Smuzhiyun #io-channel-cells = <1>; 693*4882a593Smuzhiyun status = "disabled"; 694*4882a593Smuzhiyun }; 695*4882a593Smuzhiyun 696*4882a593Smuzhiyun ecspi4: spi@30630000 { 697*4882a593Smuzhiyun #address-cells = <1>; 698*4882a593Smuzhiyun #size-cells = <0>; 699*4882a593Smuzhiyun compatible = "fsl,imx7d-ecspi", "fsl,imx51-ecspi"; 700*4882a593Smuzhiyun reg = <0x30630000 0x10000>; 701*4882a593Smuzhiyun interrupts = <GIC_SPI 34 IRQ_TYPE_LEVEL_HIGH>; 702*4882a593Smuzhiyun clocks = <&clks IMX7D_ECSPI4_ROOT_CLK>, 703*4882a593Smuzhiyun <&clks IMX7D_ECSPI4_ROOT_CLK>; 704*4882a593Smuzhiyun clock-names = "ipg", "per"; 705*4882a593Smuzhiyun status = "disabled"; 706*4882a593Smuzhiyun }; 707*4882a593Smuzhiyun 708*4882a593Smuzhiyun pwm1: pwm@30660000 { 709*4882a593Smuzhiyun compatible = "fsl,imx7d-pwm", "fsl,imx27-pwm"; 710*4882a593Smuzhiyun reg = <0x30660000 0x10000>; 711*4882a593Smuzhiyun interrupts = <GIC_SPI 81 IRQ_TYPE_LEVEL_HIGH>; 712*4882a593Smuzhiyun clocks = <&clks IMX7D_PWM1_ROOT_CLK>, 713*4882a593Smuzhiyun <&clks IMX7D_PWM1_ROOT_CLK>; 714*4882a593Smuzhiyun clock-names = "ipg", "per"; 715*4882a593Smuzhiyun #pwm-cells = <3>; 716*4882a593Smuzhiyun status = "disabled"; 717*4882a593Smuzhiyun }; 718*4882a593Smuzhiyun 719*4882a593Smuzhiyun pwm2: pwm@30670000 { 720*4882a593Smuzhiyun compatible = "fsl,imx7d-pwm", "fsl,imx27-pwm"; 721*4882a593Smuzhiyun reg = <0x30670000 0x10000>; 722*4882a593Smuzhiyun interrupts = <GIC_SPI 82 IRQ_TYPE_LEVEL_HIGH>; 723*4882a593Smuzhiyun clocks = <&clks IMX7D_PWM2_ROOT_CLK>, 724*4882a593Smuzhiyun <&clks IMX7D_PWM2_ROOT_CLK>; 725*4882a593Smuzhiyun clock-names = "ipg", "per"; 726*4882a593Smuzhiyun #pwm-cells = <3>; 727*4882a593Smuzhiyun status = "disabled"; 728*4882a593Smuzhiyun }; 729*4882a593Smuzhiyun 730*4882a593Smuzhiyun pwm3: pwm@30680000 { 731*4882a593Smuzhiyun compatible = "fsl,imx7d-pwm", "fsl,imx27-pwm"; 732*4882a593Smuzhiyun reg = <0x30680000 0x10000>; 733*4882a593Smuzhiyun interrupts = <GIC_SPI 83 IRQ_TYPE_LEVEL_HIGH>; 734*4882a593Smuzhiyun clocks = <&clks IMX7D_PWM3_ROOT_CLK>, 735*4882a593Smuzhiyun <&clks IMX7D_PWM3_ROOT_CLK>; 736*4882a593Smuzhiyun clock-names = "ipg", "per"; 737*4882a593Smuzhiyun #pwm-cells = <3>; 738*4882a593Smuzhiyun status = "disabled"; 739*4882a593Smuzhiyun }; 740*4882a593Smuzhiyun 741*4882a593Smuzhiyun pwm4: pwm@30690000 { 742*4882a593Smuzhiyun compatible = "fsl,imx7d-pwm", "fsl,imx27-pwm"; 743*4882a593Smuzhiyun reg = <0x30690000 0x10000>; 744*4882a593Smuzhiyun interrupts = <GIC_SPI 84 IRQ_TYPE_LEVEL_HIGH>; 745*4882a593Smuzhiyun clocks = <&clks IMX7D_PWM4_ROOT_CLK>, 746*4882a593Smuzhiyun <&clks IMX7D_PWM4_ROOT_CLK>; 747*4882a593Smuzhiyun clock-names = "ipg", "per"; 748*4882a593Smuzhiyun #pwm-cells = <3>; 749*4882a593Smuzhiyun status = "disabled"; 750*4882a593Smuzhiyun }; 751*4882a593Smuzhiyun 752*4882a593Smuzhiyun csi: csi@30710000 { 753*4882a593Smuzhiyun compatible = "fsl,imx7-csi"; 754*4882a593Smuzhiyun reg = <0x30710000 0x10000>; 755*4882a593Smuzhiyun interrupts = <GIC_SPI 7 IRQ_TYPE_LEVEL_HIGH>; 756*4882a593Smuzhiyun clocks = <&clks IMX7D_CLK_DUMMY>, 757*4882a593Smuzhiyun <&clks IMX7D_CSI_MCLK_ROOT_CLK>, 758*4882a593Smuzhiyun <&clks IMX7D_CLK_DUMMY>; 759*4882a593Smuzhiyun clock-names = "axi", "mclk", "dcic"; 760*4882a593Smuzhiyun status = "disabled"; 761*4882a593Smuzhiyun 762*4882a593Smuzhiyun port { 763*4882a593Smuzhiyun csi_from_csi_mux: endpoint { 764*4882a593Smuzhiyun remote-endpoint = <&csi_mux_to_csi>; 765*4882a593Smuzhiyun }; 766*4882a593Smuzhiyun }; 767*4882a593Smuzhiyun }; 768*4882a593Smuzhiyun 769*4882a593Smuzhiyun lcdif: lcdif@30730000 { 770*4882a593Smuzhiyun compatible = "fsl,imx7d-lcdif", "fsl,imx28-lcdif"; 771*4882a593Smuzhiyun reg = <0x30730000 0x10000>; 772*4882a593Smuzhiyun interrupts = <GIC_SPI 5 IRQ_TYPE_LEVEL_HIGH>; 773*4882a593Smuzhiyun clocks = <&clks IMX7D_LCDIF_PIXEL_ROOT_CLK>, 774*4882a593Smuzhiyun <&clks IMX7D_LCDIF_PIXEL_ROOT_CLK>; 775*4882a593Smuzhiyun clock-names = "pix", "axi"; 776*4882a593Smuzhiyun status = "disabled"; 777*4882a593Smuzhiyun }; 778*4882a593Smuzhiyun 779*4882a593Smuzhiyun mipi_csi: mipi-csi@30750000 { 780*4882a593Smuzhiyun compatible = "fsl,imx7-mipi-csi2"; 781*4882a593Smuzhiyun reg = <0x30750000 0x10000>; 782*4882a593Smuzhiyun #address-cells = <1>; 783*4882a593Smuzhiyun #size-cells = <0>; 784*4882a593Smuzhiyun interrupts = <GIC_SPI 25 IRQ_TYPE_LEVEL_HIGH>; 785*4882a593Smuzhiyun clocks = <&clks IMX7D_IPG_ROOT_CLK>, 786*4882a593Smuzhiyun <&clks IMX7D_MIPI_CSI_ROOT_CLK>, 787*4882a593Smuzhiyun <&clks IMX7D_MIPI_DPHY_ROOT_CLK>; 788*4882a593Smuzhiyun clock-names = "pclk", "wrap", "phy"; 789*4882a593Smuzhiyun power-domains = <&pgc_mipi_phy>; 790*4882a593Smuzhiyun phy-supply = <®_1p0d>; 791*4882a593Smuzhiyun resets = <&src IMX7_RESET_MIPI_PHY_MRST>; 792*4882a593Smuzhiyun reset-names = "mrst"; 793*4882a593Smuzhiyun status = "disabled"; 794*4882a593Smuzhiyun 795*4882a593Smuzhiyun port@0 { 796*4882a593Smuzhiyun reg = <0>; 797*4882a593Smuzhiyun }; 798*4882a593Smuzhiyun 799*4882a593Smuzhiyun port@1 { 800*4882a593Smuzhiyun reg = <1>; 801*4882a593Smuzhiyun 802*4882a593Smuzhiyun mipi_vc0_to_csi_mux: endpoint { 803*4882a593Smuzhiyun remote-endpoint = <&csi_mux_from_mipi_vc0>; 804*4882a593Smuzhiyun }; 805*4882a593Smuzhiyun }; 806*4882a593Smuzhiyun }; 807*4882a593Smuzhiyun }; 808*4882a593Smuzhiyun 809*4882a593Smuzhiyun aips3: bus@30800000 { 810*4882a593Smuzhiyun compatible = "fsl,aips-bus", "simple-bus"; 811*4882a593Smuzhiyun #address-cells = <1>; 812*4882a593Smuzhiyun #size-cells = <1>; 813*4882a593Smuzhiyun reg = <0x30800000 0x400000>; 814*4882a593Smuzhiyun ranges; 815*4882a593Smuzhiyun 816*4882a593Smuzhiyun spba-bus@30800000 { 817*4882a593Smuzhiyun compatible = "fsl,spba-bus", "simple-bus"; 818*4882a593Smuzhiyun #address-cells = <1>; 819*4882a593Smuzhiyun #size-cells = <1>; 820*4882a593Smuzhiyun reg = <0x30800000 0x100000>; 821*4882a593Smuzhiyun ranges; 822*4882a593Smuzhiyun 823*4882a593Smuzhiyun ecspi1: spi@30820000 { 824*4882a593Smuzhiyun #address-cells = <1>; 825*4882a593Smuzhiyun #size-cells = <0>; 826*4882a593Smuzhiyun compatible = "fsl,imx7d-ecspi", "fsl,imx51-ecspi"; 827*4882a593Smuzhiyun reg = <0x30820000 0x10000>; 828*4882a593Smuzhiyun interrupts = <GIC_SPI 31 IRQ_TYPE_LEVEL_HIGH>; 829*4882a593Smuzhiyun clocks = <&clks IMX7D_ECSPI1_ROOT_CLK>, 830*4882a593Smuzhiyun <&clks IMX7D_ECSPI1_ROOT_CLK>; 831*4882a593Smuzhiyun clock-names = "ipg", "per"; 832*4882a593Smuzhiyun status = "disabled"; 833*4882a593Smuzhiyun }; 834*4882a593Smuzhiyun 835*4882a593Smuzhiyun ecspi2: spi@30830000 { 836*4882a593Smuzhiyun #address-cells = <1>; 837*4882a593Smuzhiyun #size-cells = <0>; 838*4882a593Smuzhiyun compatible = "fsl,imx7d-ecspi", "fsl,imx51-ecspi"; 839*4882a593Smuzhiyun reg = <0x30830000 0x10000>; 840*4882a593Smuzhiyun interrupts = <GIC_SPI 32 IRQ_TYPE_LEVEL_HIGH>; 841*4882a593Smuzhiyun clocks = <&clks IMX7D_ECSPI2_ROOT_CLK>, 842*4882a593Smuzhiyun <&clks IMX7D_ECSPI2_ROOT_CLK>; 843*4882a593Smuzhiyun clock-names = "ipg", "per"; 844*4882a593Smuzhiyun status = "disabled"; 845*4882a593Smuzhiyun }; 846*4882a593Smuzhiyun 847*4882a593Smuzhiyun ecspi3: spi@30840000 { 848*4882a593Smuzhiyun #address-cells = <1>; 849*4882a593Smuzhiyun #size-cells = <0>; 850*4882a593Smuzhiyun compatible = "fsl,imx7d-ecspi", "fsl,imx51-ecspi"; 851*4882a593Smuzhiyun reg = <0x30840000 0x10000>; 852*4882a593Smuzhiyun interrupts = <GIC_SPI 33 IRQ_TYPE_LEVEL_HIGH>; 853*4882a593Smuzhiyun clocks = <&clks IMX7D_ECSPI3_ROOT_CLK>, 854*4882a593Smuzhiyun <&clks IMX7D_ECSPI3_ROOT_CLK>; 855*4882a593Smuzhiyun clock-names = "ipg", "per"; 856*4882a593Smuzhiyun status = "disabled"; 857*4882a593Smuzhiyun }; 858*4882a593Smuzhiyun 859*4882a593Smuzhiyun uart1: serial@30860000 { 860*4882a593Smuzhiyun compatible = "fsl,imx7d-uart", 861*4882a593Smuzhiyun "fsl,imx6q-uart"; 862*4882a593Smuzhiyun reg = <0x30860000 0x10000>; 863*4882a593Smuzhiyun interrupts = <GIC_SPI 26 IRQ_TYPE_LEVEL_HIGH>; 864*4882a593Smuzhiyun clocks = <&clks IMX7D_UART1_ROOT_CLK>, 865*4882a593Smuzhiyun <&clks IMX7D_UART1_ROOT_CLK>; 866*4882a593Smuzhiyun clock-names = "ipg", "per"; 867*4882a593Smuzhiyun status = "disabled"; 868*4882a593Smuzhiyun }; 869*4882a593Smuzhiyun 870*4882a593Smuzhiyun uart2: serial@30890000 { 871*4882a593Smuzhiyun compatible = "fsl,imx7d-uart", 872*4882a593Smuzhiyun "fsl,imx6q-uart"; 873*4882a593Smuzhiyun reg = <0x30890000 0x10000>; 874*4882a593Smuzhiyun interrupts = <GIC_SPI 27 IRQ_TYPE_LEVEL_HIGH>; 875*4882a593Smuzhiyun clocks = <&clks IMX7D_UART2_ROOT_CLK>, 876*4882a593Smuzhiyun <&clks IMX7D_UART2_ROOT_CLK>; 877*4882a593Smuzhiyun clock-names = "ipg", "per"; 878*4882a593Smuzhiyun status = "disabled"; 879*4882a593Smuzhiyun }; 880*4882a593Smuzhiyun 881*4882a593Smuzhiyun uart3: serial@30880000 { 882*4882a593Smuzhiyun compatible = "fsl,imx7d-uart", 883*4882a593Smuzhiyun "fsl,imx6q-uart"; 884*4882a593Smuzhiyun reg = <0x30880000 0x10000>; 885*4882a593Smuzhiyun interrupts = <GIC_SPI 28 IRQ_TYPE_LEVEL_HIGH>; 886*4882a593Smuzhiyun clocks = <&clks IMX7D_UART3_ROOT_CLK>, 887*4882a593Smuzhiyun <&clks IMX7D_UART3_ROOT_CLK>; 888*4882a593Smuzhiyun clock-names = "ipg", "per"; 889*4882a593Smuzhiyun status = "disabled"; 890*4882a593Smuzhiyun }; 891*4882a593Smuzhiyun 892*4882a593Smuzhiyun sai1: sai@308a0000 { 893*4882a593Smuzhiyun #sound-dai-cells = <0>; 894*4882a593Smuzhiyun compatible = "fsl,imx7d-sai", "fsl,imx6sx-sai"; 895*4882a593Smuzhiyun reg = <0x308a0000 0x10000>; 896*4882a593Smuzhiyun interrupts = <GIC_SPI 95 IRQ_TYPE_LEVEL_HIGH>; 897*4882a593Smuzhiyun clocks = <&clks IMX7D_SAI1_IPG_CLK>, 898*4882a593Smuzhiyun <&clks IMX7D_SAI1_ROOT_CLK>, 899*4882a593Smuzhiyun <&clks IMX7D_CLK_DUMMY>, 900*4882a593Smuzhiyun <&clks IMX7D_CLK_DUMMY>; 901*4882a593Smuzhiyun clock-names = "bus", "mclk1", "mclk2", "mclk3"; 902*4882a593Smuzhiyun dma-names = "rx", "tx"; 903*4882a593Smuzhiyun dmas = <&sdma 8 24 0>, <&sdma 9 24 0>; 904*4882a593Smuzhiyun status = "disabled"; 905*4882a593Smuzhiyun }; 906*4882a593Smuzhiyun 907*4882a593Smuzhiyun sai2: sai@308b0000 { 908*4882a593Smuzhiyun #sound-dai-cells = <0>; 909*4882a593Smuzhiyun compatible = "fsl,imx7d-sai", "fsl,imx6sx-sai"; 910*4882a593Smuzhiyun reg = <0x308b0000 0x10000>; 911*4882a593Smuzhiyun interrupts = <GIC_SPI 96 IRQ_TYPE_LEVEL_HIGH>; 912*4882a593Smuzhiyun clocks = <&clks IMX7D_SAI2_IPG_CLK>, 913*4882a593Smuzhiyun <&clks IMX7D_SAI2_ROOT_CLK>, 914*4882a593Smuzhiyun <&clks IMX7D_CLK_DUMMY>, 915*4882a593Smuzhiyun <&clks IMX7D_CLK_DUMMY>; 916*4882a593Smuzhiyun clock-names = "bus", "mclk1", "mclk2", "mclk3"; 917*4882a593Smuzhiyun dma-names = "rx", "tx"; 918*4882a593Smuzhiyun dmas = <&sdma 10 24 0>, <&sdma 11 24 0>; 919*4882a593Smuzhiyun status = "disabled"; 920*4882a593Smuzhiyun }; 921*4882a593Smuzhiyun 922*4882a593Smuzhiyun sai3: sai@308c0000 { 923*4882a593Smuzhiyun #sound-dai-cells = <0>; 924*4882a593Smuzhiyun compatible = "fsl,imx7d-sai", "fsl,imx6sx-sai"; 925*4882a593Smuzhiyun reg = <0x308c0000 0x10000>; 926*4882a593Smuzhiyun interrupts = <GIC_SPI 50 IRQ_TYPE_LEVEL_HIGH>; 927*4882a593Smuzhiyun clocks = <&clks IMX7D_SAI3_IPG_CLK>, 928*4882a593Smuzhiyun <&clks IMX7D_SAI3_ROOT_CLK>, 929*4882a593Smuzhiyun <&clks IMX7D_CLK_DUMMY>, 930*4882a593Smuzhiyun <&clks IMX7D_CLK_DUMMY>; 931*4882a593Smuzhiyun clock-names = "bus", "mclk1", "mclk2", "mclk3"; 932*4882a593Smuzhiyun dma-names = "rx", "tx"; 933*4882a593Smuzhiyun dmas = <&sdma 12 24 0>, <&sdma 13 24 0>; 934*4882a593Smuzhiyun status = "disabled"; 935*4882a593Smuzhiyun }; 936*4882a593Smuzhiyun }; 937*4882a593Smuzhiyun 938*4882a593Smuzhiyun crypto: crypto@30900000 { 939*4882a593Smuzhiyun compatible = "fsl,sec-v4.0"; 940*4882a593Smuzhiyun #address-cells = <1>; 941*4882a593Smuzhiyun #size-cells = <1>; 942*4882a593Smuzhiyun reg = <0x30900000 0x40000>; 943*4882a593Smuzhiyun ranges = <0 0x30900000 0x40000>; 944*4882a593Smuzhiyun interrupts = <GIC_SPI 91 IRQ_TYPE_LEVEL_HIGH>; 945*4882a593Smuzhiyun clocks = <&clks IMX7D_CAAM_CLK>, 946*4882a593Smuzhiyun <&clks IMX7D_AHB_CHANNEL_ROOT_CLK>; 947*4882a593Smuzhiyun clock-names = "ipg", "aclk"; 948*4882a593Smuzhiyun 949*4882a593Smuzhiyun sec_jr0: jr@1000 { 950*4882a593Smuzhiyun compatible = "fsl,sec-v4.0-job-ring"; 951*4882a593Smuzhiyun reg = <0x1000 0x1000>; 952*4882a593Smuzhiyun interrupts = <GIC_SPI 105 IRQ_TYPE_LEVEL_HIGH>; 953*4882a593Smuzhiyun }; 954*4882a593Smuzhiyun 955*4882a593Smuzhiyun sec_jr1: jr@2000 { 956*4882a593Smuzhiyun compatible = "fsl,sec-v4.0-job-ring"; 957*4882a593Smuzhiyun reg = <0x2000 0x1000>; 958*4882a593Smuzhiyun interrupts = <GIC_SPI 106 IRQ_TYPE_LEVEL_HIGH>; 959*4882a593Smuzhiyun }; 960*4882a593Smuzhiyun 961*4882a593Smuzhiyun sec_jr2: jr@3000 { 962*4882a593Smuzhiyun compatible = "fsl,sec-v4.0-job-ring"; 963*4882a593Smuzhiyun reg = <0x3000 0x1000>; 964*4882a593Smuzhiyun interrupts = <GIC_SPI 114 IRQ_TYPE_LEVEL_HIGH>; 965*4882a593Smuzhiyun }; 966*4882a593Smuzhiyun }; 967*4882a593Smuzhiyun 968*4882a593Smuzhiyun flexcan1: can@30a00000 { 969*4882a593Smuzhiyun compatible = "fsl,imx7d-flexcan", "fsl,imx6q-flexcan"; 970*4882a593Smuzhiyun reg = <0x30a00000 0x10000>; 971*4882a593Smuzhiyun interrupts = <GIC_SPI 110 IRQ_TYPE_LEVEL_HIGH>; 972*4882a593Smuzhiyun clocks = <&clks IMX7D_CLK_DUMMY>, 973*4882a593Smuzhiyun <&clks IMX7D_CAN1_ROOT_CLK>; 974*4882a593Smuzhiyun clock-names = "ipg", "per"; 975*4882a593Smuzhiyun fsl,stop-mode = <&gpr 0x10 1 0x10 17>; 976*4882a593Smuzhiyun status = "disabled"; 977*4882a593Smuzhiyun }; 978*4882a593Smuzhiyun 979*4882a593Smuzhiyun flexcan2: can@30a10000 { 980*4882a593Smuzhiyun compatible = "fsl,imx7d-flexcan", "fsl,imx6q-flexcan"; 981*4882a593Smuzhiyun reg = <0x30a10000 0x10000>; 982*4882a593Smuzhiyun interrupts = <GIC_SPI 111 IRQ_TYPE_LEVEL_HIGH>; 983*4882a593Smuzhiyun clocks = <&clks IMX7D_CLK_DUMMY>, 984*4882a593Smuzhiyun <&clks IMX7D_CAN2_ROOT_CLK>; 985*4882a593Smuzhiyun clock-names = "ipg", "per"; 986*4882a593Smuzhiyun fsl,stop-mode = <&gpr 0x10 2 0x10 18>; 987*4882a593Smuzhiyun status = "disabled"; 988*4882a593Smuzhiyun }; 989*4882a593Smuzhiyun 990*4882a593Smuzhiyun i2c1: i2c@30a20000 { 991*4882a593Smuzhiyun #address-cells = <1>; 992*4882a593Smuzhiyun #size-cells = <0>; 993*4882a593Smuzhiyun compatible = "fsl,imx7d-i2c", "fsl,imx21-i2c"; 994*4882a593Smuzhiyun reg = <0x30a20000 0x10000>; 995*4882a593Smuzhiyun interrupts = <GIC_SPI 35 IRQ_TYPE_LEVEL_HIGH>; 996*4882a593Smuzhiyun clocks = <&clks IMX7D_I2C1_ROOT_CLK>; 997*4882a593Smuzhiyun status = "disabled"; 998*4882a593Smuzhiyun }; 999*4882a593Smuzhiyun 1000*4882a593Smuzhiyun i2c2: i2c@30a30000 { 1001*4882a593Smuzhiyun #address-cells = <1>; 1002*4882a593Smuzhiyun #size-cells = <0>; 1003*4882a593Smuzhiyun compatible = "fsl,imx7d-i2c", "fsl,imx21-i2c"; 1004*4882a593Smuzhiyun reg = <0x30a30000 0x10000>; 1005*4882a593Smuzhiyun interrupts = <GIC_SPI 36 IRQ_TYPE_LEVEL_HIGH>; 1006*4882a593Smuzhiyun clocks = <&clks IMX7D_I2C2_ROOT_CLK>; 1007*4882a593Smuzhiyun status = "disabled"; 1008*4882a593Smuzhiyun }; 1009*4882a593Smuzhiyun 1010*4882a593Smuzhiyun i2c3: i2c@30a40000 { 1011*4882a593Smuzhiyun #address-cells = <1>; 1012*4882a593Smuzhiyun #size-cells = <0>; 1013*4882a593Smuzhiyun compatible = "fsl,imx7d-i2c", "fsl,imx21-i2c"; 1014*4882a593Smuzhiyun reg = <0x30a40000 0x10000>; 1015*4882a593Smuzhiyun interrupts = <GIC_SPI 37 IRQ_TYPE_LEVEL_HIGH>; 1016*4882a593Smuzhiyun clocks = <&clks IMX7D_I2C3_ROOT_CLK>; 1017*4882a593Smuzhiyun status = "disabled"; 1018*4882a593Smuzhiyun }; 1019*4882a593Smuzhiyun 1020*4882a593Smuzhiyun i2c4: i2c@30a50000 { 1021*4882a593Smuzhiyun #address-cells = <1>; 1022*4882a593Smuzhiyun #size-cells = <0>; 1023*4882a593Smuzhiyun compatible = "fsl,imx7d-i2c", "fsl,imx21-i2c"; 1024*4882a593Smuzhiyun reg = <0x30a50000 0x10000>; 1025*4882a593Smuzhiyun interrupts = <GIC_SPI 38 IRQ_TYPE_LEVEL_HIGH>; 1026*4882a593Smuzhiyun clocks = <&clks IMX7D_I2C4_ROOT_CLK>; 1027*4882a593Smuzhiyun status = "disabled"; 1028*4882a593Smuzhiyun }; 1029*4882a593Smuzhiyun 1030*4882a593Smuzhiyun uart4: serial@30a60000 { 1031*4882a593Smuzhiyun compatible = "fsl,imx7d-uart", 1032*4882a593Smuzhiyun "fsl,imx6q-uart"; 1033*4882a593Smuzhiyun reg = <0x30a60000 0x10000>; 1034*4882a593Smuzhiyun interrupts = <GIC_SPI 29 IRQ_TYPE_LEVEL_HIGH>; 1035*4882a593Smuzhiyun clocks = <&clks IMX7D_UART4_ROOT_CLK>, 1036*4882a593Smuzhiyun <&clks IMX7D_UART4_ROOT_CLK>; 1037*4882a593Smuzhiyun clock-names = "ipg", "per"; 1038*4882a593Smuzhiyun status = "disabled"; 1039*4882a593Smuzhiyun }; 1040*4882a593Smuzhiyun 1041*4882a593Smuzhiyun uart5: serial@30a70000 { 1042*4882a593Smuzhiyun compatible = "fsl,imx7d-uart", 1043*4882a593Smuzhiyun "fsl,imx6q-uart"; 1044*4882a593Smuzhiyun reg = <0x30a70000 0x10000>; 1045*4882a593Smuzhiyun interrupts = <GIC_SPI 30 IRQ_TYPE_LEVEL_HIGH>; 1046*4882a593Smuzhiyun clocks = <&clks IMX7D_UART5_ROOT_CLK>, 1047*4882a593Smuzhiyun <&clks IMX7D_UART5_ROOT_CLK>; 1048*4882a593Smuzhiyun clock-names = "ipg", "per"; 1049*4882a593Smuzhiyun status = "disabled"; 1050*4882a593Smuzhiyun }; 1051*4882a593Smuzhiyun 1052*4882a593Smuzhiyun uart6: serial@30a80000 { 1053*4882a593Smuzhiyun compatible = "fsl,imx7d-uart", 1054*4882a593Smuzhiyun "fsl,imx6q-uart"; 1055*4882a593Smuzhiyun reg = <0x30a80000 0x10000>; 1056*4882a593Smuzhiyun interrupts = <GIC_SPI 16 IRQ_TYPE_LEVEL_HIGH>; 1057*4882a593Smuzhiyun clocks = <&clks IMX7D_UART6_ROOT_CLK>, 1058*4882a593Smuzhiyun <&clks IMX7D_UART6_ROOT_CLK>; 1059*4882a593Smuzhiyun clock-names = "ipg", "per"; 1060*4882a593Smuzhiyun status = "disabled"; 1061*4882a593Smuzhiyun }; 1062*4882a593Smuzhiyun 1063*4882a593Smuzhiyun uart7: serial@30a90000 { 1064*4882a593Smuzhiyun compatible = "fsl,imx7d-uart", 1065*4882a593Smuzhiyun "fsl,imx6q-uart"; 1066*4882a593Smuzhiyun reg = <0x30a90000 0x10000>; 1067*4882a593Smuzhiyun interrupts = <GIC_SPI 126 IRQ_TYPE_LEVEL_HIGH>; 1068*4882a593Smuzhiyun clocks = <&clks IMX7D_UART7_ROOT_CLK>, 1069*4882a593Smuzhiyun <&clks IMX7D_UART7_ROOT_CLK>; 1070*4882a593Smuzhiyun clock-names = "ipg", "per"; 1071*4882a593Smuzhiyun status = "disabled"; 1072*4882a593Smuzhiyun }; 1073*4882a593Smuzhiyun 1074*4882a593Smuzhiyun mu0a: mailbox@30aa0000 { 1075*4882a593Smuzhiyun compatible = "fsl,imx7s-mu", "fsl,imx6sx-mu"; 1076*4882a593Smuzhiyun reg = <0x30aa0000 0x10000>; 1077*4882a593Smuzhiyun interrupts = <GIC_SPI 88 IRQ_TYPE_LEVEL_HIGH>; 1078*4882a593Smuzhiyun clocks = <&clks IMX7D_MU_ROOT_CLK>; 1079*4882a593Smuzhiyun #mbox-cells = <2>; 1080*4882a593Smuzhiyun status = "disabled"; 1081*4882a593Smuzhiyun }; 1082*4882a593Smuzhiyun 1083*4882a593Smuzhiyun mu0b: mailbox@30ab0000 { 1084*4882a593Smuzhiyun compatible = "fsl,imx7s-mu", "fsl,imx6sx-mu"; 1085*4882a593Smuzhiyun reg = <0x30ab0000 0x10000>; 1086*4882a593Smuzhiyun interrupts = <GIC_SPI 97 IRQ_TYPE_LEVEL_HIGH>; 1087*4882a593Smuzhiyun clocks = <&clks IMX7D_MU_ROOT_CLK>; 1088*4882a593Smuzhiyun #mbox-cells = <2>; 1089*4882a593Smuzhiyun fsl,mu-side-b; 1090*4882a593Smuzhiyun status = "disabled"; 1091*4882a593Smuzhiyun }; 1092*4882a593Smuzhiyun 1093*4882a593Smuzhiyun usbotg1: usb@30b10000 { 1094*4882a593Smuzhiyun compatible = "fsl,imx7d-usb", "fsl,imx27-usb"; 1095*4882a593Smuzhiyun reg = <0x30b10000 0x200>; 1096*4882a593Smuzhiyun interrupts = <GIC_SPI 43 IRQ_TYPE_LEVEL_HIGH>; 1097*4882a593Smuzhiyun clocks = <&clks IMX7D_USB_CTRL_CLK>; 1098*4882a593Smuzhiyun fsl,usbphy = <&usbphynop1>; 1099*4882a593Smuzhiyun fsl,usbmisc = <&usbmisc1 0>; 1100*4882a593Smuzhiyun phy-clkgate-delay-us = <400>; 1101*4882a593Smuzhiyun status = "disabled"; 1102*4882a593Smuzhiyun }; 1103*4882a593Smuzhiyun 1104*4882a593Smuzhiyun usbh: usb@30b30000 { 1105*4882a593Smuzhiyun compatible = "fsl,imx7d-usb", "fsl,imx27-usb"; 1106*4882a593Smuzhiyun reg = <0x30b30000 0x200>; 1107*4882a593Smuzhiyun interrupts = <GIC_SPI 40 IRQ_TYPE_LEVEL_HIGH>; 1108*4882a593Smuzhiyun clocks = <&clks IMX7D_USB_CTRL_CLK>; 1109*4882a593Smuzhiyun fsl,usbphy = <&usbphynop3>; 1110*4882a593Smuzhiyun fsl,usbmisc = <&usbmisc3 0>; 1111*4882a593Smuzhiyun phy_type = "hsic"; 1112*4882a593Smuzhiyun dr_mode = "host"; 1113*4882a593Smuzhiyun phy-clkgate-delay-us = <400>; 1114*4882a593Smuzhiyun status = "disabled"; 1115*4882a593Smuzhiyun }; 1116*4882a593Smuzhiyun 1117*4882a593Smuzhiyun usbmisc1: usbmisc@30b10200 { 1118*4882a593Smuzhiyun #index-cells = <1>; 1119*4882a593Smuzhiyun compatible = "fsl,imx7d-usbmisc", "fsl,imx6q-usbmisc"; 1120*4882a593Smuzhiyun reg = <0x30b10200 0x200>; 1121*4882a593Smuzhiyun }; 1122*4882a593Smuzhiyun 1123*4882a593Smuzhiyun usbmisc3: usbmisc@30b30200 { 1124*4882a593Smuzhiyun #index-cells = <1>; 1125*4882a593Smuzhiyun compatible = "fsl,imx7d-usbmisc", "fsl,imx6q-usbmisc"; 1126*4882a593Smuzhiyun reg = <0x30b30200 0x200>; 1127*4882a593Smuzhiyun }; 1128*4882a593Smuzhiyun 1129*4882a593Smuzhiyun usdhc1: mmc@30b40000 { 1130*4882a593Smuzhiyun compatible = "fsl,imx7d-usdhc", "fsl,imx6sl-usdhc"; 1131*4882a593Smuzhiyun reg = <0x30b40000 0x10000>; 1132*4882a593Smuzhiyun interrupts = <GIC_SPI 22 IRQ_TYPE_LEVEL_HIGH>; 1133*4882a593Smuzhiyun clocks = <&clks IMX7D_IPG_ROOT_CLK>, 1134*4882a593Smuzhiyun <&clks IMX7D_NAND_USDHC_BUS_ROOT_CLK>, 1135*4882a593Smuzhiyun <&clks IMX7D_USDHC1_ROOT_CLK>; 1136*4882a593Smuzhiyun clock-names = "ipg", "ahb", "per"; 1137*4882a593Smuzhiyun bus-width = <4>; 1138*4882a593Smuzhiyun status = "disabled"; 1139*4882a593Smuzhiyun }; 1140*4882a593Smuzhiyun 1141*4882a593Smuzhiyun usdhc2: mmc@30b50000 { 1142*4882a593Smuzhiyun compatible = "fsl,imx7d-usdhc", "fsl,imx6sl-usdhc"; 1143*4882a593Smuzhiyun reg = <0x30b50000 0x10000>; 1144*4882a593Smuzhiyun interrupts = <GIC_SPI 23 IRQ_TYPE_LEVEL_HIGH>; 1145*4882a593Smuzhiyun clocks = <&clks IMX7D_IPG_ROOT_CLK>, 1146*4882a593Smuzhiyun <&clks IMX7D_NAND_USDHC_BUS_ROOT_CLK>, 1147*4882a593Smuzhiyun <&clks IMX7D_USDHC2_ROOT_CLK>; 1148*4882a593Smuzhiyun clock-names = "ipg", "ahb", "per"; 1149*4882a593Smuzhiyun bus-width = <4>; 1150*4882a593Smuzhiyun status = "disabled"; 1151*4882a593Smuzhiyun }; 1152*4882a593Smuzhiyun 1153*4882a593Smuzhiyun usdhc3: mmc@30b60000 { 1154*4882a593Smuzhiyun compatible = "fsl,imx7d-usdhc", "fsl,imx6sl-usdhc"; 1155*4882a593Smuzhiyun reg = <0x30b60000 0x10000>; 1156*4882a593Smuzhiyun interrupts = <GIC_SPI 24 IRQ_TYPE_LEVEL_HIGH>; 1157*4882a593Smuzhiyun clocks = <&clks IMX7D_IPG_ROOT_CLK>, 1158*4882a593Smuzhiyun <&clks IMX7D_NAND_USDHC_BUS_ROOT_CLK>, 1159*4882a593Smuzhiyun <&clks IMX7D_USDHC3_ROOT_CLK>; 1160*4882a593Smuzhiyun clock-names = "ipg", "ahb", "per"; 1161*4882a593Smuzhiyun bus-width = <4>; 1162*4882a593Smuzhiyun status = "disabled"; 1163*4882a593Smuzhiyun }; 1164*4882a593Smuzhiyun 1165*4882a593Smuzhiyun qspi: spi@30bb0000 { 1166*4882a593Smuzhiyun compatible = "fsl,imx7d-qspi"; 1167*4882a593Smuzhiyun reg = <0x30bb0000 0x10000>, <0x60000000 0x10000000>; 1168*4882a593Smuzhiyun reg-names = "QuadSPI", "QuadSPI-memory"; 1169*4882a593Smuzhiyun #address-cells = <1>; 1170*4882a593Smuzhiyun #size-cells = <0>; 1171*4882a593Smuzhiyun interrupts = <GIC_SPI 107 IRQ_TYPE_LEVEL_HIGH>; 1172*4882a593Smuzhiyun clocks = <&clks IMX7D_QSPI_ROOT_CLK>, 1173*4882a593Smuzhiyun <&clks IMX7D_QSPI_ROOT_CLK>; 1174*4882a593Smuzhiyun clock-names = "qspi_en", "qspi"; 1175*4882a593Smuzhiyun status = "disabled"; 1176*4882a593Smuzhiyun }; 1177*4882a593Smuzhiyun 1178*4882a593Smuzhiyun sdma: sdma@30bd0000 { 1179*4882a593Smuzhiyun compatible = "fsl,imx7d-sdma", "fsl,imx35-sdma"; 1180*4882a593Smuzhiyun reg = <0x30bd0000 0x10000>; 1181*4882a593Smuzhiyun interrupts = <GIC_SPI 2 IRQ_TYPE_LEVEL_HIGH>; 1182*4882a593Smuzhiyun clocks = <&clks IMX7D_IPG_ROOT_CLK>, 1183*4882a593Smuzhiyun <&clks IMX7D_SDMA_CORE_CLK>; 1184*4882a593Smuzhiyun clock-names = "ipg", "ahb"; 1185*4882a593Smuzhiyun #dma-cells = <3>; 1186*4882a593Smuzhiyun fsl,sdma-ram-script-name = "imx/sdma/sdma-imx7d.bin"; 1187*4882a593Smuzhiyun }; 1188*4882a593Smuzhiyun 1189*4882a593Smuzhiyun fec1: ethernet@30be0000 { 1190*4882a593Smuzhiyun compatible = "fsl,imx7d-fec", "fsl,imx6sx-fec"; 1191*4882a593Smuzhiyun reg = <0x30be0000 0x10000>; 1192*4882a593Smuzhiyun interrupt-names = "int0", "int1", "int2", "pps"; 1193*4882a593Smuzhiyun interrupts = <GIC_SPI 120 IRQ_TYPE_LEVEL_HIGH>, 1194*4882a593Smuzhiyun <GIC_SPI 118 IRQ_TYPE_LEVEL_HIGH>, 1195*4882a593Smuzhiyun <GIC_SPI 119 IRQ_TYPE_LEVEL_HIGH>, 1196*4882a593Smuzhiyun <GIC_SPI 121 IRQ_TYPE_LEVEL_HIGH>; 1197*4882a593Smuzhiyun clocks = <&clks IMX7D_ENET1_IPG_ROOT_CLK>, 1198*4882a593Smuzhiyun <&clks IMX7D_ENET_AXI_ROOT_CLK>, 1199*4882a593Smuzhiyun <&clks IMX7D_ENET1_TIME_ROOT_CLK>, 1200*4882a593Smuzhiyun <&clks IMX7D_PLL_ENET_MAIN_125M_CLK>, 1201*4882a593Smuzhiyun <&clks IMX7D_ENET_PHY_REF_ROOT_CLK>; 1202*4882a593Smuzhiyun clock-names = "ipg", "ahb", "ptp", 1203*4882a593Smuzhiyun "enet_clk_ref", "enet_out"; 1204*4882a593Smuzhiyun fsl,num-tx-queues = <3>; 1205*4882a593Smuzhiyun fsl,num-rx-queues = <3>; 1206*4882a593Smuzhiyun fsl,stop-mode = <&gpr 0x10 3>; 1207*4882a593Smuzhiyun status = "disabled"; 1208*4882a593Smuzhiyun }; 1209*4882a593Smuzhiyun }; 1210*4882a593Smuzhiyun 1211*4882a593Smuzhiyun dma_apbh: dma-apbh@33000000 { 1212*4882a593Smuzhiyun compatible = "fsl,imx7d-dma-apbh", "fsl,imx28-dma-apbh"; 1213*4882a593Smuzhiyun reg = <0x33000000 0x2000>; 1214*4882a593Smuzhiyun interrupts = <GIC_SPI 12 IRQ_TYPE_LEVEL_HIGH>, 1215*4882a593Smuzhiyun <GIC_SPI 12 IRQ_TYPE_LEVEL_HIGH>, 1216*4882a593Smuzhiyun <GIC_SPI 12 IRQ_TYPE_LEVEL_HIGH>, 1217*4882a593Smuzhiyun <GIC_SPI 12 IRQ_TYPE_LEVEL_HIGH>; 1218*4882a593Smuzhiyun interrupt-names = "gpmi0", "gpmi1", "gpmi2", "gpmi3"; 1219*4882a593Smuzhiyun #dma-cells = <1>; 1220*4882a593Smuzhiyun dma-channels = <4>; 1221*4882a593Smuzhiyun clocks = <&clks IMX7D_NAND_USDHC_BUS_RAWNAND_CLK>; 1222*4882a593Smuzhiyun }; 1223*4882a593Smuzhiyun 1224*4882a593Smuzhiyun gpmi: nand-controller@33002000{ 1225*4882a593Smuzhiyun compatible = "fsl,imx7d-gpmi-nand"; 1226*4882a593Smuzhiyun #address-cells = <1>; 1227*4882a593Smuzhiyun #size-cells = <1>; 1228*4882a593Smuzhiyun reg = <0x33002000 0x2000>, <0x33004000 0x4000>; 1229*4882a593Smuzhiyun reg-names = "gpmi-nand", "bch"; 1230*4882a593Smuzhiyun interrupts = <GIC_SPI 14 IRQ_TYPE_LEVEL_HIGH>; 1231*4882a593Smuzhiyun interrupt-names = "bch"; 1232*4882a593Smuzhiyun clocks = <&clks IMX7D_NAND_RAWNAND_CLK>, 1233*4882a593Smuzhiyun <&clks IMX7D_NAND_USDHC_BUS_RAWNAND_CLK>; 1234*4882a593Smuzhiyun clock-names = "gpmi_io", "gpmi_bch_apb"; 1235*4882a593Smuzhiyun dmas = <&dma_apbh 0>; 1236*4882a593Smuzhiyun dma-names = "rx-tx"; 1237*4882a593Smuzhiyun status = "disabled"; 1238*4882a593Smuzhiyun assigned-clocks = <&clks IMX7D_NAND_ROOT_SRC>; 1239*4882a593Smuzhiyun assigned-clock-parents = <&clks IMX7D_PLL_ENET_MAIN_500M_CLK>; 1240*4882a593Smuzhiyun }; 1241*4882a593Smuzhiyun }; 1242*4882a593Smuzhiyun}; 1243