@@ -6,10 +6,11 @@
#include <dt-bindings/clock/imx8mm-clock.h>
#include <dt-bindings/gpio/gpio.h>
#include <dt-bindings/input/input.h>
#include <dt-bindings/interrupt-controller/arm-gic.h>
#include <dt-bindings/thermal/thermal.h>
+#include <dt-bindings/interconnect/imx8mm.h>
#include "imx8mm-pinfunc.h"
/ {
interrupt-parent = <&gic>;
@@ -791,10 +792,12 @@
noc: interconnect@32700000 {
compatible = "fsl,imx8mm-noc", "fsl,imx8m-noc";
reg = <0x32700000 0x100000>;
clocks = <&clk IMX8MM_CLK_NOC>;
devfreq = <&ddrc>;
+ #interconnect-cells = <1>;
+ interconnect-node-id = <IMX8MM_ICN_NOC>;
operating-points-v2 = <&noc_opp_table>;
};
aips4: bus@32c00000 {
compatible = "fsl,aips-bus", "simple-bus";
@@ -881,10 +884,11 @@
};
ddrc: dram-controller@3d400000 {
compatible = "fsl,imx8mm-ddrc", "fsl,imx8m-ddrc";
reg = <0x3d400000 0x400000>;
+ interconnect-node-id = <IMX8MM_ICS_DRAM>;
clock-names = "dram_core",
"dram_pll",
"dram_alt",
"dram_apb";
clocks = <&clk IMX8MM_CLK_DRAM_CORE>,
@@ -5,10 +5,11 @@
#include <dt-bindings/clock/imx8mn-clock.h>
#include <dt-bindings/gpio/gpio.h>
#include <dt-bindings/input/input.h>
#include <dt-bindings/interrupt-controller/arm-gic.h>
+#include <dt-bindings/interconnect/imx8mn.h>
#include "imx8mn-pinfunc.h"
/ {
interrupt-parent = <&gic>;
@@ -687,10 +688,12 @@
noc: interconnect@32700000 {
compatible = "fsl,imx8mn-noc", "fsl,imx8m-noc";
reg = <0x32700000 0x100000>;
clocks = <&clk IMX8MN_CLK_NOC>;
devfreq = <&ddrc>;
+ #interconnect-cells = <1>;
+ interconnect-node-id = <IMX8MN_ICN_NOC>;
operating-points-v2 = <&noc_opp_table>;
};
aips4: bus@32c00000 {
compatible = "fsl,aips-bus", "simple-bus";
@@ -790,10 +793,11 @@
"dram_apb";
clocks = <&clk IMX8MN_CLK_DRAM_CORE>,
<&clk IMX8MN_DRAM_PLL>,
<&clk IMX8MN_CLK_DRAM_ALT>,
<&clk IMX8MN_CLK_DRAM_APB>;
+ interconnect-node-id = <IMX8MN_ICS_DRAM>;
devfreq-events = <&ddr_pmu>;
};
ddr_pmu: ddr-pmu@3d800000 {
compatible = "fsl,imx8mn-ddr-pmu", "fsl,imx8m-ddr-pmu";
@@ -9,10 +9,11 @@
#include <dt-bindings/reset/imx8mq-reset.h>
#include <dt-bindings/gpio/gpio.h>
#include "dt-bindings/input/input.h"
#include <dt-bindings/interrupt-controller/arm-gic.h>
#include <dt-bindings/thermal/thermal.h>
+#include <dt-bindings/interconnect/imx8mq.h>
#include "imx8mq-pinfunc.h"
/ {
interrupt-parent = <&gpc>;
@@ -950,10 +951,12 @@
noc: interconnect@32700000 {
compatible = "fsl,imx8mq-noc", "fsl,imx8m-noc";
reg = <0x32700000 0x100000>;
clocks = <&clk IMX8MQ_CLK_NOC>;
devfreq = <&ddrc>;
+ #interconnect-cells = <1>;
+ interconnect-node-id = <IMX8MQ_ICN_NOC>;
operating-points-v2 = <&noc_opp_table>;
};
bus@32c00000 { /* AIPS4 */
compatible = "fsl,imx8mq-aips-bus", "simple-bus";
@@ -1144,10 +1147,11 @@
"dram_apb";
clocks = <&clk IMX8MQ_CLK_DRAM_CORE>,
<&clk IMX8MQ_DRAM_PLL_OUT>,
<&clk IMX8MQ_CLK_DRAM_ALT>,
<&clk IMX8MQ_CLK_DRAM_APB>;
+ interconnect-node-id = <IMX8MQ_ICS_DRAM>;
devfreq-events = <&ddr_pmu>;
};
ddr_pmu: ddr-pmu@3d800000 {
compatible = "fsl,imx8mq-ddr-pmu", "fsl,imx8m-ddr-pmu";
Add #interconnect-cells on main &noc so that it will probe the platform interconnect providers. Other devices can request icc_paths like this: interconnects = <&noc BUS_MASTER_ID &noc BUS_SLAVE_ID> And interconnect-node-id properties on &noc and &ddrc, the interconnect provider will scan these and make PM QoS frequency requests in response to bandwith request from other drivers. Signed-off-by: Leonard Crestez <leonard.crestez@nxp.com> --- arch/arm64/boot/dts/freescale/imx8mm.dtsi | 4 ++++ arch/arm64/boot/dts/freescale/imx8mn.dtsi | 4 ++++ arch/arm64/boot/dts/freescale/imx8mq.dtsi | 4 ++++ 3 files changed, 12 insertions(+)