* [PATCH] arm64: dts: imx8mq: Add dcss node
@ 2026-07-10 9:34 Esben Haabendal
2026-07-10 9:52 ` sashiko-bot
0 siblings, 1 reply; 4+ messages in thread
From: Esben Haabendal @ 2026-07-10 9:34 UTC (permalink / raw)
To: Rob Herring, Krzysztof Kozlowski, Conor Dooley, Frank Li,
Sascha Hauer, Pengutronix Kernel Team, Fabio Estevam
Cc: devicetree, imx, linux-arm-kernel, linux-kernel, Esben Haabendal
Add DCSS node for i.MX8MQ based on the example in the bindings
documentation.
Signed-off-by: Esben Haabendal <esben@geanix.com>
---
arch/arm64/boot/dts/freescale/imx8mq.dtsi | 21 +++++++++++++++++++++
1 file changed, 21 insertions(+)
diff --git a/arch/arm64/boot/dts/freescale/imx8mq.dtsi b/arch/arm64/boot/dts/freescale/imx8mq.dtsi
index e60872aeeb49..fb99bd3ad7c9 100644
--- a/arch/arm64/boot/dts/freescale/imx8mq.dtsi
+++ b/arch/arm64/boot/dts/freescale/imx8mq.dtsi
@@ -1611,6 +1611,27 @@ irqsteer: interrupt-controller@32e2d000 {
};
};
+ dcss: display-controller@32e00000 {
+ compatible = "nxp,imx8mq-dcss";
+ reg = <0x32e00000 0x2d000>, <0x32e2f000 0x1000>;
+ interrupts = <6>, <8>, <9>;
+ interrupt-names = "ctxld", "ctxld_kick", "vblank";
+ interrupt-parent = <&irqsteer>;
+ clocks = <&clk IMX8MQ_CLK_DISP_APB_ROOT>, <&clk IMX8MQ_CLK_DISP_AXI_ROOT>,
+ <&clk IMX8MQ_CLK_DISP_RTRM_ROOT>, <&clk IMX8MQ_VIDEO2_PLL_OUT>,
+ <&clk IMX8MQ_CLK_DISP_DTRC>;
+ clock-names = "apb", "axi", "rtrm", "pix", "dtrc";
+ assigned-clocks = <&clk IMX8MQ_CLK_DISP_AXI>,
+ <&clk IMX8MQ_CLK_DISP_RTRM>,
+ <&clk IMX8MQ_VIDEO2_PLL1_REF_SEL>;
+ assigned-clock-parents = <&clk IMX8MQ_SYS1_PLL_800M>,
+ <&clk IMX8MQ_SYS1_PLL_800M>,
+ <&clk IMX8MQ_CLK_27M>;
+ assigned-clock-rates = <800000000>,
+ <400000000>;
+ status = "disabled";
+ };
+
gpu: gpu@38000000 {
compatible = "vivante,gc";
reg = <0x38000000 0x40000>;
---
base-commit: 8cdeaa50eae8dad34885515f62559ee83e7e8dda
change-id: 20260710-imx8mq-dcss-device-tree-node-9df58de085ea
Best regards,
--
Esben Haabendal <esben@geanix.com>
^ permalink raw reply related [flat|nested] 4+ messages in thread* Re: [PATCH] arm64: dts: imx8mq: Add dcss node
2026-07-10 9:34 [PATCH] arm64: dts: imx8mq: Add dcss node Esben Haabendal
@ 2026-07-10 9:52 ` sashiko-bot
2026-07-10 21:13 ` Frank Li
2026-07-11 10:31 ` Esben Haabendal
0 siblings, 2 replies; 4+ messages in thread
From: sashiko-bot @ 2026-07-10 9:52 UTC (permalink / raw)
To: Esben Haabendal; +Cc: conor+dt, Frank.Li, devicetree, robh, imx
Thank you for your contribution! Sashiko AI review found 2 potential issue(s) to consider:
- [High] The `dcss` device node is missing the `power-domains = <&pgc_disp>;` property, which will cause a bus hang when the driver accesses its registers.
- [Low] The `dcss` node is placed at the `soc` level, outside of the `aips4` bus node, causing an overlapping `reg` region and violating the hardware bus topology.
--
--- Patch [1]: [PATCH] arm64: dts: imx8mq: Add dcss node ---
commit 014c87fe4bc51f0ac006bc4660c8f156f9a40538
Author: Esben Haabendal <esben@geanix.com>
arm64: dts: imx8mq: Add dcss node
Add DCSS node for i.MX8MQ based on the example in the bindings documentation.
> diff --git a/arch/arm64/boot/dts/freescale/imx8mq.dtsi b/arch/arm64/boot/dts/freescale/imx8mq.dtsi
> index e60872aeeb49e..fb99bd3ad7c92 100644
> --- a/arch/arm64/boot/dts/freescale/imx8mq.dtsi
> +++ b/arch/arm64/boot/dts/freescale/imx8mq.dtsi
> @@ -1611,6 +1611,27 @@ irqsteer: interrupt-controller@32e2d000 {
> };
> };
>
> + dcss: display-controller@32e00000 {
[Severity: Low]
The aips4 bus explicitly claims the 0x32c00000 - 0x33000000 address range:
aips4: bus@32c00000 { /* AIPS4 */
compatible = "fsl,aips-bus", "simple-bus";
reg = <0x32c00000 0x400000>;
ranges = <0x32c00000 0x32c00000 0x400000>;
Placing the dcss node at the soc level with address 0x32e00000 creates an
overlapping reg region and violates the hardware bus topology, which can
cause structural devicetree warnings about overlapping ranges.
Should this node be placed as a child of the aips4 bus instead?
> + compatible = "nxp,imx8mq-dcss";
> + reg = <0x32e00000 0x2d000>, <0x32e2f000 0x1000>;
> + interrupts = <6>, <8>, <9>;
[Severity: High]
If power-domains = <&pgc_disp>; is omitted, the generic PM domain framework
won't track the dependency between this device and the DISP domain.
If no other active devices claim pgc_disp, the PM core may disable the
domain during late_initcall.
If a board enables this node and the driver subsequently tries to access the
memory-mapped registers of the unpowered peripheral, it will trigger a
synchronous external abort and panic the kernel.
Is this node missing the power-domains property?
--
Sashiko AI review · https://sashiko.dev/#/patchset/20260710-imx8mq-dcss-device-tree-node-v1-1-fc724dfd574e@geanix.com?part=1
^ permalink raw reply [flat|nested] 4+ messages in thread* Re: [PATCH] arm64: dts: imx8mq: Add dcss node
2026-07-10 9:52 ` sashiko-bot
@ 2026-07-10 21:13 ` Frank Li
2026-07-11 10:31 ` Esben Haabendal
1 sibling, 0 replies; 4+ messages in thread
From: Frank Li @ 2026-07-10 21:13 UTC (permalink / raw)
To: sashiko-reviews
Cc: Esben Haabendal, conor+dt, Frank.Li, devicetree, robh, imx
On Fri, Jul 10, 2026 at 09:52:10AM +0000, sashiko-bot@kernel.org wrote:
> Thank you for your contribution! Sashiko AI review found 2 potential issue(s) to consider:
> - [High] The `dcss` device node is missing the `power-domains = <&pgc_disp>;` property, which will cause a bus hang when the driver accesses its registers.
> - [Low] The `dcss` node is placed at the `soc` level, outside of the `aips4` bus node, causing an overlapping `reg` region and violating the hardware bus topology.
> --
>
> --- Patch [1]: [PATCH] arm64: dts: imx8mq: Add dcss node ---
> commit 014c87fe4bc51f0ac006bc4660c8f156f9a40538
> Author: Esben Haabendal <esben@geanix.com>
>
> arm64: dts: imx8mq: Add dcss node
>
> Add DCSS node for i.MX8MQ based on the example in the bindings documentation.
>
> > diff --git a/arch/arm64/boot/dts/freescale/imx8mq.dtsi b/arch/arm64/boot/dts/freescale/imx8mq.dtsi
> > index e60872aeeb49e..fb99bd3ad7c92 100644
> > --- a/arch/arm64/boot/dts/freescale/imx8mq.dtsi
> > +++ b/arch/arm64/boot/dts/freescale/imx8mq.dtsi
> > @@ -1611,6 +1611,27 @@ irqsteer: interrupt-controller@32e2d000 {
> > };
> > };
> >
> > + dcss: display-controller@32e00000 {
>
> [Severity: Low]
> The aips4 bus explicitly claims the 0x32c00000 - 0x33000000 address range:
>
> aips4: bus@32c00000 { /* AIPS4 */
> compatible = "fsl,aips-bus", "simple-bus";
> reg = <0x32c00000 0x400000>;
> ranges = <0x32c00000 0x32c00000 0x400000>;
>
> Placing the dcss node at the soc level with address 0x32e00000 creates an
> overlapping reg region and violates the hardware bus topology, which can
> cause structural devicetree warnings about overlapping ranges.
>
> Should this node be placed as a child of the aips4 bus instead?
Make sense, please move it under aips4
Frank
>
> > + compatible = "nxp,imx8mq-dcss";
> > + reg = <0x32e00000 0x2d000>, <0x32e2f000 0x1000>;
> > + interrupts = <6>, <8>, <9>;
>
> [Severity: High]
> If power-domains = <&pgc_disp>; is omitted, the generic PM domain framework
> won't track the dependency between this device and the DISP domain.
>
> If no other active devices claim pgc_disp, the PM core may disable the
> domain during late_initcall.
>
> If a board enables this node and the driver subsequently tries to access the
> memory-mapped registers of the unpowered peripheral, it will trigger a
> synchronous external abort and panic the kernel.
>
> Is this node missing the power-domains property?
>
> --
> Sashiko AI review · https://sashiko.dev/#/patchset/20260710-imx8mq-dcss-device-tree-node-v1-1-fc724dfd574e@geanix.com?part=1
^ permalink raw reply [flat|nested] 4+ messages in thread* Re: [PATCH] arm64: dts: imx8mq: Add dcss node
2026-07-10 9:52 ` sashiko-bot
2026-07-10 21:13 ` Frank Li
@ 2026-07-11 10:31 ` Esben Haabendal
1 sibling, 0 replies; 4+ messages in thread
From: Esben Haabendal @ 2026-07-11 10:31 UTC (permalink / raw)
To: sashiko-bot; +Cc: sashiko-reviews, conor+dt, Frank.Li, devicetree, robh, imx
<sashiko-bot@kernel.org> writes:
>> + compatible = "nxp,imx8mq-dcss";
>> + reg = <0x32e00000 0x2d000>, <0x32e2f000 0x1000>;
>> + interrupts = <6>, <8>, <9>;
>
> [Severity: High]
> If power-domains = <&pgc_disp>; is omitted, the generic PM domain framework
> won't track the dependency between this device and the DISP domain.
>
> If no other active devices claim pgc_disp, the PM core may disable the
> domain during late_initcall.
>
> If a board enables this node and the driver subsequently tries to access the
> memory-mapped registers of the unpowered peripheral, it will trigger a
> synchronous external abort and panic the kernel.
>
> Is this node missing the power-domains property?
As the bindings for it does not include a power-domains property, I
don't think it is missing.
/Esben
^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2026-07-11 10:31 UTC | newest]
Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-07-10 9:34 [PATCH] arm64: dts: imx8mq: Add dcss node Esben Haabendal
2026-07-10 9:52 ` sashiko-bot
2026-07-10 21:13 ` Frank Li
2026-07-11 10:31 ` Esben Haabendal
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox