1748f908cSLucas Stach// SPDX-License-Identifier: (GPL-2.0+ OR MIT) 2748f908cSLucas Stach/* 3748f908cSLucas Stach * Copyright 2017 NXP 4748f908cSLucas Stach * Copyright (C) 2017-2018 Pengutronix, Lucas Stach <kernel@pengutronix.de> 5748f908cSLucas Stach */ 6748f908cSLucas Stach 7748f908cSLucas Stach#include <dt-bindings/clock/imx8mq-clock.h> 8fdbcc04dSLucas Stach#include <dt-bindings/power/imx8mq-power.h> 9fc26e600SAndrey Smirnov#include <dt-bindings/reset/imx8mq-reset.h> 10748f908cSLucas Stach#include <dt-bindings/gpio/gpio.h> 11a01194d7SAngus Ainslie (Purism)#include "dt-bindings/input/input.h" 12748f908cSLucas Stach#include <dt-bindings/interrupt-controller/arm-gic.h> 13e464fd2bSAngus Ainslie (Purism)#include <dt-bindings/thermal/thermal.h> 14ad1abc8aSMartin Kepplinger#include <dt-bindings/interconnect/imx8mq.h> 15748f908cSLucas Stach#include "imx8mq-pinfunc.h" 16748f908cSLucas Stach 17748f908cSLucas Stach/ { 18c412123fSLucas Stach interrupt-parent = <&gpc>; 19748f908cSLucas Stach 20748f908cSLucas Stach #address-cells = <2>; 21748f908cSLucas Stach #size-cells = <2>; 22748f908cSLucas Stach 23748f908cSLucas Stach aliases { 24614d8846SPeng Fan ethernet0 = &fec1; 251f370972SAnson Huang gpio0 = &gpio1; 261f370972SAnson Huang gpio1 = &gpio2; 271f370972SAnson Huang gpio2 = &gpio3; 281f370972SAnson Huang gpio3 = &gpio4; 291f370972SAnson Huang gpio4 = &gpio5; 30748f908cSLucas Stach i2c0 = &i2c1; 31748f908cSLucas Stach i2c1 = &i2c2; 32748f908cSLucas Stach i2c2 = &i2c3; 33748f908cSLucas Stach i2c3 = &i2c4; 34e9a8d996SPeng Fan mmc0 = &usdhc1; 35e9a8d996SPeng Fan mmc1 = &usdhc2; 36748f908cSLucas Stach serial0 = &uart1; 37748f908cSLucas Stach serial1 = &uart2; 38748f908cSLucas Stach serial2 = &uart3; 39748f908cSLucas Stach serial3 = &uart4; 4085761f45SFabio Estevam spi0 = &ecspi1; 4185761f45SFabio Estevam spi1 = &ecspi2; 4285761f45SFabio Estevam spi2 = &ecspi3; 43748f908cSLucas Stach }; 44748f908cSLucas Stach 45748f908cSLucas Stach ckil: clock-ckil { 46748f908cSLucas Stach compatible = "fixed-clock"; 47748f908cSLucas Stach #clock-cells = <0>; 48748f908cSLucas Stach clock-frequency = <32768>; 49748f908cSLucas Stach clock-output-names = "ckil"; 50748f908cSLucas Stach }; 51748f908cSLucas Stach 52748f908cSLucas Stach osc_25m: clock-osc-25m { 53748f908cSLucas Stach compatible = "fixed-clock"; 54748f908cSLucas Stach #clock-cells = <0>; 55748f908cSLucas Stach clock-frequency = <25000000>; 56748f908cSLucas Stach clock-output-names = "osc_25m"; 57748f908cSLucas Stach }; 58748f908cSLucas Stach 59748f908cSLucas Stach osc_27m: clock-osc-27m { 60748f908cSLucas Stach compatible = "fixed-clock"; 61748f908cSLucas Stach #clock-cells = <0>; 62748f908cSLucas Stach clock-frequency = <27000000>; 63748f908cSLucas Stach clock-output-names = "osc_27m"; 64748f908cSLucas Stach }; 65748f908cSLucas Stach 665472b7dfSPeng Fan hdmi_phy_27m: clock-hdmi-phy-27m { 675472b7dfSPeng Fan compatible = "fixed-clock"; 685472b7dfSPeng Fan #clock-cells = <0>; 695472b7dfSPeng Fan clock-frequency = <27000000>; 705472b7dfSPeng Fan clock-output-names = "hdmi_phy_27m"; 715472b7dfSPeng Fan }; 725472b7dfSPeng Fan 73748f908cSLucas Stach clk_ext1: clock-ext1 { 74748f908cSLucas Stach compatible = "fixed-clock"; 75748f908cSLucas Stach #clock-cells = <0>; 76748f908cSLucas Stach clock-frequency = <133000000>; 77748f908cSLucas Stach clock-output-names = "clk_ext1"; 78748f908cSLucas Stach }; 79748f908cSLucas Stach 80748f908cSLucas Stach clk_ext2: clock-ext2 { 81748f908cSLucas Stach compatible = "fixed-clock"; 82748f908cSLucas Stach #clock-cells = <0>; 83748f908cSLucas Stach clock-frequency = <133000000>; 84748f908cSLucas Stach clock-output-names = "clk_ext2"; 85748f908cSLucas Stach }; 86748f908cSLucas Stach 87748f908cSLucas Stach clk_ext3: clock-ext3 { 88748f908cSLucas Stach compatible = "fixed-clock"; 89748f908cSLucas Stach #clock-cells = <0>; 90748f908cSLucas Stach clock-frequency = <133000000>; 91748f908cSLucas Stach clock-output-names = "clk_ext3"; 92748f908cSLucas Stach }; 93748f908cSLucas Stach 94748f908cSLucas Stach clk_ext4: clock-ext4 { 95748f908cSLucas Stach compatible = "fixed-clock"; 96748f908cSLucas Stach #clock-cells = <0>; 97748f908cSLucas Stach clock-frequency = <133000000>; 98748f908cSLucas Stach clock-output-names = "clk_ext4"; 99748f908cSLucas Stach }; 100748f908cSLucas Stach 101748f908cSLucas Stach cpus { 102748f908cSLucas Stach #address-cells = <1>; 103748f908cSLucas Stach #size-cells = <0>; 104748f908cSLucas Stach 105748f908cSLucas Stach A53_0: cpu@0 { 106748f908cSLucas Stach device_type = "cpu"; 107748f908cSLucas Stach compatible = "arm,cortex-a53"; 108748f908cSLucas Stach reg = <0x0>; 109b810641aSAbel Vesa clock-latency = <61036>; /* two CLK32 periods */ 110b810641aSAbel Vesa clocks = <&clk IMX8MQ_CLK_ARM>; 111748f908cSLucas Stach enable-method = "psci"; 112cb551b5eSPeng Fan i-cache-size = <0x8000>; 113cb551b5eSPeng Fan i-cache-line-size = <64>; 114cb551b5eSPeng Fan i-cache-sets = <256>; 115cb551b5eSPeng Fan d-cache-size = <0x8000>; 116cb551b5eSPeng Fan d-cache-line-size = <64>; 117cb551b5eSPeng Fan d-cache-sets = <128>; 118748f908cSLucas Stach next-level-cache = <&A53_L2>; 11964d26f8cSAbel Vesa operating-points-v2 = <&a53_opp_table>; 120e464fd2bSAngus Ainslie (Purism) #cooling-cells = <2>; 12112629c5cSLeonard Crestez nvmem-cells = <&cpu_speed_grade>; 12212629c5cSLeonard Crestez nvmem-cell-names = "speed_grade"; 123748f908cSLucas Stach }; 124748f908cSLucas Stach 125748f908cSLucas Stach A53_1: cpu@1 { 126748f908cSLucas Stach device_type = "cpu"; 127748f908cSLucas Stach compatible = "arm,cortex-a53"; 128748f908cSLucas Stach reg = <0x1>; 129b810641aSAbel Vesa clock-latency = <61036>; /* two CLK32 periods */ 130b810641aSAbel Vesa clocks = <&clk IMX8MQ_CLK_ARM>; 131748f908cSLucas Stach enable-method = "psci"; 132cb551b5eSPeng Fan i-cache-size = <0x8000>; 133cb551b5eSPeng Fan i-cache-line-size = <64>; 134cb551b5eSPeng Fan i-cache-sets = <256>; 135cb551b5eSPeng Fan d-cache-size = <0x8000>; 136cb551b5eSPeng Fan d-cache-line-size = <64>; 137cb551b5eSPeng Fan d-cache-sets = <128>; 138748f908cSLucas Stach next-level-cache = <&A53_L2>; 13964d26f8cSAbel Vesa operating-points-v2 = <&a53_opp_table>; 140e464fd2bSAngus Ainslie (Purism) #cooling-cells = <2>; 141748f908cSLucas Stach }; 142748f908cSLucas Stach 143748f908cSLucas Stach A53_2: cpu@2 { 144748f908cSLucas Stach device_type = "cpu"; 145748f908cSLucas Stach compatible = "arm,cortex-a53"; 146748f908cSLucas Stach reg = <0x2>; 147b810641aSAbel Vesa clock-latency = <61036>; /* two CLK32 periods */ 148b810641aSAbel Vesa clocks = <&clk IMX8MQ_CLK_ARM>; 149748f908cSLucas Stach enable-method = "psci"; 150cb551b5eSPeng Fan i-cache-size = <0x8000>; 151cb551b5eSPeng Fan i-cache-line-size = <64>; 152cb551b5eSPeng Fan i-cache-sets = <256>; 153cb551b5eSPeng Fan d-cache-size = <0x8000>; 154cb551b5eSPeng Fan d-cache-line-size = <64>; 155cb551b5eSPeng Fan d-cache-sets = <128>; 156748f908cSLucas Stach next-level-cache = <&A53_L2>; 15764d26f8cSAbel Vesa operating-points-v2 = <&a53_opp_table>; 158e464fd2bSAngus Ainslie (Purism) #cooling-cells = <2>; 159748f908cSLucas Stach }; 160748f908cSLucas Stach 161748f908cSLucas Stach A53_3: cpu@3 { 162748f908cSLucas Stach device_type = "cpu"; 163748f908cSLucas Stach compatible = "arm,cortex-a53"; 164748f908cSLucas Stach reg = <0x3>; 165b810641aSAbel Vesa clock-latency = <61036>; /* two CLK32 periods */ 166b810641aSAbel Vesa clocks = <&clk IMX8MQ_CLK_ARM>; 167748f908cSLucas Stach enable-method = "psci"; 168cb551b5eSPeng Fan i-cache-size = <0x8000>; 169cb551b5eSPeng Fan i-cache-line-size = <64>; 170cb551b5eSPeng Fan i-cache-sets = <256>; 171cb551b5eSPeng Fan d-cache-size = <0x8000>; 172cb551b5eSPeng Fan d-cache-line-size = <64>; 173cb551b5eSPeng Fan d-cache-sets = <128>; 174748f908cSLucas Stach next-level-cache = <&A53_L2>; 17564d26f8cSAbel Vesa operating-points-v2 = <&a53_opp_table>; 176e464fd2bSAngus Ainslie (Purism) #cooling-cells = <2>; 177748f908cSLucas Stach }; 178748f908cSLucas Stach 179748f908cSLucas Stach A53_L2: l2-cache0 { 180748f908cSLucas Stach compatible = "cache"; 181cb551b5eSPeng Fan cache-level = <2>; 1823b450831SPierre Gondois cache-unified; 183cb551b5eSPeng Fan cache-size = <0x100000>; 184cb551b5eSPeng Fan cache-line-size = <64>; 185cb551b5eSPeng Fan cache-sets = <1024>; 186748f908cSLucas Stach }; 187748f908cSLucas Stach }; 188748f908cSLucas Stach 189dbde7ec3SFabio Estevam a53_opp_table: opp-table { 190dbde7ec3SFabio Estevam compatible = "operating-points-v2"; 191dbde7ec3SFabio Estevam opp-shared; 192dbde7ec3SFabio Estevam 193dbde7ec3SFabio Estevam opp-800000000 { 194dbde7ec3SFabio Estevam opp-hz = /bits/ 64 <800000000>; 195dbde7ec3SFabio Estevam opp-microvolt = <900000>; 19612629c5cSLeonard Crestez /* Industrial only */ 19712629c5cSLeonard Crestez opp-supported-hw = <0xf>, <0x4>; 19812629c5cSLeonard Crestez clock-latency-ns = <150000>; 199db4cfe2fSAnson Huang opp-suspend; 20012629c5cSLeonard Crestez }; 20112629c5cSLeonard Crestez 20212629c5cSLeonard Crestez opp-1000000000 { 20312629c5cSLeonard Crestez opp-hz = /bits/ 64 <1000000000>; 20412629c5cSLeonard Crestez opp-microvolt = <900000>; 20512629c5cSLeonard Crestez /* Consumer only */ 20612629c5cSLeonard Crestez opp-supported-hw = <0xe>, <0x3>; 207dbde7ec3SFabio Estevam clock-latency-ns = <150000>; 208db4cfe2fSAnson Huang opp-suspend; 209dbde7ec3SFabio Estevam }; 210dbde7ec3SFabio Estevam 2118cfd813cSLucas Stach opp-1300000000 { 2128cfd813cSLucas Stach opp-hz = /bits/ 64 <1300000000>; 213dbde7ec3SFabio Estevam opp-microvolt = <1000000>; 2149eced3a2SAnson Huang opp-supported-hw = <0xc>, <0x4>; 215dbde7ec3SFabio Estevam clock-latency-ns = <150000>; 216db4cfe2fSAnson Huang opp-suspend; 21712629c5cSLeonard Crestez }; 21812629c5cSLeonard Crestez 21912629c5cSLeonard Crestez opp-1500000000 { 22012629c5cSLeonard Crestez opp-hz = /bits/ 64 <1500000000>; 22112629c5cSLeonard Crestez opp-microvolt = <1000000>; 2229eced3a2SAnson Huang opp-supported-hw = <0x8>, <0x3>; 22312629c5cSLeonard Crestez clock-latency-ns = <150000>; 224db4cfe2fSAnson Huang opp-suspend; 225dbde7ec3SFabio Estevam }; 226dbde7ec3SFabio Estevam }; 227dbde7ec3SFabio Estevam 228b3f6a5f2SCarlo Caione pmu { 229b3f6a5f2SCarlo Caione compatible = "arm,cortex-a53-pmu"; 230b3f6a5f2SCarlo Caione interrupts = <GIC_PPI 7 IRQ_TYPE_LEVEL_HIGH>; 231b3f6a5f2SCarlo Caione interrupt-parent = <&gic>; 232b3f6a5f2SCarlo Caione }; 233b3f6a5f2SCarlo Caione 234748f908cSLucas Stach psci { 235748f908cSLucas Stach compatible = "arm,psci-1.0"; 236748f908cSLucas Stach method = "smc"; 237748f908cSLucas Stach }; 238748f908cSLucas Stach 239cddbea8dSFabio Estevam thermal-zones { 240c5486819SVitor Massaru Iha cpu_thermal: cpu-thermal { 241cddbea8dSFabio Estevam polling-delay-passive = <250>; 242cddbea8dSFabio Estevam polling-delay = <2000>; 243cddbea8dSFabio Estevam thermal-sensors = <&tmu 0>; 244cddbea8dSFabio Estevam 245cddbea8dSFabio Estevam trips { 246cddbea8dSFabio Estevam cpu_alert: cpu-alert { 247cddbea8dSFabio Estevam temperature = <80000>; 248cddbea8dSFabio Estevam hysteresis = <2000>; 249cddbea8dSFabio Estevam type = "passive"; 250cddbea8dSFabio Estevam }; 251cddbea8dSFabio Estevam 252cddbea8dSFabio Estevam cpu-crit { 253cddbea8dSFabio Estevam temperature = <90000>; 254cddbea8dSFabio Estevam hysteresis = <2000>; 255cddbea8dSFabio Estevam type = "critical"; 256cddbea8dSFabio Estevam }; 257cddbea8dSFabio Estevam }; 258cddbea8dSFabio Estevam 259cddbea8dSFabio Estevam cooling-maps { 260cddbea8dSFabio Estevam map0 { 261cddbea8dSFabio Estevam trip = <&cpu_alert>; 262cddbea8dSFabio Estevam cooling-device = 263cddbea8dSFabio Estevam <&A53_0 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>, 264cddbea8dSFabio Estevam <&A53_1 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>, 265cddbea8dSFabio Estevam <&A53_2 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>, 266cddbea8dSFabio Estevam <&A53_3 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>; 267cddbea8dSFabio Estevam }; 268cddbea8dSFabio Estevam }; 269cddbea8dSFabio Estevam }; 270cddbea8dSFabio Estevam 271cddbea8dSFabio Estevam gpu-thermal { 272cddbea8dSFabio Estevam polling-delay-passive = <250>; 273cddbea8dSFabio Estevam polling-delay = <2000>; 274cddbea8dSFabio Estevam thermal-sensors = <&tmu 1>; 275cddbea8dSFabio Estevam 276cddbea8dSFabio Estevam trips { 2779404f2eaSGuido Günther gpu_alert: gpu-alert { 2789404f2eaSGuido Günther temperature = <80000>; 2799404f2eaSGuido Günther hysteresis = <2000>; 2809404f2eaSGuido Günther type = "passive"; 2819404f2eaSGuido Günther }; 2829404f2eaSGuido Günther 283cddbea8dSFabio Estevam gpu-crit { 284cddbea8dSFabio Estevam temperature = <90000>; 285cddbea8dSFabio Estevam hysteresis = <2000>; 286cddbea8dSFabio Estevam type = "critical"; 287cddbea8dSFabio Estevam }; 288cddbea8dSFabio Estevam }; 2899404f2eaSGuido Günther 2909404f2eaSGuido Günther cooling-maps { 2919404f2eaSGuido Günther map0 { 2929404f2eaSGuido Günther trip = <&gpu_alert>; 2939404f2eaSGuido Günther cooling-device = 2949404f2eaSGuido Günther <&gpu THERMAL_NO_LIMIT THERMAL_NO_LIMIT>; 2959404f2eaSGuido Günther }; 2969404f2eaSGuido Günther }; 297cddbea8dSFabio Estevam }; 298cddbea8dSFabio Estevam 299cddbea8dSFabio Estevam vpu-thermal { 300cddbea8dSFabio Estevam polling-delay-passive = <250>; 301cddbea8dSFabio Estevam polling-delay = <2000>; 302cddbea8dSFabio Estevam thermal-sensors = <&tmu 2>; 303cddbea8dSFabio Estevam 304cddbea8dSFabio Estevam trips { 305cddbea8dSFabio Estevam vpu-crit { 306cddbea8dSFabio Estevam temperature = <90000>; 307cddbea8dSFabio Estevam hysteresis = <2000>; 308cddbea8dSFabio Estevam type = "critical"; 309cddbea8dSFabio Estevam }; 310cddbea8dSFabio Estevam }; 311cddbea8dSFabio Estevam }; 312cddbea8dSFabio Estevam }; 313cddbea8dSFabio Estevam 314748f908cSLucas Stach timer { 315748f908cSLucas Stach compatible = "arm,armv8-timer"; 316748f908cSLucas Stach interrupts = <GIC_PPI 13 IRQ_TYPE_LEVEL_LOW>, /* Physical Secure */ 317748f908cSLucas Stach <GIC_PPI 14 IRQ_TYPE_LEVEL_LOW>, /* Physical Non-Secure */ 318748f908cSLucas Stach <GIC_PPI 11 IRQ_TYPE_LEVEL_LOW>, /* Virtual */ 319748f908cSLucas Stach <GIC_PPI 10 IRQ_TYPE_LEVEL_LOW>; /* Hypervisor */ 320748f908cSLucas Stach interrupt-parent = <&gic>; 321748f908cSLucas Stach arm,no-tick-in-suspend; 322748f908cSLucas Stach }; 323748f908cSLucas Stach 324fcdef92bSFabio Estevam soc: soc@0 { 325ce58459dSAlice Guo compatible = "fsl,imx8mq-soc", "simple-bus"; 326748f908cSLucas Stach #address-cells = <1>; 327748f908cSLucas Stach #size-cells = <1>; 328748f908cSLucas Stach ranges = <0x0 0x0 0x0 0x3e000000>; 329ca04fed4SLucas Stach dma-ranges = <0x40000000 0x0 0x40000000 0xc0000000>; 330cbff2379SAlice Guo nvmem-cells = <&imx8mq_uid>; 331cbff2379SAlice Guo nvmem-cell-names = "soc_unique_id"; 332748f908cSLucas Stach 3338d58f4d2SAlexander Stein etm0: etm@28440000 { 3348d58f4d2SAlexander Stein compatible = "arm,coresight-etm4x", "arm,primecell"; 3358d58f4d2SAlexander Stein reg = <0x28440000 0x1000>; 3368d58f4d2SAlexander Stein cpu = <&A53_0>; 3378d58f4d2SAlexander Stein clocks = <&clk IMX8MQ_CLK_MAIN_AXI>; 3388d58f4d2SAlexander Stein clock-names = "apb_pclk"; 3398d58f4d2SAlexander Stein 3408d58f4d2SAlexander Stein out-ports { 3418d58f4d2SAlexander Stein port { 3428d58f4d2SAlexander Stein etm0_out_port: endpoint { 3438d58f4d2SAlexander Stein remote-endpoint = <&ca_funnel_in_port0>; 3448d58f4d2SAlexander Stein }; 3458d58f4d2SAlexander Stein }; 3468d58f4d2SAlexander Stein }; 3478d58f4d2SAlexander Stein }; 3488d58f4d2SAlexander Stein 3498d58f4d2SAlexander Stein etm1: etm@28540000 { 3508d58f4d2SAlexander Stein compatible = "arm,coresight-etm4x", "arm,primecell"; 3518d58f4d2SAlexander Stein reg = <0x28540000 0x1000>; 3528d58f4d2SAlexander Stein cpu = <&A53_1>; 3538d58f4d2SAlexander Stein clocks = <&clk IMX8MQ_CLK_MAIN_AXI>; 3548d58f4d2SAlexander Stein clock-names = "apb_pclk"; 3558d58f4d2SAlexander Stein 3568d58f4d2SAlexander Stein out-ports { 3578d58f4d2SAlexander Stein port { 3588d58f4d2SAlexander Stein etm1_out_port: endpoint { 3598d58f4d2SAlexander Stein remote-endpoint = <&ca_funnel_in_port1>; 3608d58f4d2SAlexander Stein }; 3618d58f4d2SAlexander Stein }; 3628d58f4d2SAlexander Stein }; 3638d58f4d2SAlexander Stein }; 3648d58f4d2SAlexander Stein 3658d58f4d2SAlexander Stein etm2: etm@28640000 { 3668d58f4d2SAlexander Stein compatible = "arm,coresight-etm4x", "arm,primecell"; 3678d58f4d2SAlexander Stein reg = <0x28640000 0x1000>; 3688d58f4d2SAlexander Stein cpu = <&A53_2>; 3698d58f4d2SAlexander Stein clocks = <&clk IMX8MQ_CLK_MAIN_AXI>; 3708d58f4d2SAlexander Stein clock-names = "apb_pclk"; 3718d58f4d2SAlexander Stein 3728d58f4d2SAlexander Stein out-ports { 3738d58f4d2SAlexander Stein port { 3748d58f4d2SAlexander Stein etm2_out_port: endpoint { 3758d58f4d2SAlexander Stein remote-endpoint = <&ca_funnel_in_port2>; 3768d58f4d2SAlexander Stein }; 3778d58f4d2SAlexander Stein }; 3788d58f4d2SAlexander Stein }; 3798d58f4d2SAlexander Stein }; 3808d58f4d2SAlexander Stein 3818d58f4d2SAlexander Stein etm3: etm@28740000 { 3828d58f4d2SAlexander Stein compatible = "arm,coresight-etm4x", "arm,primecell"; 3838d58f4d2SAlexander Stein reg = <0x28740000 0x1000>; 3848d58f4d2SAlexander Stein cpu = <&A53_3>; 3858d58f4d2SAlexander Stein clocks = <&clk IMX8MQ_CLK_MAIN_AXI>; 3868d58f4d2SAlexander Stein clock-names = "apb_pclk"; 3878d58f4d2SAlexander Stein 3888d58f4d2SAlexander Stein out-ports { 3898d58f4d2SAlexander Stein port { 3908d58f4d2SAlexander Stein etm3_out_port: endpoint { 3918d58f4d2SAlexander Stein remote-endpoint = <&ca_funnel_in_port3>; 3928d58f4d2SAlexander Stein }; 3938d58f4d2SAlexander Stein }; 3948d58f4d2SAlexander Stein }; 3958d58f4d2SAlexander Stein }; 3968d58f4d2SAlexander Stein 3978d58f4d2SAlexander Stein funnel { 3988d58f4d2SAlexander Stein /* 3998d58f4d2SAlexander Stein * non-configurable funnel don't show up on the AMBA 4008d58f4d2SAlexander Stein * bus. As such no need to add "arm,primecell". 4018d58f4d2SAlexander Stein */ 4028d58f4d2SAlexander Stein compatible = "arm,coresight-static-funnel"; 4038d58f4d2SAlexander Stein 4048d58f4d2SAlexander Stein in-ports { 4058d58f4d2SAlexander Stein #address-cells = <1>; 4068d58f4d2SAlexander Stein #size-cells = <0>; 4078d58f4d2SAlexander Stein 4088d58f4d2SAlexander Stein port@0 { 4098d58f4d2SAlexander Stein reg = <0>; 4108d58f4d2SAlexander Stein 4118d58f4d2SAlexander Stein ca_funnel_in_port0: endpoint { 4128d58f4d2SAlexander Stein remote-endpoint = <&etm0_out_port>; 4138d58f4d2SAlexander Stein }; 4148d58f4d2SAlexander Stein }; 4158d58f4d2SAlexander Stein 4168d58f4d2SAlexander Stein port@1 { 4178d58f4d2SAlexander Stein reg = <1>; 4188d58f4d2SAlexander Stein 4198d58f4d2SAlexander Stein ca_funnel_in_port1: endpoint { 4208d58f4d2SAlexander Stein remote-endpoint = <&etm1_out_port>; 4218d58f4d2SAlexander Stein }; 4228d58f4d2SAlexander Stein }; 4238d58f4d2SAlexander Stein 4248d58f4d2SAlexander Stein port@2 { 4258d58f4d2SAlexander Stein reg = <2>; 4268d58f4d2SAlexander Stein 4278d58f4d2SAlexander Stein ca_funnel_in_port2: endpoint { 4288d58f4d2SAlexander Stein remote-endpoint = <&etm2_out_port>; 4298d58f4d2SAlexander Stein }; 4308d58f4d2SAlexander Stein }; 4318d58f4d2SAlexander Stein 4328d58f4d2SAlexander Stein port@3 { 4338d58f4d2SAlexander Stein reg = <3>; 4348d58f4d2SAlexander Stein 4358d58f4d2SAlexander Stein ca_funnel_in_port3: endpoint { 4368d58f4d2SAlexander Stein remote-endpoint = <&etm3_out_port>; 4378d58f4d2SAlexander Stein }; 4388d58f4d2SAlexander Stein }; 4398d58f4d2SAlexander Stein }; 4408d58f4d2SAlexander Stein 4418d58f4d2SAlexander Stein out-ports { 4428d58f4d2SAlexander Stein port { 4438d58f4d2SAlexander Stein ca_funnel_out_port0: endpoint { 4448d58f4d2SAlexander Stein remote-endpoint = <&hugo_funnel_in_port0>; 4458d58f4d2SAlexander Stein }; 4468d58f4d2SAlexander Stein }; 4478d58f4d2SAlexander Stein }; 4488d58f4d2SAlexander Stein }; 4498d58f4d2SAlexander Stein 4508d58f4d2SAlexander Stein funnel@28c03000 { 4518d58f4d2SAlexander Stein compatible = "arm,coresight-dynamic-funnel", "arm,primecell"; 4528d58f4d2SAlexander Stein reg = <0x28c03000 0x1000>; 4538d58f4d2SAlexander Stein clocks = <&clk IMX8MQ_CLK_MAIN_AXI>; 4548d58f4d2SAlexander Stein clock-names = "apb_pclk"; 4558d58f4d2SAlexander Stein 4568d58f4d2SAlexander Stein in-ports { 4578d58f4d2SAlexander Stein #address-cells = <1>; 4588d58f4d2SAlexander Stein #size-cells = <0>; 4598d58f4d2SAlexander Stein 4608d58f4d2SAlexander Stein port@0 { 4618d58f4d2SAlexander Stein reg = <0>; 4628d58f4d2SAlexander Stein 4638d58f4d2SAlexander Stein hugo_funnel_in_port0: endpoint { 4648d58f4d2SAlexander Stein remote-endpoint = <&ca_funnel_out_port0>; 4658d58f4d2SAlexander Stein }; 4668d58f4d2SAlexander Stein }; 4678d58f4d2SAlexander Stein 4688d58f4d2SAlexander Stein port@1 { 4698d58f4d2SAlexander Stein reg = <1>; 4708d58f4d2SAlexander Stein 4718d58f4d2SAlexander Stein hugo_funnel_in_port1: endpoint { 4728d58f4d2SAlexander Stein /* M4 input */ 4738d58f4d2SAlexander Stein }; 4748d58f4d2SAlexander Stein }; 4758d58f4d2SAlexander Stein /* the other input ports are not connect to anything */ 4768d58f4d2SAlexander Stein }; 4778d58f4d2SAlexander Stein 4788d58f4d2SAlexander Stein out-ports { 4798d58f4d2SAlexander Stein port { 4808d58f4d2SAlexander Stein hugo_funnel_out_port0: endpoint { 4818d58f4d2SAlexander Stein remote-endpoint = <&etf_in_port>; 4828d58f4d2SAlexander Stein }; 4838d58f4d2SAlexander Stein }; 4848d58f4d2SAlexander Stein }; 4858d58f4d2SAlexander Stein }; 4868d58f4d2SAlexander Stein 4878d58f4d2SAlexander Stein etf@28c04000 { 4888d58f4d2SAlexander Stein compatible = "arm,coresight-tmc", "arm,primecell"; 4898d58f4d2SAlexander Stein reg = <0x28c04000 0x1000>; 4908d58f4d2SAlexander Stein clocks = <&clk IMX8MQ_CLK_MAIN_AXI>; 4918d58f4d2SAlexander Stein clock-names = "apb_pclk"; 4928d58f4d2SAlexander Stein 4938d58f4d2SAlexander Stein in-ports { 4948d58f4d2SAlexander Stein port { 4958d58f4d2SAlexander Stein etf_in_port: endpoint { 4968d58f4d2SAlexander Stein remote-endpoint = <&hugo_funnel_out_port0>; 4978d58f4d2SAlexander Stein }; 4988d58f4d2SAlexander Stein }; 4998d58f4d2SAlexander Stein }; 5008d58f4d2SAlexander Stein 5018d58f4d2SAlexander Stein out-ports { 5028d58f4d2SAlexander Stein port { 5038d58f4d2SAlexander Stein etf_out_port: endpoint { 5048d58f4d2SAlexander Stein remote-endpoint = <&etr_in_port>; 5058d58f4d2SAlexander Stein }; 5068d58f4d2SAlexander Stein }; 5078d58f4d2SAlexander Stein }; 5088d58f4d2SAlexander Stein }; 5098d58f4d2SAlexander Stein 5108d58f4d2SAlexander Stein etr@28c06000 { 5118d58f4d2SAlexander Stein compatible = "arm,coresight-tmc", "arm,primecell"; 5128d58f4d2SAlexander Stein reg = <0x28c06000 0x1000>; 5138d58f4d2SAlexander Stein clocks = <&clk IMX8MQ_CLK_MAIN_AXI>; 5148d58f4d2SAlexander Stein clock-names = "apb_pclk"; 5158d58f4d2SAlexander Stein 5168d58f4d2SAlexander Stein in-ports { 5178d58f4d2SAlexander Stein port { 5188d58f4d2SAlexander Stein etr_in_port: endpoint { 5198d58f4d2SAlexander Stein remote-endpoint = <&etf_out_port>; 5208d58f4d2SAlexander Stein }; 5218d58f4d2SAlexander Stein }; 5228d58f4d2SAlexander Stein }; 5238d58f4d2SAlexander Stein }; 5248d58f4d2SAlexander Stein 525825bd235SFabio Estevam aips1: bus@30000000 { /* AIPS1 */ 526dc3efc6fSPeng Fan compatible = "fsl,aips-bus", "simple-bus"; 527921a6845SFabio Estevam reg = <0x30000000 0x400000>; 528748f908cSLucas Stach #address-cells = <1>; 529748f908cSLucas Stach #size-cells = <1>; 530748f908cSLucas Stach ranges = <0x30000000 0x30000000 0x400000>; 531748f908cSLucas Stach 532fcb1991cSLucas Stach sai1: sai@30010000 { 533fcb1991cSLucas Stach #sound-dai-cells = <0>; 534fcb1991cSLucas Stach compatible = "fsl,imx8mq-sai"; 535fcb1991cSLucas Stach reg = <0x30010000 0x10000>; 536fcb1991cSLucas Stach interrupts = <GIC_SPI 95 IRQ_TYPE_LEVEL_HIGH>; 537fcb1991cSLucas Stach clocks = <&clk IMX8MQ_CLK_SAI1_IPG>, 538fcb1991cSLucas Stach <&clk IMX8MQ_CLK_SAI1_ROOT>, 539fcb1991cSLucas Stach <&clk IMX8MQ_CLK_DUMMY>, <&clk IMX8MQ_CLK_DUMMY>; 540fcb1991cSLucas Stach clock-names = "bus", "mclk1", "mclk2", "mclk3"; 541fcb1991cSLucas Stach dmas = <&sdma2 8 24 0>, <&sdma1 9 24 0>; 542fcb1991cSLucas Stach dma-names = "rx", "tx"; 543fcb1991cSLucas Stach status = "disabled"; 544fcb1991cSLucas Stach }; 545fcb1991cSLucas Stach 546fcb1991cSLucas Stach sai6: sai@30030000 { 547fcb1991cSLucas Stach #sound-dai-cells = <0>; 548fcb1991cSLucas Stach compatible = "fsl,imx8mq-sai"; 549fcb1991cSLucas Stach reg = <0x30030000 0x10000>; 550fcb1991cSLucas Stach interrupts = <GIC_SPI 90 IRQ_TYPE_LEVEL_HIGH>; 551fcb1991cSLucas Stach clocks = <&clk IMX8MQ_CLK_SAI6_IPG>, 552fcb1991cSLucas Stach <&clk IMX8MQ_CLK_SAI6_ROOT>, 553fcb1991cSLucas Stach <&clk IMX8MQ_CLK_DUMMY>, <&clk IMX8MQ_CLK_DUMMY>; 554fcb1991cSLucas Stach clock-names = "bus", "mclk1", "mclk2", "mclk3"; 555fcb1991cSLucas Stach dmas = <&sdma2 4 24 0>, <&sdma2 5 24 0>; 556fcb1991cSLucas Stach dma-names = "rx", "tx"; 557fcb1991cSLucas Stach status = "disabled"; 558fcb1991cSLucas Stach }; 559fcb1991cSLucas Stach 560fcb1991cSLucas Stach sai5: sai@30040000 { 561fcb1991cSLucas Stach #sound-dai-cells = <0>; 562fcb1991cSLucas Stach compatible = "fsl,imx8mq-sai"; 563fcb1991cSLucas Stach reg = <0x30040000 0x10000>; 564fcb1991cSLucas Stach interrupts = <GIC_SPI 90 IRQ_TYPE_LEVEL_HIGH>; 565fcb1991cSLucas Stach clocks = <&clk IMX8MQ_CLK_SAI5_IPG>, 566fcb1991cSLucas Stach <&clk IMX8MQ_CLK_SAI5_ROOT>, 567fcb1991cSLucas Stach <&clk IMX8MQ_CLK_DUMMY>, <&clk IMX8MQ_CLK_DUMMY>; 568fcb1991cSLucas Stach clock-names = "bus", "mclk1", "mclk2", "mclk3"; 569fcb1991cSLucas Stach dmas = <&sdma2 2 24 0>, <&sdma2 3 24 0>; 570fcb1991cSLucas Stach dma-names = "rx", "tx"; 571fcb1991cSLucas Stach status = "disabled"; 572fcb1991cSLucas Stach }; 573fcb1991cSLucas Stach 574fcb1991cSLucas Stach sai4: sai@30050000 { 575fcb1991cSLucas Stach #sound-dai-cells = <0>; 576fcb1991cSLucas Stach compatible = "fsl,imx8mq-sai"; 577fcb1991cSLucas Stach reg = <0x30050000 0x10000>; 578fcb1991cSLucas Stach interrupts = <GIC_SPI 100 IRQ_TYPE_LEVEL_HIGH>; 579fcb1991cSLucas Stach clocks = <&clk IMX8MQ_CLK_SAI4_IPG>, 580fcb1991cSLucas Stach <&clk IMX8MQ_CLK_SAI4_ROOT>, 581fcb1991cSLucas Stach <&clk IMX8MQ_CLK_DUMMY>, <&clk IMX8MQ_CLK_DUMMY>; 582fcb1991cSLucas Stach clock-names = "bus", "mclk1", "mclk2", "mclk3"; 583fcb1991cSLucas Stach dmas = <&sdma2 0 24 0>, <&sdma2 1 24 0>; 584fcb1991cSLucas Stach dma-names = "rx", "tx"; 585fcb1991cSLucas Stach status = "disabled"; 586fcb1991cSLucas Stach }; 587fcb1991cSLucas Stach 588748f908cSLucas Stach gpio1: gpio@30200000 { 589748f908cSLucas Stach compatible = "fsl,imx8mq-gpio", "fsl,imx35-gpio"; 590748f908cSLucas Stach reg = <0x30200000 0x10000>; 591748f908cSLucas Stach interrupts = <GIC_SPI 64 IRQ_TYPE_LEVEL_HIGH>, 592748f908cSLucas Stach <GIC_SPI 65 IRQ_TYPE_LEVEL_HIGH>; 593580b064dSAnson Huang clocks = <&clk IMX8MQ_CLK_GPIO1_ROOT>; 594748f908cSLucas Stach gpio-controller; 595748f908cSLucas Stach #gpio-cells = <2>; 596748f908cSLucas Stach interrupt-controller; 597748f908cSLucas Stach #interrupt-cells = <2>; 59826c2f55aSAnson Huang gpio-ranges = <&iomuxc 0 10 30>; 599748f908cSLucas Stach }; 600748f908cSLucas Stach 601748f908cSLucas Stach gpio2: gpio@30210000 { 602748f908cSLucas Stach compatible = "fsl,imx8mq-gpio", "fsl,imx35-gpio"; 603748f908cSLucas Stach reg = <0x30210000 0x10000>; 604748f908cSLucas Stach interrupts = <GIC_SPI 66 IRQ_TYPE_LEVEL_HIGH>, 605748f908cSLucas Stach <GIC_SPI 67 IRQ_TYPE_LEVEL_HIGH>; 606580b064dSAnson Huang clocks = <&clk IMX8MQ_CLK_GPIO2_ROOT>; 607748f908cSLucas Stach gpio-controller; 608748f908cSLucas Stach #gpio-cells = <2>; 609748f908cSLucas Stach interrupt-controller; 610748f908cSLucas Stach #interrupt-cells = <2>; 61126c2f55aSAnson Huang gpio-ranges = <&iomuxc 0 40 21>; 612748f908cSLucas Stach }; 613748f908cSLucas Stach 614748f908cSLucas Stach gpio3: gpio@30220000 { 615748f908cSLucas Stach compatible = "fsl,imx8mq-gpio", "fsl,imx35-gpio"; 616748f908cSLucas Stach reg = <0x30220000 0x10000>; 617748f908cSLucas Stach interrupts = <GIC_SPI 68 IRQ_TYPE_LEVEL_HIGH>, 618748f908cSLucas Stach <GIC_SPI 69 IRQ_TYPE_LEVEL_HIGH>; 619580b064dSAnson Huang clocks = <&clk IMX8MQ_CLK_GPIO3_ROOT>; 620748f908cSLucas Stach gpio-controller; 621748f908cSLucas Stach #gpio-cells = <2>; 622748f908cSLucas Stach interrupt-controller; 623748f908cSLucas Stach #interrupt-cells = <2>; 62426c2f55aSAnson Huang gpio-ranges = <&iomuxc 0 61 26>; 625748f908cSLucas Stach }; 626748f908cSLucas Stach 627748f908cSLucas Stach gpio4: gpio@30230000 { 628748f908cSLucas Stach compatible = "fsl,imx8mq-gpio", "fsl,imx35-gpio"; 629748f908cSLucas Stach reg = <0x30230000 0x10000>; 630748f908cSLucas Stach interrupts = <GIC_SPI 70 IRQ_TYPE_LEVEL_HIGH>, 631748f908cSLucas Stach <GIC_SPI 71 IRQ_TYPE_LEVEL_HIGH>; 632580b064dSAnson Huang clocks = <&clk IMX8MQ_CLK_GPIO4_ROOT>; 633748f908cSLucas Stach gpio-controller; 634748f908cSLucas Stach #gpio-cells = <2>; 635748f908cSLucas Stach interrupt-controller; 636748f908cSLucas Stach #interrupt-cells = <2>; 63726c2f55aSAnson Huang gpio-ranges = <&iomuxc 0 87 32>; 638748f908cSLucas Stach }; 639748f908cSLucas Stach 640748f908cSLucas Stach gpio5: gpio@30240000 { 641748f908cSLucas Stach compatible = "fsl,imx8mq-gpio", "fsl,imx35-gpio"; 642748f908cSLucas Stach reg = <0x30240000 0x10000>; 643748f908cSLucas Stach interrupts = <GIC_SPI 72 IRQ_TYPE_LEVEL_HIGH>, 644748f908cSLucas Stach <GIC_SPI 73 IRQ_TYPE_LEVEL_HIGH>; 645580b064dSAnson Huang clocks = <&clk IMX8MQ_CLK_GPIO5_ROOT>; 646748f908cSLucas Stach gpio-controller; 647748f908cSLucas Stach #gpio-cells = <2>; 648748f908cSLucas Stach interrupt-controller; 649748f908cSLucas Stach #interrupt-cells = <2>; 65026c2f55aSAnson Huang gpio-ranges = <&iomuxc 0 119 30>; 651748f908cSLucas Stach }; 652748f908cSLucas Stach 653e464fd2bSAngus Ainslie (Purism) tmu: tmu@30260000 { 654e464fd2bSAngus Ainslie (Purism) compatible = "fsl,imx8mq-tmu"; 655e464fd2bSAngus Ainslie (Purism) reg = <0x30260000 0x10000>; 6561f2f98f2SKrzysztof Kozlowski interrupts = <GIC_SPI 49 IRQ_TYPE_LEVEL_HIGH>; 657150736b8SAnson Huang clocks = <&clk IMX8MQ_CLK_TMU_ROOT>; 658e464fd2bSAngus Ainslie (Purism) little-endian; 659e464fd2bSAngus Ainslie (Purism) fsl,tmu-range = <0xb0000 0xa0026 0x80048 0x70061>; 660474b61a7SDavid Heidelberg fsl,tmu-calibration = <0x00000000 0x00000023>, 661474b61a7SDavid Heidelberg <0x00000001 0x00000029>, 662474b61a7SDavid Heidelberg <0x00000002 0x0000002f>, 663474b61a7SDavid Heidelberg <0x00000003 0x00000035>, 664474b61a7SDavid Heidelberg <0x00000004 0x0000003d>, 665474b61a7SDavid Heidelberg <0x00000005 0x00000043>, 666474b61a7SDavid Heidelberg <0x00000006 0x0000004b>, 667474b61a7SDavid Heidelberg <0x00000007 0x00000051>, 668474b61a7SDavid Heidelberg <0x00000008 0x00000057>, 669474b61a7SDavid Heidelberg <0x00000009 0x0000005f>, 670474b61a7SDavid Heidelberg <0x0000000a 0x00000067>, 671474b61a7SDavid Heidelberg <0x0000000b 0x0000006f>, 672e464fd2bSAngus Ainslie (Purism) 673474b61a7SDavid Heidelberg <0x00010000 0x0000001b>, 674474b61a7SDavid Heidelberg <0x00010001 0x00000023>, 675474b61a7SDavid Heidelberg <0x00010002 0x0000002b>, 676474b61a7SDavid Heidelberg <0x00010003 0x00000033>, 677474b61a7SDavid Heidelberg <0x00010004 0x0000003b>, 678474b61a7SDavid Heidelberg <0x00010005 0x00000043>, 679474b61a7SDavid Heidelberg <0x00010006 0x0000004b>, 680474b61a7SDavid Heidelberg <0x00010007 0x00000055>, 681474b61a7SDavid Heidelberg <0x00010008 0x0000005d>, 682474b61a7SDavid Heidelberg <0x00010009 0x00000067>, 683474b61a7SDavid Heidelberg <0x0001000a 0x00000070>, 684e464fd2bSAngus Ainslie (Purism) 685474b61a7SDavid Heidelberg <0x00020000 0x00000017>, 686474b61a7SDavid Heidelberg <0x00020001 0x00000023>, 687474b61a7SDavid Heidelberg <0x00020002 0x0000002d>, 688474b61a7SDavid Heidelberg <0x00020003 0x00000037>, 689474b61a7SDavid Heidelberg <0x00020004 0x00000041>, 690474b61a7SDavid Heidelberg <0x00020005 0x0000004b>, 691474b61a7SDavid Heidelberg <0x00020006 0x00000057>, 692474b61a7SDavid Heidelberg <0x00020007 0x00000063>, 693474b61a7SDavid Heidelberg <0x00020008 0x0000006f>, 694e464fd2bSAngus Ainslie (Purism) 695474b61a7SDavid Heidelberg <0x00030000 0x00000015>, 696474b61a7SDavid Heidelberg <0x00030001 0x00000021>, 697474b61a7SDavid Heidelberg <0x00030002 0x0000002d>, 698474b61a7SDavid Heidelberg <0x00030003 0x00000039>, 699474b61a7SDavid Heidelberg <0x00030004 0x00000045>, 700474b61a7SDavid Heidelberg <0x00030005 0x00000053>, 701474b61a7SDavid Heidelberg <0x00030006 0x0000005f>, 702474b61a7SDavid Heidelberg <0x00030007 0x00000071>; 703e464fd2bSAngus Ainslie (Purism) #thermal-sensor-cells = <1>; 704e464fd2bSAngus Ainslie (Purism) }; 705e464fd2bSAngus Ainslie (Purism) 706d3a2d72bSBaruch Siach wdog1: watchdog@30280000 { 707d3a2d72bSBaruch Siach compatible = "fsl,imx8mq-wdt", "fsl,imx21-wdt"; 708d3a2d72bSBaruch Siach reg = <0x30280000 0x10000>; 709d3a2d72bSBaruch Siach interrupts = <GIC_SPI 78 IRQ_TYPE_LEVEL_HIGH>; 710d3a2d72bSBaruch Siach clocks = <&clk IMX8MQ_CLK_WDOG1_ROOT>; 711d3a2d72bSBaruch Siach status = "disabled"; 712d3a2d72bSBaruch Siach }; 713d3a2d72bSBaruch Siach 714d3a2d72bSBaruch Siach wdog2: watchdog@30290000 { 715d3a2d72bSBaruch Siach compatible = "fsl,imx8mq-wdt", "fsl,imx21-wdt"; 716d3a2d72bSBaruch Siach reg = <0x30290000 0x10000>; 717d3a2d72bSBaruch Siach interrupts = <GIC_SPI 79 IRQ_TYPE_LEVEL_HIGH>; 718d3a2d72bSBaruch Siach clocks = <&clk IMX8MQ_CLK_WDOG2_ROOT>; 719d3a2d72bSBaruch Siach status = "disabled"; 720d3a2d72bSBaruch Siach }; 721d3a2d72bSBaruch Siach 722d3a2d72bSBaruch Siach wdog3: watchdog@302a0000 { 723d3a2d72bSBaruch Siach compatible = "fsl,imx8mq-wdt", "fsl,imx21-wdt"; 724d3a2d72bSBaruch Siach reg = <0x302a0000 0x10000>; 725d3a2d72bSBaruch Siach interrupts = <GIC_SPI 10 IRQ_TYPE_LEVEL_HIGH>; 726d3a2d72bSBaruch Siach clocks = <&clk IMX8MQ_CLK_WDOG3_ROOT>; 727d3a2d72bSBaruch Siach status = "disabled"; 728d3a2d72bSBaruch Siach }; 729a2b91efdSLucas Stach 730d314fd24SJoy Zou sdma2: dma-controller@302c0000 { 7311474d48bSDaniel Baluta compatible = "fsl,imx8mq-sdma","fsl,imx7d-sdma"; 7321474d48bSDaniel Baluta reg = <0x302c0000 0x10000>; 7331474d48bSDaniel Baluta interrupts = <GIC_SPI 103 IRQ_TYPE_LEVEL_HIGH>; 7341474d48bSDaniel Baluta clocks = <&clk IMX8MQ_CLK_SDMA2_ROOT>, 7351474d48bSDaniel Baluta <&clk IMX8MQ_CLK_SDMA2_ROOT>; 7361474d48bSDaniel Baluta clock-names = "ipg", "ahb"; 7371474d48bSDaniel Baluta #dma-cells = <3>; 7381474d48bSDaniel Baluta fsl,sdma-ram-script-name = "imx/sdma/sdma-imx7d.bin"; 7391474d48bSDaniel Baluta }; 7401474d48bSDaniel Baluta 7411987ddfcSGuido Günther lcdif: lcd-controller@30320000 { 74202208f0eSAlexander Stein compatible = "fsl,imx8mq-lcdif", "fsl,imx6sx-lcdif"; 7431987ddfcSGuido Günther reg = <0x30320000 0x10000>; 7441987ddfcSGuido Günther interrupts = <GIC_SPI 5 IRQ_TYPE_LEVEL_HIGH>; 745edcaf194SAlexander Stein clocks = <&clk IMX8MQ_CLK_LCDIF_PIXEL>, 746edcaf194SAlexander Stein <&clk IMX8MQ_CLK_DISP_APB_ROOT>, 747edcaf194SAlexander Stein <&clk IMX8MQ_CLK_DISP_AXI_ROOT>; 748edcaf194SAlexander Stein clock-names = "pix", "axi", "disp_axi"; 7491987ddfcSGuido Günther assigned-clocks = <&clk IMX8MQ_VIDEO_PLL1_REF_SEL>, 7501987ddfcSGuido Günther <&clk IMX8MQ_VIDEO_PLL1_BYPASS>, 7511987ddfcSGuido Günther <&clk IMX8MQ_CLK_LCDIF_PIXEL>, 7521987ddfcSGuido Günther <&clk IMX8MQ_VIDEO_PLL1>; 7531987ddfcSGuido Günther assigned-clock-parents = <&clk IMX8MQ_CLK_25M>, 7541987ddfcSGuido Günther <&clk IMX8MQ_VIDEO_PLL1>, 7551987ddfcSGuido Günther <&clk IMX8MQ_VIDEO_PLL1_OUT>; 7561987ddfcSGuido Günther assigned-clock-rates = <0>, <0>, <0>, <594000000>; 7571987ddfcSGuido Günther status = "disabled"; 758d0081bd0SGuido Günther 75991f6d5f1SAlexander Stein port { 760d0081bd0SGuido Günther lcdif_mipi_dsi: endpoint { 761d0081bd0SGuido Günther remote-endpoint = <&mipi_dsi_lcdif_in>; 762d0081bd0SGuido Günther }; 763d0081bd0SGuido Günther }; 7641987ddfcSGuido Günther }; 7651987ddfcSGuido Günther 766c18696deSAnson Huang iomuxc: pinctrl@30330000 { 767748f908cSLucas Stach compatible = "fsl,imx8mq-iomuxc"; 768748f908cSLucas Stach reg = <0x30330000 0x10000>; 769748f908cSLucas Stach }; 770748f908cSLucas Stach 771748f908cSLucas Stach iomuxc_gpr: syscon@30340000 { 7726e918ad9SPeng Fan compatible = "fsl,imx8mq-iomuxc-gpr", "syscon", "simple-mfd"; 773748f908cSLucas Stach reg = <0x30340000 0x10000>; 77421570180SGuido Günther 77521570180SGuido Günther mux: mux-controller { 77621570180SGuido Günther compatible = "mmio-mux"; 77721570180SGuido Günther #mux-control-cells = <1>; 77821570180SGuido Günther mux-reg-masks = <0x34 0x00000004>; /* MIPI_MUX_SEL */ 77921570180SGuido Günther }; 780748f908cSLucas Stach }; 781748f908cSLucas Stach 78212fa1078SAnson Huang ocotp: efuse@30350000 { 7839e113b2eSCarlo Caione compatible = "fsl,imx8mq-ocotp", "syscon"; 7849e113b2eSCarlo Caione reg = <0x30350000 0x10000>; 7859e113b2eSCarlo Caione clocks = <&clk IMX8MQ_CLK_OCOTP_ROOT>; 7869e113b2eSCarlo Caione #address-cells = <1>; 7879e113b2eSCarlo Caione #size-cells = <1>; 78812629c5cSLeonard Crestez 7895b81a87dSMarek Vasut /* 7905b81a87dSMarek Vasut * The register address below maps to the MX8M 7915b81a87dSMarek Vasut * Fusemap Description Table entries this way. 7925b81a87dSMarek Vasut * Assuming 7935b81a87dSMarek Vasut * reg = <ADDR SIZE>; 7945b81a87dSMarek Vasut * then 7955b81a87dSMarek Vasut * Fuse Address = (ADDR * 4) + 0x400 7965b81a87dSMarek Vasut * Note that if SIZE is greater than 4, then 7975b81a87dSMarek Vasut * each subsequent fuse is located at offset 7985b81a87dSMarek Vasut * +0x10 in Fusemap Description Table (e.g. 7995b81a87dSMarek Vasut * reg = <0x4 0x8> describes fuses 0x410 and 8005b81a87dSMarek Vasut * 0x420). 8015b81a87dSMarek Vasut */ 8025b81a87dSMarek Vasut imx8mq_uid: soc-uid@4 { /* 0x410-0x420 */ 803cbff2379SAlice Guo reg = <0x4 0x8>; 804cbff2379SAlice Guo }; 805cbff2379SAlice Guo 8065b81a87dSMarek Vasut cpu_speed_grade: speed-grade@10 { /* 0x440 */ 80712629c5cSLeonard Crestez reg = <0x10 4>; 80812629c5cSLeonard Crestez }; 809066438aeSJoakim Zhang 8105b81a87dSMarek Vasut fec_mac_address: mac-address@90 { /* 0x640 */ 811066438aeSJoakim Zhang reg = <0x90 6>; 812066438aeSJoakim Zhang }; 8139e113b2eSCarlo Caione }; 8149e113b2eSCarlo Caione 815f98c2dfeSPeng Fan anatop: clock-controller@30360000 { 816f98c2dfeSPeng Fan compatible = "fsl,imx8mq-anatop"; 817748f908cSLucas Stach reg = <0x30360000 0x10000>; 818748f908cSLucas Stach interrupts = <GIC_SPI 49 IRQ_TYPE_LEVEL_HIGH>; 819f98c2dfeSPeng Fan #clock-cells = <1>; 820748f908cSLucas Stach }; 821748f908cSLucas Stach 8223ea95c31SAbel Vesa snvs: snvs@30370000 { 8233ea95c31SAbel Vesa compatible = "fsl,sec-v4.0-mon", "syscon", "simple-mfd"; 8243ea95c31SAbel Vesa reg = <0x30370000 0x10000>; 8253ea95c31SAbel Vesa 8263ea95c31SAbel Vesa snvs_rtc: snvs-rtc-lp { 8273ea95c31SAbel Vesa compatible = "fsl,sec-v4.0-mon-rtc-lp"; 8283ea95c31SAbel Vesa regmap = <&snvs>; 8293ea95c31SAbel Vesa offset = <0x34>; 8303ea95c31SAbel Vesa interrupts = <GIC_SPI 19 IRQ_TYPE_LEVEL_HIGH>, 8313ea95c31SAbel Vesa <GIC_SPI 20 IRQ_TYPE_LEVEL_HIGH>; 832881b54c7SAnson Huang clocks = <&clk IMX8MQ_CLK_SNVS_ROOT>; 833881b54c7SAnson Huang clock-names = "snvs-rtc"; 8343ea95c31SAbel Vesa }; 8353ea95c31SAbel Vesa 836a01194d7SAngus Ainslie (Purism) snvs_pwrkey: snvs-powerkey { 837a01194d7SAngus Ainslie (Purism) compatible = "fsl,sec-v4.0-pwrkey"; 838a01194d7SAngus Ainslie (Purism) regmap = <&snvs>; 839a01194d7SAngus Ainslie (Purism) interrupts = <GIC_SPI 4 IRQ_TYPE_LEVEL_HIGH>; 840edd91ba6SAndré Draszik clocks = <&clk IMX8MQ_CLK_SNVS_ROOT>; 841edd91ba6SAndré Draszik clock-names = "snvs-pwrkey"; 842a01194d7SAngus Ainslie (Purism) linux,keycode = <KEY_POWER>; 843a01194d7SAngus Ainslie (Purism) wakeup-source; 844a01194d7SAngus Ainslie (Purism) status = "disabled"; 845a01194d7SAngus Ainslie (Purism) }; 8463ea95c31SAbel Vesa }; 8473ea95c31SAbel Vesa 848748f908cSLucas Stach clk: clock-controller@30380000 { 849748f908cSLucas Stach compatible = "fsl,imx8mq-ccm"; 850748f908cSLucas Stach reg = <0x30380000 0x10000>; 851748f908cSLucas Stach interrupts = <GIC_SPI 85 IRQ_TYPE_LEVEL_HIGH>, 852748f908cSLucas Stach <GIC_SPI 86 IRQ_TYPE_LEVEL_HIGH>; 853748f908cSLucas Stach #clock-cells = <1>; 854748f908cSLucas Stach clocks = <&ckil>, <&osc_25m>, <&osc_27m>, 855748f908cSLucas Stach <&clk_ext1>, <&clk_ext2>, 856748f908cSLucas Stach <&clk_ext3>, <&clk_ext4>; 857748f908cSLucas Stach clock-names = "ckil", "osc_25m", "osc_27m", 858748f908cSLucas Stach "clk_ext1", "clk_ext2", 859748f908cSLucas Stach "clk_ext3", "clk_ext4"; 8609e6337e6SPeng Fan assigned-clocks = <&clk IMX8MQ_CLK_A53_SRC>, 8619e6337e6SPeng Fan <&clk IMX8MQ_CLK_A53_CORE>, 86271fa01d3SShengjiu Wang <&clk IMX8MQ_CLK_NOC>, 86371fa01d3SShengjiu Wang <&clk IMX8MQ_CLK_AUDIO_AHB>, 86471fa01d3SShengjiu Wang <&clk IMX8MQ_AUDIO_PLL1_BYPASS>, 86571fa01d3SShengjiu Wang <&clk IMX8MQ_AUDIO_PLL2_BYPASS>, 86671fa01d3SShengjiu Wang <&clk IMX8MQ_AUDIO_PLL1>, 86771fa01d3SShengjiu Wang <&clk IMX8MQ_AUDIO_PLL2>; 8689e6337e6SPeng Fan assigned-clock-rates = <0>, <0>, 86971fa01d3SShengjiu Wang <800000000>, 87071fa01d3SShengjiu Wang <0>, 87171fa01d3SShengjiu Wang <0>, 87271fa01d3SShengjiu Wang <0>, 87371fa01d3SShengjiu Wang <786432000>, 87471fa01d3SShengjiu Wang <722534400>; 8759e6337e6SPeng Fan assigned-clock-parents = <&clk IMX8MQ_SYS1_PLL_800M>, 87671fa01d3SShengjiu Wang <&clk IMX8MQ_ARM_PLL_OUT>, 87771fa01d3SShengjiu Wang <0>, 87871fa01d3SShengjiu Wang <&clk IMX8MQ_SYS2_PLL_500M>, 87971fa01d3SShengjiu Wang <&clk IMX8MQ_AUDIO_PLL1>, 88071fa01d3SShengjiu Wang <&clk IMX8MQ_AUDIO_PLL2>; 881748f908cSLucas Stach }; 882fdbcc04dSLucas Stach 883d62a250eSAndrey Smirnov src: reset-controller@30390000 { 884d62a250eSAndrey Smirnov compatible = "fsl,imx8mq-src", "syscon"; 885d62a250eSAndrey Smirnov reg = <0x30390000 0x10000>; 886d0955f66SAnson Huang interrupts = <GIC_SPI 89 IRQ_TYPE_LEVEL_HIGH>; 887d62a250eSAndrey Smirnov #reset-cells = <1>; 888d62a250eSAndrey Smirnov }; 889d62a250eSAndrey Smirnov 890fdbcc04dSLucas Stach gpc: gpc@303a0000 { 891fdbcc04dSLucas Stach compatible = "fsl,imx8mq-gpc"; 892fdbcc04dSLucas Stach reg = <0x303a0000 0x10000>; 893791619f6SKrzysztof Kozlowski interrupts = <GIC_SPI 87 IRQ_TYPE_LEVEL_HIGH>; 894c412123fSLucas Stach interrupt-parent = <&gic>; 895c412123fSLucas Stach interrupt-controller; 896c412123fSLucas Stach #interrupt-cells = <3>; 897fdbcc04dSLucas Stach 898fdbcc04dSLucas Stach pgc { 899fdbcc04dSLucas Stach #address-cells = <1>; 900fdbcc04dSLucas Stach #size-cells = <0>; 901fdbcc04dSLucas Stach 902fdbcc04dSLucas Stach pgc_mipi: power-domain@0 { 903fdbcc04dSLucas Stach #power-domain-cells = <0>; 904fdbcc04dSLucas Stach reg = <IMX8M_POWER_DOMAIN_MIPI>; 905fdbcc04dSLucas Stach }; 906fdbcc04dSLucas Stach 907de2a538bSAndrey Smirnov /* 908de2a538bSAndrey Smirnov * As per comment in ATF source code: 909de2a538bSAndrey Smirnov * 910de2a538bSAndrey Smirnov * PCIE1 and PCIE2 share the 911de2a538bSAndrey Smirnov * same reset signal, if we 912de2a538bSAndrey Smirnov * power down PCIE2, PCIE1 913de2a538bSAndrey Smirnov * will be held in reset too. 914de2a538bSAndrey Smirnov * 915de2a538bSAndrey Smirnov * So instead of creating two 916de2a538bSAndrey Smirnov * separate power domains for 917de2a538bSAndrey Smirnov * PCIE1 and PCIE2 we create a 918de2a538bSAndrey Smirnov * link between both and use 919de2a538bSAndrey Smirnov * it as a shared PCIE power 920de2a538bSAndrey Smirnov * domain. 921de2a538bSAndrey Smirnov */ 922de2a538bSAndrey Smirnov pgc_pcie: power-domain@1 { 923fdbcc04dSLucas Stach #power-domain-cells = <0>; 924fdbcc04dSLucas Stach reg = <IMX8M_POWER_DOMAIN_PCIE1>; 925de2a538bSAndrey Smirnov power-domains = <&pgc_pcie2>; 926fdbcc04dSLucas Stach }; 927fdbcc04dSLucas Stach 928fdbcc04dSLucas Stach pgc_otg1: power-domain@2 { 929fdbcc04dSLucas Stach #power-domain-cells = <0>; 930fdbcc04dSLucas Stach reg = <IMX8M_POWER_DOMAIN_USB_OTG1>; 931fdbcc04dSLucas Stach }; 932fdbcc04dSLucas Stach 933fdbcc04dSLucas Stach pgc_otg2: power-domain@3 { 934fdbcc04dSLucas Stach #power-domain-cells = <0>; 935fdbcc04dSLucas Stach reg = <IMX8M_POWER_DOMAIN_USB_OTG2>; 936fdbcc04dSLucas Stach }; 937fdbcc04dSLucas Stach 938fdbcc04dSLucas Stach pgc_ddr1: power-domain@4 { 939fdbcc04dSLucas Stach #power-domain-cells = <0>; 940fdbcc04dSLucas Stach reg = <IMX8M_POWER_DOMAIN_DDR1>; 941fdbcc04dSLucas Stach }; 942fdbcc04dSLucas Stach 943fdbcc04dSLucas Stach pgc_gpu: power-domain@5 { 944fdbcc04dSLucas Stach #power-domain-cells = <0>; 945fdbcc04dSLucas Stach reg = <IMX8M_POWER_DOMAIN_GPU>; 946fdbcc04dSLucas Stach clocks = <&clk IMX8MQ_CLK_GPU_ROOT>, 947fdbcc04dSLucas Stach <&clk IMX8MQ_CLK_GPU_SHADER_DIV>, 948fdbcc04dSLucas Stach <&clk IMX8MQ_CLK_GPU_AXI>, 949fdbcc04dSLucas Stach <&clk IMX8MQ_CLK_GPU_AHB>; 950fdbcc04dSLucas Stach }; 951fdbcc04dSLucas Stach 952fdbcc04dSLucas Stach pgc_vpu: power-domain@6 { 953fdbcc04dSLucas Stach #power-domain-cells = <0>; 954fdbcc04dSLucas Stach reg = <IMX8M_POWER_DOMAIN_VPU>; 9554ac7e4a8SAdam Ford clocks = <&clk IMX8MQ_CLK_VPU_DEC_ROOT>, 9564ac7e4a8SAdam Ford <&clk IMX8MQ_CLK_VPU_G1_ROOT>, 9574ac7e4a8SAdam Ford <&clk IMX8MQ_CLK_VPU_G2_ROOT>; 9584ac7e4a8SAdam Ford assigned-clocks = <&clk IMX8MQ_CLK_VPU_G1>, 9594ac7e4a8SAdam Ford <&clk IMX8MQ_CLK_VPU_G2>, 9604ac7e4a8SAdam Ford <&clk IMX8MQ_CLK_VPU_BUS>, 9614ac7e4a8SAdam Ford <&clk IMX8MQ_VPU_PLL_BYPASS>; 9624ac7e4a8SAdam Ford assigned-clock-parents = <&clk IMX8MQ_VPU_PLL_OUT>, 9634ac7e4a8SAdam Ford <&clk IMX8MQ_VPU_PLL_OUT>, 9644ac7e4a8SAdam Ford <&clk IMX8MQ_SYS1_PLL_800M>, 9654ac7e4a8SAdam Ford <&clk IMX8MQ_VPU_PLL>; 9664ac7e4a8SAdam Ford assigned-clock-rates = <600000000>, 967b27bfc51SBenjamin Gaignard <300000000>, 9684ac7e4a8SAdam Ford <800000000>, 9694ac7e4a8SAdam Ford <0>; 970fdbcc04dSLucas Stach }; 971fdbcc04dSLucas Stach 972fdbcc04dSLucas Stach pgc_disp: power-domain@7 { 973fdbcc04dSLucas Stach #power-domain-cells = <0>; 974fdbcc04dSLucas Stach reg = <IMX8M_POWER_DOMAIN_DISP>; 975fdbcc04dSLucas Stach }; 976fdbcc04dSLucas Stach 977fdbcc04dSLucas Stach pgc_mipi_csi1: power-domain@8 { 978fdbcc04dSLucas Stach #power-domain-cells = <0>; 979fdbcc04dSLucas Stach reg = <IMX8M_POWER_DOMAIN_MIPI_CSI1>; 980fdbcc04dSLucas Stach }; 981fdbcc04dSLucas Stach 982fdbcc04dSLucas Stach pgc_mipi_csi2: power-domain@9 { 983fdbcc04dSLucas Stach #power-domain-cells = <0>; 984fdbcc04dSLucas Stach reg = <IMX8M_POWER_DOMAIN_MIPI_CSI2>; 985fdbcc04dSLucas Stach }; 986fdbcc04dSLucas Stach 987fdbcc04dSLucas Stach pgc_pcie2: power-domain@a { 988fdbcc04dSLucas Stach #power-domain-cells = <0>; 989fdbcc04dSLucas Stach reg = <IMX8M_POWER_DOMAIN_PCIE2>; 990fdbcc04dSLucas Stach }; 991fdbcc04dSLucas Stach }; 992fdbcc04dSLucas Stach }; 993748f908cSLucas Stach }; 994748f908cSLucas Stach 995825bd235SFabio Estevam aips2: bus@30400000 { /* AIPS2 */ 996dc3efc6fSPeng Fan compatible = "fsl,aips-bus", "simple-bus"; 997921a6845SFabio Estevam reg = <0x30400000 0x400000>; 998748f908cSLucas Stach #address-cells = <1>; 999748f908cSLucas Stach #size-cells = <1>; 1000748f908cSLucas Stach ranges = <0x30400000 0x30400000 0x400000>; 1001a0e046e6SGuido Günther 1002a0e046e6SGuido Günther pwm1: pwm@30660000 { 1003a0e046e6SGuido Günther compatible = "fsl,imx8mq-pwm", "fsl,imx27-pwm"; 1004a0e046e6SGuido Günther reg = <0x30660000 0x10000>; 1005a0e046e6SGuido Günther interrupts = <GIC_SPI 81 IRQ_TYPE_LEVEL_HIGH>; 1006a0e046e6SGuido Günther clocks = <&clk IMX8MQ_CLK_PWM1_ROOT>, 1007a0e046e6SGuido Günther <&clk IMX8MQ_CLK_PWM1_ROOT>; 1008a0e046e6SGuido Günther clock-names = "ipg", "per"; 100915ca3f00SMarkus Niebel #pwm-cells = <3>; 1010a0e046e6SGuido Günther status = "disabled"; 1011a0e046e6SGuido Günther }; 1012a0e046e6SGuido Günther 1013a0e046e6SGuido Günther pwm2: pwm@30670000 { 1014a0e046e6SGuido Günther compatible = "fsl,imx8mq-pwm", "fsl,imx27-pwm"; 1015a0e046e6SGuido Günther reg = <0x30670000 0x10000>; 1016a0e046e6SGuido Günther interrupts = <GIC_SPI 82 IRQ_TYPE_LEVEL_HIGH>; 1017a0e046e6SGuido Günther clocks = <&clk IMX8MQ_CLK_PWM2_ROOT>, 1018a0e046e6SGuido Günther <&clk IMX8MQ_CLK_PWM2_ROOT>; 1019a0e046e6SGuido Günther clock-names = "ipg", "per"; 102015ca3f00SMarkus Niebel #pwm-cells = <3>; 1021a0e046e6SGuido Günther status = "disabled"; 1022a0e046e6SGuido Günther }; 1023a0e046e6SGuido Günther 1024a0e046e6SGuido Günther pwm3: pwm@30680000 { 1025a0e046e6SGuido Günther compatible = "fsl,imx8mq-pwm", "fsl,imx27-pwm"; 1026a0e046e6SGuido Günther reg = <0x30680000 0x10000>; 1027a0e046e6SGuido Günther interrupts = <GIC_SPI 83 IRQ_TYPE_LEVEL_HIGH>; 1028a0e046e6SGuido Günther clocks = <&clk IMX8MQ_CLK_PWM3_ROOT>, 1029a0e046e6SGuido Günther <&clk IMX8MQ_CLK_PWM3_ROOT>; 1030a0e046e6SGuido Günther clock-names = "ipg", "per"; 103115ca3f00SMarkus Niebel #pwm-cells = <3>; 1032a0e046e6SGuido Günther status = "disabled"; 1033a0e046e6SGuido Günther }; 1034a0e046e6SGuido Günther 1035a0e046e6SGuido Günther pwm4: pwm@30690000 { 1036a0e046e6SGuido Günther compatible = "fsl,imx8mq-pwm", "fsl,imx27-pwm"; 1037a0e046e6SGuido Günther reg = <0x30690000 0x10000>; 1038a0e046e6SGuido Günther interrupts = <GIC_SPI 84 IRQ_TYPE_LEVEL_HIGH>; 1039a0e046e6SGuido Günther clocks = <&clk IMX8MQ_CLK_PWM4_ROOT>, 1040a0e046e6SGuido Günther <&clk IMX8MQ_CLK_PWM4_ROOT>; 1041a0e046e6SGuido Günther clock-names = "ipg", "per"; 104215ca3f00SMarkus Niebel #pwm-cells = <3>; 1043a0e046e6SGuido Günther status = "disabled"; 1044a0e046e6SGuido Günther }; 104524e8a5dbSAnson Huang 104624e8a5dbSAnson Huang system_counter: timer@306a0000 { 104724e8a5dbSAnson Huang compatible = "nxp,sysctr-timer"; 104824e8a5dbSAnson Huang reg = <0x306a0000 0x20000>; 104924e8a5dbSAnson Huang interrupts = <GIC_SPI 47 IRQ_TYPE_LEVEL_HIGH>; 105024e8a5dbSAnson Huang clocks = <&osc_25m>; 105124e8a5dbSAnson Huang clock-names = "per"; 105224e8a5dbSAnson Huang }; 1053748f908cSLucas Stach }; 1054748f908cSLucas Stach 1055825bd235SFabio Estevam aips3: bus@30800000 { /* AIPS3 */ 1056dc3efc6fSPeng Fan compatible = "fsl,aips-bus", "simple-bus"; 1057921a6845SFabio Estevam reg = <0x30800000 0x400000>; 1058748f908cSLucas Stach #address-cells = <1>; 1059748f908cSLucas Stach #size-cells = <1>; 106039f1622bSCarlo Caione ranges = <0x30800000 0x30800000 0x400000>, 106139f1622bSCarlo Caione <0x08000000 0x08000000 0x10000000>; 1062748f908cSLucas Stach 106308a1a2e2SShengjiu Wang spdif1: spdif@30810000 { 106408a1a2e2SShengjiu Wang compatible = "fsl,imx35-spdif"; 106508a1a2e2SShengjiu Wang reg = <0x30810000 0x10000>; 106608a1a2e2SShengjiu Wang interrupts = <GIC_SPI 6 IRQ_TYPE_LEVEL_HIGH>; 106708a1a2e2SShengjiu Wang clocks = <&clk IMX8MQ_CLK_IPG_ROOT>, /* core */ 106808a1a2e2SShengjiu Wang <&clk IMX8MQ_CLK_25M>, /* rxtx0 */ 106908a1a2e2SShengjiu Wang <&clk IMX8MQ_CLK_SPDIF1>, /* rxtx1 */ 107008a1a2e2SShengjiu Wang <&clk IMX8MQ_CLK_DUMMY>, /* rxtx2 */ 107108a1a2e2SShengjiu Wang <&clk IMX8MQ_CLK_DUMMY>, /* rxtx3 */ 107208a1a2e2SShengjiu Wang <&clk IMX8MQ_CLK_DUMMY>, /* rxtx4 */ 107308a1a2e2SShengjiu Wang <&clk IMX8MQ_CLK_IPG_ROOT>, /* rxtx5 */ 107408a1a2e2SShengjiu Wang <&clk IMX8MQ_CLK_DUMMY>, /* rxtx6 */ 107508a1a2e2SShengjiu Wang <&clk IMX8MQ_CLK_DUMMY>, /* rxtx7 */ 107608a1a2e2SShengjiu Wang <&clk IMX8MQ_CLK_DUMMY>; /* spba */ 107708a1a2e2SShengjiu Wang clock-names = "core", "rxtx0", 107808a1a2e2SShengjiu Wang "rxtx1", "rxtx2", 107908a1a2e2SShengjiu Wang "rxtx3", "rxtx4", 108008a1a2e2SShengjiu Wang "rxtx5", "rxtx6", 108108a1a2e2SShengjiu Wang "rxtx7", "spba"; 108208a1a2e2SShengjiu Wang dmas = <&sdma1 8 18 0>, <&sdma1 9 18 0>; 108308a1a2e2SShengjiu Wang dma-names = "rx", "tx"; 108408a1a2e2SShengjiu Wang status = "disabled"; 108508a1a2e2SShengjiu Wang }; 108608a1a2e2SShengjiu Wang 108785761f45SFabio Estevam ecspi1: spi@30820000 { 108885761f45SFabio Estevam #address-cells = <1>; 108985761f45SFabio Estevam #size-cells = <0>; 109085761f45SFabio Estevam compatible = "fsl,imx8mq-ecspi", "fsl,imx51-ecspi"; 109185761f45SFabio Estevam reg = <0x30820000 0x10000>; 109285761f45SFabio Estevam interrupts = <GIC_SPI 31 IRQ_TYPE_LEVEL_HIGH>; 109385761f45SFabio Estevam clocks = <&clk IMX8MQ_CLK_ECSPI1_ROOT>, 109485761f45SFabio Estevam <&clk IMX8MQ_CLK_ECSPI1_ROOT>; 109585761f45SFabio Estevam clock-names = "ipg", "per"; 10968b6b1754SFabio Estevam dmas = <&sdma1 0 7 1>, <&sdma1 1 7 2>; 10978b6b1754SFabio Estevam dma-names = "rx", "tx"; 109885761f45SFabio Estevam status = "disabled"; 109985761f45SFabio Estevam }; 110085761f45SFabio Estevam 110185761f45SFabio Estevam ecspi2: spi@30830000 { 110285761f45SFabio Estevam #address-cells = <1>; 110385761f45SFabio Estevam #size-cells = <0>; 110485761f45SFabio Estevam compatible = "fsl,imx8mq-ecspi", "fsl,imx51-ecspi"; 110585761f45SFabio Estevam reg = <0x30830000 0x10000>; 110685761f45SFabio Estevam interrupts = <GIC_SPI 32 IRQ_TYPE_LEVEL_HIGH>; 110785761f45SFabio Estevam clocks = <&clk IMX8MQ_CLK_ECSPI2_ROOT>, 110885761f45SFabio Estevam <&clk IMX8MQ_CLK_ECSPI2_ROOT>; 110985761f45SFabio Estevam clock-names = "ipg", "per"; 11108b6b1754SFabio Estevam dmas = <&sdma1 2 7 1>, <&sdma1 3 7 2>; 11118b6b1754SFabio Estevam dma-names = "rx", "tx"; 111285761f45SFabio Estevam status = "disabled"; 111385761f45SFabio Estevam }; 111485761f45SFabio Estevam 111585761f45SFabio Estevam ecspi3: spi@30840000 { 111685761f45SFabio Estevam #address-cells = <1>; 111785761f45SFabio Estevam #size-cells = <0>; 111885761f45SFabio Estevam compatible = "fsl,imx8mq-ecspi", "fsl,imx51-ecspi"; 111985761f45SFabio Estevam reg = <0x30840000 0x10000>; 112085761f45SFabio Estevam interrupts = <GIC_SPI 33 IRQ_TYPE_LEVEL_HIGH>; 112185761f45SFabio Estevam clocks = <&clk IMX8MQ_CLK_ECSPI3_ROOT>, 112285761f45SFabio Estevam <&clk IMX8MQ_CLK_ECSPI3_ROOT>; 112385761f45SFabio Estevam clock-names = "ipg", "per"; 11248b6b1754SFabio Estevam dmas = <&sdma1 4 7 1>, <&sdma1 5 7 2>; 11258b6b1754SFabio Estevam dma-names = "rx", "tx"; 112685761f45SFabio Estevam status = "disabled"; 112785761f45SFabio Estevam }; 1128748f908cSLucas Stach 1129748f908cSLucas Stach uart1: serial@30860000 { 1130748f908cSLucas Stach compatible = "fsl,imx8mq-uart", 1131748f908cSLucas Stach "fsl,imx6q-uart"; 1132748f908cSLucas Stach reg = <0x30860000 0x10000>; 1133748f908cSLucas Stach interrupts = <GIC_SPI 26 IRQ_TYPE_LEVEL_HIGH>; 1134748f908cSLucas Stach clocks = <&clk IMX8MQ_CLK_UART1_ROOT>, 1135748f908cSLucas Stach <&clk IMX8MQ_CLK_UART1_ROOT>; 1136748f908cSLucas Stach clock-names = "ipg", "per"; 1137578e75d1SSebastian Krzyszkowiak dmas = <&sdma1 22 4 0>, <&sdma1 23 4 0>; 1138578e75d1SSebastian Krzyszkowiak dma-names = "rx", "tx"; 1139748f908cSLucas Stach status = "disabled"; 1140748f908cSLucas Stach }; 1141748f908cSLucas Stach 1142748f908cSLucas Stach uart3: serial@30880000 { 1143748f908cSLucas Stach compatible = "fsl,imx8mq-uart", 1144748f908cSLucas Stach "fsl,imx6q-uart"; 1145748f908cSLucas Stach reg = <0x30880000 0x10000>; 1146748f908cSLucas Stach interrupts = <GIC_SPI 28 IRQ_TYPE_LEVEL_HIGH>; 1147748f908cSLucas Stach clocks = <&clk IMX8MQ_CLK_UART3_ROOT>, 1148748f908cSLucas Stach <&clk IMX8MQ_CLK_UART3_ROOT>; 1149748f908cSLucas Stach clock-names = "ipg", "per"; 1150578e75d1SSebastian Krzyszkowiak dmas = <&sdma1 26 4 0>, <&sdma1 27 4 0>; 1151578e75d1SSebastian Krzyszkowiak dma-names = "rx", "tx"; 1152748f908cSLucas Stach status = "disabled"; 1153748f908cSLucas Stach }; 1154748f908cSLucas Stach 1155748f908cSLucas Stach uart2: serial@30890000 { 1156748f908cSLucas Stach compatible = "fsl,imx8mq-uart", 1157748f908cSLucas Stach "fsl,imx6q-uart"; 1158748f908cSLucas Stach reg = <0x30890000 0x10000>; 1159748f908cSLucas Stach interrupts = <GIC_SPI 27 IRQ_TYPE_LEVEL_HIGH>; 1160748f908cSLucas Stach clocks = <&clk IMX8MQ_CLK_UART2_ROOT>, 1161748f908cSLucas Stach <&clk IMX8MQ_CLK_UART2_ROOT>; 1162748f908cSLucas Stach clock-names = "ipg", "per"; 1163578e75d1SSebastian Krzyszkowiak dmas = <&sdma1 24 4 0>, <&sdma1 25 4 0>; 1164578e75d1SSebastian Krzyszkowiak dma-names = "rx", "tx"; 1165748f908cSLucas Stach status = "disabled"; 1166748f908cSLucas Stach }; 1167748f908cSLucas Stach 116808a1a2e2SShengjiu Wang spdif2: spdif@308a0000 { 116908a1a2e2SShengjiu Wang compatible = "fsl,imx35-spdif"; 117008a1a2e2SShengjiu Wang reg = <0x308a0000 0x10000>; 117108a1a2e2SShengjiu Wang interrupts = <GIC_SPI 13 IRQ_TYPE_LEVEL_HIGH>; 117208a1a2e2SShengjiu Wang clocks = <&clk IMX8MQ_CLK_IPG_ROOT>, /* core */ 117308a1a2e2SShengjiu Wang <&clk IMX8MQ_CLK_25M>, /* rxtx0 */ 117408a1a2e2SShengjiu Wang <&clk IMX8MQ_CLK_SPDIF2>, /* rxtx1 */ 117508a1a2e2SShengjiu Wang <&clk IMX8MQ_CLK_DUMMY>, /* rxtx2 */ 117608a1a2e2SShengjiu Wang <&clk IMX8MQ_CLK_DUMMY>, /* rxtx3 */ 117708a1a2e2SShengjiu Wang <&clk IMX8MQ_CLK_DUMMY>, /* rxtx4 */ 117808a1a2e2SShengjiu Wang <&clk IMX8MQ_CLK_IPG_ROOT>, /* rxtx5 */ 117908a1a2e2SShengjiu Wang <&clk IMX8MQ_CLK_DUMMY>, /* rxtx6 */ 118008a1a2e2SShengjiu Wang <&clk IMX8MQ_CLK_DUMMY>, /* rxtx7 */ 118108a1a2e2SShengjiu Wang <&clk IMX8MQ_CLK_DUMMY>; /* spba */ 118208a1a2e2SShengjiu Wang clock-names = "core", "rxtx0", 118308a1a2e2SShengjiu Wang "rxtx1", "rxtx2", 118408a1a2e2SShengjiu Wang "rxtx3", "rxtx4", 118508a1a2e2SShengjiu Wang "rxtx5", "rxtx6", 118608a1a2e2SShengjiu Wang "rxtx7", "spba"; 118708a1a2e2SShengjiu Wang dmas = <&sdma1 16 18 0>, <&sdma1 17 18 0>; 118808a1a2e2SShengjiu Wang dma-names = "rx", "tx"; 118908a1a2e2SShengjiu Wang status = "disabled"; 119008a1a2e2SShengjiu Wang }; 119108a1a2e2SShengjiu Wang 11928c61538dSDaniel Baluta sai2: sai@308b0000 { 11938c61538dSDaniel Baluta #sound-dai-cells = <0>; 11948d014847SLucas Stach compatible = "fsl,imx8mq-sai"; 11958c61538dSDaniel Baluta reg = <0x308b0000 0x10000>; 11968c61538dSDaniel Baluta interrupts = <GIC_SPI 96 IRQ_TYPE_LEVEL_HIGH>; 11978c61538dSDaniel Baluta clocks = <&clk IMX8MQ_CLK_SAI2_IPG>, 11988c61538dSDaniel Baluta <&clk IMX8MQ_CLK_SAI2_ROOT>, 11998c61538dSDaniel Baluta <&clk IMX8MQ_CLK_DUMMY>, <&clk IMX8MQ_CLK_DUMMY>; 12008c61538dSDaniel Baluta clock-names = "bus", "mclk1", "mclk2", "mclk3"; 12018c61538dSDaniel Baluta dmas = <&sdma1 10 24 0>, <&sdma1 11 24 0>; 12028c61538dSDaniel Baluta dma-names = "rx", "tx"; 12038c61538dSDaniel Baluta status = "disabled"; 12048c61538dSDaniel Baluta }; 12058c61538dSDaniel Baluta 1206fcb1991cSLucas Stach sai3: sai@308c0000 { 1207fcb1991cSLucas Stach #sound-dai-cells = <0>; 1208fcb1991cSLucas Stach compatible = "fsl,imx8mq-sai"; 1209fcb1991cSLucas Stach reg = <0x308c0000 0x10000>; 1210fcb1991cSLucas Stach interrupts = <GIC_SPI 50 IRQ_TYPE_LEVEL_HIGH>; 1211fcb1991cSLucas Stach clocks = <&clk IMX8MQ_CLK_SAI3_IPG>, 1212fcb1991cSLucas Stach <&clk IMX8MQ_CLK_SAI3_ROOT>, 1213fcb1991cSLucas Stach <&clk IMX8MQ_CLK_DUMMY>, <&clk IMX8MQ_CLK_DUMMY>; 1214fcb1991cSLucas Stach clock-names = "bus", "mclk1", "mclk2", "mclk3"; 1215fcb1991cSLucas Stach dmas = <&sdma1 12 24 0>, <&sdma1 13 24 0>; 1216fcb1991cSLucas Stach dma-names = "rx", "tx"; 1217fcb1991cSLucas Stach status = "disabled"; 1218fcb1991cSLucas Stach }; 1219fcb1991cSLucas Stach 1220007b3cf0SAndrey Smirnov crypto: crypto@30900000 { 1221007b3cf0SAndrey Smirnov compatible = "fsl,sec-v4.0"; 1222007b3cf0SAndrey Smirnov #address-cells = <1>; 1223007b3cf0SAndrey Smirnov #size-cells = <1>; 1224007b3cf0SAndrey Smirnov reg = <0x30900000 0x40000>; 1225007b3cf0SAndrey Smirnov ranges = <0 0x30900000 0x40000>; 1226007b3cf0SAndrey Smirnov interrupts = <GIC_SPI 91 IRQ_TYPE_LEVEL_HIGH>; 1227007b3cf0SAndrey Smirnov clocks = <&clk IMX8MQ_CLK_AHB>, 1228007b3cf0SAndrey Smirnov <&clk IMX8MQ_CLK_IPG_ROOT>; 1229007b3cf0SAndrey Smirnov clock-names = "aclk", "ipg"; 1230007b3cf0SAndrey Smirnov 1231007b3cf0SAndrey Smirnov sec_jr0: jr@1000 { 1232007b3cf0SAndrey Smirnov compatible = "fsl,sec-v4.0-job-ring"; 1233007b3cf0SAndrey Smirnov reg = <0x1000 0x1000>; 1234007b3cf0SAndrey Smirnov interrupts = <GIC_SPI 105 IRQ_TYPE_LEVEL_HIGH>; 1235dc9c1cebSFabio Estevam status = "disabled"; 1236007b3cf0SAndrey Smirnov }; 1237007b3cf0SAndrey Smirnov 1238007b3cf0SAndrey Smirnov sec_jr1: jr@2000 { 1239007b3cf0SAndrey Smirnov compatible = "fsl,sec-v4.0-job-ring"; 1240007b3cf0SAndrey Smirnov reg = <0x2000 0x1000>; 1241007b3cf0SAndrey Smirnov interrupts = <GIC_SPI 106 IRQ_TYPE_LEVEL_HIGH>; 1242007b3cf0SAndrey Smirnov }; 1243007b3cf0SAndrey Smirnov 1244007b3cf0SAndrey Smirnov sec_jr2: jr@3000 { 1245007b3cf0SAndrey Smirnov compatible = "fsl,sec-v4.0-job-ring"; 1246007b3cf0SAndrey Smirnov reg = <0x3000 0x1000>; 1247007b3cf0SAndrey Smirnov interrupts = <GIC_SPI 114 IRQ_TYPE_LEVEL_HIGH>; 1248007b3cf0SAndrey Smirnov }; 1249007b3cf0SAndrey Smirnov }; 1250007b3cf0SAndrey Smirnov 125191c167b9SFabio Estevam mipi_dsi: dsi@30a00000 { 1252d0081bd0SGuido Günther compatible = "fsl,imx8mq-nwl-dsi"; 1253d0081bd0SGuido Günther reg = <0x30a00000 0x300>; 12548e2facfeSFabio Estevam #address-cells = <1>; 12558e2facfeSFabio Estevam #size-cells = <0>; 1256d0081bd0SGuido Günther clocks = <&clk IMX8MQ_CLK_DSI_CORE>, 1257d0081bd0SGuido Günther <&clk IMX8MQ_CLK_DSI_AHB>, 1258d0081bd0SGuido Günther <&clk IMX8MQ_CLK_DSI_IPG_DIV>, 1259d0081bd0SGuido Günther <&clk IMX8MQ_CLK_DSI_PHY_REF>, 1260d0081bd0SGuido Günther <&clk IMX8MQ_CLK_LCDIF_PIXEL>; 1261d0081bd0SGuido Günther clock-names = "core", "rx_esc", "tx_esc", "phy_ref", "lcdif"; 1262d0081bd0SGuido Günther assigned-clocks = <&clk IMX8MQ_CLK_DSI_AHB>, 1263d0081bd0SGuido Günther <&clk IMX8MQ_CLK_DSI_CORE>, 1264d0081bd0SGuido Günther <&clk IMX8MQ_CLK_DSI_IPG_DIV>; 1265d0081bd0SGuido Günther assigned-clock-parents = <&clk IMX8MQ_SYS1_PLL_80M>, 1266d0081bd0SGuido Günther <&clk IMX8MQ_SYS1_PLL_266M>; 1267d0081bd0SGuido Günther assigned-clock-rates = <80000000>, <266000000>, <20000000>; 1268d0081bd0SGuido Günther interrupts = <GIC_SPI 34 IRQ_TYPE_LEVEL_HIGH>; 1269d0081bd0SGuido Günther mux-controls = <&mux 0>; 1270d0081bd0SGuido Günther power-domains = <&pgc_mipi>; 1271d0081bd0SGuido Günther phys = <&dphy>; 1272d0081bd0SGuido Günther phy-names = "dphy"; 1273d0081bd0SGuido Günther resets = <&src IMX8MQ_RESET_MIPI_DSI_RESET_BYTE_N>, 1274d0081bd0SGuido Günther <&src IMX8MQ_RESET_MIPI_DSI_DPI_RESET_N>, 1275d0081bd0SGuido Günther <&src IMX8MQ_RESET_MIPI_DSI_ESC_RESET_N>, 1276d0081bd0SGuido Günther <&src IMX8MQ_RESET_MIPI_DSI_PCLK_RESET_N>; 1277d0081bd0SGuido Günther reset-names = "byte", "dpi", "esc", "pclk"; 1278d0081bd0SGuido Günther status = "disabled"; 1279d0081bd0SGuido Günther 1280d0081bd0SGuido Günther ports { 1281d0081bd0SGuido Günther #address-cells = <1>; 1282d0081bd0SGuido Günther #size-cells = <0>; 1283d0081bd0SGuido Günther 1284d0081bd0SGuido Günther port@0 { 1285d0081bd0SGuido Günther reg = <0>; 1286d0081bd0SGuido Günther #address-cells = <1>; 1287d0081bd0SGuido Günther #size-cells = <0>; 1288d0081bd0SGuido Günther mipi_dsi_lcdif_in: endpoint@0 { 1289d0081bd0SGuido Günther reg = <0>; 1290d0081bd0SGuido Günther remote-endpoint = <&lcdif_mipi_dsi>; 1291d0081bd0SGuido Günther }; 1292d0081bd0SGuido Günther }; 1293d0081bd0SGuido Günther }; 1294d0081bd0SGuido Günther }; 1295d0081bd0SGuido Günther 1296a99b26b1SGuido Günther dphy: dphy@30a00300 { 1297a99b26b1SGuido Günther compatible = "fsl,imx8mq-mipi-dphy"; 1298a99b26b1SGuido Günther reg = <0x30a00300 0x100>; 1299a99b26b1SGuido Günther clocks = <&clk IMX8MQ_CLK_DSI_PHY_REF>; 1300a99b26b1SGuido Günther clock-names = "phy_ref"; 130162270eebSGuido Günther assigned-clocks = <&clk IMX8MQ_VIDEO_PLL1_REF_SEL>, 130262270eebSGuido Günther <&clk IMX8MQ_VIDEO_PLL1_BYPASS>, 130362270eebSGuido Günther <&clk IMX8MQ_CLK_DSI_PHY_REF>, 130462270eebSGuido Günther <&clk IMX8MQ_VIDEO_PLL1>; 130562270eebSGuido Günther assigned-clock-parents = <&clk IMX8MQ_CLK_25M>, 130662270eebSGuido Günther <&clk IMX8MQ_VIDEO_PLL1>, 130762270eebSGuido Günther <&clk IMX8MQ_VIDEO_PLL1_OUT>; 130862270eebSGuido Günther assigned-clock-rates = <0>, <0>, <24000000>, <594000000>; 1309a99b26b1SGuido Günther #phy-cells = <0>; 1310a99b26b1SGuido Günther power-domains = <&pgc_mipi>; 1311a99b26b1SGuido Günther status = "disabled"; 1312a99b26b1SGuido Günther }; 1313a99b26b1SGuido Günther 1314748f908cSLucas Stach i2c1: i2c@30a20000 { 1315748f908cSLucas Stach compatible = "fsl,imx8mq-i2c", "fsl,imx21-i2c"; 1316748f908cSLucas Stach reg = <0x30a20000 0x10000>; 1317748f908cSLucas Stach interrupts = <GIC_SPI 35 IRQ_TYPE_LEVEL_HIGH>; 1318748f908cSLucas Stach clocks = <&clk IMX8MQ_CLK_I2C1_ROOT>; 1319748f908cSLucas Stach #address-cells = <1>; 1320748f908cSLucas Stach #size-cells = <0>; 1321748f908cSLucas Stach status = "disabled"; 1322748f908cSLucas Stach }; 1323748f908cSLucas Stach 1324748f908cSLucas Stach i2c2: i2c@30a30000 { 1325748f908cSLucas Stach compatible = "fsl,imx8mq-i2c", "fsl,imx21-i2c"; 1326748f908cSLucas Stach reg = <0x30a30000 0x10000>; 1327748f908cSLucas Stach interrupts = <GIC_SPI 36 IRQ_TYPE_LEVEL_HIGH>; 1328748f908cSLucas Stach clocks = <&clk IMX8MQ_CLK_I2C2_ROOT>; 1329748f908cSLucas Stach #address-cells = <1>; 1330748f908cSLucas Stach #size-cells = <0>; 1331748f908cSLucas Stach status = "disabled"; 1332748f908cSLucas Stach }; 1333748f908cSLucas Stach 1334748f908cSLucas Stach i2c3: i2c@30a40000 { 1335748f908cSLucas Stach compatible = "fsl,imx8mq-i2c", "fsl,imx21-i2c"; 1336748f908cSLucas Stach reg = <0x30a40000 0x10000>; 1337748f908cSLucas Stach interrupts = <GIC_SPI 37 IRQ_TYPE_LEVEL_HIGH>; 1338748f908cSLucas Stach clocks = <&clk IMX8MQ_CLK_I2C3_ROOT>; 1339748f908cSLucas Stach #address-cells = <1>; 1340748f908cSLucas Stach #size-cells = <0>; 1341748f908cSLucas Stach status = "disabled"; 1342748f908cSLucas Stach }; 1343748f908cSLucas Stach 1344748f908cSLucas Stach i2c4: i2c@30a50000 { 1345748f908cSLucas Stach compatible = "fsl,imx8mq-i2c", "fsl,imx21-i2c"; 1346748f908cSLucas Stach reg = <0x30a50000 0x10000>; 1347748f908cSLucas Stach interrupts = <GIC_SPI 38 IRQ_TYPE_LEVEL_HIGH>; 1348748f908cSLucas Stach clocks = <&clk IMX8MQ_CLK_I2C4_ROOT>; 1349748f908cSLucas Stach #address-cells = <1>; 1350748f908cSLucas Stach #size-cells = <0>; 1351748f908cSLucas Stach status = "disabled"; 1352748f908cSLucas Stach }; 1353748f908cSLucas Stach 1354748f908cSLucas Stach uart4: serial@30a60000 { 1355748f908cSLucas Stach compatible = "fsl,imx8mq-uart", 1356748f908cSLucas Stach "fsl,imx6q-uart"; 1357748f908cSLucas Stach reg = <0x30a60000 0x10000>; 1358748f908cSLucas Stach interrupts = <GIC_SPI 29 IRQ_TYPE_LEVEL_HIGH>; 1359748f908cSLucas Stach clocks = <&clk IMX8MQ_CLK_UART4_ROOT>, 1360748f908cSLucas Stach <&clk IMX8MQ_CLK_UART4_ROOT>; 1361748f908cSLucas Stach clock-names = "ipg", "per"; 1362578e75d1SSebastian Krzyszkowiak dmas = <&sdma1 28 4 0>, <&sdma1 29 4 0>; 1363578e75d1SSebastian Krzyszkowiak dma-names = "rx", "tx"; 1364748f908cSLucas Stach status = "disabled"; 1365748f908cSLucas Stach }; 1366748f908cSLucas Stach 1367bcadd5f6SMartin Kepplinger mipi_csi1: csi@30a70000 { 1368bcadd5f6SMartin Kepplinger compatible = "fsl,imx8mq-mipi-csi2"; 1369bcadd5f6SMartin Kepplinger reg = <0x30a70000 0x1000>; 1370bcadd5f6SMartin Kepplinger clocks = <&clk IMX8MQ_CLK_CSI1_CORE>, 1371bcadd5f6SMartin Kepplinger <&clk IMX8MQ_CLK_CSI1_ESC>, 1372bcadd5f6SMartin Kepplinger <&clk IMX8MQ_CLK_CSI1_PHY_REF>; 1373bcadd5f6SMartin Kepplinger clock-names = "core", "esc", "ui"; 1374bcadd5f6SMartin Kepplinger assigned-clocks = <&clk IMX8MQ_CLK_CSI1_CORE>, 1375bcadd5f6SMartin Kepplinger <&clk IMX8MQ_CLK_CSI1_PHY_REF>, 1376bcadd5f6SMartin Kepplinger <&clk IMX8MQ_CLK_CSI1_ESC>; 1377bcadd5f6SMartin Kepplinger assigned-clock-rates = <266000000>, <333000000>, <66000000>; 1378bcadd5f6SMartin Kepplinger assigned-clock-parents = <&clk IMX8MQ_SYS1_PLL_266M>, 1379bcadd5f6SMartin Kepplinger <&clk IMX8MQ_SYS2_PLL_1000M>, 1380bcadd5f6SMartin Kepplinger <&clk IMX8MQ_SYS1_PLL_800M>; 1381bcadd5f6SMartin Kepplinger power-domains = <&pgc_mipi_csi1>; 1382bcadd5f6SMartin Kepplinger resets = <&src IMX8MQ_RESET_MIPI_CSI1_CORE_RESET>, 1383bcadd5f6SMartin Kepplinger <&src IMX8MQ_RESET_MIPI_CSI1_PHY_REF_RESET>, 1384bcadd5f6SMartin Kepplinger <&src IMX8MQ_RESET_MIPI_CSI1_ESC_RESET>; 1385bcadd5f6SMartin Kepplinger fsl,mipi-phy-gpr = <&iomuxc_gpr 0x88>; 1386bcadd5f6SMartin Kepplinger interconnects = <&noc IMX8MQ_ICM_CSI1 &noc IMX8MQ_ICS_DRAM>; 1387bcadd5f6SMartin Kepplinger interconnect-names = "dram"; 1388bcadd5f6SMartin Kepplinger status = "disabled"; 1389bcadd5f6SMartin Kepplinger 1390bcadd5f6SMartin Kepplinger ports { 1391bcadd5f6SMartin Kepplinger #address-cells = <1>; 1392bcadd5f6SMartin Kepplinger #size-cells = <0>; 1393bcadd5f6SMartin Kepplinger 1394283d4514SMartin Kepplinger port@1 { 1395283d4514SMartin Kepplinger reg = <1>; 1396bcadd5f6SMartin Kepplinger 1397bcadd5f6SMartin Kepplinger csi1_mipi_ep: endpoint { 1398bcadd5f6SMartin Kepplinger remote-endpoint = <&csi1_ep>; 1399bcadd5f6SMartin Kepplinger }; 1400bcadd5f6SMartin Kepplinger }; 1401bcadd5f6SMartin Kepplinger }; 1402bcadd5f6SMartin Kepplinger }; 1403bcadd5f6SMartin Kepplinger 1404bcadd5f6SMartin Kepplinger csi1: csi@30a90000 { 1405c3150e52SMartin Kepplinger compatible = "fsl,imx8mq-csi"; 1406bcadd5f6SMartin Kepplinger reg = <0x30a90000 0x10000>; 1407bcadd5f6SMartin Kepplinger interrupts = <GIC_SPI 42 IRQ_TYPE_LEVEL_HIGH>; 1408bcadd5f6SMartin Kepplinger clocks = <&clk IMX8MQ_CLK_CSI1_ROOT>; 1409bcadd5f6SMartin Kepplinger clock-names = "mclk"; 1410bcadd5f6SMartin Kepplinger status = "disabled"; 1411bcadd5f6SMartin Kepplinger 1412bcadd5f6SMartin Kepplinger port { 1413bcadd5f6SMartin Kepplinger csi1_ep: endpoint { 1414bcadd5f6SMartin Kepplinger remote-endpoint = <&csi1_mipi_ep>; 1415bcadd5f6SMartin Kepplinger }; 1416bcadd5f6SMartin Kepplinger }; 1417bcadd5f6SMartin Kepplinger }; 1418bcadd5f6SMartin Kepplinger 1419bcadd5f6SMartin Kepplinger mipi_csi2: csi@30b60000 { 1420bcadd5f6SMartin Kepplinger compatible = "fsl,imx8mq-mipi-csi2"; 1421bcadd5f6SMartin Kepplinger reg = <0x30b60000 0x1000>; 1422bcadd5f6SMartin Kepplinger clocks = <&clk IMX8MQ_CLK_CSI2_CORE>, 1423bcadd5f6SMartin Kepplinger <&clk IMX8MQ_CLK_CSI2_ESC>, 1424bcadd5f6SMartin Kepplinger <&clk IMX8MQ_CLK_CSI2_PHY_REF>; 1425bcadd5f6SMartin Kepplinger clock-names = "core", "esc", "ui"; 1426bcadd5f6SMartin Kepplinger assigned-clocks = <&clk IMX8MQ_CLK_CSI2_CORE>, 1427bcadd5f6SMartin Kepplinger <&clk IMX8MQ_CLK_CSI2_PHY_REF>, 1428bcadd5f6SMartin Kepplinger <&clk IMX8MQ_CLK_CSI2_ESC>; 1429bcadd5f6SMartin Kepplinger assigned-clock-rates = <266000000>, <333000000>, <66000000>; 1430bcadd5f6SMartin Kepplinger assigned-clock-parents = <&clk IMX8MQ_SYS1_PLL_266M>, 1431bcadd5f6SMartin Kepplinger <&clk IMX8MQ_SYS2_PLL_1000M>, 1432bcadd5f6SMartin Kepplinger <&clk IMX8MQ_SYS1_PLL_800M>; 1433bcadd5f6SMartin Kepplinger power-domains = <&pgc_mipi_csi2>; 1434bcadd5f6SMartin Kepplinger resets = <&src IMX8MQ_RESET_MIPI_CSI2_CORE_RESET>, 1435bcadd5f6SMartin Kepplinger <&src IMX8MQ_RESET_MIPI_CSI2_PHY_REF_RESET>, 1436bcadd5f6SMartin Kepplinger <&src IMX8MQ_RESET_MIPI_CSI2_ESC_RESET>; 1437bcadd5f6SMartin Kepplinger fsl,mipi-phy-gpr = <&iomuxc_gpr 0xa4>; 1438bcadd5f6SMartin Kepplinger interconnects = <&noc IMX8MQ_ICM_CSI2 &noc IMX8MQ_ICS_DRAM>; 1439bcadd5f6SMartin Kepplinger interconnect-names = "dram"; 1440bcadd5f6SMartin Kepplinger status = "disabled"; 1441bcadd5f6SMartin Kepplinger 1442bcadd5f6SMartin Kepplinger ports { 1443bcadd5f6SMartin Kepplinger #address-cells = <1>; 1444bcadd5f6SMartin Kepplinger #size-cells = <0>; 1445bcadd5f6SMartin Kepplinger 1446283d4514SMartin Kepplinger port@1 { 1447283d4514SMartin Kepplinger reg = <1>; 1448bcadd5f6SMartin Kepplinger 1449bcadd5f6SMartin Kepplinger csi2_mipi_ep: endpoint { 1450bcadd5f6SMartin Kepplinger remote-endpoint = <&csi2_ep>; 1451bcadd5f6SMartin Kepplinger }; 1452bcadd5f6SMartin Kepplinger }; 1453bcadd5f6SMartin Kepplinger }; 1454bcadd5f6SMartin Kepplinger }; 1455bcadd5f6SMartin Kepplinger 1456bcadd5f6SMartin Kepplinger csi2: csi@30b80000 { 1457c3150e52SMartin Kepplinger compatible = "fsl,imx8mq-csi"; 1458bcadd5f6SMartin Kepplinger reg = <0x30b80000 0x10000>; 1459bcadd5f6SMartin Kepplinger interrupts = <GIC_SPI 43 IRQ_TYPE_LEVEL_HIGH>; 1460bcadd5f6SMartin Kepplinger clocks = <&clk IMX8MQ_CLK_CSI2_ROOT>; 1461bcadd5f6SMartin Kepplinger clock-names = "mclk"; 1462bcadd5f6SMartin Kepplinger status = "disabled"; 1463bcadd5f6SMartin Kepplinger 1464bcadd5f6SMartin Kepplinger port { 1465bcadd5f6SMartin Kepplinger csi2_ep: endpoint { 1466bcadd5f6SMartin Kepplinger remote-endpoint = <&csi2_mipi_ep>; 1467bcadd5f6SMartin Kepplinger }; 1468bcadd5f6SMartin Kepplinger }; 1469bcadd5f6SMartin Kepplinger }; 1470bcadd5f6SMartin Kepplinger 1471bbfc59beSPeng Fan mu: mailbox@30aa0000 { 1472bbfc59beSPeng Fan compatible = "fsl,imx8mq-mu", "fsl,imx6sx-mu"; 1473bbfc59beSPeng Fan reg = <0x30aa0000 0x10000>; 1474bbfc59beSPeng Fan interrupts = <GIC_SPI 88 IRQ_TYPE_LEVEL_HIGH>; 1475bbfc59beSPeng Fan clocks = <&clk IMX8MQ_CLK_MU_ROOT>; 1476bbfc59beSPeng Fan #mbox-cells = <2>; 1477bbfc59beSPeng Fan }; 1478bbfc59beSPeng Fan 1479748f908cSLucas Stach usdhc1: mmc@30b40000 { 1480748f908cSLucas Stach compatible = "fsl,imx8mq-usdhc", 1481748f908cSLucas Stach "fsl,imx7d-usdhc"; 1482748f908cSLucas Stach reg = <0x30b40000 0x10000>; 1483748f908cSLucas Stach interrupts = <GIC_SPI 22 IRQ_TYPE_LEVEL_HIGH>; 1484b0759297SAnson Huang clocks = <&clk IMX8MQ_CLK_IPG_ROOT>, 1485748f908cSLucas Stach <&clk IMX8MQ_CLK_NAND_USDHC_BUS>, 1486748f908cSLucas Stach <&clk IMX8MQ_CLK_USDHC1_ROOT>; 1487748f908cSLucas Stach clock-names = "ipg", "ahb", "per"; 1488748f908cSLucas Stach fsl,tuning-start-tap = <20>; 1489748f908cSLucas Stach fsl,tuning-step = <2>; 1490748f908cSLucas Stach bus-width = <4>; 1491748f908cSLucas Stach status = "disabled"; 1492748f908cSLucas Stach }; 1493748f908cSLucas Stach 1494748f908cSLucas Stach usdhc2: mmc@30b50000 { 1495748f908cSLucas Stach compatible = "fsl,imx8mq-usdhc", 1496748f908cSLucas Stach "fsl,imx7d-usdhc"; 1497748f908cSLucas Stach reg = <0x30b50000 0x10000>; 1498748f908cSLucas Stach interrupts = <GIC_SPI 23 IRQ_TYPE_LEVEL_HIGH>; 1499b0759297SAnson Huang clocks = <&clk IMX8MQ_CLK_IPG_ROOT>, 1500748f908cSLucas Stach <&clk IMX8MQ_CLK_NAND_USDHC_BUS>, 1501748f908cSLucas Stach <&clk IMX8MQ_CLK_USDHC2_ROOT>; 1502748f908cSLucas Stach clock-names = "ipg", "ahb", "per"; 1503748f908cSLucas Stach fsl,tuning-start-tap = <20>; 1504748f908cSLucas Stach fsl,tuning-step = <2>; 1505748f908cSLucas Stach bus-width = <4>; 1506748f908cSLucas Stach status = "disabled"; 1507748f908cSLucas Stach }; 1508748f908cSLucas Stach 150939f1622bSCarlo Caione qspi0: spi@30bb0000 { 151039f1622bSCarlo Caione #address-cells = <1>; 151139f1622bSCarlo Caione #size-cells = <0>; 151239f1622bSCarlo Caione compatible = "fsl,imx8mq-qspi", "fsl,imx7d-qspi"; 151339f1622bSCarlo Caione reg = <0x30bb0000 0x10000>, 151439f1622bSCarlo Caione <0x08000000 0x10000000>; 151539f1622bSCarlo Caione reg-names = "QuadSPI", "QuadSPI-memory"; 151639f1622bSCarlo Caione interrupts = <GIC_SPI 107 IRQ_TYPE_LEVEL_HIGH>; 151739f1622bSCarlo Caione clocks = <&clk IMX8MQ_CLK_QSPI_ROOT>, 151839f1622bSCarlo Caione <&clk IMX8MQ_CLK_QSPI_ROOT>; 151939f1622bSCarlo Caione clock-names = "qspi_en", "qspi"; 152039f1622bSCarlo Caione status = "disabled"; 152139f1622bSCarlo Caione }; 152239f1622bSCarlo Caione 1523d314fd24SJoy Zou sdma1: dma-controller@30bd0000 { 15241474d48bSDaniel Baluta compatible = "fsl,imx8mq-sdma","fsl,imx7d-sdma"; 15251474d48bSDaniel Baluta reg = <0x30bd0000 0x10000>; 15261474d48bSDaniel Baluta interrupts = <GIC_SPI 2 IRQ_TYPE_LEVEL_HIGH>; 15271474d48bSDaniel Baluta clocks = <&clk IMX8MQ_CLK_SDMA1_ROOT>, 15287240d7d4SAngus Ainslie (Purism) <&clk IMX8MQ_CLK_AHB>; 15291474d48bSDaniel Baluta clock-names = "ipg", "ahb"; 15301474d48bSDaniel Baluta #dma-cells = <3>; 15311474d48bSDaniel Baluta fsl,sdma-ram-script-name = "imx/sdma/sdma-imx7d.bin"; 15321474d48bSDaniel Baluta }; 15331474d48bSDaniel Baluta 1534748f908cSLucas Stach fec1: ethernet@30be0000 { 1535748f908cSLucas Stach compatible = "fsl,imx8mq-fec", "fsl,imx6sx-fec"; 1536748f908cSLucas Stach reg = <0x30be0000 0x10000>; 1537748f908cSLucas Stach interrupts = <GIC_SPI 118 IRQ_TYPE_LEVEL_HIGH>, 1538748f908cSLucas Stach <GIC_SPI 119 IRQ_TYPE_LEVEL_HIGH>, 1539d3762a47SFabio Estevam <GIC_SPI 120 IRQ_TYPE_LEVEL_HIGH>, 1540d3762a47SFabio Estevam <GIC_SPI 121 IRQ_TYPE_LEVEL_HIGH>; 1541748f908cSLucas Stach clocks = <&clk IMX8MQ_CLK_ENET1_ROOT>, 1542748f908cSLucas Stach <&clk IMX8MQ_CLK_ENET1_ROOT>, 1543748f908cSLucas Stach <&clk IMX8MQ_CLK_ENET_TIMER>, 1544748f908cSLucas Stach <&clk IMX8MQ_CLK_ENET_REF>, 1545748f908cSLucas Stach <&clk IMX8MQ_CLK_ENET_PHY_REF>; 1546748f908cSLucas Stach clock-names = "ipg", "ahb", "ptp", 1547748f908cSLucas Stach "enet_clk_ref", "enet_out"; 15486c17f2d6SJoakim Zhang assigned-clocks = <&clk IMX8MQ_CLK_ENET_AXI>, 15496c17f2d6SJoakim Zhang <&clk IMX8MQ_CLK_ENET_TIMER>, 15506c17f2d6SJoakim Zhang <&clk IMX8MQ_CLK_ENET_REF>, 15516c17f2d6SJoakim Zhang <&clk IMX8MQ_CLK_ENET_PHY_REF>; 15526c17f2d6SJoakim Zhang assigned-clock-parents = <&clk IMX8MQ_SYS1_PLL_266M>, 15536c17f2d6SJoakim Zhang <&clk IMX8MQ_SYS2_PLL_100M>, 15546c17f2d6SJoakim Zhang <&clk IMX8MQ_SYS2_PLL_125M>, 15556c17f2d6SJoakim Zhang <&clk IMX8MQ_SYS2_PLL_50M>; 15566c17f2d6SJoakim Zhang assigned-clock-rates = <0>, <100000000>, <125000000>, <0>; 1557748f908cSLucas Stach fsl,num-tx-queues = <3>; 1558748f908cSLucas Stach fsl,num-rx-queues = <3>; 1559066438aeSJoakim Zhang nvmem-cells = <&fec_mac_address>; 1560066438aeSJoakim Zhang nvmem-cell-names = "mac-address"; 1561afe99354SJoakim Zhang fsl,stop-mode = <&iomuxc_gpr 0x10 3>; 1562748f908cSLucas Stach status = "disabled"; 1563748f908cSLucas Stach }; 1564748f908cSLucas Stach }; 1565748f908cSLucas Stach 1566f18e6d57SLeonard Crestez noc: interconnect@32700000 { 1567f18e6d57SLeonard Crestez compatible = "fsl,imx8mq-noc", "fsl,imx8m-noc"; 1568f18e6d57SLeonard Crestez reg = <0x32700000 0x100000>; 1569f18e6d57SLeonard Crestez clocks = <&clk IMX8MQ_CLK_NOC>; 1570f18e6d57SLeonard Crestez fsl,ddrc = <&ddrc>; 157120cf8d98SMartin Kepplinger #interconnect-cells = <1>; 1572f18e6d57SLeonard Crestez operating-points-v2 = <&noc_opp_table>; 1573f18e6d57SLeonard Crestez 1574f18e6d57SLeonard Crestez noc_opp_table: opp-table { 1575f18e6d57SLeonard Crestez compatible = "operating-points-v2"; 1576f18e6d57SLeonard Crestez 15770c068a36SMarek Vasut opp-133000000 { 1578f18e6d57SLeonard Crestez opp-hz = /bits/ 64 <133333333>; 1579f18e6d57SLeonard Crestez }; 1580f18e6d57SLeonard Crestez 15810c068a36SMarek Vasut opp-400000000 { 1582f18e6d57SLeonard Crestez opp-hz = /bits/ 64 <400000000>; 1583f18e6d57SLeonard Crestez }; 1584f18e6d57SLeonard Crestez 15850c068a36SMarek Vasut opp-800000000 { 1586f18e6d57SLeonard Crestez opp-hz = /bits/ 64 <800000000>; 1587f18e6d57SLeonard Crestez }; 1588f18e6d57SLeonard Crestez }; 1589f18e6d57SLeonard Crestez }; 1590f18e6d57SLeonard Crestez 1591825bd235SFabio Estevam aips4: bus@32c00000 { /* AIPS4 */ 1592dc3efc6fSPeng Fan compatible = "fsl,aips-bus", "simple-bus"; 1593921a6845SFabio Estevam reg = <0x32c00000 0x400000>; 15944af3cfe4SGuido Günther #address-cells = <1>; 15954af3cfe4SGuido Günther #size-cells = <1>; 15964af3cfe4SGuido Günther ranges = <0x32c00000 0x32c00000 0x400000>; 15974af3cfe4SGuido Günther 15984af3cfe4SGuido Günther irqsteer: interrupt-controller@32e2d000 { 15994af3cfe4SGuido Günther compatible = "fsl,imx8m-irqsteer", "fsl,imx-irqsteer"; 16004af3cfe4SGuido Günther reg = <0x32e2d000 0x1000>; 16014af3cfe4SGuido Günther interrupts = <GIC_SPI 18 IRQ_TYPE_LEVEL_HIGH>; 16024af3cfe4SGuido Günther clocks = <&clk IMX8MQ_CLK_DISP_APB_ROOT>; 16034af3cfe4SGuido Günther clock-names = "ipg"; 16044af3cfe4SGuido Günther fsl,channel = <0>; 16054af3cfe4SGuido Günther fsl,num-irqs = <64>; 16064af3cfe4SGuido Günther interrupt-controller; 16074af3cfe4SGuido Günther #interrupt-cells = <1>; 16084af3cfe4SGuido Günther }; 16094af3cfe4SGuido Günther }; 16104af3cfe4SGuido Günther 161145d2c84eSLucas Stach gpu: gpu@38000000 { 161245d2c84eSLucas Stach compatible = "vivante,gc"; 161345d2c84eSLucas Stach reg = <0x38000000 0x40000>; 161445d2c84eSLucas Stach interrupts = <GIC_SPI 3 IRQ_TYPE_LEVEL_HIGH>; 161545d2c84eSLucas Stach clocks = <&clk IMX8MQ_CLK_GPU_ROOT>, 161645d2c84eSLucas Stach <&clk IMX8MQ_CLK_GPU_SHADER_DIV>, 161745d2c84eSLucas Stach <&clk IMX8MQ_CLK_GPU_AXI>, 161845d2c84eSLucas Stach <&clk IMX8MQ_CLK_GPU_AHB>; 161945d2c84eSLucas Stach clock-names = "core", "shader", "bus", "reg"; 16209404f2eaSGuido Günther #cooling-cells = <2>; 162145d2c84eSLucas Stach assigned-clocks = <&clk IMX8MQ_CLK_GPU_CORE_SRC>, 162245d2c84eSLucas Stach <&clk IMX8MQ_CLK_GPU_SHADER_SRC>, 162345d2c84eSLucas Stach <&clk IMX8MQ_CLK_GPU_AXI>, 1624ade5a57eSLucas Stach <&clk IMX8MQ_CLK_GPU_AHB>, 1625ade5a57eSLucas Stach <&clk IMX8MQ_GPU_PLL_BYPASS>; 162645d2c84eSLucas Stach assigned-clock-parents = <&clk IMX8MQ_GPU_PLL_OUT>, 162745d2c84eSLucas Stach <&clk IMX8MQ_GPU_PLL_OUT>, 162845d2c84eSLucas Stach <&clk IMX8MQ_GPU_PLL_OUT>, 1629ade5a57eSLucas Stach <&clk IMX8MQ_GPU_PLL_OUT>, 1630ade5a57eSLucas Stach <&clk IMX8MQ_GPU_PLL>; 163145d2c84eSLucas Stach assigned-clock-rates = <800000000>, <800000000>, 1632ade5a57eSLucas Stach <800000000>, <800000000>, <0>; 163345d2c84eSLucas Stach power-domains = <&pgc_gpu>; 163445d2c84eSLucas Stach }; 163545d2c84eSLucas Stach 1636ad37549cSLucas Stach usb_dwc3_0: usb@38100000 { 1637ad37549cSLucas Stach compatible = "fsl,imx8mq-dwc3", "snps,dwc3"; 1638ad37549cSLucas Stach reg = <0x38100000 0x10000>; 163974bd5951SLi Jun clocks = <&clk IMX8MQ_CLK_USB1_CTRL_ROOT>, 1640ad37549cSLucas Stach <&clk IMX8MQ_CLK_USB_CORE_REF>, 164174bd5951SLi Jun <&clk IMX8MQ_CLK_32K>; 1642ad37549cSLucas Stach clock-names = "bus_early", "ref", "suspend"; 1643ad37549cSLucas Stach assigned-clocks = <&clk IMX8MQ_CLK_USB_BUS>, 1644ad37549cSLucas Stach <&clk IMX8MQ_CLK_USB_CORE_REF>; 1645ad37549cSLucas Stach assigned-clock-parents = <&clk IMX8MQ_SYS2_PLL_500M>, 1646ad37549cSLucas Stach <&clk IMX8MQ_SYS1_PLL_100M>; 1647ad37549cSLucas Stach assigned-clock-rates = <500000000>, <100000000>; 1648ad37549cSLucas Stach interrupts = <GIC_SPI 40 IRQ_TYPE_LEVEL_HIGH>; 1649ad37549cSLucas Stach phys = <&usb3_phy0>, <&usb3_phy0>; 1650ad37549cSLucas Stach phy-names = "usb2-phy", "usb3-phy"; 1651ad37549cSLucas Stach power-domains = <&pgc_otg1>; 1652*c6a952d4SNathan Rossi snps,parkmode-disable-ss-quirk; 1653ad37549cSLucas Stach status = "disabled"; 1654ad37549cSLucas Stach }; 1655ad37549cSLucas Stach 1656ad37549cSLucas Stach usb3_phy0: usb-phy@381f0040 { 1657ad37549cSLucas Stach compatible = "fsl,imx8mq-usb-phy"; 1658ad37549cSLucas Stach reg = <0x381f0040 0x40>; 1659ad37549cSLucas Stach clocks = <&clk IMX8MQ_CLK_USB1_PHY_ROOT>; 1660ad37549cSLucas Stach clock-names = "phy"; 1661ad37549cSLucas Stach assigned-clocks = <&clk IMX8MQ_CLK_USB_PHY_REF>; 1662ad37549cSLucas Stach assigned-clock-parents = <&clk IMX8MQ_SYS1_PLL_100M>; 1663ad37549cSLucas Stach assigned-clock-rates = <100000000>; 1664ad37549cSLucas Stach #phy-cells = <0>; 1665ad37549cSLucas Stach status = "disabled"; 1666ad37549cSLucas Stach }; 1667ad37549cSLucas Stach 1668ad37549cSLucas Stach usb_dwc3_1: usb@38200000 { 1669ad37549cSLucas Stach compatible = "fsl,imx8mq-dwc3", "snps,dwc3"; 1670ad37549cSLucas Stach reg = <0x38200000 0x10000>; 167174bd5951SLi Jun clocks = <&clk IMX8MQ_CLK_USB2_CTRL_ROOT>, 1672ad37549cSLucas Stach <&clk IMX8MQ_CLK_USB_CORE_REF>, 167374bd5951SLi Jun <&clk IMX8MQ_CLK_32K>; 1674ad37549cSLucas Stach clock-names = "bus_early", "ref", "suspend"; 1675ad37549cSLucas Stach assigned-clocks = <&clk IMX8MQ_CLK_USB_BUS>, 1676ad37549cSLucas Stach <&clk IMX8MQ_CLK_USB_CORE_REF>; 1677ad37549cSLucas Stach assigned-clock-parents = <&clk IMX8MQ_SYS2_PLL_500M>, 1678ad37549cSLucas Stach <&clk IMX8MQ_SYS1_PLL_100M>; 1679ad37549cSLucas Stach assigned-clock-rates = <500000000>, <100000000>; 1680ad37549cSLucas Stach interrupts = <GIC_SPI 41 IRQ_TYPE_LEVEL_HIGH>; 1681ad37549cSLucas Stach phys = <&usb3_phy1>, <&usb3_phy1>; 1682ad37549cSLucas Stach phy-names = "usb2-phy", "usb3-phy"; 1683ad37549cSLucas Stach power-domains = <&pgc_otg2>; 1684*c6a952d4SNathan Rossi snps,parkmode-disable-ss-quirk; 1685ad37549cSLucas Stach status = "disabled"; 1686ad37549cSLucas Stach }; 1687ad37549cSLucas Stach 1688ad37549cSLucas Stach usb3_phy1: usb-phy@382f0040 { 1689ad37549cSLucas Stach compatible = "fsl,imx8mq-usb-phy"; 1690ad37549cSLucas Stach reg = <0x382f0040 0x40>; 1691ad37549cSLucas Stach clocks = <&clk IMX8MQ_CLK_USB2_PHY_ROOT>; 1692ad37549cSLucas Stach clock-names = "phy"; 1693ad37549cSLucas Stach assigned-clocks = <&clk IMX8MQ_CLK_USB_PHY_REF>; 1694ad37549cSLucas Stach assigned-clock-parents = <&clk IMX8MQ_SYS1_PLL_100M>; 1695ad37549cSLucas Stach assigned-clock-rates = <100000000>; 1696ad37549cSLucas Stach #phy-cells = <0>; 1697ad37549cSLucas Stach status = "disabled"; 1698ad37549cSLucas Stach }; 1699ad37549cSLucas Stach 17004ac7e4a8SAdam Ford vpu_g1: video-codec@38300000 { 17014ac7e4a8SAdam Ford compatible = "nxp,imx8mq-vpu-g1"; 17024ac7e4a8SAdam Ford reg = <0x38300000 0x10000>; 17034ac7e4a8SAdam Ford interrupts = <GIC_SPI 7 IRQ_TYPE_LEVEL_HIGH>; 17044ac7e4a8SAdam Ford clocks = <&clk IMX8MQ_CLK_VPU_G1_ROOT>; 17054ac7e4a8SAdam Ford power-domains = <&vpu_blk_ctrl IMX8MQ_VPUBLK_PD_G1>; 17064ac7e4a8SAdam Ford }; 17074ac7e4a8SAdam Ford 17084ac7e4a8SAdam Ford vpu_g2: video-codec@38310000 { 17094ac7e4a8SAdam Ford compatible = "nxp,imx8mq-vpu-g2"; 17104ac7e4a8SAdam Ford reg = <0x38310000 0x10000>; 17114ac7e4a8SAdam Ford interrupts = <GIC_SPI 8 IRQ_TYPE_LEVEL_HIGH>; 17124ac7e4a8SAdam Ford clocks = <&clk IMX8MQ_CLK_VPU_G2_ROOT>; 17134ac7e4a8SAdam Ford power-domains = <&vpu_blk_ctrl IMX8MQ_VPUBLK_PD_G2>; 17144ac7e4a8SAdam Ford }; 17154ac7e4a8SAdam Ford 17164ac7e4a8SAdam Ford vpu_blk_ctrl: blk-ctrl@38320000 { 17174ac7e4a8SAdam Ford compatible = "fsl,imx8mq-vpu-blk-ctrl"; 17184ac7e4a8SAdam Ford reg = <0x38320000 0x100>; 17194ac7e4a8SAdam Ford power-domains = <&pgc_vpu>, <&pgc_vpu>, <&pgc_vpu>; 17204ac7e4a8SAdam Ford power-domain-names = "bus", "g1", "g2"; 172136cebeadSPhilipp Zabel clocks = <&clk IMX8MQ_CLK_VPU_G1_ROOT>, 17224ac7e4a8SAdam Ford <&clk IMX8MQ_CLK_VPU_G2_ROOT>; 17234ac7e4a8SAdam Ford clock-names = "g1", "g2"; 17244ac7e4a8SAdam Ford #power-domain-cells = <1>; 172536cebeadSPhilipp Zabel }; 172636cebeadSPhilipp Zabel 1727fc26e600SAndrey Smirnov pcie0: pcie@33800000 { 1728fc26e600SAndrey Smirnov compatible = "fsl,imx8mq-pcie"; 1729fc26e600SAndrey Smirnov reg = <0x33800000 0x400000>, 1730fc26e600SAndrey Smirnov <0x1ff00000 0x80000>; 1731fc26e600SAndrey Smirnov reg-names = "dbi", "config"; 1732fc26e600SAndrey Smirnov #address-cells = <3>; 1733fc26e600SAndrey Smirnov #size-cells = <2>; 1734fc26e600SAndrey Smirnov device_type = "pci"; 1735fc26e600SAndrey Smirnov bus-range = <0x00 0xff>; 1736c179ee1eSRichard Zhu ranges = <0x81000000 0 0x00000000 0x1ff80000 0 0x00010000>, /* downstream I/O 64KB */ 1737c179ee1eSRichard Zhu <0x82000000 0 0x18000000 0x18000000 0 0x07f00000>; /* non-prefetchable memory */ 1738fc26e600SAndrey Smirnov num-lanes = <1>; 1739fc26e600SAndrey Smirnov interrupts = <GIC_SPI 122 IRQ_TYPE_LEVEL_HIGH>; 1740fc26e600SAndrey Smirnov interrupt-names = "msi"; 1741fc26e600SAndrey Smirnov #interrupt-cells = <1>; 1742fc26e600SAndrey Smirnov interrupt-map-mask = <0 0 0 0x7>; 1743fc26e600SAndrey Smirnov interrupt-map = <0 0 0 1 &gic GIC_SPI 125 IRQ_TYPE_LEVEL_HIGH>, 1744fc26e600SAndrey Smirnov <0 0 0 2 &gic GIC_SPI 124 IRQ_TYPE_LEVEL_HIGH>, 1745fc26e600SAndrey Smirnov <0 0 0 3 &gic GIC_SPI 123 IRQ_TYPE_LEVEL_HIGH>, 1746fc26e600SAndrey Smirnov <0 0 0 4 &gic GIC_SPI 122 IRQ_TYPE_LEVEL_HIGH>; 1747fc26e600SAndrey Smirnov fsl,max-link-speed = <2>; 1748c0b70f05SPeng Fan linux,pci-domain = <0>; 17491a9629f7SMarek Vasut clocks = <&clk IMX8MQ_CLK_PCIE1_ROOT>, 17501a9629f7SMarek Vasut <&clk IMX8MQ_CLK_PCIE1_PHY>, 17511a9629f7SMarek Vasut <&clk IMX8MQ_CLK_PCIE1_PHY>, 17521a9629f7SMarek Vasut <&clk IMX8MQ_CLK_PCIE1_AUX>; 17531a9629f7SMarek Vasut clock-names = "pcie", "pcie_bus", "pcie_phy", "pcie_aux"; 1754fc26e600SAndrey Smirnov power-domains = <&pgc_pcie>; 1755fc26e600SAndrey Smirnov resets = <&src IMX8MQ_RESET_PCIEPHY>, 1756fc26e600SAndrey Smirnov <&src IMX8MQ_RESET_PCIE_CTRL_APPS_EN>, 1757fc26e600SAndrey Smirnov <&src IMX8MQ_RESET_PCIE_CTRL_APPS_TURNOFF>; 1758fc26e600SAndrey Smirnov reset-names = "pciephy", "apps", "turnoff"; 175915a5261eSLucas Stach assigned-clocks = <&clk IMX8MQ_CLK_PCIE1_CTRL>, 176015a5261eSLucas Stach <&clk IMX8MQ_CLK_PCIE1_PHY>, 176115a5261eSLucas Stach <&clk IMX8MQ_CLK_PCIE1_AUX>; 176215a5261eSLucas Stach assigned-clock-parents = <&clk IMX8MQ_SYS2_PLL_250M>, 176315a5261eSLucas Stach <&clk IMX8MQ_SYS2_PLL_100M>, 176415a5261eSLucas Stach <&clk IMX8MQ_SYS1_PLL_80M>; 176515a5261eSLucas Stach assigned-clock-rates = <250000000>, <100000000>, 176615a5261eSLucas Stach <10000000>; 1767fc26e600SAndrey Smirnov status = "disabled"; 1768fc26e600SAndrey Smirnov }; 1769fc26e600SAndrey Smirnov 1770fc26e600SAndrey Smirnov pcie1: pcie@33c00000 { 1771fc26e600SAndrey Smirnov compatible = "fsl,imx8mq-pcie"; 1772fc26e600SAndrey Smirnov reg = <0x33c00000 0x400000>, 1773fc26e600SAndrey Smirnov <0x27f00000 0x80000>; 1774fc26e600SAndrey Smirnov reg-names = "dbi", "config"; 1775fc26e600SAndrey Smirnov #address-cells = <3>; 1776fc26e600SAndrey Smirnov #size-cells = <2>; 1777fc26e600SAndrey Smirnov device_type = "pci"; 1778940587e7SAlexander Stein bus-range = <0x00 0xff>; 1779c179ee1eSRichard Zhu ranges = <0x81000000 0 0x00000000 0x27f80000 0 0x00010000>, /* downstream I/O 64KB */ 1780c179ee1eSRichard Zhu <0x82000000 0 0x20000000 0x20000000 0 0x07f00000>; /* non-prefetchable memory */ 1781fc26e600SAndrey Smirnov num-lanes = <1>; 1782fc26e600SAndrey Smirnov interrupts = <GIC_SPI 74 IRQ_TYPE_LEVEL_HIGH>; 1783fc26e600SAndrey Smirnov interrupt-names = "msi"; 1784fc26e600SAndrey Smirnov #interrupt-cells = <1>; 1785fc26e600SAndrey Smirnov interrupt-map-mask = <0 0 0 0x7>; 1786fc26e600SAndrey Smirnov interrupt-map = <0 0 0 1 &gic GIC_SPI 77 IRQ_TYPE_LEVEL_HIGH>, 1787fc26e600SAndrey Smirnov <0 0 0 2 &gic GIC_SPI 76 IRQ_TYPE_LEVEL_HIGH>, 1788fc26e600SAndrey Smirnov <0 0 0 3 &gic GIC_SPI 75 IRQ_TYPE_LEVEL_HIGH>, 1789fc26e600SAndrey Smirnov <0 0 0 4 &gic GIC_SPI 74 IRQ_TYPE_LEVEL_HIGH>; 1790fc26e600SAndrey Smirnov fsl,max-link-speed = <2>; 1791c0b70f05SPeng Fan linux,pci-domain = <1>; 17921a9629f7SMarek Vasut clocks = <&clk IMX8MQ_CLK_PCIE2_ROOT>, 17931a9629f7SMarek Vasut <&clk IMX8MQ_CLK_PCIE2_PHY>, 17941a9629f7SMarek Vasut <&clk IMX8MQ_CLK_PCIE2_PHY>, 17951a9629f7SMarek Vasut <&clk IMX8MQ_CLK_PCIE2_AUX>; 17961a9629f7SMarek Vasut clock-names = "pcie", "pcie_bus", "pcie_phy", "pcie_aux"; 1797fc26e600SAndrey Smirnov power-domains = <&pgc_pcie>; 1798fc26e600SAndrey Smirnov resets = <&src IMX8MQ_RESET_PCIEPHY2>, 1799fc26e600SAndrey Smirnov <&src IMX8MQ_RESET_PCIE2_CTRL_APPS_EN>, 1800fc26e600SAndrey Smirnov <&src IMX8MQ_RESET_PCIE2_CTRL_APPS_TURNOFF>; 1801fc26e600SAndrey Smirnov reset-names = "pciephy", "apps", "turnoff"; 180215a5261eSLucas Stach assigned-clocks = <&clk IMX8MQ_CLK_PCIE2_CTRL>, 180315a5261eSLucas Stach <&clk IMX8MQ_CLK_PCIE2_PHY>, 180415a5261eSLucas Stach <&clk IMX8MQ_CLK_PCIE2_AUX>; 180515a5261eSLucas Stach assigned-clock-parents = <&clk IMX8MQ_SYS2_PLL_250M>, 180615a5261eSLucas Stach <&clk IMX8MQ_SYS2_PLL_100M>, 180715a5261eSLucas Stach <&clk IMX8MQ_SYS1_PLL_80M>; 180815a5261eSLucas Stach assigned-clock-rates = <250000000>, <100000000>, 180915a5261eSLucas Stach <10000000>; 1810fc26e600SAndrey Smirnov status = "disabled"; 1811fc26e600SAndrey Smirnov }; 1812fc26e600SAndrey Smirnov 18131601bb45SRichard Zhu pcie1_ep: pcie-ep@33c00000 { 18141601bb45SRichard Zhu compatible = "fsl,imx8mq-pcie-ep"; 18151601bb45SRichard Zhu reg = <0x33c00000 0x000400000>, 18161601bb45SRichard Zhu <0x20000000 0x08000000>; 18171601bb45SRichard Zhu reg-names = "dbi", "addr_space"; 18181601bb45SRichard Zhu num-lanes = <1>; 18191601bb45SRichard Zhu interrupts = <GIC_SPI 80 IRQ_TYPE_LEVEL_HIGH>; 18201601bb45SRichard Zhu interrupt-names = "dma"; 18211601bb45SRichard Zhu fsl,max-link-speed = <2>; 18221601bb45SRichard Zhu clocks = <&clk IMX8MQ_CLK_PCIE2_ROOT>, 18231601bb45SRichard Zhu <&clk IMX8MQ_CLK_PCIE2_PHY>, 18241601bb45SRichard Zhu <&clk IMX8MQ_CLK_PCIE2_PHY>, 18251601bb45SRichard Zhu <&clk IMX8MQ_CLK_PCIE2_AUX>; 18261601bb45SRichard Zhu clock-names = "pcie", "pcie_bus", "pcie_phy", "pcie_aux"; 18271601bb45SRichard Zhu power-domains = <&pgc_pcie>; 18281601bb45SRichard Zhu resets = <&src IMX8MQ_RESET_PCIEPHY2>, 18291601bb45SRichard Zhu <&src IMX8MQ_RESET_PCIE2_CTRL_APPS_EN>, 18301601bb45SRichard Zhu <&src IMX8MQ_RESET_PCIE2_CTRL_APPS_TURNOFF>; 18311601bb45SRichard Zhu reset-names = "pciephy", "apps", "turnoff"; 18321601bb45SRichard Zhu assigned-clocks = <&clk IMX8MQ_CLK_PCIE2_CTRL>, 18331601bb45SRichard Zhu <&clk IMX8MQ_CLK_PCIE2_PHY>, 18341601bb45SRichard Zhu <&clk IMX8MQ_CLK_PCIE2_AUX>; 18351601bb45SRichard Zhu assigned-clock-parents = <&clk IMX8MQ_SYS2_PLL_250M>, 18361601bb45SRichard Zhu <&clk IMX8MQ_SYS2_PLL_100M>, 18371601bb45SRichard Zhu <&clk IMX8MQ_SYS1_PLL_80M>; 18381601bb45SRichard Zhu assigned-clock-rates = <250000000>, <100000000>, 18391601bb45SRichard Zhu <10000000>; 18401601bb45SRichard Zhu num-ib-windows = <4>; 18411601bb45SRichard Zhu num-ob-windows = <4>; 18421601bb45SRichard Zhu status = "disabled"; 18431601bb45SRichard Zhu }; 18441601bb45SRichard Zhu 1845748f908cSLucas Stach gic: interrupt-controller@38800000 { 1846748f908cSLucas Stach compatible = "arm,gic-v3"; 1847748f908cSLucas Stach reg = <0x38800000 0x10000>, /* GIC Dist */ 1848748f908cSLucas Stach <0x38880000 0xc0000>, /* GICR */ 1849748f908cSLucas Stach <0x31000000 0x2000>, /* GICC */ 1850748f908cSLucas Stach <0x31010000 0x2000>, /* GICV */ 1851748f908cSLucas Stach <0x31020000 0x2000>; /* GICH */ 1852748f908cSLucas Stach #interrupt-cells = <3>; 1853748f908cSLucas Stach interrupt-controller; 1854748f908cSLucas Stach interrupts = <GIC_PPI 9 IRQ_TYPE_LEVEL_HIGH>; 1855748f908cSLucas Stach interrupt-parent = <&gic>; 1856748f908cSLucas Stach }; 18571efe85c9SLeonard Crestez 18580376f6ecSLeonard Crestez ddrc: memory-controller@3d400000 { 18590376f6ecSLeonard Crestez compatible = "fsl,imx8mq-ddrc", "fsl,imx8m-ddrc"; 18600376f6ecSLeonard Crestez reg = <0x3d400000 0x400000>; 18610376f6ecSLeonard Crestez clock-names = "core", "pll", "alt", "apb"; 18620376f6ecSLeonard Crestez clocks = <&clk IMX8MQ_CLK_DRAM_CORE>, 18630376f6ecSLeonard Crestez <&clk IMX8MQ_DRAM_PLL_OUT>, 18640376f6ecSLeonard Crestez <&clk IMX8MQ_CLK_DRAM_ALT>, 18650376f6ecSLeonard Crestez <&clk IMX8MQ_CLK_DRAM_APB>; 18660bcc4bf0SLucas Stach status = "disabled"; 18670376f6ecSLeonard Crestez }; 18680376f6ecSLeonard Crestez 18691efe85c9SLeonard Crestez ddr-pmu@3d800000 { 18701efe85c9SLeonard Crestez compatible = "fsl,imx8mq-ddr-pmu", "fsl,imx8m-ddr-pmu"; 18711efe85c9SLeonard Crestez reg = <0x3d800000 0x400000>; 18721efe85c9SLeonard Crestez interrupt-parent = <&gic>; 18731efe85c9SLeonard Crestez interrupts = <GIC_SPI 98 IRQ_TYPE_LEVEL_HIGH>; 18741efe85c9SLeonard Crestez }; 1875748f908cSLucas Stach }; 1876748f908cSLucas Stach}; 1877