[PATCH v2 3/5] arm64: dts: imx8qxp: Add MIPI-LVDS combo subsystems
Alexander Stein
alexander.stein at ew.tq-group.com
Thu Oct 15 01:09:09 PDT 2026
Am Mittwoch, 14. Oktober 2026, 16:01:04 Mitteleuropäische Sommerzeit schrieb Frank Li:
> On Wed, Oct 14, 2026 at 09:16:47AM +0200, Alexander Stein wrote:
> > From: Liu Ying <victor.liu at nxp.com>
> >
> > The MIPI-LVDS combo subsystems are peripherals of pixel link MSI
> > bus in i.MX8qxp display controller subsystem. Add the MIPI-LVDS
> > combo subsystems.
> >
> > Signed-off-by: Liu Ying <victor.liu at nxp.com>
> > Signed-off-by: Alexander Stein <alexander.stein at ew.tq-group.com>
> > ---
> > Changes in v2:
> > * None
> >
> > .../boot/dts/freescale/imx8qxp-ss-dc.dtsi | 4 +
> > .../dts/freescale/imx8qxp-ss-mipi-lvds.dtsi | 443 ++++++++++++++++++
> > arch/arm64/boot/dts/freescale/imx8qxp.dtsi | 3 +
> > 3 files changed, 450 insertions(+)
> > create mode 100644 arch/arm64/boot/dts/freescale/imx8qxp-ss-mipi-lvds.dtsi
> >
> > diff --git a/arch/arm64/boot/dts/freescale/imx8qxp-ss-dc.dtsi b/arch/arm64/boot/dts/freescale/imx8qxp-ss-dc.dtsi
> > index 647ee3348f494..9916a06669c87 100644
> > --- a/arch/arm64/boot/dts/freescale/imx8qxp-ss-dc.dtsi
> > +++ b/arch/arm64/boot/dts/freescale/imx8qxp-ss-dc.dtsi
> > @@ -156,10 +156,12 @@ port at 1 {
> >
> > dc0_pixel_link0_mipi_lvds_0_pxl2dpi: endpoint at 0 {
> > reg = <0>;
> > + remote-endpoint = <&mipi_lvds_0_pxl2dpi_dc0_pixel_link0>;
> > };
> >
> > dc0_pixel_link0_mipi_lvds_1_pxl2dpi: endpoint at 1 {
> > reg = <1>;
> > + remote-endpoint = <&mipi_lvds_1_pxl2dpi_dc0_pixel_link0>;
> > };
> > };
> >
> > @@ -211,10 +213,12 @@ port at 1 {
> >
> > dc0_pixel_link1_mipi_lvds_1_pxl2dpi: endpoint at 0 {
> > reg = <0>;
> > + remote-endpoint = <&mipi_lvds_1_pxl2dpi_dc0_pixel_link1>;
> > };
> >
> > dc0_pixel_link1_mipi_lvds_0_pxl2dpi: endpoint at 1 {
> > reg = <1>;
> > + remote-endpoint = <&mipi_lvds_0_pxl2dpi_dc0_pixel_link1>;
> > };
> > };
> >
> > diff --git a/arch/arm64/boot/dts/freescale/imx8qxp-ss-mipi-lvds.dtsi b/arch/arm64/boot/dts/freescale/imx8qxp-ss-mipi-lvds.dtsi
> > new file mode 100644
> > index 0000000000000..67f5392cfc803
> > --- /dev/null
> > +++ b/arch/arm64/boot/dts/freescale/imx8qxp-ss-mipi-lvds.dtsi
> > @@ -0,0 +1,443 @@
> > +// SPDX-License-Identifier: GPL-2.0+
> > +/*
> > + * Copyright 2024 NXP
> > + */
> > +
> > +#include <dt-bindings/clock/imx8-lpcg.h>
> > +#include <dt-bindings/firmware/imx/rsrc.h>
> > +
> > +/ {
> > + mipi_lvds_0_ipg_clk: clock-mipi-lvds0-ipg {
> > + compatible = "fixed-clock";
> > + #clock-cells = <0>;
> > + clock-frequency = <120000000>;
> > + clock-output-names = "mipi_lvds_0_ipg_clk";
> > + };
> > +
> > + mipi_lvds_1_ipg_clk: clock-mipi-lvds1-ipg {
> > + compatible = "fixed-clock";
> > + #clock-cells = <0>;
> > + clock-frequency = <120000000>;
> > + clock-output-names = "mipi_lvds_1_ipg_clk";
> > + };
> > +};
> > +
> > +&dc0_pl_msi_bus {
> > + mipi_lvds_0_irqsteer: interrupt-controller at 56220000 {
> > + compatible = "fsl,imx-irqsteer";
> > + reg = <0x56220000 0x1000>;
> > + interrupts = <GIC_SPI 59 IRQ_TYPE_LEVEL_HIGH>;
> > + interrupt-controller;
> > + interrupt-parent = <&gic>;
> > + #interrupt-cells = <1>;
> > + clocks = <&mipi_lvds_0_lis_lpcg IMX_LPCG_CLK_4>;
> > + clock-names = "ipg";
> > + fsl,channel = <0>;
> > + fsl,num-irqs = <32>;
> > + };
> > +
> > + mipi_lvds_0_csr: bus at 56221000 {
> > + compatible = "simple-pm-bus", "syscon";
> > + reg = <0x56221000 0x1000>;
> > + clocks = <&mipi_lvds_0_di_mipi_lvds_regs_lpcg IMX_LPCG_CLK_4>;
> > + clock-names = "ipg";
> > + #address-cells = <1>;
> > + #size-cells = <1>;
>
> Does any children nodes have address?
AFAIK the children only use the parent's syscon and SCU, so no direct address.
> > + ranges;
> > +
> > + mipi_lvds_0_pxl2dpi: pxl2dpi {
> > + compatible = "fsl,imx8qxp-pxl2dpi";
> > + fsl,sc-resource = <IMX_SC_R_MIPI_0>;
> > + power-domains = <&pd IMX_SC_R_MIPI_0>;
> > + status = "disabled";
> > +
> > + ports {
> > + #address-cells = <1>;
> > + #size-cells = <0>;
> > +
> > + port at 0 {
> > + #address-cells = <1>;
> > + #size-cells = <0>;
> > + reg = <0>;
> > +
> > + mipi_lvds_0_pxl2dpi_dc0_pixel_link0: endpoint at 0 {
> > + reg = <0>;
> > + remote-endpoint = <&dc0_pixel_link0_mipi_lvds_0_pxl2dpi>;
> > + status = "disabled";
> > + };
> > +
> > + mipi_lvds_0_pxl2dpi_dc0_pixel_link1: endpoint at 1 {
> > + reg = <1>;
> > + remote-endpoint = <&dc0_pixel_link1_mipi_lvds_0_pxl2dpi>;
> > + status = "disabled";
> > + };
> > + };
> > +
> > + port at 1 {
> > + #address-cells = <1>;
> > + #size-cells = <0>;
> > + reg = <1>;
> > +
> > + mipi_lvds_0_pxl2dpi_mipi_lvds_0_ldb_ch0: endpoint at 0 {
> > + reg = <0>;
> > + remote-endpoint = <&mipi_lvds_0_ldb_ch0_mipi_lvds_0_pxl2dpi>;
> > + status = "disabled";
> > + };
> > +
> > + mipi_lvds_0_pxl2dpi_mipi_lvds_0_ldb_ch1: endpoint at 1 {
> > + reg = <1>;
> > + remote-endpoint = <&mipi_lvds_0_ldb_ch1_mipi_lvds_0_pxl2dpi>;
> > + status = "disabled";
> > + };
> > + };
> > + };
> > + };
> > +
> > + mipi_lvds_0_ldb: ldb {
> > + #address-cells = <1>;
> > + #size-cells = <0>;
> > + compatible = "fsl,imx8qxp-ldb";
>
> compatible should be first property, check others
Right, thanks. Will change.
> > + clocks = <&clk IMX_SC_R_LVDS_0 IMX_SC_PM_CLK_MISC2>,
> > + <&clk IMX_SC_R_LVDS_0 IMX_SC_PM_CLK_BYPASS>;
> > + clock-names = "pixel", "bypass";
> > + assigned-clocks = <&clk IMX_SC_R_LVDS_0 IMX_SC_PM_CLK_MISC2>;
> > + assigned-clock-parents = <&clk IMX_SC_R_LVDS_0 IMX_SC_PM_CLK_BYPASS>;
> > + power-domains = <&pd IMX_SC_R_LVDS_0>;
> > + status = "disabled";
> > +
> > + channel at 0 {
> > + #address-cells = <1>;
> > + #size-cells = <0>;
> > + reg = <0>;
>
> reg should be first one.
Right, thanks. Will change.
Best regards,
Alexander
--
TQ-Systems GmbH | Mühlstraße 2, Gut Delling | 82229 Seefeld, Germany
Amtsgericht München, HRB 105018
Geschäftsführer: Detlef Schneider, Rüdiger Stahl, Stefan Schneider
http://www.tq-group.com/
More information about the linux-arm-kernel
mailing list