1c66ec88fSEmmanuel Vadot// SPDX-License-Identifier: (GPL-2.0+ OR MIT) 2c66ec88fSEmmanuel Vadot/* 3c66ec88fSEmmanuel Vadot * Copyright 2017 NXP 4c66ec88fSEmmanuel Vadot * Copyright (C) 2017-2018 Pengutronix, Lucas Stach <kernel@pengutronix.de> 5c66ec88fSEmmanuel Vadot */ 6c66ec88fSEmmanuel Vadot 7c66ec88fSEmmanuel Vadot#include <dt-bindings/clock/imx8mq-clock.h> 8c66ec88fSEmmanuel Vadot#include <dt-bindings/power/imx8mq-power.h> 9c66ec88fSEmmanuel Vadot#include <dt-bindings/reset/imx8mq-reset.h> 10c66ec88fSEmmanuel Vadot#include <dt-bindings/gpio/gpio.h> 11c66ec88fSEmmanuel Vadot#include "dt-bindings/input/input.h" 12c66ec88fSEmmanuel Vadot#include <dt-bindings/interrupt-controller/arm-gic.h> 13c66ec88fSEmmanuel Vadot#include <dt-bindings/thermal/thermal.h> 145def4c47SEmmanuel Vadot#include <dt-bindings/interconnect/imx8mq.h> 15c66ec88fSEmmanuel Vadot#include "imx8mq-pinfunc.h" 16c66ec88fSEmmanuel Vadot 17c66ec88fSEmmanuel Vadot/ { 18c66ec88fSEmmanuel Vadot interrupt-parent = <&gpc>; 19c66ec88fSEmmanuel Vadot 20c66ec88fSEmmanuel Vadot #address-cells = <2>; 21c66ec88fSEmmanuel Vadot #size-cells = <2>; 22c66ec88fSEmmanuel Vadot 23c66ec88fSEmmanuel Vadot aliases { 24c66ec88fSEmmanuel Vadot ethernet0 = &fec1; 25c66ec88fSEmmanuel Vadot gpio0 = &gpio1; 26c66ec88fSEmmanuel Vadot gpio1 = &gpio2; 27c66ec88fSEmmanuel Vadot gpio2 = &gpio3; 28c66ec88fSEmmanuel Vadot gpio3 = &gpio4; 29c66ec88fSEmmanuel Vadot gpio4 = &gpio5; 30c66ec88fSEmmanuel Vadot i2c0 = &i2c1; 31c66ec88fSEmmanuel Vadot i2c1 = &i2c2; 32c66ec88fSEmmanuel Vadot i2c2 = &i2c3; 33c66ec88fSEmmanuel Vadot i2c3 = &i2c4; 34c66ec88fSEmmanuel Vadot mmc0 = &usdhc1; 35c66ec88fSEmmanuel Vadot mmc1 = &usdhc2; 36c66ec88fSEmmanuel Vadot serial0 = &uart1; 37c66ec88fSEmmanuel Vadot serial1 = &uart2; 38c66ec88fSEmmanuel Vadot serial2 = &uart3; 39c66ec88fSEmmanuel Vadot serial3 = &uart4; 40c66ec88fSEmmanuel Vadot spi0 = &ecspi1; 41c66ec88fSEmmanuel Vadot spi1 = &ecspi2; 42c66ec88fSEmmanuel Vadot spi2 = &ecspi3; 43c66ec88fSEmmanuel Vadot }; 44c66ec88fSEmmanuel Vadot 45c66ec88fSEmmanuel Vadot ckil: clock-ckil { 46c66ec88fSEmmanuel Vadot compatible = "fixed-clock"; 47c66ec88fSEmmanuel Vadot #clock-cells = <0>; 48c66ec88fSEmmanuel Vadot clock-frequency = <32768>; 49c66ec88fSEmmanuel Vadot clock-output-names = "ckil"; 50c66ec88fSEmmanuel Vadot }; 51c66ec88fSEmmanuel Vadot 52c66ec88fSEmmanuel Vadot osc_25m: clock-osc-25m { 53c66ec88fSEmmanuel Vadot compatible = "fixed-clock"; 54c66ec88fSEmmanuel Vadot #clock-cells = <0>; 55c66ec88fSEmmanuel Vadot clock-frequency = <25000000>; 56c66ec88fSEmmanuel Vadot clock-output-names = "osc_25m"; 57c66ec88fSEmmanuel Vadot }; 58c66ec88fSEmmanuel Vadot 59c66ec88fSEmmanuel Vadot osc_27m: clock-osc-27m { 60c66ec88fSEmmanuel Vadot compatible = "fixed-clock"; 61c66ec88fSEmmanuel Vadot #clock-cells = <0>; 62c66ec88fSEmmanuel Vadot clock-frequency = <27000000>; 63c66ec88fSEmmanuel Vadot clock-output-names = "osc_27m"; 64c66ec88fSEmmanuel Vadot }; 65c66ec88fSEmmanuel Vadot 66d5b0e70fSEmmanuel Vadot hdmi_phy_27m: clock-hdmi-phy-27m { 67d5b0e70fSEmmanuel Vadot compatible = "fixed-clock"; 68d5b0e70fSEmmanuel Vadot #clock-cells = <0>; 69d5b0e70fSEmmanuel Vadot clock-frequency = <27000000>; 70d5b0e70fSEmmanuel Vadot clock-output-names = "hdmi_phy_27m"; 71d5b0e70fSEmmanuel Vadot }; 72d5b0e70fSEmmanuel Vadot 73c66ec88fSEmmanuel Vadot clk_ext1: clock-ext1 { 74c66ec88fSEmmanuel Vadot compatible = "fixed-clock"; 75c66ec88fSEmmanuel Vadot #clock-cells = <0>; 76c66ec88fSEmmanuel Vadot clock-frequency = <133000000>; 77c66ec88fSEmmanuel Vadot clock-output-names = "clk_ext1"; 78c66ec88fSEmmanuel Vadot }; 79c66ec88fSEmmanuel Vadot 80c66ec88fSEmmanuel Vadot clk_ext2: clock-ext2 { 81c66ec88fSEmmanuel Vadot compatible = "fixed-clock"; 82c66ec88fSEmmanuel Vadot #clock-cells = <0>; 83c66ec88fSEmmanuel Vadot clock-frequency = <133000000>; 84c66ec88fSEmmanuel Vadot clock-output-names = "clk_ext2"; 85c66ec88fSEmmanuel Vadot }; 86c66ec88fSEmmanuel Vadot 87c66ec88fSEmmanuel Vadot clk_ext3: clock-ext3 { 88c66ec88fSEmmanuel Vadot compatible = "fixed-clock"; 89c66ec88fSEmmanuel Vadot #clock-cells = <0>; 90c66ec88fSEmmanuel Vadot clock-frequency = <133000000>; 91c66ec88fSEmmanuel Vadot clock-output-names = "clk_ext3"; 92c66ec88fSEmmanuel Vadot }; 93c66ec88fSEmmanuel Vadot 94c66ec88fSEmmanuel Vadot clk_ext4: clock-ext4 { 95c66ec88fSEmmanuel Vadot compatible = "fixed-clock"; 96c66ec88fSEmmanuel Vadot #clock-cells = <0>; 97c66ec88fSEmmanuel Vadot clock-frequency = <133000000>; 98c66ec88fSEmmanuel Vadot clock-output-names = "clk_ext4"; 99c66ec88fSEmmanuel Vadot }; 100c66ec88fSEmmanuel Vadot 101c66ec88fSEmmanuel Vadot cpus { 102c66ec88fSEmmanuel Vadot #address-cells = <1>; 103c66ec88fSEmmanuel Vadot #size-cells = <0>; 104c66ec88fSEmmanuel Vadot 105c66ec88fSEmmanuel Vadot A53_0: cpu@0 { 106c66ec88fSEmmanuel Vadot device_type = "cpu"; 107c66ec88fSEmmanuel Vadot compatible = "arm,cortex-a53"; 108c66ec88fSEmmanuel Vadot reg = <0x0>; 109c66ec88fSEmmanuel Vadot clock-latency = <61036>; /* two CLK32 periods */ 110c66ec88fSEmmanuel Vadot clocks = <&clk IMX8MQ_CLK_ARM>; 111c66ec88fSEmmanuel Vadot enable-method = "psci"; 112e67e8565SEmmanuel Vadot i-cache-size = <0x8000>; 113e67e8565SEmmanuel Vadot i-cache-line-size = <64>; 114e67e8565SEmmanuel Vadot i-cache-sets = <256>; 115e67e8565SEmmanuel Vadot d-cache-size = <0x8000>; 116e67e8565SEmmanuel Vadot d-cache-line-size = <64>; 117e67e8565SEmmanuel Vadot d-cache-sets = <128>; 118c66ec88fSEmmanuel Vadot next-level-cache = <&A53_L2>; 119c66ec88fSEmmanuel Vadot operating-points-v2 = <&a53_opp_table>; 120c66ec88fSEmmanuel Vadot #cooling-cells = <2>; 121c66ec88fSEmmanuel Vadot nvmem-cells = <&cpu_speed_grade>; 122c66ec88fSEmmanuel Vadot nvmem-cell-names = "speed_grade"; 123c66ec88fSEmmanuel Vadot }; 124c66ec88fSEmmanuel Vadot 125c66ec88fSEmmanuel Vadot A53_1: cpu@1 { 126c66ec88fSEmmanuel Vadot device_type = "cpu"; 127c66ec88fSEmmanuel Vadot compatible = "arm,cortex-a53"; 128c66ec88fSEmmanuel Vadot reg = <0x1>; 129c66ec88fSEmmanuel Vadot clock-latency = <61036>; /* two CLK32 periods */ 130c66ec88fSEmmanuel Vadot clocks = <&clk IMX8MQ_CLK_ARM>; 131c66ec88fSEmmanuel Vadot enable-method = "psci"; 132e67e8565SEmmanuel Vadot i-cache-size = <0x8000>; 133e67e8565SEmmanuel Vadot i-cache-line-size = <64>; 134e67e8565SEmmanuel Vadot i-cache-sets = <256>; 135e67e8565SEmmanuel Vadot d-cache-size = <0x8000>; 136e67e8565SEmmanuel Vadot d-cache-line-size = <64>; 137e67e8565SEmmanuel Vadot d-cache-sets = <128>; 138c66ec88fSEmmanuel Vadot next-level-cache = <&A53_L2>; 139c66ec88fSEmmanuel Vadot operating-points-v2 = <&a53_opp_table>; 140c66ec88fSEmmanuel Vadot #cooling-cells = <2>; 141c66ec88fSEmmanuel Vadot }; 142c66ec88fSEmmanuel Vadot 143c66ec88fSEmmanuel Vadot A53_2: cpu@2 { 144c66ec88fSEmmanuel Vadot device_type = "cpu"; 145c66ec88fSEmmanuel Vadot compatible = "arm,cortex-a53"; 146c66ec88fSEmmanuel Vadot reg = <0x2>; 147c66ec88fSEmmanuel Vadot clock-latency = <61036>; /* two CLK32 periods */ 148c66ec88fSEmmanuel Vadot clocks = <&clk IMX8MQ_CLK_ARM>; 149c66ec88fSEmmanuel Vadot enable-method = "psci"; 150e67e8565SEmmanuel Vadot i-cache-size = <0x8000>; 151e67e8565SEmmanuel Vadot i-cache-line-size = <64>; 152e67e8565SEmmanuel Vadot i-cache-sets = <256>; 153e67e8565SEmmanuel Vadot d-cache-size = <0x8000>; 154e67e8565SEmmanuel Vadot d-cache-line-size = <64>; 155e67e8565SEmmanuel Vadot d-cache-sets = <128>; 156c66ec88fSEmmanuel Vadot next-level-cache = <&A53_L2>; 157c66ec88fSEmmanuel Vadot operating-points-v2 = <&a53_opp_table>; 158c66ec88fSEmmanuel Vadot #cooling-cells = <2>; 159c66ec88fSEmmanuel Vadot }; 160c66ec88fSEmmanuel Vadot 161c66ec88fSEmmanuel Vadot A53_3: cpu@3 { 162c66ec88fSEmmanuel Vadot device_type = "cpu"; 163c66ec88fSEmmanuel Vadot compatible = "arm,cortex-a53"; 164c66ec88fSEmmanuel Vadot reg = <0x3>; 165c66ec88fSEmmanuel Vadot clock-latency = <61036>; /* two CLK32 periods */ 166c66ec88fSEmmanuel Vadot clocks = <&clk IMX8MQ_CLK_ARM>; 167c66ec88fSEmmanuel Vadot enable-method = "psci"; 168e67e8565SEmmanuel Vadot i-cache-size = <0x8000>; 169e67e8565SEmmanuel Vadot i-cache-line-size = <64>; 170e67e8565SEmmanuel Vadot i-cache-sets = <256>; 171e67e8565SEmmanuel Vadot d-cache-size = <0x8000>; 172e67e8565SEmmanuel Vadot d-cache-line-size = <64>; 173e67e8565SEmmanuel Vadot d-cache-sets = <128>; 174c66ec88fSEmmanuel Vadot next-level-cache = <&A53_L2>; 175c66ec88fSEmmanuel Vadot operating-points-v2 = <&a53_opp_table>; 176c66ec88fSEmmanuel Vadot #cooling-cells = <2>; 177c66ec88fSEmmanuel Vadot }; 178c66ec88fSEmmanuel Vadot 179c66ec88fSEmmanuel Vadot A53_L2: l2-cache0 { 180c66ec88fSEmmanuel Vadot compatible = "cache"; 181e67e8565SEmmanuel Vadot cache-level = <2>; 1828bab661aSEmmanuel Vadot cache-unified; 183e67e8565SEmmanuel Vadot cache-size = <0x100000>; 184e67e8565SEmmanuel Vadot cache-line-size = <64>; 185e67e8565SEmmanuel Vadot cache-sets = <1024>; 186c66ec88fSEmmanuel Vadot }; 187c66ec88fSEmmanuel Vadot }; 188c66ec88fSEmmanuel Vadot 189c66ec88fSEmmanuel Vadot a53_opp_table: opp-table { 190c66ec88fSEmmanuel Vadot compatible = "operating-points-v2"; 191c66ec88fSEmmanuel Vadot opp-shared; 192c66ec88fSEmmanuel Vadot 193c66ec88fSEmmanuel Vadot opp-800000000 { 194c66ec88fSEmmanuel Vadot opp-hz = /bits/ 64 <800000000>; 195c66ec88fSEmmanuel Vadot opp-microvolt = <900000>; 196c66ec88fSEmmanuel Vadot /* Industrial only */ 197c66ec88fSEmmanuel Vadot opp-supported-hw = <0xf>, <0x4>; 198c66ec88fSEmmanuel Vadot clock-latency-ns = <150000>; 199c66ec88fSEmmanuel Vadot opp-suspend; 200c66ec88fSEmmanuel Vadot }; 201c66ec88fSEmmanuel Vadot 202c66ec88fSEmmanuel Vadot opp-1000000000 { 203c66ec88fSEmmanuel Vadot opp-hz = /bits/ 64 <1000000000>; 204c66ec88fSEmmanuel Vadot opp-microvolt = <900000>; 205c66ec88fSEmmanuel Vadot /* Consumer only */ 206c66ec88fSEmmanuel Vadot opp-supported-hw = <0xe>, <0x3>; 207c66ec88fSEmmanuel Vadot clock-latency-ns = <150000>; 208c66ec88fSEmmanuel Vadot opp-suspend; 209c66ec88fSEmmanuel Vadot }; 210c66ec88fSEmmanuel Vadot 211c66ec88fSEmmanuel Vadot opp-1300000000 { 212c66ec88fSEmmanuel Vadot opp-hz = /bits/ 64 <1300000000>; 213c66ec88fSEmmanuel Vadot opp-microvolt = <1000000>; 214c66ec88fSEmmanuel Vadot opp-supported-hw = <0xc>, <0x4>; 215c66ec88fSEmmanuel Vadot clock-latency-ns = <150000>; 216c66ec88fSEmmanuel Vadot opp-suspend; 217c66ec88fSEmmanuel Vadot }; 218c66ec88fSEmmanuel Vadot 219c66ec88fSEmmanuel Vadot opp-1500000000 { 220c66ec88fSEmmanuel Vadot opp-hz = /bits/ 64 <1500000000>; 221c66ec88fSEmmanuel Vadot opp-microvolt = <1000000>; 222c66ec88fSEmmanuel Vadot opp-supported-hw = <0x8>, <0x3>; 223c66ec88fSEmmanuel Vadot clock-latency-ns = <150000>; 224c66ec88fSEmmanuel Vadot opp-suspend; 225c66ec88fSEmmanuel Vadot }; 226c66ec88fSEmmanuel Vadot }; 227c66ec88fSEmmanuel Vadot 228*84943d6fSEmmanuel Vadot funnel { 229*84943d6fSEmmanuel Vadot /* 230*84943d6fSEmmanuel Vadot * non-configurable funnel don't show up on the AMBA 231*84943d6fSEmmanuel Vadot * bus. As such no need to add "arm,primecell". 232*84943d6fSEmmanuel Vadot */ 233*84943d6fSEmmanuel Vadot compatible = "arm,coresight-static-funnel"; 234*84943d6fSEmmanuel Vadot 235*84943d6fSEmmanuel Vadot in-ports { 236*84943d6fSEmmanuel Vadot #address-cells = <1>; 237*84943d6fSEmmanuel Vadot #size-cells = <0>; 238*84943d6fSEmmanuel Vadot 239*84943d6fSEmmanuel Vadot port@0 { 240*84943d6fSEmmanuel Vadot reg = <0>; 241*84943d6fSEmmanuel Vadot 242*84943d6fSEmmanuel Vadot ca_funnel_in_port0: endpoint { 243*84943d6fSEmmanuel Vadot remote-endpoint = <&etm0_out_port>; 244*84943d6fSEmmanuel Vadot }; 245*84943d6fSEmmanuel Vadot }; 246*84943d6fSEmmanuel Vadot 247*84943d6fSEmmanuel Vadot port@1 { 248*84943d6fSEmmanuel Vadot reg = <1>; 249*84943d6fSEmmanuel Vadot 250*84943d6fSEmmanuel Vadot ca_funnel_in_port1: endpoint { 251*84943d6fSEmmanuel Vadot remote-endpoint = <&etm1_out_port>; 252*84943d6fSEmmanuel Vadot }; 253*84943d6fSEmmanuel Vadot }; 254*84943d6fSEmmanuel Vadot 255*84943d6fSEmmanuel Vadot port@2 { 256*84943d6fSEmmanuel Vadot reg = <2>; 257*84943d6fSEmmanuel Vadot 258*84943d6fSEmmanuel Vadot ca_funnel_in_port2: endpoint { 259*84943d6fSEmmanuel Vadot remote-endpoint = <&etm2_out_port>; 260*84943d6fSEmmanuel Vadot }; 261*84943d6fSEmmanuel Vadot }; 262*84943d6fSEmmanuel Vadot 263*84943d6fSEmmanuel Vadot port@3 { 264*84943d6fSEmmanuel Vadot reg = <3>; 265*84943d6fSEmmanuel Vadot 266*84943d6fSEmmanuel Vadot ca_funnel_in_port3: endpoint { 267*84943d6fSEmmanuel Vadot remote-endpoint = <&etm3_out_port>; 268*84943d6fSEmmanuel Vadot }; 269*84943d6fSEmmanuel Vadot }; 270*84943d6fSEmmanuel Vadot }; 271*84943d6fSEmmanuel Vadot 272*84943d6fSEmmanuel Vadot out-ports { 273*84943d6fSEmmanuel Vadot port { 274*84943d6fSEmmanuel Vadot ca_funnel_out_port0: endpoint { 275*84943d6fSEmmanuel Vadot remote-endpoint = <&hugo_funnel_in_port0>; 276*84943d6fSEmmanuel Vadot }; 277*84943d6fSEmmanuel Vadot }; 278*84943d6fSEmmanuel Vadot }; 279*84943d6fSEmmanuel Vadot }; 280*84943d6fSEmmanuel Vadot 281c66ec88fSEmmanuel Vadot pmu { 282c66ec88fSEmmanuel Vadot compatible = "arm,cortex-a53-pmu"; 283c66ec88fSEmmanuel Vadot interrupts = <GIC_PPI 7 IRQ_TYPE_LEVEL_HIGH>; 284c66ec88fSEmmanuel Vadot interrupt-parent = <&gic>; 285c66ec88fSEmmanuel Vadot }; 286c66ec88fSEmmanuel Vadot 287c66ec88fSEmmanuel Vadot psci { 288c66ec88fSEmmanuel Vadot compatible = "arm,psci-1.0"; 289c66ec88fSEmmanuel Vadot method = "smc"; 290c66ec88fSEmmanuel Vadot }; 291c66ec88fSEmmanuel Vadot 292c66ec88fSEmmanuel Vadot thermal-zones { 293c66ec88fSEmmanuel Vadot cpu_thermal: cpu-thermal { 294c66ec88fSEmmanuel Vadot polling-delay-passive = <250>; 295c66ec88fSEmmanuel Vadot polling-delay = <2000>; 296c66ec88fSEmmanuel Vadot thermal-sensors = <&tmu 0>; 297c66ec88fSEmmanuel Vadot 298c66ec88fSEmmanuel Vadot trips { 299c66ec88fSEmmanuel Vadot cpu_alert: cpu-alert { 300c66ec88fSEmmanuel Vadot temperature = <80000>; 301c66ec88fSEmmanuel Vadot hysteresis = <2000>; 302c66ec88fSEmmanuel Vadot type = "passive"; 303c66ec88fSEmmanuel Vadot }; 304c66ec88fSEmmanuel Vadot 305c66ec88fSEmmanuel Vadot cpu-crit { 306c66ec88fSEmmanuel Vadot temperature = <90000>; 307c66ec88fSEmmanuel Vadot hysteresis = <2000>; 308c66ec88fSEmmanuel Vadot type = "critical"; 309c66ec88fSEmmanuel Vadot }; 310c66ec88fSEmmanuel Vadot }; 311c66ec88fSEmmanuel Vadot 312c66ec88fSEmmanuel Vadot cooling-maps { 313c66ec88fSEmmanuel Vadot map0 { 314c66ec88fSEmmanuel Vadot trip = <&cpu_alert>; 315c66ec88fSEmmanuel Vadot cooling-device = 316c66ec88fSEmmanuel Vadot <&A53_0 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>, 317c66ec88fSEmmanuel Vadot <&A53_1 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>, 318c66ec88fSEmmanuel Vadot <&A53_2 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>, 319c66ec88fSEmmanuel Vadot <&A53_3 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>; 320c66ec88fSEmmanuel Vadot }; 321c66ec88fSEmmanuel Vadot }; 322c66ec88fSEmmanuel Vadot }; 323c66ec88fSEmmanuel Vadot 324c66ec88fSEmmanuel Vadot gpu-thermal { 325c66ec88fSEmmanuel Vadot polling-delay-passive = <250>; 326c66ec88fSEmmanuel Vadot polling-delay = <2000>; 327c66ec88fSEmmanuel Vadot thermal-sensors = <&tmu 1>; 328c66ec88fSEmmanuel Vadot 329c66ec88fSEmmanuel Vadot trips { 330c66ec88fSEmmanuel Vadot gpu_alert: gpu-alert { 331c66ec88fSEmmanuel Vadot temperature = <80000>; 332c66ec88fSEmmanuel Vadot hysteresis = <2000>; 333c66ec88fSEmmanuel Vadot type = "passive"; 334c66ec88fSEmmanuel Vadot }; 335c66ec88fSEmmanuel Vadot 336c66ec88fSEmmanuel Vadot gpu-crit { 337c66ec88fSEmmanuel Vadot temperature = <90000>; 338c66ec88fSEmmanuel Vadot hysteresis = <2000>; 339c66ec88fSEmmanuel Vadot type = "critical"; 340c66ec88fSEmmanuel Vadot }; 341c66ec88fSEmmanuel Vadot }; 342c66ec88fSEmmanuel Vadot 343c66ec88fSEmmanuel Vadot cooling-maps { 344c66ec88fSEmmanuel Vadot map0 { 345c66ec88fSEmmanuel Vadot trip = <&gpu_alert>; 346c66ec88fSEmmanuel Vadot cooling-device = 347c66ec88fSEmmanuel Vadot <&gpu THERMAL_NO_LIMIT THERMAL_NO_LIMIT>; 348c66ec88fSEmmanuel Vadot }; 349c66ec88fSEmmanuel Vadot }; 350c66ec88fSEmmanuel Vadot }; 351c66ec88fSEmmanuel Vadot 352c66ec88fSEmmanuel Vadot vpu-thermal { 353c66ec88fSEmmanuel Vadot polling-delay-passive = <250>; 354c66ec88fSEmmanuel Vadot polling-delay = <2000>; 355c66ec88fSEmmanuel Vadot thermal-sensors = <&tmu 2>; 356c66ec88fSEmmanuel Vadot 357c66ec88fSEmmanuel Vadot trips { 358c66ec88fSEmmanuel Vadot vpu-crit { 359c66ec88fSEmmanuel Vadot temperature = <90000>; 360c66ec88fSEmmanuel Vadot hysteresis = <2000>; 361c66ec88fSEmmanuel Vadot type = "critical"; 362c66ec88fSEmmanuel Vadot }; 363c66ec88fSEmmanuel Vadot }; 364c66ec88fSEmmanuel Vadot }; 365c66ec88fSEmmanuel Vadot }; 366c66ec88fSEmmanuel Vadot 367c66ec88fSEmmanuel Vadot timer { 368c66ec88fSEmmanuel Vadot compatible = "arm,armv8-timer"; 369c66ec88fSEmmanuel Vadot interrupts = <GIC_PPI 13 IRQ_TYPE_LEVEL_LOW>, /* Physical Secure */ 370c66ec88fSEmmanuel Vadot <GIC_PPI 14 IRQ_TYPE_LEVEL_LOW>, /* Physical Non-Secure */ 371c66ec88fSEmmanuel Vadot <GIC_PPI 11 IRQ_TYPE_LEVEL_LOW>, /* Virtual */ 372c66ec88fSEmmanuel Vadot <GIC_PPI 10 IRQ_TYPE_LEVEL_LOW>; /* Hypervisor */ 373c66ec88fSEmmanuel Vadot interrupt-parent = <&gic>; 374c66ec88fSEmmanuel Vadot arm,no-tick-in-suspend; 375c66ec88fSEmmanuel Vadot }; 376c66ec88fSEmmanuel Vadot 377b97ee269SEmmanuel Vadot soc: soc@0 { 3785def4c47SEmmanuel Vadot compatible = "fsl,imx8mq-soc", "simple-bus"; 379c66ec88fSEmmanuel Vadot #address-cells = <1>; 380c66ec88fSEmmanuel Vadot #size-cells = <1>; 381c66ec88fSEmmanuel Vadot ranges = <0x0 0x0 0x0 0x3e000000>; 382c66ec88fSEmmanuel Vadot dma-ranges = <0x40000000 0x0 0x40000000 0xc0000000>; 3835def4c47SEmmanuel Vadot nvmem-cells = <&imx8mq_uid>; 3845def4c47SEmmanuel Vadot nvmem-cell-names = "soc_unique_id"; 385c66ec88fSEmmanuel Vadot 386aa1a8ff2SEmmanuel Vadot etm0: etm@28440000 { 387aa1a8ff2SEmmanuel Vadot compatible = "arm,coresight-etm4x", "arm,primecell"; 388aa1a8ff2SEmmanuel Vadot reg = <0x28440000 0x1000>; 389aa1a8ff2SEmmanuel Vadot cpu = <&A53_0>; 390aa1a8ff2SEmmanuel Vadot clocks = <&clk IMX8MQ_CLK_MAIN_AXI>; 391aa1a8ff2SEmmanuel Vadot clock-names = "apb_pclk"; 392aa1a8ff2SEmmanuel Vadot 393aa1a8ff2SEmmanuel Vadot out-ports { 394aa1a8ff2SEmmanuel Vadot port { 395aa1a8ff2SEmmanuel Vadot etm0_out_port: endpoint { 396aa1a8ff2SEmmanuel Vadot remote-endpoint = <&ca_funnel_in_port0>; 397aa1a8ff2SEmmanuel Vadot }; 398aa1a8ff2SEmmanuel Vadot }; 399aa1a8ff2SEmmanuel Vadot }; 400aa1a8ff2SEmmanuel Vadot }; 401aa1a8ff2SEmmanuel Vadot 402aa1a8ff2SEmmanuel Vadot etm1: etm@28540000 { 403aa1a8ff2SEmmanuel Vadot compatible = "arm,coresight-etm4x", "arm,primecell"; 404aa1a8ff2SEmmanuel Vadot reg = <0x28540000 0x1000>; 405aa1a8ff2SEmmanuel Vadot cpu = <&A53_1>; 406aa1a8ff2SEmmanuel Vadot clocks = <&clk IMX8MQ_CLK_MAIN_AXI>; 407aa1a8ff2SEmmanuel Vadot clock-names = "apb_pclk"; 408aa1a8ff2SEmmanuel Vadot 409aa1a8ff2SEmmanuel Vadot out-ports { 410aa1a8ff2SEmmanuel Vadot port { 411aa1a8ff2SEmmanuel Vadot etm1_out_port: endpoint { 412aa1a8ff2SEmmanuel Vadot remote-endpoint = <&ca_funnel_in_port1>; 413aa1a8ff2SEmmanuel Vadot }; 414aa1a8ff2SEmmanuel Vadot }; 415aa1a8ff2SEmmanuel Vadot }; 416aa1a8ff2SEmmanuel Vadot }; 417aa1a8ff2SEmmanuel Vadot 418aa1a8ff2SEmmanuel Vadot etm2: etm@28640000 { 419aa1a8ff2SEmmanuel Vadot compatible = "arm,coresight-etm4x", "arm,primecell"; 420aa1a8ff2SEmmanuel Vadot reg = <0x28640000 0x1000>; 421aa1a8ff2SEmmanuel Vadot cpu = <&A53_2>; 422aa1a8ff2SEmmanuel Vadot clocks = <&clk IMX8MQ_CLK_MAIN_AXI>; 423aa1a8ff2SEmmanuel Vadot clock-names = "apb_pclk"; 424aa1a8ff2SEmmanuel Vadot 425aa1a8ff2SEmmanuel Vadot out-ports { 426aa1a8ff2SEmmanuel Vadot port { 427aa1a8ff2SEmmanuel Vadot etm2_out_port: endpoint { 428aa1a8ff2SEmmanuel Vadot remote-endpoint = <&ca_funnel_in_port2>; 429aa1a8ff2SEmmanuel Vadot }; 430aa1a8ff2SEmmanuel Vadot }; 431aa1a8ff2SEmmanuel Vadot }; 432aa1a8ff2SEmmanuel Vadot }; 433aa1a8ff2SEmmanuel Vadot 434aa1a8ff2SEmmanuel Vadot etm3: etm@28740000 { 435aa1a8ff2SEmmanuel Vadot compatible = "arm,coresight-etm4x", "arm,primecell"; 436aa1a8ff2SEmmanuel Vadot reg = <0x28740000 0x1000>; 437aa1a8ff2SEmmanuel Vadot cpu = <&A53_3>; 438aa1a8ff2SEmmanuel Vadot clocks = <&clk IMX8MQ_CLK_MAIN_AXI>; 439aa1a8ff2SEmmanuel Vadot clock-names = "apb_pclk"; 440aa1a8ff2SEmmanuel Vadot 441aa1a8ff2SEmmanuel Vadot out-ports { 442aa1a8ff2SEmmanuel Vadot port { 443aa1a8ff2SEmmanuel Vadot etm3_out_port: endpoint { 444aa1a8ff2SEmmanuel Vadot remote-endpoint = <&ca_funnel_in_port3>; 445aa1a8ff2SEmmanuel Vadot }; 446aa1a8ff2SEmmanuel Vadot }; 447aa1a8ff2SEmmanuel Vadot }; 448aa1a8ff2SEmmanuel Vadot }; 449aa1a8ff2SEmmanuel Vadot 450aa1a8ff2SEmmanuel Vadot funnel@28c03000 { 451aa1a8ff2SEmmanuel Vadot compatible = "arm,coresight-dynamic-funnel", "arm,primecell"; 452aa1a8ff2SEmmanuel Vadot reg = <0x28c03000 0x1000>; 453aa1a8ff2SEmmanuel Vadot clocks = <&clk IMX8MQ_CLK_MAIN_AXI>; 454aa1a8ff2SEmmanuel Vadot clock-names = "apb_pclk"; 455aa1a8ff2SEmmanuel Vadot 456aa1a8ff2SEmmanuel Vadot in-ports { 457aa1a8ff2SEmmanuel Vadot #address-cells = <1>; 458aa1a8ff2SEmmanuel Vadot #size-cells = <0>; 459aa1a8ff2SEmmanuel Vadot 460aa1a8ff2SEmmanuel Vadot port@0 { 461aa1a8ff2SEmmanuel Vadot reg = <0>; 462aa1a8ff2SEmmanuel Vadot 463aa1a8ff2SEmmanuel Vadot hugo_funnel_in_port0: endpoint { 464aa1a8ff2SEmmanuel Vadot remote-endpoint = <&ca_funnel_out_port0>; 465aa1a8ff2SEmmanuel Vadot }; 466aa1a8ff2SEmmanuel Vadot }; 467aa1a8ff2SEmmanuel Vadot 468aa1a8ff2SEmmanuel Vadot port@1 { 469aa1a8ff2SEmmanuel Vadot reg = <1>; 470aa1a8ff2SEmmanuel Vadot 471aa1a8ff2SEmmanuel Vadot hugo_funnel_in_port1: endpoint { 472aa1a8ff2SEmmanuel Vadot /* M4 input */ 473aa1a8ff2SEmmanuel Vadot }; 474aa1a8ff2SEmmanuel Vadot }; 475aa1a8ff2SEmmanuel Vadot /* the other input ports are not connect to anything */ 476aa1a8ff2SEmmanuel Vadot }; 477aa1a8ff2SEmmanuel Vadot 478aa1a8ff2SEmmanuel Vadot out-ports { 479aa1a8ff2SEmmanuel Vadot port { 480aa1a8ff2SEmmanuel Vadot hugo_funnel_out_port0: endpoint { 481aa1a8ff2SEmmanuel Vadot remote-endpoint = <&etf_in_port>; 482aa1a8ff2SEmmanuel Vadot }; 483aa1a8ff2SEmmanuel Vadot }; 484aa1a8ff2SEmmanuel Vadot }; 485aa1a8ff2SEmmanuel Vadot }; 486aa1a8ff2SEmmanuel Vadot 487aa1a8ff2SEmmanuel Vadot etf@28c04000 { 488aa1a8ff2SEmmanuel Vadot compatible = "arm,coresight-tmc", "arm,primecell"; 489aa1a8ff2SEmmanuel Vadot reg = <0x28c04000 0x1000>; 490aa1a8ff2SEmmanuel Vadot clocks = <&clk IMX8MQ_CLK_MAIN_AXI>; 491aa1a8ff2SEmmanuel Vadot clock-names = "apb_pclk"; 492aa1a8ff2SEmmanuel Vadot 493aa1a8ff2SEmmanuel Vadot in-ports { 494aa1a8ff2SEmmanuel Vadot port { 495aa1a8ff2SEmmanuel Vadot etf_in_port: endpoint { 496aa1a8ff2SEmmanuel Vadot remote-endpoint = <&hugo_funnel_out_port0>; 497aa1a8ff2SEmmanuel Vadot }; 498aa1a8ff2SEmmanuel Vadot }; 499aa1a8ff2SEmmanuel Vadot }; 500aa1a8ff2SEmmanuel Vadot 501aa1a8ff2SEmmanuel Vadot out-ports { 502aa1a8ff2SEmmanuel Vadot port { 503aa1a8ff2SEmmanuel Vadot etf_out_port: endpoint { 504aa1a8ff2SEmmanuel Vadot remote-endpoint = <&etr_in_port>; 505aa1a8ff2SEmmanuel Vadot }; 506aa1a8ff2SEmmanuel Vadot }; 507aa1a8ff2SEmmanuel Vadot }; 508aa1a8ff2SEmmanuel Vadot }; 509aa1a8ff2SEmmanuel Vadot 510aa1a8ff2SEmmanuel Vadot etr@28c06000 { 511aa1a8ff2SEmmanuel Vadot compatible = "arm,coresight-tmc", "arm,primecell"; 512aa1a8ff2SEmmanuel Vadot reg = <0x28c06000 0x1000>; 513aa1a8ff2SEmmanuel Vadot clocks = <&clk IMX8MQ_CLK_MAIN_AXI>; 514aa1a8ff2SEmmanuel Vadot clock-names = "apb_pclk"; 515aa1a8ff2SEmmanuel Vadot 516aa1a8ff2SEmmanuel Vadot in-ports { 517aa1a8ff2SEmmanuel Vadot port { 518aa1a8ff2SEmmanuel Vadot etr_in_port: endpoint { 519aa1a8ff2SEmmanuel Vadot remote-endpoint = <&etf_out_port>; 520aa1a8ff2SEmmanuel Vadot }; 521aa1a8ff2SEmmanuel Vadot }; 522aa1a8ff2SEmmanuel Vadot }; 523aa1a8ff2SEmmanuel Vadot }; 524aa1a8ff2SEmmanuel Vadot 525b97ee269SEmmanuel Vadot aips1: bus@30000000 { /* AIPS1 */ 526c66ec88fSEmmanuel Vadot compatible = "fsl,aips-bus", "simple-bus"; 527c66ec88fSEmmanuel Vadot reg = <0x30000000 0x400000>; 528c66ec88fSEmmanuel Vadot #address-cells = <1>; 529c66ec88fSEmmanuel Vadot #size-cells = <1>; 530c66ec88fSEmmanuel Vadot ranges = <0x30000000 0x30000000 0x400000>; 531c66ec88fSEmmanuel Vadot 532c66ec88fSEmmanuel Vadot sai1: sai@30010000 { 533c66ec88fSEmmanuel Vadot #sound-dai-cells = <0>; 534c66ec88fSEmmanuel Vadot compatible = "fsl,imx8mq-sai"; 535c66ec88fSEmmanuel Vadot reg = <0x30010000 0x10000>; 536c66ec88fSEmmanuel Vadot interrupts = <GIC_SPI 95 IRQ_TYPE_LEVEL_HIGH>; 537c66ec88fSEmmanuel Vadot clocks = <&clk IMX8MQ_CLK_SAI1_IPG>, 538c66ec88fSEmmanuel Vadot <&clk IMX8MQ_CLK_SAI1_ROOT>, 539c66ec88fSEmmanuel Vadot <&clk IMX8MQ_CLK_DUMMY>, <&clk IMX8MQ_CLK_DUMMY>; 540c66ec88fSEmmanuel Vadot clock-names = "bus", "mclk1", "mclk2", "mclk3"; 541c66ec88fSEmmanuel Vadot dmas = <&sdma2 8 24 0>, <&sdma1 9 24 0>; 542c66ec88fSEmmanuel Vadot dma-names = "rx", "tx"; 543c66ec88fSEmmanuel Vadot status = "disabled"; 544c66ec88fSEmmanuel Vadot }; 545c66ec88fSEmmanuel Vadot 546c66ec88fSEmmanuel Vadot sai6: sai@30030000 { 547c66ec88fSEmmanuel Vadot #sound-dai-cells = <0>; 548c66ec88fSEmmanuel Vadot compatible = "fsl,imx8mq-sai"; 549c66ec88fSEmmanuel Vadot reg = <0x30030000 0x10000>; 550c66ec88fSEmmanuel Vadot interrupts = <GIC_SPI 90 IRQ_TYPE_LEVEL_HIGH>; 551c66ec88fSEmmanuel Vadot clocks = <&clk IMX8MQ_CLK_SAI6_IPG>, 552c66ec88fSEmmanuel Vadot <&clk IMX8MQ_CLK_SAI6_ROOT>, 553c66ec88fSEmmanuel Vadot <&clk IMX8MQ_CLK_DUMMY>, <&clk IMX8MQ_CLK_DUMMY>; 554c66ec88fSEmmanuel Vadot clock-names = "bus", "mclk1", "mclk2", "mclk3"; 555c66ec88fSEmmanuel Vadot dmas = <&sdma2 4 24 0>, <&sdma2 5 24 0>; 556c66ec88fSEmmanuel Vadot dma-names = "rx", "tx"; 557c66ec88fSEmmanuel Vadot status = "disabled"; 558c66ec88fSEmmanuel Vadot }; 559c66ec88fSEmmanuel Vadot 560c66ec88fSEmmanuel Vadot sai5: sai@30040000 { 561c66ec88fSEmmanuel Vadot #sound-dai-cells = <0>; 562c66ec88fSEmmanuel Vadot compatible = "fsl,imx8mq-sai"; 563c66ec88fSEmmanuel Vadot reg = <0x30040000 0x10000>; 564c66ec88fSEmmanuel Vadot interrupts = <GIC_SPI 90 IRQ_TYPE_LEVEL_HIGH>; 565c66ec88fSEmmanuel Vadot clocks = <&clk IMX8MQ_CLK_SAI5_IPG>, 566c66ec88fSEmmanuel Vadot <&clk IMX8MQ_CLK_SAI5_ROOT>, 567c66ec88fSEmmanuel Vadot <&clk IMX8MQ_CLK_DUMMY>, <&clk IMX8MQ_CLK_DUMMY>; 568c66ec88fSEmmanuel Vadot clock-names = "bus", "mclk1", "mclk2", "mclk3"; 569c66ec88fSEmmanuel Vadot dmas = <&sdma2 2 24 0>, <&sdma2 3 24 0>; 570c66ec88fSEmmanuel Vadot dma-names = "rx", "tx"; 571c66ec88fSEmmanuel Vadot status = "disabled"; 572c66ec88fSEmmanuel Vadot }; 573c66ec88fSEmmanuel Vadot 574c66ec88fSEmmanuel Vadot sai4: sai@30050000 { 575c66ec88fSEmmanuel Vadot #sound-dai-cells = <0>; 576c66ec88fSEmmanuel Vadot compatible = "fsl,imx8mq-sai"; 577c66ec88fSEmmanuel Vadot reg = <0x30050000 0x10000>; 578c66ec88fSEmmanuel Vadot interrupts = <GIC_SPI 100 IRQ_TYPE_LEVEL_HIGH>; 579c66ec88fSEmmanuel Vadot clocks = <&clk IMX8MQ_CLK_SAI4_IPG>, 580c66ec88fSEmmanuel Vadot <&clk IMX8MQ_CLK_SAI4_ROOT>, 581c66ec88fSEmmanuel Vadot <&clk IMX8MQ_CLK_DUMMY>, <&clk IMX8MQ_CLK_DUMMY>; 582c66ec88fSEmmanuel Vadot clock-names = "bus", "mclk1", "mclk2", "mclk3"; 583c66ec88fSEmmanuel Vadot dmas = <&sdma2 0 24 0>, <&sdma2 1 24 0>; 584c66ec88fSEmmanuel Vadot dma-names = "rx", "tx"; 585c66ec88fSEmmanuel Vadot status = "disabled"; 586c66ec88fSEmmanuel Vadot }; 587c66ec88fSEmmanuel Vadot 588c66ec88fSEmmanuel Vadot gpio1: gpio@30200000 { 589c66ec88fSEmmanuel Vadot compatible = "fsl,imx8mq-gpio", "fsl,imx35-gpio"; 590c66ec88fSEmmanuel Vadot reg = <0x30200000 0x10000>; 591c66ec88fSEmmanuel Vadot interrupts = <GIC_SPI 64 IRQ_TYPE_LEVEL_HIGH>, 592c66ec88fSEmmanuel Vadot <GIC_SPI 65 IRQ_TYPE_LEVEL_HIGH>; 593c66ec88fSEmmanuel Vadot clocks = <&clk IMX8MQ_CLK_GPIO1_ROOT>; 594c66ec88fSEmmanuel Vadot gpio-controller; 595c66ec88fSEmmanuel Vadot #gpio-cells = <2>; 596c66ec88fSEmmanuel Vadot interrupt-controller; 597c66ec88fSEmmanuel Vadot #interrupt-cells = <2>; 598c66ec88fSEmmanuel Vadot gpio-ranges = <&iomuxc 0 10 30>; 599c66ec88fSEmmanuel Vadot }; 600c66ec88fSEmmanuel Vadot 601c66ec88fSEmmanuel Vadot gpio2: gpio@30210000 { 602c66ec88fSEmmanuel Vadot compatible = "fsl,imx8mq-gpio", "fsl,imx35-gpio"; 603c66ec88fSEmmanuel Vadot reg = <0x30210000 0x10000>; 604c66ec88fSEmmanuel Vadot interrupts = <GIC_SPI 66 IRQ_TYPE_LEVEL_HIGH>, 605c66ec88fSEmmanuel Vadot <GIC_SPI 67 IRQ_TYPE_LEVEL_HIGH>; 606c66ec88fSEmmanuel Vadot clocks = <&clk IMX8MQ_CLK_GPIO2_ROOT>; 607c66ec88fSEmmanuel Vadot gpio-controller; 608c66ec88fSEmmanuel Vadot #gpio-cells = <2>; 609c66ec88fSEmmanuel Vadot interrupt-controller; 610c66ec88fSEmmanuel Vadot #interrupt-cells = <2>; 611c66ec88fSEmmanuel Vadot gpio-ranges = <&iomuxc 0 40 21>; 612c66ec88fSEmmanuel Vadot }; 613c66ec88fSEmmanuel Vadot 614c66ec88fSEmmanuel Vadot gpio3: gpio@30220000 { 615c66ec88fSEmmanuel Vadot compatible = "fsl,imx8mq-gpio", "fsl,imx35-gpio"; 616c66ec88fSEmmanuel Vadot reg = <0x30220000 0x10000>; 617c66ec88fSEmmanuel Vadot interrupts = <GIC_SPI 68 IRQ_TYPE_LEVEL_HIGH>, 618c66ec88fSEmmanuel Vadot <GIC_SPI 69 IRQ_TYPE_LEVEL_HIGH>; 619c66ec88fSEmmanuel Vadot clocks = <&clk IMX8MQ_CLK_GPIO3_ROOT>; 620c66ec88fSEmmanuel Vadot gpio-controller; 621c66ec88fSEmmanuel Vadot #gpio-cells = <2>; 622c66ec88fSEmmanuel Vadot interrupt-controller; 623c66ec88fSEmmanuel Vadot #interrupt-cells = <2>; 624c66ec88fSEmmanuel Vadot gpio-ranges = <&iomuxc 0 61 26>; 625c66ec88fSEmmanuel Vadot }; 626c66ec88fSEmmanuel Vadot 627c66ec88fSEmmanuel Vadot gpio4: gpio@30230000 { 628c66ec88fSEmmanuel Vadot compatible = "fsl,imx8mq-gpio", "fsl,imx35-gpio"; 629c66ec88fSEmmanuel Vadot reg = <0x30230000 0x10000>; 630c66ec88fSEmmanuel Vadot interrupts = <GIC_SPI 70 IRQ_TYPE_LEVEL_HIGH>, 631c66ec88fSEmmanuel Vadot <GIC_SPI 71 IRQ_TYPE_LEVEL_HIGH>; 632c66ec88fSEmmanuel Vadot clocks = <&clk IMX8MQ_CLK_GPIO4_ROOT>; 633c66ec88fSEmmanuel Vadot gpio-controller; 634c66ec88fSEmmanuel Vadot #gpio-cells = <2>; 635c66ec88fSEmmanuel Vadot interrupt-controller; 636c66ec88fSEmmanuel Vadot #interrupt-cells = <2>; 637c66ec88fSEmmanuel Vadot gpio-ranges = <&iomuxc 0 87 32>; 638c66ec88fSEmmanuel Vadot }; 639c66ec88fSEmmanuel Vadot 640c66ec88fSEmmanuel Vadot gpio5: gpio@30240000 { 641c66ec88fSEmmanuel Vadot compatible = "fsl,imx8mq-gpio", "fsl,imx35-gpio"; 642c66ec88fSEmmanuel Vadot reg = <0x30240000 0x10000>; 643c66ec88fSEmmanuel Vadot interrupts = <GIC_SPI 72 IRQ_TYPE_LEVEL_HIGH>, 644c66ec88fSEmmanuel Vadot <GIC_SPI 73 IRQ_TYPE_LEVEL_HIGH>; 645c66ec88fSEmmanuel Vadot clocks = <&clk IMX8MQ_CLK_GPIO5_ROOT>; 646c66ec88fSEmmanuel Vadot gpio-controller; 647c66ec88fSEmmanuel Vadot #gpio-cells = <2>; 648c66ec88fSEmmanuel Vadot interrupt-controller; 649c66ec88fSEmmanuel Vadot #interrupt-cells = <2>; 650c66ec88fSEmmanuel Vadot gpio-ranges = <&iomuxc 0 119 30>; 651c66ec88fSEmmanuel Vadot }; 652c66ec88fSEmmanuel Vadot 653c66ec88fSEmmanuel Vadot tmu: tmu@30260000 { 654c66ec88fSEmmanuel Vadot compatible = "fsl,imx8mq-tmu"; 655c66ec88fSEmmanuel Vadot reg = <0x30260000 0x10000>; 656c66ec88fSEmmanuel Vadot interrupts = <GIC_SPI 49 IRQ_TYPE_LEVEL_HIGH>; 657c66ec88fSEmmanuel Vadot clocks = <&clk IMX8MQ_CLK_TMU_ROOT>; 658c66ec88fSEmmanuel Vadot little-endian; 659c66ec88fSEmmanuel Vadot fsl,tmu-range = <0xb0000 0xa0026 0x80048 0x70061>; 660e67e8565SEmmanuel Vadot fsl,tmu-calibration = <0x00000000 0x00000023>, 661e67e8565SEmmanuel Vadot <0x00000001 0x00000029>, 662e67e8565SEmmanuel Vadot <0x00000002 0x0000002f>, 663e67e8565SEmmanuel Vadot <0x00000003 0x00000035>, 664e67e8565SEmmanuel Vadot <0x00000004 0x0000003d>, 665e67e8565SEmmanuel Vadot <0x00000005 0x00000043>, 666e67e8565SEmmanuel Vadot <0x00000006 0x0000004b>, 667e67e8565SEmmanuel Vadot <0x00000007 0x00000051>, 668e67e8565SEmmanuel Vadot <0x00000008 0x00000057>, 669e67e8565SEmmanuel Vadot <0x00000009 0x0000005f>, 670e67e8565SEmmanuel Vadot <0x0000000a 0x00000067>, 671e67e8565SEmmanuel Vadot <0x0000000b 0x0000006f>, 672c66ec88fSEmmanuel Vadot 673e67e8565SEmmanuel Vadot <0x00010000 0x0000001b>, 674e67e8565SEmmanuel Vadot <0x00010001 0x00000023>, 675e67e8565SEmmanuel Vadot <0x00010002 0x0000002b>, 676e67e8565SEmmanuel Vadot <0x00010003 0x00000033>, 677e67e8565SEmmanuel Vadot <0x00010004 0x0000003b>, 678e67e8565SEmmanuel Vadot <0x00010005 0x00000043>, 679e67e8565SEmmanuel Vadot <0x00010006 0x0000004b>, 680e67e8565SEmmanuel Vadot <0x00010007 0x00000055>, 681e67e8565SEmmanuel Vadot <0x00010008 0x0000005d>, 682e67e8565SEmmanuel Vadot <0x00010009 0x00000067>, 683e67e8565SEmmanuel Vadot <0x0001000a 0x00000070>, 684c66ec88fSEmmanuel Vadot 685e67e8565SEmmanuel Vadot <0x00020000 0x00000017>, 686e67e8565SEmmanuel Vadot <0x00020001 0x00000023>, 687e67e8565SEmmanuel Vadot <0x00020002 0x0000002d>, 688e67e8565SEmmanuel Vadot <0x00020003 0x00000037>, 689e67e8565SEmmanuel Vadot <0x00020004 0x00000041>, 690e67e8565SEmmanuel Vadot <0x00020005 0x0000004b>, 691e67e8565SEmmanuel Vadot <0x00020006 0x00000057>, 692e67e8565SEmmanuel Vadot <0x00020007 0x00000063>, 693e67e8565SEmmanuel Vadot <0x00020008 0x0000006f>, 694c66ec88fSEmmanuel Vadot 695e67e8565SEmmanuel Vadot <0x00030000 0x00000015>, 696e67e8565SEmmanuel Vadot <0x00030001 0x00000021>, 697e67e8565SEmmanuel Vadot <0x00030002 0x0000002d>, 698e67e8565SEmmanuel Vadot <0x00030003 0x00000039>, 699e67e8565SEmmanuel Vadot <0x00030004 0x00000045>, 700e67e8565SEmmanuel Vadot <0x00030005 0x00000053>, 701e67e8565SEmmanuel Vadot <0x00030006 0x0000005f>, 702e67e8565SEmmanuel Vadot <0x00030007 0x00000071>; 703c66ec88fSEmmanuel Vadot #thermal-sensor-cells = <1>; 704c66ec88fSEmmanuel Vadot }; 705c66ec88fSEmmanuel Vadot 706c66ec88fSEmmanuel Vadot wdog1: watchdog@30280000 { 707c66ec88fSEmmanuel Vadot compatible = "fsl,imx8mq-wdt", "fsl,imx21-wdt"; 708c66ec88fSEmmanuel Vadot reg = <0x30280000 0x10000>; 709c66ec88fSEmmanuel Vadot interrupts = <GIC_SPI 78 IRQ_TYPE_LEVEL_HIGH>; 710c66ec88fSEmmanuel Vadot clocks = <&clk IMX8MQ_CLK_WDOG1_ROOT>; 711c66ec88fSEmmanuel Vadot status = "disabled"; 712c66ec88fSEmmanuel Vadot }; 713c66ec88fSEmmanuel Vadot 714c66ec88fSEmmanuel Vadot wdog2: watchdog@30290000 { 715c66ec88fSEmmanuel Vadot compatible = "fsl,imx8mq-wdt", "fsl,imx21-wdt"; 716c66ec88fSEmmanuel Vadot reg = <0x30290000 0x10000>; 717c66ec88fSEmmanuel Vadot interrupts = <GIC_SPI 79 IRQ_TYPE_LEVEL_HIGH>; 718c66ec88fSEmmanuel Vadot clocks = <&clk IMX8MQ_CLK_WDOG2_ROOT>; 719c66ec88fSEmmanuel Vadot status = "disabled"; 720c66ec88fSEmmanuel Vadot }; 721c66ec88fSEmmanuel Vadot 722c66ec88fSEmmanuel Vadot wdog3: watchdog@302a0000 { 723c66ec88fSEmmanuel Vadot compatible = "fsl,imx8mq-wdt", "fsl,imx21-wdt"; 724c66ec88fSEmmanuel Vadot reg = <0x302a0000 0x10000>; 725c66ec88fSEmmanuel Vadot interrupts = <GIC_SPI 10 IRQ_TYPE_LEVEL_HIGH>; 726c66ec88fSEmmanuel Vadot clocks = <&clk IMX8MQ_CLK_WDOG3_ROOT>; 727c66ec88fSEmmanuel Vadot status = "disabled"; 728c66ec88fSEmmanuel Vadot }; 729c66ec88fSEmmanuel Vadot 7307ef62cebSEmmanuel Vadot sdma2: dma-controller@302c0000 { 731c66ec88fSEmmanuel Vadot compatible = "fsl,imx8mq-sdma","fsl,imx7d-sdma"; 732c66ec88fSEmmanuel Vadot reg = <0x302c0000 0x10000>; 733c66ec88fSEmmanuel Vadot interrupts = <GIC_SPI 103 IRQ_TYPE_LEVEL_HIGH>; 734c66ec88fSEmmanuel Vadot clocks = <&clk IMX8MQ_CLK_SDMA2_ROOT>, 735c66ec88fSEmmanuel Vadot <&clk IMX8MQ_CLK_SDMA2_ROOT>; 736c66ec88fSEmmanuel Vadot clock-names = "ipg", "ahb"; 737c66ec88fSEmmanuel Vadot #dma-cells = <3>; 738c66ec88fSEmmanuel Vadot fsl,sdma-ram-script-name = "imx/sdma/sdma-imx7d.bin"; 739c66ec88fSEmmanuel Vadot }; 740c66ec88fSEmmanuel Vadot 741c66ec88fSEmmanuel Vadot lcdif: lcd-controller@30320000 { 742f126890aSEmmanuel Vadot compatible = "fsl,imx8mq-lcdif", "fsl,imx6sx-lcdif"; 743c66ec88fSEmmanuel Vadot reg = <0x30320000 0x10000>; 744c66ec88fSEmmanuel Vadot interrupts = <GIC_SPI 5 IRQ_TYPE_LEVEL_HIGH>; 745f126890aSEmmanuel Vadot clocks = <&clk IMX8MQ_CLK_LCDIF_PIXEL>, 746f126890aSEmmanuel Vadot <&clk IMX8MQ_CLK_DISP_APB_ROOT>, 747f126890aSEmmanuel Vadot <&clk IMX8MQ_CLK_DISP_AXI_ROOT>; 748f126890aSEmmanuel Vadot clock-names = "pix", "axi", "disp_axi"; 749c66ec88fSEmmanuel Vadot assigned-clocks = <&clk IMX8MQ_VIDEO_PLL1_REF_SEL>, 750c66ec88fSEmmanuel Vadot <&clk IMX8MQ_VIDEO_PLL1_BYPASS>, 751c66ec88fSEmmanuel Vadot <&clk IMX8MQ_CLK_LCDIF_PIXEL>, 752c66ec88fSEmmanuel Vadot <&clk IMX8MQ_VIDEO_PLL1>; 753c66ec88fSEmmanuel Vadot assigned-clock-parents = <&clk IMX8MQ_CLK_25M>, 754c66ec88fSEmmanuel Vadot <&clk IMX8MQ_VIDEO_PLL1>, 755c66ec88fSEmmanuel Vadot <&clk IMX8MQ_VIDEO_PLL1_OUT>; 756c66ec88fSEmmanuel Vadot assigned-clock-rates = <0>, <0>, <0>, <594000000>; 757c66ec88fSEmmanuel Vadot status = "disabled"; 7586be33864SEmmanuel Vadot 759e67e8565SEmmanuel Vadot port { 7606be33864SEmmanuel Vadot lcdif_mipi_dsi: endpoint { 7616be33864SEmmanuel Vadot remote-endpoint = <&mipi_dsi_lcdif_in>; 7626be33864SEmmanuel Vadot }; 7636be33864SEmmanuel Vadot }; 764c66ec88fSEmmanuel Vadot }; 765c66ec88fSEmmanuel Vadot 766c66ec88fSEmmanuel Vadot iomuxc: pinctrl@30330000 { 767c66ec88fSEmmanuel Vadot compatible = "fsl,imx8mq-iomuxc"; 768c66ec88fSEmmanuel Vadot reg = <0x30330000 0x10000>; 769c66ec88fSEmmanuel Vadot }; 770c66ec88fSEmmanuel Vadot 771c66ec88fSEmmanuel Vadot iomuxc_gpr: syscon@30340000 { 772cb7aa33aSEmmanuel Vadot compatible = "fsl,imx8mq-iomuxc-gpr", "syscon", "simple-mfd"; 773c66ec88fSEmmanuel Vadot reg = <0x30340000 0x10000>; 774c66ec88fSEmmanuel Vadot 775c66ec88fSEmmanuel Vadot mux: mux-controller { 776c66ec88fSEmmanuel Vadot compatible = "mmio-mux"; 777c66ec88fSEmmanuel Vadot #mux-control-cells = <1>; 778c66ec88fSEmmanuel Vadot mux-reg-masks = <0x34 0x00000004>; /* MIPI_MUX_SEL */ 779c66ec88fSEmmanuel Vadot }; 780c66ec88fSEmmanuel Vadot }; 781c66ec88fSEmmanuel Vadot 782c66ec88fSEmmanuel Vadot ocotp: efuse@30350000 { 783c66ec88fSEmmanuel Vadot compatible = "fsl,imx8mq-ocotp", "syscon"; 784c66ec88fSEmmanuel Vadot reg = <0x30350000 0x10000>; 785c66ec88fSEmmanuel Vadot clocks = <&clk IMX8MQ_CLK_OCOTP_ROOT>; 786c66ec88fSEmmanuel Vadot #address-cells = <1>; 787c66ec88fSEmmanuel Vadot #size-cells = <1>; 788c66ec88fSEmmanuel Vadot 789cb7aa33aSEmmanuel Vadot /* 790cb7aa33aSEmmanuel Vadot * The register address below maps to the MX8M 791cb7aa33aSEmmanuel Vadot * Fusemap Description Table entries this way. 792cb7aa33aSEmmanuel Vadot * Assuming 793cb7aa33aSEmmanuel Vadot * reg = <ADDR SIZE>; 794cb7aa33aSEmmanuel Vadot * then 795cb7aa33aSEmmanuel Vadot * Fuse Address = (ADDR * 4) + 0x400 796cb7aa33aSEmmanuel Vadot * Note that if SIZE is greater than 4, then 797cb7aa33aSEmmanuel Vadot * each subsequent fuse is located at offset 798cb7aa33aSEmmanuel Vadot * +0x10 in Fusemap Description Table (e.g. 799cb7aa33aSEmmanuel Vadot * reg = <0x4 0x8> describes fuses 0x410 and 800cb7aa33aSEmmanuel Vadot * 0x420). 801cb7aa33aSEmmanuel Vadot */ 802cb7aa33aSEmmanuel Vadot imx8mq_uid: soc-uid@4 { /* 0x410-0x420 */ 8035def4c47SEmmanuel Vadot reg = <0x4 0x8>; 8045def4c47SEmmanuel Vadot }; 8055def4c47SEmmanuel Vadot 806cb7aa33aSEmmanuel Vadot cpu_speed_grade: speed-grade@10 { /* 0x440 */ 807c66ec88fSEmmanuel Vadot reg = <0x10 4>; 808c66ec88fSEmmanuel Vadot }; 8095def4c47SEmmanuel Vadot 810cb7aa33aSEmmanuel Vadot fec_mac_address: mac-address@90 { /* 0x640 */ 8115def4c47SEmmanuel Vadot reg = <0x90 6>; 8125def4c47SEmmanuel Vadot }; 813c66ec88fSEmmanuel Vadot }; 814c66ec88fSEmmanuel Vadot 8158bab661aSEmmanuel Vadot anatop: clock-controller@30360000 { 8168bab661aSEmmanuel Vadot compatible = "fsl,imx8mq-anatop"; 817c66ec88fSEmmanuel Vadot reg = <0x30360000 0x10000>; 818c66ec88fSEmmanuel Vadot interrupts = <GIC_SPI 49 IRQ_TYPE_LEVEL_HIGH>; 8198bab661aSEmmanuel Vadot #clock-cells = <1>; 820c66ec88fSEmmanuel Vadot }; 821c66ec88fSEmmanuel Vadot 822c66ec88fSEmmanuel Vadot snvs: snvs@30370000 { 823c66ec88fSEmmanuel Vadot compatible = "fsl,sec-v4.0-mon", "syscon", "simple-mfd"; 824c66ec88fSEmmanuel Vadot reg = <0x30370000 0x10000>; 825c66ec88fSEmmanuel Vadot 826c66ec88fSEmmanuel Vadot snvs_rtc: snvs-rtc-lp { 827c66ec88fSEmmanuel Vadot compatible = "fsl,sec-v4.0-mon-rtc-lp"; 828c66ec88fSEmmanuel Vadot regmap = <&snvs>; 829c66ec88fSEmmanuel Vadot offset = <0x34>; 830c66ec88fSEmmanuel Vadot interrupts = <GIC_SPI 19 IRQ_TYPE_LEVEL_HIGH>, 831c66ec88fSEmmanuel Vadot <GIC_SPI 20 IRQ_TYPE_LEVEL_HIGH>; 832c66ec88fSEmmanuel Vadot clocks = <&clk IMX8MQ_CLK_SNVS_ROOT>; 833c66ec88fSEmmanuel Vadot clock-names = "snvs-rtc"; 834c66ec88fSEmmanuel Vadot }; 835c66ec88fSEmmanuel Vadot 836c66ec88fSEmmanuel Vadot snvs_pwrkey: snvs-powerkey { 837c66ec88fSEmmanuel Vadot compatible = "fsl,sec-v4.0-pwrkey"; 838c66ec88fSEmmanuel Vadot regmap = <&snvs>; 839c66ec88fSEmmanuel Vadot interrupts = <GIC_SPI 4 IRQ_TYPE_LEVEL_HIGH>; 840c66ec88fSEmmanuel Vadot clocks = <&clk IMX8MQ_CLK_SNVS_ROOT>; 841c66ec88fSEmmanuel Vadot clock-names = "snvs-pwrkey"; 842c66ec88fSEmmanuel Vadot linux,keycode = <KEY_POWER>; 843c66ec88fSEmmanuel Vadot wakeup-source; 844c66ec88fSEmmanuel Vadot status = "disabled"; 845c66ec88fSEmmanuel Vadot }; 846c66ec88fSEmmanuel Vadot }; 847c66ec88fSEmmanuel Vadot 848c66ec88fSEmmanuel Vadot clk: clock-controller@30380000 { 849c66ec88fSEmmanuel Vadot compatible = "fsl,imx8mq-ccm"; 850c66ec88fSEmmanuel Vadot reg = <0x30380000 0x10000>; 851c66ec88fSEmmanuel Vadot interrupts = <GIC_SPI 85 IRQ_TYPE_LEVEL_HIGH>, 852c66ec88fSEmmanuel Vadot <GIC_SPI 86 IRQ_TYPE_LEVEL_HIGH>; 853c66ec88fSEmmanuel Vadot #clock-cells = <1>; 854c66ec88fSEmmanuel Vadot clocks = <&ckil>, <&osc_25m>, <&osc_27m>, 855c66ec88fSEmmanuel Vadot <&clk_ext1>, <&clk_ext2>, 856c66ec88fSEmmanuel Vadot <&clk_ext3>, <&clk_ext4>; 857c66ec88fSEmmanuel Vadot clock-names = "ckil", "osc_25m", "osc_27m", 858c66ec88fSEmmanuel Vadot "clk_ext1", "clk_ext2", 859c66ec88fSEmmanuel Vadot "clk_ext3", "clk_ext4"; 860c66ec88fSEmmanuel Vadot assigned-clocks = <&clk IMX8MQ_CLK_A53_SRC>, 861c66ec88fSEmmanuel Vadot <&clk IMX8MQ_CLK_A53_CORE>, 8625def4c47SEmmanuel Vadot <&clk IMX8MQ_CLK_NOC>, 8635def4c47SEmmanuel Vadot <&clk IMX8MQ_CLK_AUDIO_AHB>, 8645def4c47SEmmanuel Vadot <&clk IMX8MQ_AUDIO_PLL1_BYPASS>, 8655def4c47SEmmanuel Vadot <&clk IMX8MQ_AUDIO_PLL2_BYPASS>, 8665def4c47SEmmanuel Vadot <&clk IMX8MQ_AUDIO_PLL1>, 8675def4c47SEmmanuel Vadot <&clk IMX8MQ_AUDIO_PLL2>; 868c66ec88fSEmmanuel Vadot assigned-clock-rates = <0>, <0>, 8695def4c47SEmmanuel Vadot <800000000>, 8705def4c47SEmmanuel Vadot <0>, 8715def4c47SEmmanuel Vadot <0>, 8725def4c47SEmmanuel Vadot <0>, 8735def4c47SEmmanuel Vadot <786432000>, 8745def4c47SEmmanuel Vadot <722534400>; 875c66ec88fSEmmanuel Vadot assigned-clock-parents = <&clk IMX8MQ_SYS1_PLL_800M>, 8765def4c47SEmmanuel Vadot <&clk IMX8MQ_ARM_PLL_OUT>, 8775def4c47SEmmanuel Vadot <0>, 8785def4c47SEmmanuel Vadot <&clk IMX8MQ_SYS2_PLL_500M>, 8795def4c47SEmmanuel Vadot <&clk IMX8MQ_AUDIO_PLL1>, 8805def4c47SEmmanuel Vadot <&clk IMX8MQ_AUDIO_PLL2>; 881c66ec88fSEmmanuel Vadot }; 882c66ec88fSEmmanuel Vadot 883c66ec88fSEmmanuel Vadot src: reset-controller@30390000 { 884c66ec88fSEmmanuel Vadot compatible = "fsl,imx8mq-src", "syscon"; 885c66ec88fSEmmanuel Vadot reg = <0x30390000 0x10000>; 886c66ec88fSEmmanuel Vadot interrupts = <GIC_SPI 89 IRQ_TYPE_LEVEL_HIGH>; 887c66ec88fSEmmanuel Vadot #reset-cells = <1>; 888c66ec88fSEmmanuel Vadot }; 889c66ec88fSEmmanuel Vadot 890c66ec88fSEmmanuel Vadot gpc: gpc@303a0000 { 891c66ec88fSEmmanuel Vadot compatible = "fsl,imx8mq-gpc"; 892c66ec88fSEmmanuel Vadot reg = <0x303a0000 0x10000>; 8936be33864SEmmanuel Vadot interrupts = <GIC_SPI 87 IRQ_TYPE_LEVEL_HIGH>; 894c66ec88fSEmmanuel Vadot interrupt-parent = <&gic>; 895c66ec88fSEmmanuel Vadot interrupt-controller; 896c66ec88fSEmmanuel Vadot #interrupt-cells = <3>; 897c66ec88fSEmmanuel Vadot 898c66ec88fSEmmanuel Vadot pgc { 899c66ec88fSEmmanuel Vadot #address-cells = <1>; 900c66ec88fSEmmanuel Vadot #size-cells = <0>; 901c66ec88fSEmmanuel Vadot 902c66ec88fSEmmanuel Vadot pgc_mipi: power-domain@0 { 903c66ec88fSEmmanuel Vadot #power-domain-cells = <0>; 904c66ec88fSEmmanuel Vadot reg = <IMX8M_POWER_DOMAIN_MIPI>; 905c66ec88fSEmmanuel Vadot }; 906c66ec88fSEmmanuel Vadot 907c66ec88fSEmmanuel Vadot /* 908c66ec88fSEmmanuel Vadot * As per comment in ATF source code: 909c66ec88fSEmmanuel Vadot * 910c66ec88fSEmmanuel Vadot * PCIE1 and PCIE2 share the 911c66ec88fSEmmanuel Vadot * same reset signal, if we 912c66ec88fSEmmanuel Vadot * power down PCIE2, PCIE1 913c66ec88fSEmmanuel Vadot * will be held in reset too. 914c66ec88fSEmmanuel Vadot * 915c66ec88fSEmmanuel Vadot * So instead of creating two 916c66ec88fSEmmanuel Vadot * separate power domains for 917c66ec88fSEmmanuel Vadot * PCIE1 and PCIE2 we create a 918c66ec88fSEmmanuel Vadot * link between both and use 919c66ec88fSEmmanuel Vadot * it as a shared PCIE power 920c66ec88fSEmmanuel Vadot * domain. 921c66ec88fSEmmanuel Vadot */ 922c66ec88fSEmmanuel Vadot pgc_pcie: power-domain@1 { 923c66ec88fSEmmanuel Vadot #power-domain-cells = <0>; 924c66ec88fSEmmanuel Vadot reg = <IMX8M_POWER_DOMAIN_PCIE1>; 925c66ec88fSEmmanuel Vadot power-domains = <&pgc_pcie2>; 926c66ec88fSEmmanuel Vadot }; 927c66ec88fSEmmanuel Vadot 928c66ec88fSEmmanuel Vadot pgc_otg1: power-domain@2 { 929c66ec88fSEmmanuel Vadot #power-domain-cells = <0>; 930c66ec88fSEmmanuel Vadot reg = <IMX8M_POWER_DOMAIN_USB_OTG1>; 931c66ec88fSEmmanuel Vadot }; 932c66ec88fSEmmanuel Vadot 933c66ec88fSEmmanuel Vadot pgc_otg2: power-domain@3 { 934c66ec88fSEmmanuel Vadot #power-domain-cells = <0>; 935c66ec88fSEmmanuel Vadot reg = <IMX8M_POWER_DOMAIN_USB_OTG2>; 936c66ec88fSEmmanuel Vadot }; 937c66ec88fSEmmanuel Vadot 938c66ec88fSEmmanuel Vadot pgc_ddr1: power-domain@4 { 939c66ec88fSEmmanuel Vadot #power-domain-cells = <0>; 940c66ec88fSEmmanuel Vadot reg = <IMX8M_POWER_DOMAIN_DDR1>; 941c66ec88fSEmmanuel Vadot }; 942c66ec88fSEmmanuel Vadot 943c66ec88fSEmmanuel Vadot pgc_gpu: power-domain@5 { 944c66ec88fSEmmanuel Vadot #power-domain-cells = <0>; 945c66ec88fSEmmanuel Vadot reg = <IMX8M_POWER_DOMAIN_GPU>; 946c66ec88fSEmmanuel Vadot clocks = <&clk IMX8MQ_CLK_GPU_ROOT>, 947c66ec88fSEmmanuel Vadot <&clk IMX8MQ_CLK_GPU_SHADER_DIV>, 948c66ec88fSEmmanuel Vadot <&clk IMX8MQ_CLK_GPU_AXI>, 949c66ec88fSEmmanuel Vadot <&clk IMX8MQ_CLK_GPU_AHB>; 950c66ec88fSEmmanuel Vadot }; 951c66ec88fSEmmanuel Vadot 952c66ec88fSEmmanuel Vadot pgc_vpu: power-domain@6 { 953c66ec88fSEmmanuel Vadot #power-domain-cells = <0>; 954c66ec88fSEmmanuel Vadot reg = <IMX8M_POWER_DOMAIN_VPU>; 955c9ccf3a3SEmmanuel Vadot clocks = <&clk IMX8MQ_CLK_VPU_DEC_ROOT>, 956c9ccf3a3SEmmanuel Vadot <&clk IMX8MQ_CLK_VPU_G1_ROOT>, 957c9ccf3a3SEmmanuel Vadot <&clk IMX8MQ_CLK_VPU_G2_ROOT>; 958c9ccf3a3SEmmanuel Vadot assigned-clocks = <&clk IMX8MQ_CLK_VPU_G1>, 959c9ccf3a3SEmmanuel Vadot <&clk IMX8MQ_CLK_VPU_G2>, 960c9ccf3a3SEmmanuel Vadot <&clk IMX8MQ_CLK_VPU_BUS>, 961c9ccf3a3SEmmanuel Vadot <&clk IMX8MQ_VPU_PLL_BYPASS>; 962c9ccf3a3SEmmanuel Vadot assigned-clock-parents = <&clk IMX8MQ_VPU_PLL_OUT>, 963c9ccf3a3SEmmanuel Vadot <&clk IMX8MQ_VPU_PLL_OUT>, 964c9ccf3a3SEmmanuel Vadot <&clk IMX8MQ_SYS1_PLL_800M>, 965c9ccf3a3SEmmanuel Vadot <&clk IMX8MQ_VPU_PLL>; 966c9ccf3a3SEmmanuel Vadot assigned-clock-rates = <600000000>, 967f126890aSEmmanuel Vadot <300000000>, 968c9ccf3a3SEmmanuel Vadot <800000000>, 969c9ccf3a3SEmmanuel Vadot <0>; 970c66ec88fSEmmanuel Vadot }; 971c66ec88fSEmmanuel Vadot 972c66ec88fSEmmanuel Vadot pgc_disp: power-domain@7 { 973c66ec88fSEmmanuel Vadot #power-domain-cells = <0>; 974c66ec88fSEmmanuel Vadot reg = <IMX8M_POWER_DOMAIN_DISP>; 975c66ec88fSEmmanuel Vadot }; 976c66ec88fSEmmanuel Vadot 977c66ec88fSEmmanuel Vadot pgc_mipi_csi1: power-domain@8 { 978c66ec88fSEmmanuel Vadot #power-domain-cells = <0>; 979c66ec88fSEmmanuel Vadot reg = <IMX8M_POWER_DOMAIN_MIPI_CSI1>; 980c66ec88fSEmmanuel Vadot }; 981c66ec88fSEmmanuel Vadot 982c66ec88fSEmmanuel Vadot pgc_mipi_csi2: power-domain@9 { 983c66ec88fSEmmanuel Vadot #power-domain-cells = <0>; 984c66ec88fSEmmanuel Vadot reg = <IMX8M_POWER_DOMAIN_MIPI_CSI2>; 985c66ec88fSEmmanuel Vadot }; 986c66ec88fSEmmanuel Vadot 987c66ec88fSEmmanuel Vadot pgc_pcie2: power-domain@a { 988c66ec88fSEmmanuel Vadot #power-domain-cells = <0>; 989c66ec88fSEmmanuel Vadot reg = <IMX8M_POWER_DOMAIN_PCIE2>; 990c66ec88fSEmmanuel Vadot }; 991c66ec88fSEmmanuel Vadot }; 992c66ec88fSEmmanuel Vadot }; 993c66ec88fSEmmanuel Vadot }; 994c66ec88fSEmmanuel Vadot 995b97ee269SEmmanuel Vadot aips2: bus@30400000 { /* AIPS2 */ 996c66ec88fSEmmanuel Vadot compatible = "fsl,aips-bus", "simple-bus"; 997c66ec88fSEmmanuel Vadot reg = <0x30400000 0x400000>; 998c66ec88fSEmmanuel Vadot #address-cells = <1>; 999c66ec88fSEmmanuel Vadot #size-cells = <1>; 1000c66ec88fSEmmanuel Vadot ranges = <0x30400000 0x30400000 0x400000>; 1001c66ec88fSEmmanuel Vadot 1002c66ec88fSEmmanuel Vadot pwm1: pwm@30660000 { 1003c66ec88fSEmmanuel Vadot compatible = "fsl,imx8mq-pwm", "fsl,imx27-pwm"; 1004c66ec88fSEmmanuel Vadot reg = <0x30660000 0x10000>; 1005c66ec88fSEmmanuel Vadot interrupts = <GIC_SPI 81 IRQ_TYPE_LEVEL_HIGH>; 1006c66ec88fSEmmanuel Vadot clocks = <&clk IMX8MQ_CLK_PWM1_ROOT>, 1007c66ec88fSEmmanuel Vadot <&clk IMX8MQ_CLK_PWM1_ROOT>; 1008c66ec88fSEmmanuel Vadot clock-names = "ipg", "per"; 1009d5b0e70fSEmmanuel Vadot #pwm-cells = <3>; 1010c66ec88fSEmmanuel Vadot status = "disabled"; 1011c66ec88fSEmmanuel Vadot }; 1012c66ec88fSEmmanuel Vadot 1013c66ec88fSEmmanuel Vadot pwm2: pwm@30670000 { 1014c66ec88fSEmmanuel Vadot compatible = "fsl,imx8mq-pwm", "fsl,imx27-pwm"; 1015c66ec88fSEmmanuel Vadot reg = <0x30670000 0x10000>; 1016c66ec88fSEmmanuel Vadot interrupts = <GIC_SPI 82 IRQ_TYPE_LEVEL_HIGH>; 1017c66ec88fSEmmanuel Vadot clocks = <&clk IMX8MQ_CLK_PWM2_ROOT>, 1018c66ec88fSEmmanuel Vadot <&clk IMX8MQ_CLK_PWM2_ROOT>; 1019c66ec88fSEmmanuel Vadot clock-names = "ipg", "per"; 1020d5b0e70fSEmmanuel Vadot #pwm-cells = <3>; 1021c66ec88fSEmmanuel Vadot status = "disabled"; 1022c66ec88fSEmmanuel Vadot }; 1023c66ec88fSEmmanuel Vadot 1024c66ec88fSEmmanuel Vadot pwm3: pwm@30680000 { 1025c66ec88fSEmmanuel Vadot compatible = "fsl,imx8mq-pwm", "fsl,imx27-pwm"; 1026c66ec88fSEmmanuel Vadot reg = <0x30680000 0x10000>; 1027c66ec88fSEmmanuel Vadot interrupts = <GIC_SPI 83 IRQ_TYPE_LEVEL_HIGH>; 1028c66ec88fSEmmanuel Vadot clocks = <&clk IMX8MQ_CLK_PWM3_ROOT>, 1029c66ec88fSEmmanuel Vadot <&clk IMX8MQ_CLK_PWM3_ROOT>; 1030c66ec88fSEmmanuel Vadot clock-names = "ipg", "per"; 1031d5b0e70fSEmmanuel Vadot #pwm-cells = <3>; 1032c66ec88fSEmmanuel Vadot status = "disabled"; 1033c66ec88fSEmmanuel Vadot }; 1034c66ec88fSEmmanuel Vadot 1035c66ec88fSEmmanuel Vadot pwm4: pwm@30690000 { 1036c66ec88fSEmmanuel Vadot compatible = "fsl,imx8mq-pwm", "fsl,imx27-pwm"; 1037c66ec88fSEmmanuel Vadot reg = <0x30690000 0x10000>; 1038c66ec88fSEmmanuel Vadot interrupts = <GIC_SPI 84 IRQ_TYPE_LEVEL_HIGH>; 1039c66ec88fSEmmanuel Vadot clocks = <&clk IMX8MQ_CLK_PWM4_ROOT>, 1040c66ec88fSEmmanuel Vadot <&clk IMX8MQ_CLK_PWM4_ROOT>; 1041c66ec88fSEmmanuel Vadot clock-names = "ipg", "per"; 1042d5b0e70fSEmmanuel Vadot #pwm-cells = <3>; 1043c66ec88fSEmmanuel Vadot status = "disabled"; 1044c66ec88fSEmmanuel Vadot }; 1045c66ec88fSEmmanuel Vadot 1046c66ec88fSEmmanuel Vadot system_counter: timer@306a0000 { 1047c66ec88fSEmmanuel Vadot compatible = "nxp,sysctr-timer"; 1048c66ec88fSEmmanuel Vadot reg = <0x306a0000 0x20000>; 1049c66ec88fSEmmanuel Vadot interrupts = <GIC_SPI 47 IRQ_TYPE_LEVEL_HIGH>; 1050c66ec88fSEmmanuel Vadot clocks = <&osc_25m>; 1051c66ec88fSEmmanuel Vadot clock-names = "per"; 1052c66ec88fSEmmanuel Vadot }; 1053c66ec88fSEmmanuel Vadot }; 1054c66ec88fSEmmanuel Vadot 1055b97ee269SEmmanuel Vadot aips3: bus@30800000 { /* AIPS3 */ 1056c66ec88fSEmmanuel Vadot compatible = "fsl,aips-bus", "simple-bus"; 1057c66ec88fSEmmanuel Vadot reg = <0x30800000 0x400000>; 1058c66ec88fSEmmanuel Vadot #address-cells = <1>; 1059c66ec88fSEmmanuel Vadot #size-cells = <1>; 1060c66ec88fSEmmanuel Vadot ranges = <0x30800000 0x30800000 0x400000>, 1061c66ec88fSEmmanuel Vadot <0x08000000 0x08000000 0x10000000>; 1062c66ec88fSEmmanuel Vadot 10635def4c47SEmmanuel Vadot spdif1: spdif@30810000 { 10645def4c47SEmmanuel Vadot compatible = "fsl,imx35-spdif"; 10655def4c47SEmmanuel Vadot reg = <0x30810000 0x10000>; 10665def4c47SEmmanuel Vadot interrupts = <GIC_SPI 6 IRQ_TYPE_LEVEL_HIGH>; 10675def4c47SEmmanuel Vadot clocks = <&clk IMX8MQ_CLK_IPG_ROOT>, /* core */ 10685def4c47SEmmanuel Vadot <&clk IMX8MQ_CLK_25M>, /* rxtx0 */ 10695def4c47SEmmanuel Vadot <&clk IMX8MQ_CLK_SPDIF1>, /* rxtx1 */ 10705def4c47SEmmanuel Vadot <&clk IMX8MQ_CLK_DUMMY>, /* rxtx2 */ 10715def4c47SEmmanuel Vadot <&clk IMX8MQ_CLK_DUMMY>, /* rxtx3 */ 10725def4c47SEmmanuel Vadot <&clk IMX8MQ_CLK_DUMMY>, /* rxtx4 */ 10735def4c47SEmmanuel Vadot <&clk IMX8MQ_CLK_IPG_ROOT>, /* rxtx5 */ 10745def4c47SEmmanuel Vadot <&clk IMX8MQ_CLK_DUMMY>, /* rxtx6 */ 10755def4c47SEmmanuel Vadot <&clk IMX8MQ_CLK_DUMMY>, /* rxtx7 */ 10765def4c47SEmmanuel Vadot <&clk IMX8MQ_CLK_DUMMY>; /* spba */ 10775def4c47SEmmanuel Vadot clock-names = "core", "rxtx0", 10785def4c47SEmmanuel Vadot "rxtx1", "rxtx2", 10795def4c47SEmmanuel Vadot "rxtx3", "rxtx4", 10805def4c47SEmmanuel Vadot "rxtx5", "rxtx6", 10815def4c47SEmmanuel Vadot "rxtx7", "spba"; 10825def4c47SEmmanuel Vadot dmas = <&sdma1 8 18 0>, <&sdma1 9 18 0>; 10835def4c47SEmmanuel Vadot dma-names = "rx", "tx"; 10845def4c47SEmmanuel Vadot status = "disabled"; 10855def4c47SEmmanuel Vadot }; 10865def4c47SEmmanuel Vadot 1087c66ec88fSEmmanuel Vadot ecspi1: spi@30820000 { 1088c66ec88fSEmmanuel Vadot #address-cells = <1>; 1089c66ec88fSEmmanuel Vadot #size-cells = <0>; 1090c66ec88fSEmmanuel Vadot compatible = "fsl,imx8mq-ecspi", "fsl,imx51-ecspi"; 1091c66ec88fSEmmanuel Vadot reg = <0x30820000 0x10000>; 1092c66ec88fSEmmanuel Vadot interrupts = <GIC_SPI 31 IRQ_TYPE_LEVEL_HIGH>; 1093c66ec88fSEmmanuel Vadot clocks = <&clk IMX8MQ_CLK_ECSPI1_ROOT>, 1094c66ec88fSEmmanuel Vadot <&clk IMX8MQ_CLK_ECSPI1_ROOT>; 1095c66ec88fSEmmanuel Vadot clock-names = "ipg", "per"; 10965def4c47SEmmanuel Vadot dmas = <&sdma1 0 7 1>, <&sdma1 1 7 2>; 10975def4c47SEmmanuel Vadot dma-names = "rx", "tx"; 1098c66ec88fSEmmanuel Vadot status = "disabled"; 1099c66ec88fSEmmanuel Vadot }; 1100c66ec88fSEmmanuel Vadot 1101c66ec88fSEmmanuel Vadot ecspi2: spi@30830000 { 1102c66ec88fSEmmanuel Vadot #address-cells = <1>; 1103c66ec88fSEmmanuel Vadot #size-cells = <0>; 1104c66ec88fSEmmanuel Vadot compatible = "fsl,imx8mq-ecspi", "fsl,imx51-ecspi"; 1105c66ec88fSEmmanuel Vadot reg = <0x30830000 0x10000>; 1106c66ec88fSEmmanuel Vadot interrupts = <GIC_SPI 32 IRQ_TYPE_LEVEL_HIGH>; 1107c66ec88fSEmmanuel Vadot clocks = <&clk IMX8MQ_CLK_ECSPI2_ROOT>, 1108c66ec88fSEmmanuel Vadot <&clk IMX8MQ_CLK_ECSPI2_ROOT>; 1109c66ec88fSEmmanuel Vadot clock-names = "ipg", "per"; 11105def4c47SEmmanuel Vadot dmas = <&sdma1 2 7 1>, <&sdma1 3 7 2>; 11115def4c47SEmmanuel Vadot dma-names = "rx", "tx"; 1112c66ec88fSEmmanuel Vadot status = "disabled"; 1113c66ec88fSEmmanuel Vadot }; 1114c66ec88fSEmmanuel Vadot 1115c66ec88fSEmmanuel Vadot ecspi3: spi@30840000 { 1116c66ec88fSEmmanuel Vadot #address-cells = <1>; 1117c66ec88fSEmmanuel Vadot #size-cells = <0>; 1118c66ec88fSEmmanuel Vadot compatible = "fsl,imx8mq-ecspi", "fsl,imx51-ecspi"; 1119c66ec88fSEmmanuel Vadot reg = <0x30840000 0x10000>; 1120c66ec88fSEmmanuel Vadot interrupts = <GIC_SPI 33 IRQ_TYPE_LEVEL_HIGH>; 1121c66ec88fSEmmanuel Vadot clocks = <&clk IMX8MQ_CLK_ECSPI3_ROOT>, 1122c66ec88fSEmmanuel Vadot <&clk IMX8MQ_CLK_ECSPI3_ROOT>; 1123c66ec88fSEmmanuel Vadot clock-names = "ipg", "per"; 11245def4c47SEmmanuel Vadot dmas = <&sdma1 4 7 1>, <&sdma1 5 7 2>; 11255def4c47SEmmanuel Vadot dma-names = "rx", "tx"; 1126c66ec88fSEmmanuel Vadot status = "disabled"; 1127c66ec88fSEmmanuel Vadot }; 1128c66ec88fSEmmanuel Vadot 1129c66ec88fSEmmanuel Vadot uart1: serial@30860000 { 1130c66ec88fSEmmanuel Vadot compatible = "fsl,imx8mq-uart", 1131c66ec88fSEmmanuel Vadot "fsl,imx6q-uart"; 1132c66ec88fSEmmanuel Vadot reg = <0x30860000 0x10000>; 1133c66ec88fSEmmanuel Vadot interrupts = <GIC_SPI 26 IRQ_TYPE_LEVEL_HIGH>; 1134c66ec88fSEmmanuel Vadot clocks = <&clk IMX8MQ_CLK_UART1_ROOT>, 1135c66ec88fSEmmanuel Vadot <&clk IMX8MQ_CLK_UART1_ROOT>; 1136c66ec88fSEmmanuel Vadot clock-names = "ipg", "per"; 1137fac71e4eSEmmanuel Vadot dmas = <&sdma1 22 4 0>, <&sdma1 23 4 0>; 1138fac71e4eSEmmanuel Vadot dma-names = "rx", "tx"; 1139c66ec88fSEmmanuel Vadot status = "disabled"; 1140c66ec88fSEmmanuel Vadot }; 1141c66ec88fSEmmanuel Vadot 1142c66ec88fSEmmanuel Vadot uart3: serial@30880000 { 1143c66ec88fSEmmanuel Vadot compatible = "fsl,imx8mq-uart", 1144c66ec88fSEmmanuel Vadot "fsl,imx6q-uart"; 1145c66ec88fSEmmanuel Vadot reg = <0x30880000 0x10000>; 1146c66ec88fSEmmanuel Vadot interrupts = <GIC_SPI 28 IRQ_TYPE_LEVEL_HIGH>; 1147c66ec88fSEmmanuel Vadot clocks = <&clk IMX8MQ_CLK_UART3_ROOT>, 1148c66ec88fSEmmanuel Vadot <&clk IMX8MQ_CLK_UART3_ROOT>; 1149c66ec88fSEmmanuel Vadot clock-names = "ipg", "per"; 1150fac71e4eSEmmanuel Vadot dmas = <&sdma1 26 4 0>, <&sdma1 27 4 0>; 1151fac71e4eSEmmanuel Vadot dma-names = "rx", "tx"; 1152c66ec88fSEmmanuel Vadot status = "disabled"; 1153c66ec88fSEmmanuel Vadot }; 1154c66ec88fSEmmanuel Vadot 1155c66ec88fSEmmanuel Vadot uart2: serial@30890000 { 1156c66ec88fSEmmanuel Vadot compatible = "fsl,imx8mq-uart", 1157c66ec88fSEmmanuel Vadot "fsl,imx6q-uart"; 1158c66ec88fSEmmanuel Vadot reg = <0x30890000 0x10000>; 1159c66ec88fSEmmanuel Vadot interrupts = <GIC_SPI 27 IRQ_TYPE_LEVEL_HIGH>; 1160c66ec88fSEmmanuel Vadot clocks = <&clk IMX8MQ_CLK_UART2_ROOT>, 1161c66ec88fSEmmanuel Vadot <&clk IMX8MQ_CLK_UART2_ROOT>; 1162c66ec88fSEmmanuel Vadot clock-names = "ipg", "per"; 1163fac71e4eSEmmanuel Vadot dmas = <&sdma1 24 4 0>, <&sdma1 25 4 0>; 1164fac71e4eSEmmanuel Vadot dma-names = "rx", "tx"; 1165c66ec88fSEmmanuel Vadot status = "disabled"; 1166c66ec88fSEmmanuel Vadot }; 1167c66ec88fSEmmanuel Vadot 11685def4c47SEmmanuel Vadot spdif2: spdif@308a0000 { 11695def4c47SEmmanuel Vadot compatible = "fsl,imx35-spdif"; 11705def4c47SEmmanuel Vadot reg = <0x308a0000 0x10000>; 11715def4c47SEmmanuel Vadot interrupts = <GIC_SPI 13 IRQ_TYPE_LEVEL_HIGH>; 11725def4c47SEmmanuel Vadot clocks = <&clk IMX8MQ_CLK_IPG_ROOT>, /* core */ 11735def4c47SEmmanuel Vadot <&clk IMX8MQ_CLK_25M>, /* rxtx0 */ 11745def4c47SEmmanuel Vadot <&clk IMX8MQ_CLK_SPDIF2>, /* rxtx1 */ 11755def4c47SEmmanuel Vadot <&clk IMX8MQ_CLK_DUMMY>, /* rxtx2 */ 11765def4c47SEmmanuel Vadot <&clk IMX8MQ_CLK_DUMMY>, /* rxtx3 */ 11775def4c47SEmmanuel Vadot <&clk IMX8MQ_CLK_DUMMY>, /* rxtx4 */ 11785def4c47SEmmanuel Vadot <&clk IMX8MQ_CLK_IPG_ROOT>, /* rxtx5 */ 11795def4c47SEmmanuel Vadot <&clk IMX8MQ_CLK_DUMMY>, /* rxtx6 */ 11805def4c47SEmmanuel Vadot <&clk IMX8MQ_CLK_DUMMY>, /* rxtx7 */ 11815def4c47SEmmanuel Vadot <&clk IMX8MQ_CLK_DUMMY>; /* spba */ 11825def4c47SEmmanuel Vadot clock-names = "core", "rxtx0", 11835def4c47SEmmanuel Vadot "rxtx1", "rxtx2", 11845def4c47SEmmanuel Vadot "rxtx3", "rxtx4", 11855def4c47SEmmanuel Vadot "rxtx5", "rxtx6", 11865def4c47SEmmanuel Vadot "rxtx7", "spba"; 11875def4c47SEmmanuel Vadot dmas = <&sdma1 16 18 0>, <&sdma1 17 18 0>; 11885def4c47SEmmanuel Vadot dma-names = "rx", "tx"; 11895def4c47SEmmanuel Vadot status = "disabled"; 11905def4c47SEmmanuel Vadot }; 11915def4c47SEmmanuel Vadot 1192c66ec88fSEmmanuel Vadot sai2: sai@308b0000 { 1193c66ec88fSEmmanuel Vadot #sound-dai-cells = <0>; 1194c66ec88fSEmmanuel Vadot compatible = "fsl,imx8mq-sai"; 1195c66ec88fSEmmanuel Vadot reg = <0x308b0000 0x10000>; 1196c66ec88fSEmmanuel Vadot interrupts = <GIC_SPI 96 IRQ_TYPE_LEVEL_HIGH>; 1197c66ec88fSEmmanuel Vadot clocks = <&clk IMX8MQ_CLK_SAI2_IPG>, 1198c66ec88fSEmmanuel Vadot <&clk IMX8MQ_CLK_SAI2_ROOT>, 1199c66ec88fSEmmanuel Vadot <&clk IMX8MQ_CLK_DUMMY>, <&clk IMX8MQ_CLK_DUMMY>; 1200c66ec88fSEmmanuel Vadot clock-names = "bus", "mclk1", "mclk2", "mclk3"; 1201c66ec88fSEmmanuel Vadot dmas = <&sdma1 10 24 0>, <&sdma1 11 24 0>; 1202c66ec88fSEmmanuel Vadot dma-names = "rx", "tx"; 1203c66ec88fSEmmanuel Vadot status = "disabled"; 1204c66ec88fSEmmanuel Vadot }; 1205c66ec88fSEmmanuel Vadot 1206c66ec88fSEmmanuel Vadot sai3: sai@308c0000 { 1207c66ec88fSEmmanuel Vadot #sound-dai-cells = <0>; 1208c66ec88fSEmmanuel Vadot compatible = "fsl,imx8mq-sai"; 1209c66ec88fSEmmanuel Vadot reg = <0x308c0000 0x10000>; 1210c66ec88fSEmmanuel Vadot interrupts = <GIC_SPI 50 IRQ_TYPE_LEVEL_HIGH>; 1211c66ec88fSEmmanuel Vadot clocks = <&clk IMX8MQ_CLK_SAI3_IPG>, 1212c66ec88fSEmmanuel Vadot <&clk IMX8MQ_CLK_SAI3_ROOT>, 1213c66ec88fSEmmanuel Vadot <&clk IMX8MQ_CLK_DUMMY>, <&clk IMX8MQ_CLK_DUMMY>; 1214c66ec88fSEmmanuel Vadot clock-names = "bus", "mclk1", "mclk2", "mclk3"; 1215c66ec88fSEmmanuel Vadot dmas = <&sdma1 12 24 0>, <&sdma1 13 24 0>; 1216c66ec88fSEmmanuel Vadot dma-names = "rx", "tx"; 1217c66ec88fSEmmanuel Vadot status = "disabled"; 1218c66ec88fSEmmanuel Vadot }; 1219c66ec88fSEmmanuel Vadot 1220c66ec88fSEmmanuel Vadot crypto: crypto@30900000 { 1221c66ec88fSEmmanuel Vadot compatible = "fsl,sec-v4.0"; 1222c66ec88fSEmmanuel Vadot #address-cells = <1>; 1223c66ec88fSEmmanuel Vadot #size-cells = <1>; 1224c66ec88fSEmmanuel Vadot reg = <0x30900000 0x40000>; 1225c66ec88fSEmmanuel Vadot ranges = <0 0x30900000 0x40000>; 1226c66ec88fSEmmanuel Vadot interrupts = <GIC_SPI 91 IRQ_TYPE_LEVEL_HIGH>; 1227c66ec88fSEmmanuel Vadot clocks = <&clk IMX8MQ_CLK_AHB>, 1228c66ec88fSEmmanuel Vadot <&clk IMX8MQ_CLK_IPG_ROOT>; 1229c66ec88fSEmmanuel Vadot clock-names = "aclk", "ipg"; 1230c66ec88fSEmmanuel Vadot 1231c66ec88fSEmmanuel Vadot sec_jr0: jr@1000 { 1232c66ec88fSEmmanuel Vadot compatible = "fsl,sec-v4.0-job-ring"; 1233c66ec88fSEmmanuel Vadot reg = <0x1000 0x1000>; 1234c66ec88fSEmmanuel Vadot interrupts = <GIC_SPI 105 IRQ_TYPE_LEVEL_HIGH>; 1235b97ee269SEmmanuel Vadot status = "disabled"; 1236c66ec88fSEmmanuel Vadot }; 1237c66ec88fSEmmanuel Vadot 1238c66ec88fSEmmanuel Vadot sec_jr1: jr@2000 { 1239c66ec88fSEmmanuel Vadot compatible = "fsl,sec-v4.0-job-ring"; 1240c66ec88fSEmmanuel Vadot reg = <0x2000 0x1000>; 1241c66ec88fSEmmanuel Vadot interrupts = <GIC_SPI 106 IRQ_TYPE_LEVEL_HIGH>; 1242c66ec88fSEmmanuel Vadot }; 1243c66ec88fSEmmanuel Vadot 1244c66ec88fSEmmanuel Vadot sec_jr2: jr@3000 { 1245c66ec88fSEmmanuel Vadot compatible = "fsl,sec-v4.0-job-ring"; 1246c66ec88fSEmmanuel Vadot reg = <0x3000 0x1000>; 1247c66ec88fSEmmanuel Vadot interrupts = <GIC_SPI 114 IRQ_TYPE_LEVEL_HIGH>; 1248c66ec88fSEmmanuel Vadot }; 1249c66ec88fSEmmanuel Vadot }; 1250c66ec88fSEmmanuel Vadot 1251f126890aSEmmanuel Vadot mipi_dsi: dsi@30a00000 { 12526be33864SEmmanuel Vadot compatible = "fsl,imx8mq-nwl-dsi"; 12536be33864SEmmanuel Vadot reg = <0x30a00000 0x300>; 1254f126890aSEmmanuel Vadot #address-cells = <1>; 1255f126890aSEmmanuel Vadot #size-cells = <0>; 12566be33864SEmmanuel Vadot clocks = <&clk IMX8MQ_CLK_DSI_CORE>, 12576be33864SEmmanuel Vadot <&clk IMX8MQ_CLK_DSI_AHB>, 12586be33864SEmmanuel Vadot <&clk IMX8MQ_CLK_DSI_IPG_DIV>, 12596be33864SEmmanuel Vadot <&clk IMX8MQ_CLK_DSI_PHY_REF>, 12606be33864SEmmanuel Vadot <&clk IMX8MQ_CLK_LCDIF_PIXEL>; 12616be33864SEmmanuel Vadot clock-names = "core", "rx_esc", "tx_esc", "phy_ref", "lcdif"; 12626be33864SEmmanuel Vadot assigned-clocks = <&clk IMX8MQ_CLK_DSI_AHB>, 12636be33864SEmmanuel Vadot <&clk IMX8MQ_CLK_DSI_CORE>, 12646be33864SEmmanuel Vadot <&clk IMX8MQ_CLK_DSI_IPG_DIV>; 12656be33864SEmmanuel Vadot assigned-clock-parents = <&clk IMX8MQ_SYS1_PLL_80M>, 12666be33864SEmmanuel Vadot <&clk IMX8MQ_SYS1_PLL_266M>; 12676be33864SEmmanuel Vadot assigned-clock-rates = <80000000>, <266000000>, <20000000>; 12686be33864SEmmanuel Vadot interrupts = <GIC_SPI 34 IRQ_TYPE_LEVEL_HIGH>; 12696be33864SEmmanuel Vadot mux-controls = <&mux 0>; 12706be33864SEmmanuel Vadot power-domains = <&pgc_mipi>; 12716be33864SEmmanuel Vadot phys = <&dphy>; 12726be33864SEmmanuel Vadot phy-names = "dphy"; 12736be33864SEmmanuel Vadot resets = <&src IMX8MQ_RESET_MIPI_DSI_RESET_BYTE_N>, 12746be33864SEmmanuel Vadot <&src IMX8MQ_RESET_MIPI_DSI_DPI_RESET_N>, 12756be33864SEmmanuel Vadot <&src IMX8MQ_RESET_MIPI_DSI_ESC_RESET_N>, 12766be33864SEmmanuel Vadot <&src IMX8MQ_RESET_MIPI_DSI_PCLK_RESET_N>; 12776be33864SEmmanuel Vadot reset-names = "byte", "dpi", "esc", "pclk"; 12786be33864SEmmanuel Vadot status = "disabled"; 12796be33864SEmmanuel Vadot 12806be33864SEmmanuel Vadot ports { 12816be33864SEmmanuel Vadot #address-cells = <1>; 12826be33864SEmmanuel Vadot #size-cells = <0>; 12836be33864SEmmanuel Vadot 12846be33864SEmmanuel Vadot port@0 { 12856be33864SEmmanuel Vadot reg = <0>; 12866be33864SEmmanuel Vadot #address-cells = <1>; 12876be33864SEmmanuel Vadot #size-cells = <0>; 12886be33864SEmmanuel Vadot mipi_dsi_lcdif_in: endpoint@0 { 12896be33864SEmmanuel Vadot reg = <0>; 12906be33864SEmmanuel Vadot remote-endpoint = <&lcdif_mipi_dsi>; 12916be33864SEmmanuel Vadot }; 12926be33864SEmmanuel Vadot }; 12936be33864SEmmanuel Vadot }; 12946be33864SEmmanuel Vadot }; 12956be33864SEmmanuel Vadot 1296c66ec88fSEmmanuel Vadot dphy: dphy@30a00300 { 1297c66ec88fSEmmanuel Vadot compatible = "fsl,imx8mq-mipi-dphy"; 1298c66ec88fSEmmanuel Vadot reg = <0x30a00300 0x100>; 1299c66ec88fSEmmanuel Vadot clocks = <&clk IMX8MQ_CLK_DSI_PHY_REF>; 1300c66ec88fSEmmanuel Vadot clock-names = "phy_ref"; 13015def4c47SEmmanuel Vadot assigned-clocks = <&clk IMX8MQ_VIDEO_PLL1_REF_SEL>, 13025def4c47SEmmanuel Vadot <&clk IMX8MQ_VIDEO_PLL1_BYPASS>, 13035def4c47SEmmanuel Vadot <&clk IMX8MQ_CLK_DSI_PHY_REF>, 13045def4c47SEmmanuel Vadot <&clk IMX8MQ_VIDEO_PLL1>; 13055def4c47SEmmanuel Vadot assigned-clock-parents = <&clk IMX8MQ_CLK_25M>, 13065def4c47SEmmanuel Vadot <&clk IMX8MQ_VIDEO_PLL1>, 13075def4c47SEmmanuel Vadot <&clk IMX8MQ_VIDEO_PLL1_OUT>; 13085def4c47SEmmanuel Vadot assigned-clock-rates = <0>, <0>, <24000000>, <594000000>; 1309c66ec88fSEmmanuel Vadot #phy-cells = <0>; 1310c66ec88fSEmmanuel Vadot power-domains = <&pgc_mipi>; 1311c66ec88fSEmmanuel Vadot status = "disabled"; 1312c66ec88fSEmmanuel Vadot }; 1313c66ec88fSEmmanuel Vadot 1314c66ec88fSEmmanuel Vadot i2c1: i2c@30a20000 { 1315c66ec88fSEmmanuel Vadot compatible = "fsl,imx8mq-i2c", "fsl,imx21-i2c"; 1316c66ec88fSEmmanuel Vadot reg = <0x30a20000 0x10000>; 1317c66ec88fSEmmanuel Vadot interrupts = <GIC_SPI 35 IRQ_TYPE_LEVEL_HIGH>; 1318c66ec88fSEmmanuel Vadot clocks = <&clk IMX8MQ_CLK_I2C1_ROOT>; 1319c66ec88fSEmmanuel Vadot #address-cells = <1>; 1320c66ec88fSEmmanuel Vadot #size-cells = <0>; 1321c66ec88fSEmmanuel Vadot status = "disabled"; 1322c66ec88fSEmmanuel Vadot }; 1323c66ec88fSEmmanuel Vadot 1324c66ec88fSEmmanuel Vadot i2c2: i2c@30a30000 { 1325c66ec88fSEmmanuel Vadot compatible = "fsl,imx8mq-i2c", "fsl,imx21-i2c"; 1326c66ec88fSEmmanuel Vadot reg = <0x30a30000 0x10000>; 1327c66ec88fSEmmanuel Vadot interrupts = <GIC_SPI 36 IRQ_TYPE_LEVEL_HIGH>; 1328c66ec88fSEmmanuel Vadot clocks = <&clk IMX8MQ_CLK_I2C2_ROOT>; 1329c66ec88fSEmmanuel Vadot #address-cells = <1>; 1330c66ec88fSEmmanuel Vadot #size-cells = <0>; 1331c66ec88fSEmmanuel Vadot status = "disabled"; 1332c66ec88fSEmmanuel Vadot }; 1333c66ec88fSEmmanuel Vadot 1334c66ec88fSEmmanuel Vadot i2c3: i2c@30a40000 { 1335c66ec88fSEmmanuel Vadot compatible = "fsl,imx8mq-i2c", "fsl,imx21-i2c"; 1336c66ec88fSEmmanuel Vadot reg = <0x30a40000 0x10000>; 1337c66ec88fSEmmanuel Vadot interrupts = <GIC_SPI 37 IRQ_TYPE_LEVEL_HIGH>; 1338c66ec88fSEmmanuel Vadot clocks = <&clk IMX8MQ_CLK_I2C3_ROOT>; 1339c66ec88fSEmmanuel Vadot #address-cells = <1>; 1340c66ec88fSEmmanuel Vadot #size-cells = <0>; 1341c66ec88fSEmmanuel Vadot status = "disabled"; 1342c66ec88fSEmmanuel Vadot }; 1343c66ec88fSEmmanuel Vadot 1344c66ec88fSEmmanuel Vadot i2c4: i2c@30a50000 { 1345c66ec88fSEmmanuel Vadot compatible = "fsl,imx8mq-i2c", "fsl,imx21-i2c"; 1346c66ec88fSEmmanuel Vadot reg = <0x30a50000 0x10000>; 1347c66ec88fSEmmanuel Vadot interrupts = <GIC_SPI 38 IRQ_TYPE_LEVEL_HIGH>; 1348c66ec88fSEmmanuel Vadot clocks = <&clk IMX8MQ_CLK_I2C4_ROOT>; 1349c66ec88fSEmmanuel Vadot #address-cells = <1>; 1350c66ec88fSEmmanuel Vadot #size-cells = <0>; 1351c66ec88fSEmmanuel Vadot status = "disabled"; 1352c66ec88fSEmmanuel Vadot }; 1353c66ec88fSEmmanuel Vadot 1354c66ec88fSEmmanuel Vadot uart4: serial@30a60000 { 1355c66ec88fSEmmanuel Vadot compatible = "fsl,imx8mq-uart", 1356c66ec88fSEmmanuel Vadot "fsl,imx6q-uart"; 1357c66ec88fSEmmanuel Vadot reg = <0x30a60000 0x10000>; 1358c66ec88fSEmmanuel Vadot interrupts = <GIC_SPI 29 IRQ_TYPE_LEVEL_HIGH>; 1359c66ec88fSEmmanuel Vadot clocks = <&clk IMX8MQ_CLK_UART4_ROOT>, 1360c66ec88fSEmmanuel Vadot <&clk IMX8MQ_CLK_UART4_ROOT>; 1361c66ec88fSEmmanuel Vadot clock-names = "ipg", "per"; 1362fac71e4eSEmmanuel Vadot dmas = <&sdma1 28 4 0>, <&sdma1 29 4 0>; 1363fac71e4eSEmmanuel Vadot dma-names = "rx", "tx"; 1364c66ec88fSEmmanuel Vadot status = "disabled"; 1365c66ec88fSEmmanuel Vadot }; 1366c66ec88fSEmmanuel Vadot 1367354d7675SEmmanuel Vadot mipi_csi1: csi@30a70000 { 1368354d7675SEmmanuel Vadot compatible = "fsl,imx8mq-mipi-csi2"; 1369354d7675SEmmanuel Vadot reg = <0x30a70000 0x1000>; 1370354d7675SEmmanuel Vadot clocks = <&clk IMX8MQ_CLK_CSI1_CORE>, 1371354d7675SEmmanuel Vadot <&clk IMX8MQ_CLK_CSI1_ESC>, 1372354d7675SEmmanuel Vadot <&clk IMX8MQ_CLK_CSI1_PHY_REF>; 1373354d7675SEmmanuel Vadot clock-names = "core", "esc", "ui"; 1374354d7675SEmmanuel Vadot assigned-clocks = <&clk IMX8MQ_CLK_CSI1_CORE>, 1375354d7675SEmmanuel Vadot <&clk IMX8MQ_CLK_CSI1_PHY_REF>, 1376354d7675SEmmanuel Vadot <&clk IMX8MQ_CLK_CSI1_ESC>; 1377354d7675SEmmanuel Vadot assigned-clock-rates = <266000000>, <333000000>, <66000000>; 1378354d7675SEmmanuel Vadot assigned-clock-parents = <&clk IMX8MQ_SYS1_PLL_266M>, 1379354d7675SEmmanuel Vadot <&clk IMX8MQ_SYS2_PLL_1000M>, 1380354d7675SEmmanuel Vadot <&clk IMX8MQ_SYS1_PLL_800M>; 1381354d7675SEmmanuel Vadot power-domains = <&pgc_mipi_csi1>; 1382354d7675SEmmanuel Vadot resets = <&src IMX8MQ_RESET_MIPI_CSI1_CORE_RESET>, 1383354d7675SEmmanuel Vadot <&src IMX8MQ_RESET_MIPI_CSI1_PHY_REF_RESET>, 1384354d7675SEmmanuel Vadot <&src IMX8MQ_RESET_MIPI_CSI1_ESC_RESET>; 1385354d7675SEmmanuel Vadot fsl,mipi-phy-gpr = <&iomuxc_gpr 0x88>; 1386354d7675SEmmanuel Vadot interconnects = <&noc IMX8MQ_ICM_CSI1 &noc IMX8MQ_ICS_DRAM>; 1387354d7675SEmmanuel Vadot interconnect-names = "dram"; 1388354d7675SEmmanuel Vadot status = "disabled"; 1389354d7675SEmmanuel Vadot 1390354d7675SEmmanuel Vadot ports { 1391354d7675SEmmanuel Vadot #address-cells = <1>; 1392354d7675SEmmanuel Vadot #size-cells = <0>; 1393354d7675SEmmanuel Vadot 1394e67e8565SEmmanuel Vadot port@1 { 1395e67e8565SEmmanuel Vadot reg = <1>; 1396354d7675SEmmanuel Vadot 1397354d7675SEmmanuel Vadot csi1_mipi_ep: endpoint { 1398354d7675SEmmanuel Vadot remote-endpoint = <&csi1_ep>; 1399354d7675SEmmanuel Vadot }; 1400354d7675SEmmanuel Vadot }; 1401354d7675SEmmanuel Vadot }; 1402354d7675SEmmanuel Vadot }; 1403354d7675SEmmanuel Vadot 1404354d7675SEmmanuel Vadot csi1: csi@30a90000 { 14058bab661aSEmmanuel Vadot compatible = "fsl,imx8mq-csi"; 1406354d7675SEmmanuel Vadot reg = <0x30a90000 0x10000>; 1407354d7675SEmmanuel Vadot interrupts = <GIC_SPI 42 IRQ_TYPE_LEVEL_HIGH>; 1408354d7675SEmmanuel Vadot clocks = <&clk IMX8MQ_CLK_CSI1_ROOT>; 1409354d7675SEmmanuel Vadot clock-names = "mclk"; 1410354d7675SEmmanuel Vadot status = "disabled"; 1411354d7675SEmmanuel Vadot 1412354d7675SEmmanuel Vadot port { 1413354d7675SEmmanuel Vadot csi1_ep: endpoint { 1414354d7675SEmmanuel Vadot remote-endpoint = <&csi1_mipi_ep>; 1415354d7675SEmmanuel Vadot }; 1416354d7675SEmmanuel Vadot }; 1417354d7675SEmmanuel Vadot }; 1418354d7675SEmmanuel Vadot 1419354d7675SEmmanuel Vadot mipi_csi2: csi@30b60000 { 1420354d7675SEmmanuel Vadot compatible = "fsl,imx8mq-mipi-csi2"; 1421354d7675SEmmanuel Vadot reg = <0x30b60000 0x1000>; 1422354d7675SEmmanuel Vadot clocks = <&clk IMX8MQ_CLK_CSI2_CORE>, 1423354d7675SEmmanuel Vadot <&clk IMX8MQ_CLK_CSI2_ESC>, 1424354d7675SEmmanuel Vadot <&clk IMX8MQ_CLK_CSI2_PHY_REF>; 1425354d7675SEmmanuel Vadot clock-names = "core", "esc", "ui"; 1426354d7675SEmmanuel Vadot assigned-clocks = <&clk IMX8MQ_CLK_CSI2_CORE>, 1427354d7675SEmmanuel Vadot <&clk IMX8MQ_CLK_CSI2_PHY_REF>, 1428354d7675SEmmanuel Vadot <&clk IMX8MQ_CLK_CSI2_ESC>; 1429354d7675SEmmanuel Vadot assigned-clock-rates = <266000000>, <333000000>, <66000000>; 1430354d7675SEmmanuel Vadot assigned-clock-parents = <&clk IMX8MQ_SYS1_PLL_266M>, 1431354d7675SEmmanuel Vadot <&clk IMX8MQ_SYS2_PLL_1000M>, 1432354d7675SEmmanuel Vadot <&clk IMX8MQ_SYS1_PLL_800M>; 1433354d7675SEmmanuel Vadot power-domains = <&pgc_mipi_csi2>; 1434354d7675SEmmanuel Vadot resets = <&src IMX8MQ_RESET_MIPI_CSI2_CORE_RESET>, 1435354d7675SEmmanuel Vadot <&src IMX8MQ_RESET_MIPI_CSI2_PHY_REF_RESET>, 1436354d7675SEmmanuel Vadot <&src IMX8MQ_RESET_MIPI_CSI2_ESC_RESET>; 1437354d7675SEmmanuel Vadot fsl,mipi-phy-gpr = <&iomuxc_gpr 0xa4>; 1438354d7675SEmmanuel Vadot interconnects = <&noc IMX8MQ_ICM_CSI2 &noc IMX8MQ_ICS_DRAM>; 1439354d7675SEmmanuel Vadot interconnect-names = "dram"; 1440354d7675SEmmanuel Vadot status = "disabled"; 1441354d7675SEmmanuel Vadot 1442354d7675SEmmanuel Vadot ports { 1443354d7675SEmmanuel Vadot #address-cells = <1>; 1444354d7675SEmmanuel Vadot #size-cells = <0>; 1445354d7675SEmmanuel Vadot 1446e67e8565SEmmanuel Vadot port@1 { 1447e67e8565SEmmanuel Vadot reg = <1>; 1448354d7675SEmmanuel Vadot 1449354d7675SEmmanuel Vadot csi2_mipi_ep: endpoint { 1450354d7675SEmmanuel Vadot remote-endpoint = <&csi2_ep>; 1451354d7675SEmmanuel Vadot }; 1452354d7675SEmmanuel Vadot }; 1453354d7675SEmmanuel Vadot }; 1454354d7675SEmmanuel Vadot }; 1455354d7675SEmmanuel Vadot 1456354d7675SEmmanuel Vadot csi2: csi@30b80000 { 14578bab661aSEmmanuel Vadot compatible = "fsl,imx8mq-csi"; 1458354d7675SEmmanuel Vadot reg = <0x30b80000 0x10000>; 1459354d7675SEmmanuel Vadot interrupts = <GIC_SPI 43 IRQ_TYPE_LEVEL_HIGH>; 1460354d7675SEmmanuel Vadot clocks = <&clk IMX8MQ_CLK_CSI2_ROOT>; 1461354d7675SEmmanuel Vadot clock-names = "mclk"; 1462354d7675SEmmanuel Vadot status = "disabled"; 1463354d7675SEmmanuel Vadot 1464354d7675SEmmanuel Vadot port { 1465354d7675SEmmanuel Vadot csi2_ep: endpoint { 1466354d7675SEmmanuel Vadot remote-endpoint = <&csi2_mipi_ep>; 1467354d7675SEmmanuel Vadot }; 1468354d7675SEmmanuel Vadot }; 1469354d7675SEmmanuel Vadot }; 1470354d7675SEmmanuel Vadot 1471c66ec88fSEmmanuel Vadot mu: mailbox@30aa0000 { 1472c66ec88fSEmmanuel Vadot compatible = "fsl,imx8mq-mu", "fsl,imx6sx-mu"; 1473c66ec88fSEmmanuel Vadot reg = <0x30aa0000 0x10000>; 1474c66ec88fSEmmanuel Vadot interrupts = <GIC_SPI 88 IRQ_TYPE_LEVEL_HIGH>; 1475c66ec88fSEmmanuel Vadot clocks = <&clk IMX8MQ_CLK_MU_ROOT>; 1476c66ec88fSEmmanuel Vadot #mbox-cells = <2>; 1477c66ec88fSEmmanuel Vadot }; 1478c66ec88fSEmmanuel Vadot 1479c66ec88fSEmmanuel Vadot usdhc1: mmc@30b40000 { 1480c66ec88fSEmmanuel Vadot compatible = "fsl,imx8mq-usdhc", 1481c66ec88fSEmmanuel Vadot "fsl,imx7d-usdhc"; 1482c66ec88fSEmmanuel Vadot reg = <0x30b40000 0x10000>; 1483c66ec88fSEmmanuel Vadot interrupts = <GIC_SPI 22 IRQ_TYPE_LEVEL_HIGH>; 1484c66ec88fSEmmanuel Vadot clocks = <&clk IMX8MQ_CLK_IPG_ROOT>, 1485c66ec88fSEmmanuel Vadot <&clk IMX8MQ_CLK_NAND_USDHC_BUS>, 1486c66ec88fSEmmanuel Vadot <&clk IMX8MQ_CLK_USDHC1_ROOT>; 1487c66ec88fSEmmanuel Vadot clock-names = "ipg", "ahb", "per"; 1488c66ec88fSEmmanuel Vadot fsl,tuning-start-tap = <20>; 1489c66ec88fSEmmanuel Vadot fsl,tuning-step = <2>; 1490c66ec88fSEmmanuel Vadot bus-width = <4>; 1491c66ec88fSEmmanuel Vadot status = "disabled"; 1492c66ec88fSEmmanuel Vadot }; 1493c66ec88fSEmmanuel Vadot 1494c66ec88fSEmmanuel Vadot usdhc2: mmc@30b50000 { 1495c66ec88fSEmmanuel Vadot compatible = "fsl,imx8mq-usdhc", 1496c66ec88fSEmmanuel Vadot "fsl,imx7d-usdhc"; 1497c66ec88fSEmmanuel Vadot reg = <0x30b50000 0x10000>; 1498c66ec88fSEmmanuel Vadot interrupts = <GIC_SPI 23 IRQ_TYPE_LEVEL_HIGH>; 1499c66ec88fSEmmanuel Vadot clocks = <&clk IMX8MQ_CLK_IPG_ROOT>, 1500c66ec88fSEmmanuel Vadot <&clk IMX8MQ_CLK_NAND_USDHC_BUS>, 1501c66ec88fSEmmanuel Vadot <&clk IMX8MQ_CLK_USDHC2_ROOT>; 1502c66ec88fSEmmanuel Vadot clock-names = "ipg", "ahb", "per"; 1503c66ec88fSEmmanuel Vadot fsl,tuning-start-tap = <20>; 1504c66ec88fSEmmanuel Vadot fsl,tuning-step = <2>; 1505c66ec88fSEmmanuel Vadot bus-width = <4>; 1506c66ec88fSEmmanuel Vadot status = "disabled"; 1507c66ec88fSEmmanuel Vadot }; 1508c66ec88fSEmmanuel Vadot 1509c66ec88fSEmmanuel Vadot qspi0: spi@30bb0000 { 1510c66ec88fSEmmanuel Vadot #address-cells = <1>; 1511c66ec88fSEmmanuel Vadot #size-cells = <0>; 1512c66ec88fSEmmanuel Vadot compatible = "fsl,imx8mq-qspi", "fsl,imx7d-qspi"; 1513c66ec88fSEmmanuel Vadot reg = <0x30bb0000 0x10000>, 1514c66ec88fSEmmanuel Vadot <0x08000000 0x10000000>; 1515c66ec88fSEmmanuel Vadot reg-names = "QuadSPI", "QuadSPI-memory"; 1516c66ec88fSEmmanuel Vadot interrupts = <GIC_SPI 107 IRQ_TYPE_LEVEL_HIGH>; 1517c66ec88fSEmmanuel Vadot clocks = <&clk IMX8MQ_CLK_QSPI_ROOT>, 1518c66ec88fSEmmanuel Vadot <&clk IMX8MQ_CLK_QSPI_ROOT>; 1519c66ec88fSEmmanuel Vadot clock-names = "qspi_en", "qspi"; 1520c66ec88fSEmmanuel Vadot status = "disabled"; 1521c66ec88fSEmmanuel Vadot }; 1522c66ec88fSEmmanuel Vadot 15237ef62cebSEmmanuel Vadot sdma1: dma-controller@30bd0000 { 1524c66ec88fSEmmanuel Vadot compatible = "fsl,imx8mq-sdma","fsl,imx7d-sdma"; 1525c66ec88fSEmmanuel Vadot reg = <0x30bd0000 0x10000>; 1526c66ec88fSEmmanuel Vadot interrupts = <GIC_SPI 2 IRQ_TYPE_LEVEL_HIGH>; 1527c66ec88fSEmmanuel Vadot clocks = <&clk IMX8MQ_CLK_SDMA1_ROOT>, 1528c66ec88fSEmmanuel Vadot <&clk IMX8MQ_CLK_AHB>; 1529c66ec88fSEmmanuel Vadot clock-names = "ipg", "ahb"; 1530c66ec88fSEmmanuel Vadot #dma-cells = <3>; 1531c66ec88fSEmmanuel Vadot fsl,sdma-ram-script-name = "imx/sdma/sdma-imx7d.bin"; 1532c66ec88fSEmmanuel Vadot }; 1533c66ec88fSEmmanuel Vadot 1534c66ec88fSEmmanuel Vadot fec1: ethernet@30be0000 { 1535c66ec88fSEmmanuel Vadot compatible = "fsl,imx8mq-fec", "fsl,imx6sx-fec"; 1536c66ec88fSEmmanuel Vadot reg = <0x30be0000 0x10000>; 1537c66ec88fSEmmanuel Vadot interrupts = <GIC_SPI 118 IRQ_TYPE_LEVEL_HIGH>, 1538c66ec88fSEmmanuel Vadot <GIC_SPI 119 IRQ_TYPE_LEVEL_HIGH>, 15396be33864SEmmanuel Vadot <GIC_SPI 120 IRQ_TYPE_LEVEL_HIGH>, 15406be33864SEmmanuel Vadot <GIC_SPI 121 IRQ_TYPE_LEVEL_HIGH>; 1541c66ec88fSEmmanuel Vadot clocks = <&clk IMX8MQ_CLK_ENET1_ROOT>, 1542c66ec88fSEmmanuel Vadot <&clk IMX8MQ_CLK_ENET1_ROOT>, 1543c66ec88fSEmmanuel Vadot <&clk IMX8MQ_CLK_ENET_TIMER>, 1544c66ec88fSEmmanuel Vadot <&clk IMX8MQ_CLK_ENET_REF>, 1545c66ec88fSEmmanuel Vadot <&clk IMX8MQ_CLK_ENET_PHY_REF>; 1546c66ec88fSEmmanuel Vadot clock-names = "ipg", "ahb", "ptp", 1547c66ec88fSEmmanuel Vadot "enet_clk_ref", "enet_out"; 15485def4c47SEmmanuel Vadot assigned-clocks = <&clk IMX8MQ_CLK_ENET_AXI>, 15495def4c47SEmmanuel Vadot <&clk IMX8MQ_CLK_ENET_TIMER>, 15505def4c47SEmmanuel Vadot <&clk IMX8MQ_CLK_ENET_REF>, 15515def4c47SEmmanuel Vadot <&clk IMX8MQ_CLK_ENET_PHY_REF>; 15525def4c47SEmmanuel Vadot assigned-clock-parents = <&clk IMX8MQ_SYS1_PLL_266M>, 15535def4c47SEmmanuel Vadot <&clk IMX8MQ_SYS2_PLL_100M>, 15545def4c47SEmmanuel Vadot <&clk IMX8MQ_SYS2_PLL_125M>, 15555def4c47SEmmanuel Vadot <&clk IMX8MQ_SYS2_PLL_50M>; 15565def4c47SEmmanuel Vadot assigned-clock-rates = <0>, <100000000>, <125000000>, <0>; 1557c66ec88fSEmmanuel Vadot fsl,num-tx-queues = <3>; 1558c66ec88fSEmmanuel Vadot fsl,num-rx-queues = <3>; 15595def4c47SEmmanuel Vadot nvmem-cells = <&fec_mac_address>; 15605def4c47SEmmanuel Vadot nvmem-cell-names = "mac-address"; 15615def4c47SEmmanuel Vadot fsl,stop-mode = <&iomuxc_gpr 0x10 3>; 1562c66ec88fSEmmanuel Vadot status = "disabled"; 1563c66ec88fSEmmanuel Vadot }; 1564c66ec88fSEmmanuel Vadot }; 1565c66ec88fSEmmanuel Vadot 15665def4c47SEmmanuel Vadot noc: interconnect@32700000 { 15675def4c47SEmmanuel Vadot compatible = "fsl,imx8mq-noc", "fsl,imx8m-noc"; 15685def4c47SEmmanuel Vadot reg = <0x32700000 0x100000>; 15695def4c47SEmmanuel Vadot clocks = <&clk IMX8MQ_CLK_NOC>; 15705def4c47SEmmanuel Vadot fsl,ddrc = <&ddrc>; 15715def4c47SEmmanuel Vadot #interconnect-cells = <1>; 15725def4c47SEmmanuel Vadot operating-points-v2 = <&noc_opp_table>; 15735def4c47SEmmanuel Vadot 15745def4c47SEmmanuel Vadot noc_opp_table: opp-table { 15755def4c47SEmmanuel Vadot compatible = "operating-points-v2"; 15765def4c47SEmmanuel Vadot 15778bab661aSEmmanuel Vadot opp-133000000 { 15785def4c47SEmmanuel Vadot opp-hz = /bits/ 64 <133333333>; 15795def4c47SEmmanuel Vadot }; 15805def4c47SEmmanuel Vadot 15818bab661aSEmmanuel Vadot opp-400000000 { 15825def4c47SEmmanuel Vadot opp-hz = /bits/ 64 <400000000>; 15835def4c47SEmmanuel Vadot }; 15845def4c47SEmmanuel Vadot 15858bab661aSEmmanuel Vadot opp-800000000 { 15865def4c47SEmmanuel Vadot opp-hz = /bits/ 64 <800000000>; 15875def4c47SEmmanuel Vadot }; 15885def4c47SEmmanuel Vadot }; 15895def4c47SEmmanuel Vadot }; 15905def4c47SEmmanuel Vadot 1591b97ee269SEmmanuel Vadot aips4: bus@32c00000 { /* AIPS4 */ 1592c66ec88fSEmmanuel Vadot compatible = "fsl,aips-bus", "simple-bus"; 1593c66ec88fSEmmanuel Vadot reg = <0x32c00000 0x400000>; 1594c66ec88fSEmmanuel Vadot #address-cells = <1>; 1595c66ec88fSEmmanuel Vadot #size-cells = <1>; 1596c66ec88fSEmmanuel Vadot ranges = <0x32c00000 0x32c00000 0x400000>; 1597c66ec88fSEmmanuel Vadot 1598c66ec88fSEmmanuel Vadot irqsteer: interrupt-controller@32e2d000 { 1599c66ec88fSEmmanuel Vadot compatible = "fsl,imx8m-irqsteer", "fsl,imx-irqsteer"; 1600c66ec88fSEmmanuel Vadot reg = <0x32e2d000 0x1000>; 1601c66ec88fSEmmanuel Vadot interrupts = <GIC_SPI 18 IRQ_TYPE_LEVEL_HIGH>; 1602c66ec88fSEmmanuel Vadot clocks = <&clk IMX8MQ_CLK_DISP_APB_ROOT>; 1603c66ec88fSEmmanuel Vadot clock-names = "ipg"; 1604c66ec88fSEmmanuel Vadot fsl,channel = <0>; 1605c66ec88fSEmmanuel Vadot fsl,num-irqs = <64>; 1606c66ec88fSEmmanuel Vadot interrupt-controller; 1607c66ec88fSEmmanuel Vadot #interrupt-cells = <1>; 1608c66ec88fSEmmanuel Vadot }; 1609c66ec88fSEmmanuel Vadot }; 1610c66ec88fSEmmanuel Vadot 1611c66ec88fSEmmanuel Vadot gpu: gpu@38000000 { 1612c66ec88fSEmmanuel Vadot compatible = "vivante,gc"; 1613c66ec88fSEmmanuel Vadot reg = <0x38000000 0x40000>; 1614c66ec88fSEmmanuel Vadot interrupts = <GIC_SPI 3 IRQ_TYPE_LEVEL_HIGH>; 1615c66ec88fSEmmanuel Vadot clocks = <&clk IMX8MQ_CLK_GPU_ROOT>, 1616c66ec88fSEmmanuel Vadot <&clk IMX8MQ_CLK_GPU_SHADER_DIV>, 1617c66ec88fSEmmanuel Vadot <&clk IMX8MQ_CLK_GPU_AXI>, 1618c66ec88fSEmmanuel Vadot <&clk IMX8MQ_CLK_GPU_AHB>; 1619c66ec88fSEmmanuel Vadot clock-names = "core", "shader", "bus", "reg"; 1620c66ec88fSEmmanuel Vadot #cooling-cells = <2>; 1621c66ec88fSEmmanuel Vadot assigned-clocks = <&clk IMX8MQ_CLK_GPU_CORE_SRC>, 1622c66ec88fSEmmanuel Vadot <&clk IMX8MQ_CLK_GPU_SHADER_SRC>, 1623c66ec88fSEmmanuel Vadot <&clk IMX8MQ_CLK_GPU_AXI>, 1624c66ec88fSEmmanuel Vadot <&clk IMX8MQ_CLK_GPU_AHB>, 1625c66ec88fSEmmanuel Vadot <&clk IMX8MQ_GPU_PLL_BYPASS>; 1626c66ec88fSEmmanuel Vadot assigned-clock-parents = <&clk IMX8MQ_GPU_PLL_OUT>, 1627c66ec88fSEmmanuel Vadot <&clk IMX8MQ_GPU_PLL_OUT>, 1628c66ec88fSEmmanuel Vadot <&clk IMX8MQ_GPU_PLL_OUT>, 1629c66ec88fSEmmanuel Vadot <&clk IMX8MQ_GPU_PLL_OUT>, 1630c66ec88fSEmmanuel Vadot <&clk IMX8MQ_GPU_PLL>; 1631c66ec88fSEmmanuel Vadot assigned-clock-rates = <800000000>, <800000000>, 1632c66ec88fSEmmanuel Vadot <800000000>, <800000000>, <0>; 1633c66ec88fSEmmanuel Vadot power-domains = <&pgc_gpu>; 1634c66ec88fSEmmanuel Vadot }; 1635c66ec88fSEmmanuel Vadot 1636c66ec88fSEmmanuel Vadot usb_dwc3_0: usb@38100000 { 1637c66ec88fSEmmanuel Vadot compatible = "fsl,imx8mq-dwc3", "snps,dwc3"; 1638c66ec88fSEmmanuel Vadot reg = <0x38100000 0x10000>; 1639c66ec88fSEmmanuel Vadot clocks = <&clk IMX8MQ_CLK_USB1_CTRL_ROOT>, 1640c66ec88fSEmmanuel Vadot <&clk IMX8MQ_CLK_USB_CORE_REF>, 1641c66ec88fSEmmanuel Vadot <&clk IMX8MQ_CLK_32K>; 1642c66ec88fSEmmanuel Vadot clock-names = "bus_early", "ref", "suspend"; 1643c66ec88fSEmmanuel Vadot assigned-clocks = <&clk IMX8MQ_CLK_USB_BUS>, 1644c66ec88fSEmmanuel Vadot <&clk IMX8MQ_CLK_USB_CORE_REF>; 1645c66ec88fSEmmanuel Vadot assigned-clock-parents = <&clk IMX8MQ_SYS2_PLL_500M>, 1646c66ec88fSEmmanuel Vadot <&clk IMX8MQ_SYS1_PLL_100M>; 1647c66ec88fSEmmanuel Vadot assigned-clock-rates = <500000000>, <100000000>; 1648c66ec88fSEmmanuel Vadot interrupts = <GIC_SPI 40 IRQ_TYPE_LEVEL_HIGH>; 1649c66ec88fSEmmanuel Vadot phys = <&usb3_phy0>, <&usb3_phy0>; 1650c66ec88fSEmmanuel Vadot phy-names = "usb2-phy", "usb3-phy"; 1651c66ec88fSEmmanuel Vadot power-domains = <&pgc_otg1>; 1652*84943d6fSEmmanuel Vadot snps,parkmode-disable-ss-quirk; 1653c66ec88fSEmmanuel Vadot status = "disabled"; 1654c66ec88fSEmmanuel Vadot }; 1655c66ec88fSEmmanuel Vadot 1656c66ec88fSEmmanuel Vadot usb3_phy0: usb-phy@381f0040 { 1657c66ec88fSEmmanuel Vadot compatible = "fsl,imx8mq-usb-phy"; 1658c66ec88fSEmmanuel Vadot reg = <0x381f0040 0x40>; 1659c66ec88fSEmmanuel Vadot clocks = <&clk IMX8MQ_CLK_USB1_PHY_ROOT>; 1660c66ec88fSEmmanuel Vadot clock-names = "phy"; 1661c66ec88fSEmmanuel Vadot assigned-clocks = <&clk IMX8MQ_CLK_USB_PHY_REF>; 1662c66ec88fSEmmanuel Vadot assigned-clock-parents = <&clk IMX8MQ_SYS1_PLL_100M>; 1663c66ec88fSEmmanuel Vadot assigned-clock-rates = <100000000>; 1664c66ec88fSEmmanuel Vadot #phy-cells = <0>; 1665c66ec88fSEmmanuel Vadot status = "disabled"; 1666c66ec88fSEmmanuel Vadot }; 1667c66ec88fSEmmanuel Vadot 1668c66ec88fSEmmanuel Vadot usb_dwc3_1: usb@38200000 { 1669c66ec88fSEmmanuel Vadot compatible = "fsl,imx8mq-dwc3", "snps,dwc3"; 1670c66ec88fSEmmanuel Vadot reg = <0x38200000 0x10000>; 1671c66ec88fSEmmanuel Vadot clocks = <&clk IMX8MQ_CLK_USB2_CTRL_ROOT>, 1672c66ec88fSEmmanuel Vadot <&clk IMX8MQ_CLK_USB_CORE_REF>, 1673c66ec88fSEmmanuel Vadot <&clk IMX8MQ_CLK_32K>; 1674c66ec88fSEmmanuel Vadot clock-names = "bus_early", "ref", "suspend"; 1675c66ec88fSEmmanuel Vadot assigned-clocks = <&clk IMX8MQ_CLK_USB_BUS>, 1676c66ec88fSEmmanuel Vadot <&clk IMX8MQ_CLK_USB_CORE_REF>; 1677c66ec88fSEmmanuel Vadot assigned-clock-parents = <&clk IMX8MQ_SYS2_PLL_500M>, 1678c66ec88fSEmmanuel Vadot <&clk IMX8MQ_SYS1_PLL_100M>; 1679c66ec88fSEmmanuel Vadot assigned-clock-rates = <500000000>, <100000000>; 1680c66ec88fSEmmanuel Vadot interrupts = <GIC_SPI 41 IRQ_TYPE_LEVEL_HIGH>; 1681c66ec88fSEmmanuel Vadot phys = <&usb3_phy1>, <&usb3_phy1>; 1682c66ec88fSEmmanuel Vadot phy-names = "usb2-phy", "usb3-phy"; 1683c66ec88fSEmmanuel Vadot power-domains = <&pgc_otg2>; 1684*84943d6fSEmmanuel Vadot snps,parkmode-disable-ss-quirk; 1685c66ec88fSEmmanuel Vadot status = "disabled"; 1686c66ec88fSEmmanuel Vadot }; 1687c66ec88fSEmmanuel Vadot 1688c66ec88fSEmmanuel Vadot usb3_phy1: usb-phy@382f0040 { 1689c66ec88fSEmmanuel Vadot compatible = "fsl,imx8mq-usb-phy"; 1690c66ec88fSEmmanuel Vadot reg = <0x382f0040 0x40>; 1691c66ec88fSEmmanuel Vadot clocks = <&clk IMX8MQ_CLK_USB2_PHY_ROOT>; 1692c66ec88fSEmmanuel Vadot clock-names = "phy"; 1693c66ec88fSEmmanuel Vadot assigned-clocks = <&clk IMX8MQ_CLK_USB_PHY_REF>; 1694c66ec88fSEmmanuel Vadot assigned-clock-parents = <&clk IMX8MQ_SYS1_PLL_100M>; 1695c66ec88fSEmmanuel Vadot assigned-clock-rates = <100000000>; 1696c66ec88fSEmmanuel Vadot #phy-cells = <0>; 1697c66ec88fSEmmanuel Vadot status = "disabled"; 1698c66ec88fSEmmanuel Vadot }; 1699c66ec88fSEmmanuel Vadot 1700c9ccf3a3SEmmanuel Vadot vpu_g1: video-codec@38300000 { 1701c9ccf3a3SEmmanuel Vadot compatible = "nxp,imx8mq-vpu-g1"; 1702c9ccf3a3SEmmanuel Vadot reg = <0x38300000 0x10000>; 1703c9ccf3a3SEmmanuel Vadot interrupts = <GIC_SPI 7 IRQ_TYPE_LEVEL_HIGH>; 1704c9ccf3a3SEmmanuel Vadot clocks = <&clk IMX8MQ_CLK_VPU_G1_ROOT>; 1705c9ccf3a3SEmmanuel Vadot power-domains = <&vpu_blk_ctrl IMX8MQ_VPUBLK_PD_G1>; 1706c9ccf3a3SEmmanuel Vadot }; 1707c9ccf3a3SEmmanuel Vadot 1708c9ccf3a3SEmmanuel Vadot vpu_g2: video-codec@38310000 { 1709c9ccf3a3SEmmanuel Vadot compatible = "nxp,imx8mq-vpu-g2"; 1710c9ccf3a3SEmmanuel Vadot reg = <0x38310000 0x10000>; 1711c9ccf3a3SEmmanuel Vadot interrupts = <GIC_SPI 8 IRQ_TYPE_LEVEL_HIGH>; 1712c9ccf3a3SEmmanuel Vadot clocks = <&clk IMX8MQ_CLK_VPU_G2_ROOT>; 1713c9ccf3a3SEmmanuel Vadot power-domains = <&vpu_blk_ctrl IMX8MQ_VPUBLK_PD_G2>; 1714c9ccf3a3SEmmanuel Vadot }; 1715c9ccf3a3SEmmanuel Vadot 1716c9ccf3a3SEmmanuel Vadot vpu_blk_ctrl: blk-ctrl@38320000 { 1717c9ccf3a3SEmmanuel Vadot compatible = "fsl,imx8mq-vpu-blk-ctrl"; 1718c9ccf3a3SEmmanuel Vadot reg = <0x38320000 0x100>; 1719c9ccf3a3SEmmanuel Vadot power-domains = <&pgc_vpu>, <&pgc_vpu>, <&pgc_vpu>; 1720c9ccf3a3SEmmanuel Vadot power-domain-names = "bus", "g1", "g2"; 1721c66ec88fSEmmanuel Vadot clocks = <&clk IMX8MQ_CLK_VPU_G1_ROOT>, 1722c9ccf3a3SEmmanuel Vadot <&clk IMX8MQ_CLK_VPU_G2_ROOT>; 1723c9ccf3a3SEmmanuel Vadot clock-names = "g1", "g2"; 1724c9ccf3a3SEmmanuel Vadot #power-domain-cells = <1>; 1725c66ec88fSEmmanuel Vadot }; 1726c66ec88fSEmmanuel Vadot 1727c66ec88fSEmmanuel Vadot pcie0: pcie@33800000 { 1728c66ec88fSEmmanuel Vadot compatible = "fsl,imx8mq-pcie"; 1729c66ec88fSEmmanuel Vadot reg = <0x33800000 0x400000>, 1730c66ec88fSEmmanuel Vadot <0x1ff00000 0x80000>; 1731c66ec88fSEmmanuel Vadot reg-names = "dbi", "config"; 1732c66ec88fSEmmanuel Vadot #address-cells = <3>; 1733c66ec88fSEmmanuel Vadot #size-cells = <2>; 1734c66ec88fSEmmanuel Vadot device_type = "pci"; 1735c66ec88fSEmmanuel Vadot bus-range = <0x00 0xff>; 17368cc087a1SEmmanuel Vadot ranges = <0x81000000 0 0x00000000 0x1ff80000 0 0x00010000>, /* downstream I/O 64KB */ 17378cc087a1SEmmanuel Vadot <0x82000000 0 0x18000000 0x18000000 0 0x07f00000>; /* non-prefetchable memory */ 1738c66ec88fSEmmanuel Vadot num-lanes = <1>; 1739c66ec88fSEmmanuel Vadot interrupts = <GIC_SPI 122 IRQ_TYPE_LEVEL_HIGH>; 1740c66ec88fSEmmanuel Vadot interrupt-names = "msi"; 1741c66ec88fSEmmanuel Vadot #interrupt-cells = <1>; 1742c66ec88fSEmmanuel Vadot interrupt-map-mask = <0 0 0 0x7>; 1743c66ec88fSEmmanuel Vadot interrupt-map = <0 0 0 1 &gic GIC_SPI 125 IRQ_TYPE_LEVEL_HIGH>, 1744c66ec88fSEmmanuel Vadot <0 0 0 2 &gic GIC_SPI 124 IRQ_TYPE_LEVEL_HIGH>, 1745c66ec88fSEmmanuel Vadot <0 0 0 3 &gic GIC_SPI 123 IRQ_TYPE_LEVEL_HIGH>, 1746c66ec88fSEmmanuel Vadot <0 0 0 4 &gic GIC_SPI 122 IRQ_TYPE_LEVEL_HIGH>; 1747c66ec88fSEmmanuel Vadot fsl,max-link-speed = <2>; 17485def4c47SEmmanuel Vadot linux,pci-domain = <0>; 1749cb7aa33aSEmmanuel Vadot clocks = <&clk IMX8MQ_CLK_PCIE1_ROOT>, 1750cb7aa33aSEmmanuel Vadot <&clk IMX8MQ_CLK_PCIE1_PHY>, 1751cb7aa33aSEmmanuel Vadot <&clk IMX8MQ_CLK_PCIE1_PHY>, 1752cb7aa33aSEmmanuel Vadot <&clk IMX8MQ_CLK_PCIE1_AUX>; 1753cb7aa33aSEmmanuel Vadot clock-names = "pcie", "pcie_bus", "pcie_phy", "pcie_aux"; 1754c66ec88fSEmmanuel Vadot power-domains = <&pgc_pcie>; 1755c66ec88fSEmmanuel Vadot resets = <&src IMX8MQ_RESET_PCIEPHY>, 1756c66ec88fSEmmanuel Vadot <&src IMX8MQ_RESET_PCIE_CTRL_APPS_EN>, 1757c66ec88fSEmmanuel Vadot <&src IMX8MQ_RESET_PCIE_CTRL_APPS_TURNOFF>; 1758c66ec88fSEmmanuel Vadot reset-names = "pciephy", "apps", "turnoff"; 17595956d97fSEmmanuel Vadot assigned-clocks = <&clk IMX8MQ_CLK_PCIE1_CTRL>, 17605956d97fSEmmanuel Vadot <&clk IMX8MQ_CLK_PCIE1_PHY>, 17615956d97fSEmmanuel Vadot <&clk IMX8MQ_CLK_PCIE1_AUX>; 17625956d97fSEmmanuel Vadot assigned-clock-parents = <&clk IMX8MQ_SYS2_PLL_250M>, 17635956d97fSEmmanuel Vadot <&clk IMX8MQ_SYS2_PLL_100M>, 17645956d97fSEmmanuel Vadot <&clk IMX8MQ_SYS1_PLL_80M>; 17655956d97fSEmmanuel Vadot assigned-clock-rates = <250000000>, <100000000>, 17665956d97fSEmmanuel Vadot <10000000>; 1767c66ec88fSEmmanuel Vadot status = "disabled"; 1768c66ec88fSEmmanuel Vadot }; 1769c66ec88fSEmmanuel Vadot 1770c66ec88fSEmmanuel Vadot pcie1: pcie@33c00000 { 1771c66ec88fSEmmanuel Vadot compatible = "fsl,imx8mq-pcie"; 1772c66ec88fSEmmanuel Vadot reg = <0x33c00000 0x400000>, 1773c66ec88fSEmmanuel Vadot <0x27f00000 0x80000>; 1774c66ec88fSEmmanuel Vadot reg-names = "dbi", "config"; 1775c66ec88fSEmmanuel Vadot #address-cells = <3>; 1776c66ec88fSEmmanuel Vadot #size-cells = <2>; 1777c66ec88fSEmmanuel Vadot device_type = "pci"; 1778f126890aSEmmanuel Vadot bus-range = <0x00 0xff>; 17798cc087a1SEmmanuel Vadot ranges = <0x81000000 0 0x00000000 0x27f80000 0 0x00010000>, /* downstream I/O 64KB */ 17808cc087a1SEmmanuel Vadot <0x82000000 0 0x20000000 0x20000000 0 0x07f00000>; /* non-prefetchable memory */ 1781c66ec88fSEmmanuel Vadot num-lanes = <1>; 1782c66ec88fSEmmanuel Vadot interrupts = <GIC_SPI 74 IRQ_TYPE_LEVEL_HIGH>; 1783c66ec88fSEmmanuel Vadot interrupt-names = "msi"; 1784c66ec88fSEmmanuel Vadot #interrupt-cells = <1>; 1785c66ec88fSEmmanuel Vadot interrupt-map-mask = <0 0 0 0x7>; 1786c66ec88fSEmmanuel Vadot interrupt-map = <0 0 0 1 &gic GIC_SPI 77 IRQ_TYPE_LEVEL_HIGH>, 1787c66ec88fSEmmanuel Vadot <0 0 0 2 &gic GIC_SPI 76 IRQ_TYPE_LEVEL_HIGH>, 1788c66ec88fSEmmanuel Vadot <0 0 0 3 &gic GIC_SPI 75 IRQ_TYPE_LEVEL_HIGH>, 1789c66ec88fSEmmanuel Vadot <0 0 0 4 &gic GIC_SPI 74 IRQ_TYPE_LEVEL_HIGH>; 1790c66ec88fSEmmanuel Vadot fsl,max-link-speed = <2>; 17915def4c47SEmmanuel Vadot linux,pci-domain = <1>; 1792cb7aa33aSEmmanuel Vadot clocks = <&clk IMX8MQ_CLK_PCIE2_ROOT>, 1793cb7aa33aSEmmanuel Vadot <&clk IMX8MQ_CLK_PCIE2_PHY>, 1794cb7aa33aSEmmanuel Vadot <&clk IMX8MQ_CLK_PCIE2_PHY>, 1795cb7aa33aSEmmanuel Vadot <&clk IMX8MQ_CLK_PCIE2_AUX>; 1796cb7aa33aSEmmanuel Vadot clock-names = "pcie", "pcie_bus", "pcie_phy", "pcie_aux"; 1797c66ec88fSEmmanuel Vadot power-domains = <&pgc_pcie>; 1798c66ec88fSEmmanuel Vadot resets = <&src IMX8MQ_RESET_PCIEPHY2>, 1799c66ec88fSEmmanuel Vadot <&src IMX8MQ_RESET_PCIE2_CTRL_APPS_EN>, 1800c66ec88fSEmmanuel Vadot <&src IMX8MQ_RESET_PCIE2_CTRL_APPS_TURNOFF>; 1801c66ec88fSEmmanuel Vadot reset-names = "pciephy", "apps", "turnoff"; 18025956d97fSEmmanuel Vadot assigned-clocks = <&clk IMX8MQ_CLK_PCIE2_CTRL>, 18035956d97fSEmmanuel Vadot <&clk IMX8MQ_CLK_PCIE2_PHY>, 18045956d97fSEmmanuel Vadot <&clk IMX8MQ_CLK_PCIE2_AUX>; 18055956d97fSEmmanuel Vadot assigned-clock-parents = <&clk IMX8MQ_SYS2_PLL_250M>, 18065956d97fSEmmanuel Vadot <&clk IMX8MQ_SYS2_PLL_100M>, 18075956d97fSEmmanuel Vadot <&clk IMX8MQ_SYS1_PLL_80M>; 18085956d97fSEmmanuel Vadot assigned-clock-rates = <250000000>, <100000000>, 18095956d97fSEmmanuel Vadot <10000000>; 1810c66ec88fSEmmanuel Vadot status = "disabled"; 1811c66ec88fSEmmanuel Vadot }; 1812c66ec88fSEmmanuel Vadot 1813fac71e4eSEmmanuel Vadot pcie1_ep: pcie-ep@33c00000 { 1814fac71e4eSEmmanuel Vadot compatible = "fsl,imx8mq-pcie-ep"; 1815fac71e4eSEmmanuel Vadot reg = <0x33c00000 0x000400000>, 1816fac71e4eSEmmanuel Vadot <0x20000000 0x08000000>; 1817fac71e4eSEmmanuel Vadot reg-names = "dbi", "addr_space"; 1818fac71e4eSEmmanuel Vadot num-lanes = <1>; 1819fac71e4eSEmmanuel Vadot interrupts = <GIC_SPI 80 IRQ_TYPE_LEVEL_HIGH>; 1820fac71e4eSEmmanuel Vadot interrupt-names = "dma"; 1821fac71e4eSEmmanuel Vadot fsl,max-link-speed = <2>; 1822fac71e4eSEmmanuel Vadot clocks = <&clk IMX8MQ_CLK_PCIE2_ROOT>, 1823fac71e4eSEmmanuel Vadot <&clk IMX8MQ_CLK_PCIE2_PHY>, 1824fac71e4eSEmmanuel Vadot <&clk IMX8MQ_CLK_PCIE2_PHY>, 1825fac71e4eSEmmanuel Vadot <&clk IMX8MQ_CLK_PCIE2_AUX>; 1826fac71e4eSEmmanuel Vadot clock-names = "pcie", "pcie_bus", "pcie_phy", "pcie_aux"; 1827fac71e4eSEmmanuel Vadot power-domains = <&pgc_pcie>; 1828fac71e4eSEmmanuel Vadot resets = <&src IMX8MQ_RESET_PCIEPHY2>, 1829fac71e4eSEmmanuel Vadot <&src IMX8MQ_RESET_PCIE2_CTRL_APPS_EN>, 1830fac71e4eSEmmanuel Vadot <&src IMX8MQ_RESET_PCIE2_CTRL_APPS_TURNOFF>; 1831fac71e4eSEmmanuel Vadot reset-names = "pciephy", "apps", "turnoff"; 1832fac71e4eSEmmanuel Vadot assigned-clocks = <&clk IMX8MQ_CLK_PCIE2_CTRL>, 1833fac71e4eSEmmanuel Vadot <&clk IMX8MQ_CLK_PCIE2_PHY>, 1834fac71e4eSEmmanuel Vadot <&clk IMX8MQ_CLK_PCIE2_AUX>; 1835fac71e4eSEmmanuel Vadot assigned-clock-parents = <&clk IMX8MQ_SYS2_PLL_250M>, 1836fac71e4eSEmmanuel Vadot <&clk IMX8MQ_SYS2_PLL_100M>, 1837fac71e4eSEmmanuel Vadot <&clk IMX8MQ_SYS1_PLL_80M>; 1838fac71e4eSEmmanuel Vadot assigned-clock-rates = <250000000>, <100000000>, 1839fac71e4eSEmmanuel Vadot <10000000>; 1840fac71e4eSEmmanuel Vadot num-ib-windows = <4>; 1841fac71e4eSEmmanuel Vadot num-ob-windows = <4>; 1842fac71e4eSEmmanuel Vadot status = "disabled"; 1843fac71e4eSEmmanuel Vadot }; 1844fac71e4eSEmmanuel Vadot 1845c66ec88fSEmmanuel Vadot gic: interrupt-controller@38800000 { 1846c66ec88fSEmmanuel Vadot compatible = "arm,gic-v3"; 1847c66ec88fSEmmanuel Vadot reg = <0x38800000 0x10000>, /* GIC Dist */ 1848c66ec88fSEmmanuel Vadot <0x38880000 0xc0000>, /* GICR */ 1849c66ec88fSEmmanuel Vadot <0x31000000 0x2000>, /* GICC */ 1850c66ec88fSEmmanuel Vadot <0x31010000 0x2000>, /* GICV */ 1851c66ec88fSEmmanuel Vadot <0x31020000 0x2000>; /* GICH */ 1852c66ec88fSEmmanuel Vadot #interrupt-cells = <3>; 1853c66ec88fSEmmanuel Vadot interrupt-controller; 1854c66ec88fSEmmanuel Vadot interrupts = <GIC_PPI 9 IRQ_TYPE_LEVEL_HIGH>; 1855c66ec88fSEmmanuel Vadot interrupt-parent = <&gic>; 1856c66ec88fSEmmanuel Vadot }; 1857c66ec88fSEmmanuel Vadot 1858c66ec88fSEmmanuel Vadot ddrc: memory-controller@3d400000 { 1859c66ec88fSEmmanuel Vadot compatible = "fsl,imx8mq-ddrc", "fsl,imx8m-ddrc"; 1860c66ec88fSEmmanuel Vadot reg = <0x3d400000 0x400000>; 1861c66ec88fSEmmanuel Vadot clock-names = "core", "pll", "alt", "apb"; 1862c66ec88fSEmmanuel Vadot clocks = <&clk IMX8MQ_CLK_DRAM_CORE>, 1863c66ec88fSEmmanuel Vadot <&clk IMX8MQ_DRAM_PLL_OUT>, 1864c66ec88fSEmmanuel Vadot <&clk IMX8MQ_CLK_DRAM_ALT>, 1865c66ec88fSEmmanuel Vadot <&clk IMX8MQ_CLK_DRAM_APB>; 1866c9ccf3a3SEmmanuel Vadot status = "disabled"; 1867c66ec88fSEmmanuel Vadot }; 1868c66ec88fSEmmanuel Vadot 1869c66ec88fSEmmanuel Vadot ddr-pmu@3d800000 { 1870c66ec88fSEmmanuel Vadot compatible = "fsl,imx8mq-ddr-pmu", "fsl,imx8m-ddr-pmu"; 1871c66ec88fSEmmanuel Vadot reg = <0x3d800000 0x400000>; 1872c66ec88fSEmmanuel Vadot interrupt-parent = <&gic>; 1873c66ec88fSEmmanuel Vadot interrupts = <GIC_SPI 98 IRQ_TYPE_LEVEL_HIGH>; 1874c66ec88fSEmmanuel Vadot }; 1875c66ec88fSEmmanuel Vadot }; 1876c66ec88fSEmmanuel Vadot}; 1877