diff mbox series

[2/2] ARM: dts: imx: add support for the ATM0700D4 panel attached to sk-imx53

Message ID 20230826215429.1905599-2-dmitry.baryshkov@linaro.org (mailing list archive)
State New, archived
Headers show
Series [1/2] dt-bindings: display/lvds-codec: add ti,sn65lvds94 | expand

Commit Message

Dmitry Baryshkov Aug. 26, 2023, 9:54 p.m. UTC
The SK-ATM0700D4-Plug is an extension board (provided by the same
manufacturer, [1]) which can be connected to the SK-IMX53 panel kit. The
panel can be connected either using the RGB parallel bus or using the
LVDS connector (recommended). Add DT files describing this "shield",
both RGB and LVDS connections.

[1] http://starterkit.ru/html/index.php?name=shop&op=view&id=64

Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org>
---
 arch/arm/boot/dts/nxp/imx/Makefile            |   2 +
 .../nxp/imx/imx53-sk-imx53-atm0700d4-lvds.dts |  97 +++++++++++++++
 .../nxp/imx/imx53-sk-imx53-atm0700d4-rgb.dts  | 112 ++++++++++++++++++
 .../dts/nxp/imx/imx53-sk-imx53-atm0700d4.dtsi |  45 +++++++
 4 files changed, 256 insertions(+)
 create mode 100644 arch/arm/boot/dts/nxp/imx/imx53-sk-imx53-atm0700d4-lvds.dts
 create mode 100644 arch/arm/boot/dts/nxp/imx/imx53-sk-imx53-atm0700d4-rgb.dts
 create mode 100644 arch/arm/boot/dts/nxp/imx/imx53-sk-imx53-atm0700d4.dtsi

Comments

Laurent Pinchart Aug. 28, 2023, 4:02 p.m. UTC | #1
Hi Dmitry,

Thank you for the patch.

On Sun, Aug 27, 2023 at 12:54:29AM +0300, Dmitry Baryshkov wrote:
> The SK-ATM0700D4-Plug is an extension board (provided by the same
> manufacturer, [1]) which can be connected to the SK-IMX53 panel kit. The
> panel can be connected either using the RGB parallel bus or using the
> LVDS connector (recommended). Add DT files describing this "shield",
> both RGB and LVDS connections.

Shouldn't these be implemented as overlays ?

> [1] http://starterkit.ru/html/index.php?name=shop&op=view&id=64
> 
> Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org>
> ---
>  arch/arm/boot/dts/nxp/imx/Makefile            |   2 +
>  .../nxp/imx/imx53-sk-imx53-atm0700d4-lvds.dts |  97 +++++++++++++++
>  .../nxp/imx/imx53-sk-imx53-atm0700d4-rgb.dts  | 112 ++++++++++++++++++
>  .../dts/nxp/imx/imx53-sk-imx53-atm0700d4.dtsi |  45 +++++++
>  4 files changed, 256 insertions(+)
>  create mode 100644 arch/arm/boot/dts/nxp/imx/imx53-sk-imx53-atm0700d4-lvds.dts
>  create mode 100644 arch/arm/boot/dts/nxp/imx/imx53-sk-imx53-atm0700d4-rgb.dts
>  create mode 100644 arch/arm/boot/dts/nxp/imx/imx53-sk-imx53-atm0700d4.dtsi
> 
> diff --git a/arch/arm/boot/dts/nxp/imx/Makefile b/arch/arm/boot/dts/nxp/imx/Makefile
> index 3629e343d322..7532ed6468a0 100644
> --- a/arch/arm/boot/dts/nxp/imx/Makefile
> +++ b/arch/arm/boot/dts/nxp/imx/Makefile
> @@ -47,6 +47,8 @@ dtb-$(CONFIG_SOC_IMX53) += \
>  	imx53-qsb.dtb \
>  	imx53-qsrb.dtb \
>  	imx53-sk-imx53.dtb \
> +	imx53-sk-imx53-atm0700d4-lvds.dtb \
> +	imx53-sk-imx53-atm0700d4-rgb.dtb \
>  	imx53-smd.dtb \
>  	imx53-tx53-x03x.dtb \
>  	imx53-tx53-x13x.dtb \
> diff --git a/arch/arm/boot/dts/nxp/imx/imx53-sk-imx53-atm0700d4-lvds.dts b/arch/arm/boot/dts/nxp/imx/imx53-sk-imx53-atm0700d4-lvds.dts
> new file mode 100644
> index 000000000000..b1c1e7c759b3
> --- /dev/null
> +++ b/arch/arm/boot/dts/nxp/imx/imx53-sk-imx53-atm0700d4-lvds.dts
> @@ -0,0 +1,97 @@
> +// SPDX-License-Identifier: GPL-2.0+
> +//
> +// Copyright 2023 Linaro Ltd.
> +
> +/dts-v1/;
> +
> +#include <dt-bindings/pwm/pwm.h>
> +#include "imx53-sk-imx53-atm0700d4.dtsi"
> +
> +/ {
> +	lvds-decoder {
> +		compatible = "ti,sn65lvds94", "lvds-decoder";
> +
> +		ports {
> +			#address-cells = <1>;
> +			#size-cells = <0>;
> +
> +			port@0 {
> +				reg = <0>;
> +
> +				lvds_decoder_in: endpoint {
> +					remote-endpoint = <&lvds0_out>;
> +				};
> +			};
> +
> +			port@1 {
> +				reg = <1>;
> +
> +				lvds_decoder_out: endpoint {
> +					remote-endpoint = <&panel_rgb_in>;
> +				};
> +			};
> +		};
> +	};
> +};
> +
> +&iomuxc {
> +	pinctrl_lvds0: lvds0grp {
> +		/* LVDS pins only have pin mux configuration */
> +		fsl,pins = <
> +			MX53_PAD_LVDS0_CLK_P__LDB_LVDS0_CLK	0x80000000
> +			MX53_PAD_LVDS0_TX0_P__LDB_LVDS0_TX0	0x80000000
> +			MX53_PAD_LVDS0_TX1_P__LDB_LVDS0_TX1	0x80000000
> +			MX53_PAD_LVDS0_TX2_P__LDB_LVDS0_TX2	0x80000000
> +			MX53_PAD_LVDS0_TX3_P__LDB_LVDS0_TX3	0x80000000
> +		>;
> +	};
> +
> +	pinctrl_spi_gpio: spigrp {
> +		fsl,pins = <
> +			MX53_PAD_EIM_A22__GPIO2_16		0x1f4
> +			MX53_PAD_EIM_A21__GPIO2_17		0x1f4
> +			MX53_PAD_EIM_A16__GPIO2_22		0x1f4
> +			MX53_PAD_EIM_A18__GPIO2_20		0x1f4
> +		>;
> +	};
> +};
> +
> +&ldb {
> +	pinctrl-names = "default";
> +	pinctrl-0 = <&pinctrl_lvds0>;
> +	status = "okay";
> +
> +	lvds0: lvds-channel@0 {
> +		reg = <0>;
> +		fsl,data-mapping = "spwg";
> +		fsl,data-width = <24>;
> +		status = "okay";
> +
> +		port@2 {
> +			reg = <2>;
> +
> +			lvds0_out: endpoint {
> +				remote-endpoint = <&lvds_decoder_in>;
> +			};
> +		};
> +	};
> +};
> +
> +&panel_rgb_in {
> +	remote-endpoint = <&lvds_decoder_out>;
> +};
> +
> +&spi_ts {
> +	pinctrl-0 = <&pinctrl_spi_gpio>;
> +	pinctrl-names = "default";
> +
> +	sck-gpios = <&gpio2 16 GPIO_ACTIVE_HIGH>;
> +	miso-gpios = <&gpio2 22 GPIO_ACTIVE_HIGH>;
> +	mosi-gpios = <&gpio2 17 GPIO_ACTIVE_HIGH>;
> +	cs-gpios = <&gpio2 20 GPIO_ACTIVE_HIGH>;
> +};
> +
> +&touchscreen {
> +	interrupts-extended = <&gpio3 22 IRQ_TYPE_EDGE_BOTH>;
> +	pendown-gpio = <&gpio3 22 GPIO_ACTIVE_LOW>;
> +};
> diff --git a/arch/arm/boot/dts/nxp/imx/imx53-sk-imx53-atm0700d4-rgb.dts b/arch/arm/boot/dts/nxp/imx/imx53-sk-imx53-atm0700d4-rgb.dts
> new file mode 100644
> index 000000000000..2559ada7e401
> --- /dev/null
> +++ b/arch/arm/boot/dts/nxp/imx/imx53-sk-imx53-atm0700d4-rgb.dts
> @@ -0,0 +1,112 @@
> +// SPDX-License-Identifier: GPL-2.0+
> +//
> +// Copyright 2023 Linaro Ltd.
> +
> +/dts-v1/;
> +
> +#include <dt-bindings/pwm/pwm.h>
> +#include "imx53-sk-imx53-atm0700d4.dtsi"
> +
> +/ {
> +	display: disp0 {
> +		compatible = "fsl,imx-parallel-display";
> +		interface-pix-fmt = "rgb24";
> +		pinctrl-0 = <&pinctrl_rgb24>;
> +		pinctrl-names = "default";
> +
> +		#address-cells = <1>;
> +		#size-cells = <0>;
> +
> +		port@0 {
> +			reg = <0>;
> +
> +			display0_in: endpoint {
> +				remote-endpoint = <&ipu_di0_disp0>;
> +			};
> +		};
> +
> +		port@1 {
> +			reg = <1>;
> +
> +			display_out: endpoint {
> +				remote-endpoint = <&panel_rgb_in>;
> +			};
> +		};
> +	};
> +
> +};
> +
> +&iomuxc {
> +	pinctrl_rgb24: rgb24grp {
> +		fsl,pins = <
> +			MX53_PAD_DI0_DISP_CLK__IPU_DI0_DISP_CLK		0x5
> +			MX53_PAD_DI0_PIN15__IPU_DI0_PIN15		0x5
> +			MX53_PAD_DI0_PIN2__IPU_DI0_PIN2			0x5
> +			MX53_PAD_DI0_PIN3__IPU_DI0_PIN3			0x5
> +			MX53_PAD_DISP0_DAT0__IPU_DISP0_DAT_0		0x5
> +			MX53_PAD_DISP0_DAT1__IPU_DISP0_DAT_1		0x5
> +			MX53_PAD_DISP0_DAT2__IPU_DISP0_DAT_2		0x5
> +			MX53_PAD_DISP0_DAT3__IPU_DISP0_DAT_3		0x5
> +			MX53_PAD_DISP0_DAT4__IPU_DISP0_DAT_4		0x5
> +			MX53_PAD_DISP0_DAT5__IPU_DISP0_DAT_5		0x5
> +			MX53_PAD_DISP0_DAT6__IPU_DISP0_DAT_6		0x5
> +			MX53_PAD_DISP0_DAT7__IPU_DISP0_DAT_7		0x5
> +			MX53_PAD_DISP0_DAT8__IPU_DISP0_DAT_8		0x5
> +			MX53_PAD_DISP0_DAT9__IPU_DISP0_DAT_9		0x5
> +			MX53_PAD_DISP0_DAT10__IPU_DISP0_DAT_10		0x5
> +			MX53_PAD_DISP0_DAT11__IPU_DISP0_DAT_11		0x5
> +			MX53_PAD_DISP0_DAT12__IPU_DISP0_DAT_12		0x5
> +			MX53_PAD_DISP0_DAT13__IPU_DISP0_DAT_13		0x5
> +			MX53_PAD_DISP0_DAT14__IPU_DISP0_DAT_14		0x5
> +			MX53_PAD_DISP0_DAT15__IPU_DISP0_DAT_15		0x5
> +			MX53_PAD_DISP0_DAT16__IPU_DISP0_DAT_16		0x5
> +			MX53_PAD_DISP0_DAT17__IPU_DISP0_DAT_17		0x5
> +			MX53_PAD_DISP0_DAT18__IPU_DISP0_DAT_18		0x5
> +			MX53_PAD_DISP0_DAT19__IPU_DISP0_DAT_19		0x5
> +			MX53_PAD_DISP0_DAT20__IPU_DISP0_DAT_20		0x5
> +			MX53_PAD_DISP0_DAT21__IPU_DISP0_DAT_21		0x5
> +			MX53_PAD_DISP0_DAT22__IPU_DISP0_DAT_22		0x5
> +			MX53_PAD_DISP0_DAT23__IPU_DISP0_DAT_23		0x5
> +		>;
> +	};
> +
> +	pinctrl_spi_gpio: spigrp {
> +		fsl,pins = <
> +			MX53_PAD_SD1_DATA1__GPIO1_17		0x1f4
> +			MX53_PAD_GPIO_7__GPIO1_7		0x1f4
> +			MX53_PAD_PATA_DATA3__GPIO2_3		0x1f4
> +			MX53_PAD_PATA_DATA8__GPIO2_8		0x1f4
> +		>;
> +	};
> +};
> +
> +&ipu_di0_disp0 {
> +	remote-endpoint = <&display0_in>;
> +};
> +
> +&panel {
> +	enable-gpios = <&gpio1 9 GPIO_ACTIVE_HIGH>;
> +};
> +
> +&panel_rgb_in {
> +	remote-endpoint = <&display_out>;
> +};
> +
> +&pwm1 {
> +	status = "disabled";
> +};
> +
> +&spi_ts {
> +	pinctrl-0 = <&pinctrl_spi_gpio>;
> +	pinctrl-names = "default";
> +
> +	sck-gpios = <&gpio1 7 GPIO_ACTIVE_HIGH>;
> +	mosi-gpios = <&gpio2 3 GPIO_ACTIVE_HIGH>;
> +	miso-gpios = <&gpio1 17 GPIO_ACTIVE_HIGH>;
> +	cs-gpios = <&gpio2 8 GPIO_ACTIVE_HIGH>;
> +};
> +
> +&touchscreen {
> +	interrupts-extended = <&gpio2 6 IRQ_TYPE_EDGE_BOTH>;
> +	pendown-gpio = <&gpio2 6 GPIO_ACTIVE_LOW>;
> +};
> diff --git a/arch/arm/boot/dts/nxp/imx/imx53-sk-imx53-atm0700d4.dtsi b/arch/arm/boot/dts/nxp/imx/imx53-sk-imx53-atm0700d4.dtsi
> new file mode 100644
> index 000000000000..e395004e80e6
> --- /dev/null
> +++ b/arch/arm/boot/dts/nxp/imx/imx53-sk-imx53-atm0700d4.dtsi
> @@ -0,0 +1,45 @@
> +// SPDX-License-Identifier: GPL-2.0+
> +//
> +// Copyright 2023 Linaro Ltd.
> +
> +/dts-v1/;
> +
> +#include <dt-bindings/pwm/pwm.h>
> +#include "imx53-sk-imx53.dts"
> +
> +/ {
> +	panel: panel-rgb {
> +		compatible = "powertip,ph800480t013-idf02";
> +
> +		port {
> +			panel_rgb_in: endpoint {
> +			};
> +		};
> +	};
> +
> +	spi_ts: spi {
> +		compatible = "spi-gpio";
> +		#address-cells = <0x1>;
> +		#size-cells = <0x0>;
> +
> +		num-chipselects = <1>;
> +
> +		touchscreen: touchscreen@0 {
> +			reg = <0>;
> +			compatible = "ti,ads7843";
> +			spi-max-frequency = <300000>;
> +
> +			ti,vref-mv = /bits/ 16 <3300>;
> +			ti,x-plate-ohms = /bits/ 16 <450>;
> +			ti,y-plate-ohms = /bits/ 16 <250>;
> +			ti,debounce-tol = /bits/ 16 <10>;
> +			ti,debounce-rep = /bits/ 16 <0>;
> +			touchscreen-size-x = <4096>;
> +			touchscreen-size-y = <4096>;
> +			touchscreen-swapped-x-y;
> +			touchscreen-max-pressure = <100>;
> +
> +			wakeup-source;
> +		};
> +	};
> +};
Dmitry Baryshkov Aug. 29, 2023, 9:19 a.m. UTC | #2
On Mon, 28 Aug 2023 at 19:02, Laurent Pinchart
<laurent.pinchart@ideasonboard.com> wrote:
>
> Hi Dmitry,
>
> Thank you for the patch.
>
> On Sun, Aug 27, 2023 at 12:54:29AM +0300, Dmitry Baryshkov wrote:
> > The SK-ATM0700D4-Plug is an extension board (provided by the same
> > manufacturer, [1]) which can be connected to the SK-IMX53 panel kit. The
> > panel can be connected either using the RGB parallel bus or using the
> > LVDS connector (recommended). Add DT files describing this "shield",
> > both RGB and LVDS connections.
>
> Shouldn't these be implemented as overlays ?

Indeed, I see that imx8mm opted to use overlays. However frankly
speaking I don't see a benefit in using DT overlays, if in the end we
are building a single dtb file. Quite contrary, splitting this to
separate dtso/dtbo files would disable DT schema validation. It is
possible to validate DT with multiple nested inclusions, but it is not
possible to validate overlays.

>
> > [1] http://starterkit.ru/html/index.php?name=shop&op=view&id=64
> >
> > Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org>
> > ---
> >  arch/arm/boot/dts/nxp/imx/Makefile            |   2 +
> >  .../nxp/imx/imx53-sk-imx53-atm0700d4-lvds.dts |  97 +++++++++++++++
> >  .../nxp/imx/imx53-sk-imx53-atm0700d4-rgb.dts  | 112 ++++++++++++++++++
> >  .../dts/nxp/imx/imx53-sk-imx53-atm0700d4.dtsi |  45 +++++++
> >  4 files changed, 256 insertions(+)
> >  create mode 100644 arch/arm/boot/dts/nxp/imx/imx53-sk-imx53-atm0700d4-lvds.dts
> >  create mode 100644 arch/arm/boot/dts/nxp/imx/imx53-sk-imx53-atm0700d4-rgb.dts
> >  create mode 100644 arch/arm/boot/dts/nxp/imx/imx53-sk-imx53-atm0700d4.dtsi
> >
> > diff --git a/arch/arm/boot/dts/nxp/imx/Makefile b/arch/arm/boot/dts/nxp/imx/Makefile
> > index 3629e343d322..7532ed6468a0 100644
> > --- a/arch/arm/boot/dts/nxp/imx/Makefile
> > +++ b/arch/arm/boot/dts/nxp/imx/Makefile
> > @@ -47,6 +47,8 @@ dtb-$(CONFIG_SOC_IMX53) += \
> >       imx53-qsb.dtb \
> >       imx53-qsrb.dtb \
> >       imx53-sk-imx53.dtb \
> > +     imx53-sk-imx53-atm0700d4-lvds.dtb \
> > +     imx53-sk-imx53-atm0700d4-rgb.dtb \
> >       imx53-smd.dtb \
> >       imx53-tx53-x03x.dtb \
> >       imx53-tx53-x13x.dtb \
> > diff --git a/arch/arm/boot/dts/nxp/imx/imx53-sk-imx53-atm0700d4-lvds.dts b/arch/arm/boot/dts/nxp/imx/imx53-sk-imx53-atm0700d4-lvds.dts
> > new file mode 100644
> > index 000000000000..b1c1e7c759b3
> > --- /dev/null
> > +++ b/arch/arm/boot/dts/nxp/imx/imx53-sk-imx53-atm0700d4-lvds.dts
> > @@ -0,0 +1,97 @@
> > +// SPDX-License-Identifier: GPL-2.0+
> > +//
> > +// Copyright 2023 Linaro Ltd.
> > +
> > +/dts-v1/;
> > +
> > +#include <dt-bindings/pwm/pwm.h>
> > +#include "imx53-sk-imx53-atm0700d4.dtsi"
> > +
> > +/ {
> > +     lvds-decoder {
> > +             compatible = "ti,sn65lvds94", "lvds-decoder";
> > +
> > +             ports {
> > +                     #address-cells = <1>;
> > +                     #size-cells = <0>;
> > +
> > +                     port@0 {
> > +                             reg = <0>;
> > +
> > +                             lvds_decoder_in: endpoint {
> > +                                     remote-endpoint = <&lvds0_out>;
> > +                             };
> > +                     };
> > +
> > +                     port@1 {
> > +                             reg = <1>;
> > +
> > +                             lvds_decoder_out: endpoint {
> > +                                     remote-endpoint = <&panel_rgb_in>;
> > +                             };
> > +                     };
> > +             };
> > +     };
> > +};
> > +
> > +&iomuxc {
> > +     pinctrl_lvds0: lvds0grp {
> > +             /* LVDS pins only have pin mux configuration */
> > +             fsl,pins = <
> > +                     MX53_PAD_LVDS0_CLK_P__LDB_LVDS0_CLK     0x80000000
> > +                     MX53_PAD_LVDS0_TX0_P__LDB_LVDS0_TX0     0x80000000
> > +                     MX53_PAD_LVDS0_TX1_P__LDB_LVDS0_TX1     0x80000000
> > +                     MX53_PAD_LVDS0_TX2_P__LDB_LVDS0_TX2     0x80000000
> > +                     MX53_PAD_LVDS0_TX3_P__LDB_LVDS0_TX3     0x80000000
> > +             >;
> > +     };
> > +
> > +     pinctrl_spi_gpio: spigrp {
> > +             fsl,pins = <
> > +                     MX53_PAD_EIM_A22__GPIO2_16              0x1f4
> > +                     MX53_PAD_EIM_A21__GPIO2_17              0x1f4
> > +                     MX53_PAD_EIM_A16__GPIO2_22              0x1f4
> > +                     MX53_PAD_EIM_A18__GPIO2_20              0x1f4
> > +             >;
> > +     };
> > +};
> > +
> > +&ldb {
> > +     pinctrl-names = "default";
> > +     pinctrl-0 = <&pinctrl_lvds0>;
> > +     status = "okay";
> > +
> > +     lvds0: lvds-channel@0 {
> > +             reg = <0>;
> > +             fsl,data-mapping = "spwg";
> > +             fsl,data-width = <24>;
> > +             status = "okay";
> > +
> > +             port@2 {
> > +                     reg = <2>;
> > +
> > +                     lvds0_out: endpoint {
> > +                             remote-endpoint = <&lvds_decoder_in>;
> > +                     };
> > +             };
> > +     };
> > +};
> > +
> > +&panel_rgb_in {
> > +     remote-endpoint = <&lvds_decoder_out>;
> > +};
> > +
> > +&spi_ts {
> > +     pinctrl-0 = <&pinctrl_spi_gpio>;
> > +     pinctrl-names = "default";
> > +
> > +     sck-gpios = <&gpio2 16 GPIO_ACTIVE_HIGH>;
> > +     miso-gpios = <&gpio2 22 GPIO_ACTIVE_HIGH>;
> > +     mosi-gpios = <&gpio2 17 GPIO_ACTIVE_HIGH>;
> > +     cs-gpios = <&gpio2 20 GPIO_ACTIVE_HIGH>;
> > +};
> > +
> > +&touchscreen {
> > +     interrupts-extended = <&gpio3 22 IRQ_TYPE_EDGE_BOTH>;
> > +     pendown-gpio = <&gpio3 22 GPIO_ACTIVE_LOW>;
> > +};
> > diff --git a/arch/arm/boot/dts/nxp/imx/imx53-sk-imx53-atm0700d4-rgb.dts b/arch/arm/boot/dts/nxp/imx/imx53-sk-imx53-atm0700d4-rgb.dts
> > new file mode 100644
> > index 000000000000..2559ada7e401
> > --- /dev/null
> > +++ b/arch/arm/boot/dts/nxp/imx/imx53-sk-imx53-atm0700d4-rgb.dts
> > @@ -0,0 +1,112 @@
> > +// SPDX-License-Identifier: GPL-2.0+
> > +//
> > +// Copyright 2023 Linaro Ltd.
> > +
> > +/dts-v1/;
> > +
> > +#include <dt-bindings/pwm/pwm.h>
> > +#include "imx53-sk-imx53-atm0700d4.dtsi"
> > +
> > +/ {
> > +     display: disp0 {
> > +             compatible = "fsl,imx-parallel-display";
> > +             interface-pix-fmt = "rgb24";
> > +             pinctrl-0 = <&pinctrl_rgb24>;
> > +             pinctrl-names = "default";
> > +
> > +             #address-cells = <1>;
> > +             #size-cells = <0>;
> > +
> > +             port@0 {
> > +                     reg = <0>;
> > +
> > +                     display0_in: endpoint {
> > +                             remote-endpoint = <&ipu_di0_disp0>;
> > +                     };
> > +             };
> > +
> > +             port@1 {
> > +                     reg = <1>;
> > +
> > +                     display_out: endpoint {
> > +                             remote-endpoint = <&panel_rgb_in>;
> > +                     };
> > +             };
> > +     };
> > +
> > +};
> > +
> > +&iomuxc {
> > +     pinctrl_rgb24: rgb24grp {
> > +             fsl,pins = <
> > +                     MX53_PAD_DI0_DISP_CLK__IPU_DI0_DISP_CLK         0x5
> > +                     MX53_PAD_DI0_PIN15__IPU_DI0_PIN15               0x5
> > +                     MX53_PAD_DI0_PIN2__IPU_DI0_PIN2                 0x5
> > +                     MX53_PAD_DI0_PIN3__IPU_DI0_PIN3                 0x5
> > +                     MX53_PAD_DISP0_DAT0__IPU_DISP0_DAT_0            0x5
> > +                     MX53_PAD_DISP0_DAT1__IPU_DISP0_DAT_1            0x5
> > +                     MX53_PAD_DISP0_DAT2__IPU_DISP0_DAT_2            0x5
> > +                     MX53_PAD_DISP0_DAT3__IPU_DISP0_DAT_3            0x5
> > +                     MX53_PAD_DISP0_DAT4__IPU_DISP0_DAT_4            0x5
> > +                     MX53_PAD_DISP0_DAT5__IPU_DISP0_DAT_5            0x5
> > +                     MX53_PAD_DISP0_DAT6__IPU_DISP0_DAT_6            0x5
> > +                     MX53_PAD_DISP0_DAT7__IPU_DISP0_DAT_7            0x5
> > +                     MX53_PAD_DISP0_DAT8__IPU_DISP0_DAT_8            0x5
> > +                     MX53_PAD_DISP0_DAT9__IPU_DISP0_DAT_9            0x5
> > +                     MX53_PAD_DISP0_DAT10__IPU_DISP0_DAT_10          0x5
> > +                     MX53_PAD_DISP0_DAT11__IPU_DISP0_DAT_11          0x5
> > +                     MX53_PAD_DISP0_DAT12__IPU_DISP0_DAT_12          0x5
> > +                     MX53_PAD_DISP0_DAT13__IPU_DISP0_DAT_13          0x5
> > +                     MX53_PAD_DISP0_DAT14__IPU_DISP0_DAT_14          0x5
> > +                     MX53_PAD_DISP0_DAT15__IPU_DISP0_DAT_15          0x5
> > +                     MX53_PAD_DISP0_DAT16__IPU_DISP0_DAT_16          0x5
> > +                     MX53_PAD_DISP0_DAT17__IPU_DISP0_DAT_17          0x5
> > +                     MX53_PAD_DISP0_DAT18__IPU_DISP0_DAT_18          0x5
> > +                     MX53_PAD_DISP0_DAT19__IPU_DISP0_DAT_19          0x5
> > +                     MX53_PAD_DISP0_DAT20__IPU_DISP0_DAT_20          0x5
> > +                     MX53_PAD_DISP0_DAT21__IPU_DISP0_DAT_21          0x5
> > +                     MX53_PAD_DISP0_DAT22__IPU_DISP0_DAT_22          0x5
> > +                     MX53_PAD_DISP0_DAT23__IPU_DISP0_DAT_23          0x5
> > +             >;
> > +     };
> > +
> > +     pinctrl_spi_gpio: spigrp {
> > +             fsl,pins = <
> > +                     MX53_PAD_SD1_DATA1__GPIO1_17            0x1f4
> > +                     MX53_PAD_GPIO_7__GPIO1_7                0x1f4
> > +                     MX53_PAD_PATA_DATA3__GPIO2_3            0x1f4
> > +                     MX53_PAD_PATA_DATA8__GPIO2_8            0x1f4
> > +             >;
> > +     };
> > +};
> > +
> > +&ipu_di0_disp0 {
> > +     remote-endpoint = <&display0_in>;
> > +};
> > +
> > +&panel {
> > +     enable-gpios = <&gpio1 9 GPIO_ACTIVE_HIGH>;
> > +};
> > +
> > +&panel_rgb_in {
> > +     remote-endpoint = <&display_out>;
> > +};
> > +
> > +&pwm1 {
> > +     status = "disabled";
> > +};
> > +
> > +&spi_ts {
> > +     pinctrl-0 = <&pinctrl_spi_gpio>;
> > +     pinctrl-names = "default";
> > +
> > +     sck-gpios = <&gpio1 7 GPIO_ACTIVE_HIGH>;
> > +     mosi-gpios = <&gpio2 3 GPIO_ACTIVE_HIGH>;
> > +     miso-gpios = <&gpio1 17 GPIO_ACTIVE_HIGH>;
> > +     cs-gpios = <&gpio2 8 GPIO_ACTIVE_HIGH>;
> > +};
> > +
> > +&touchscreen {
> > +     interrupts-extended = <&gpio2 6 IRQ_TYPE_EDGE_BOTH>;
> > +     pendown-gpio = <&gpio2 6 GPIO_ACTIVE_LOW>;
> > +};
> > diff --git a/arch/arm/boot/dts/nxp/imx/imx53-sk-imx53-atm0700d4.dtsi b/arch/arm/boot/dts/nxp/imx/imx53-sk-imx53-atm0700d4.dtsi
> > new file mode 100644
> > index 000000000000..e395004e80e6
> > --- /dev/null
> > +++ b/arch/arm/boot/dts/nxp/imx/imx53-sk-imx53-atm0700d4.dtsi
> > @@ -0,0 +1,45 @@
> > +// SPDX-License-Identifier: GPL-2.0+
> > +//
> > +// Copyright 2023 Linaro Ltd.
> > +
> > +/dts-v1/;
> > +
> > +#include <dt-bindings/pwm/pwm.h>
> > +#include "imx53-sk-imx53.dts"
> > +
> > +/ {
> > +     panel: panel-rgb {
> > +             compatible = "powertip,ph800480t013-idf02";
> > +
> > +             port {
> > +                     panel_rgb_in: endpoint {
> > +                     };
> > +             };
> > +     };
> > +
> > +     spi_ts: spi {
> > +             compatible = "spi-gpio";
> > +             #address-cells = <0x1>;
> > +             #size-cells = <0x0>;
> > +
> > +             num-chipselects = <1>;
> > +
> > +             touchscreen: touchscreen@0 {
> > +                     reg = <0>;
> > +                     compatible = "ti,ads7843";
> > +                     spi-max-frequency = <300000>;
> > +
> > +                     ti,vref-mv = /bits/ 16 <3300>;
> > +                     ti,x-plate-ohms = /bits/ 16 <450>;
> > +                     ti,y-plate-ohms = /bits/ 16 <250>;
> > +                     ti,debounce-tol = /bits/ 16 <10>;
> > +                     ti,debounce-rep = /bits/ 16 <0>;
> > +                     touchscreen-size-x = <4096>;
> > +                     touchscreen-size-y = <4096>;
> > +                     touchscreen-swapped-x-y;
> > +                     touchscreen-max-pressure = <100>;
> > +
> > +                     wakeup-source;
> > +             };
> > +     };
> > +};
>
> --
> Regards,
>
> Laurent Pinchart
Shawn Guo Sept. 25, 2023, 12:43 a.m. UTC | #3
On Sun, Aug 27, 2023 at 12:54:29AM +0300, Dmitry Baryshkov wrote:
> The SK-ATM0700D4-Plug is an extension board (provided by the same
> manufacturer, [1]) which can be connected to the SK-IMX53 panel kit. The
> panel can be connected either using the RGB parallel bus or using the
> LVDS connector (recommended). Add DT files describing this "shield",
> both RGB and LVDS connections.
> 
> [1] http://starterkit.ru/html/index.php?name=shop&op=view&id=64
> 
> Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org>

Applied, thanks!
Laurent Pinchart Sept. 25, 2023, 12:56 a.m. UTC | #4
On Tue, Aug 29, 2023 at 12:19:23PM +0300, Dmitry Baryshkov wrote:
> On Mon, 28 Aug 2023 at 19:02, Laurent Pinchart wrote:
> > On Sun, Aug 27, 2023 at 12:54:29AM +0300, Dmitry Baryshkov wrote:
> > > The SK-ATM0700D4-Plug is an extension board (provided by the same
> > > manufacturer, [1]) which can be connected to the SK-IMX53 panel kit. The
> > > panel can be connected either using the RGB parallel bus or using the
> > > LVDS connector (recommended). Add DT files describing this "shield",
> > > both RGB and LVDS connections.
> >
> > Shouldn't these be implemented as overlays ?
> 
> Indeed, I see that imx8mm opted to use overlays. However frankly
> speaking I don't see a benefit in using DT overlays, if in the end we
> are building a single dtb file. Quite contrary, splitting this to
> separate dtso/dtbo files would disable DT schema validation. It is
> possible to validate DT with multiple nested inclusions, but it is not
> possible to validate overlays.

Overlays make it possible to mix and match multiple peripherals attached
to a board. This is especially useful for development boards where you
can have panels, camera modules and other add-ons attached. You would
otherwise need lots of .dts to express all possible combinations.

There are still some validation issues with overlays, but as far as I
can tell the kernel now supports validating overlays applied to a base
board. See how arch/arm64/boot/dts/freescale/Makefile defines, for
instance,

imx8mp-tqma8mpql-mba8mpxl-lvds-dtbs += imx8mp-tqma8mpql-mba8mpxl.dtb imx8mp-tqma8mpql-mba8mpxl-lvds.dtbo
dtb-$(CONFIG_ARCH_MXC) += imx8mp-tqma8mpql-mba8mpxl-lvds.dtb

I've just seen that Shawn has applied this patch. Could you convert it
to overlays with additional patches ?

> > > [1] http://starterkit.ru/html/index.php?name=shop&op=view&id=64
> > >
> > > Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org>
> > > ---
> > >  arch/arm/boot/dts/nxp/imx/Makefile            |   2 +
> > >  .../nxp/imx/imx53-sk-imx53-atm0700d4-lvds.dts |  97 +++++++++++++++
> > >  .../nxp/imx/imx53-sk-imx53-atm0700d4-rgb.dts  | 112 ++++++++++++++++++
> > >  .../dts/nxp/imx/imx53-sk-imx53-atm0700d4.dtsi |  45 +++++++
> > >  4 files changed, 256 insertions(+)
> > >  create mode 100644 arch/arm/boot/dts/nxp/imx/imx53-sk-imx53-atm0700d4-lvds.dts
> > >  create mode 100644 arch/arm/boot/dts/nxp/imx/imx53-sk-imx53-atm0700d4-rgb.dts
> > >  create mode 100644 arch/arm/boot/dts/nxp/imx/imx53-sk-imx53-atm0700d4.dtsi
> > >
> > > diff --git a/arch/arm/boot/dts/nxp/imx/Makefile b/arch/arm/boot/dts/nxp/imx/Makefile
> > > index 3629e343d322..7532ed6468a0 100644
> > > --- a/arch/arm/boot/dts/nxp/imx/Makefile
> > > +++ b/arch/arm/boot/dts/nxp/imx/Makefile
> > > @@ -47,6 +47,8 @@ dtb-$(CONFIG_SOC_IMX53) += \
> > >       imx53-qsb.dtb \
> > >       imx53-qsrb.dtb \
> > >       imx53-sk-imx53.dtb \
> > > +     imx53-sk-imx53-atm0700d4-lvds.dtb \
> > > +     imx53-sk-imx53-atm0700d4-rgb.dtb \
> > >       imx53-smd.dtb \
> > >       imx53-tx53-x03x.dtb \
> > >       imx53-tx53-x13x.dtb \
> > > diff --git a/arch/arm/boot/dts/nxp/imx/imx53-sk-imx53-atm0700d4-lvds.dts b/arch/arm/boot/dts/nxp/imx/imx53-sk-imx53-atm0700d4-lvds.dts
> > > new file mode 100644
> > > index 000000000000..b1c1e7c759b3
> > > --- /dev/null
> > > +++ b/arch/arm/boot/dts/nxp/imx/imx53-sk-imx53-atm0700d4-lvds.dts
> > > @@ -0,0 +1,97 @@
> > > +// SPDX-License-Identifier: GPL-2.0+
> > > +//
> > > +// Copyright 2023 Linaro Ltd.
> > > +
> > > +/dts-v1/;
> > > +
> > > +#include <dt-bindings/pwm/pwm.h>
> > > +#include "imx53-sk-imx53-atm0700d4.dtsi"
> > > +
> > > +/ {
> > > +     lvds-decoder {
> > > +             compatible = "ti,sn65lvds94", "lvds-decoder";
> > > +
> > > +             ports {
> > > +                     #address-cells = <1>;
> > > +                     #size-cells = <0>;
> > > +
> > > +                     port@0 {
> > > +                             reg = <0>;
> > > +
> > > +                             lvds_decoder_in: endpoint {
> > > +                                     remote-endpoint = <&lvds0_out>;
> > > +                             };
> > > +                     };
> > > +
> > > +                     port@1 {
> > > +                             reg = <1>;
> > > +
> > > +                             lvds_decoder_out: endpoint {
> > > +                                     remote-endpoint = <&panel_rgb_in>;
> > > +                             };
> > > +                     };
> > > +             };
> > > +     };
> > > +};
> > > +
> > > +&iomuxc {
> > > +     pinctrl_lvds0: lvds0grp {
> > > +             /* LVDS pins only have pin mux configuration */
> > > +             fsl,pins = <
> > > +                     MX53_PAD_LVDS0_CLK_P__LDB_LVDS0_CLK     0x80000000
> > > +                     MX53_PAD_LVDS0_TX0_P__LDB_LVDS0_TX0     0x80000000
> > > +                     MX53_PAD_LVDS0_TX1_P__LDB_LVDS0_TX1     0x80000000
> > > +                     MX53_PAD_LVDS0_TX2_P__LDB_LVDS0_TX2     0x80000000
> > > +                     MX53_PAD_LVDS0_TX3_P__LDB_LVDS0_TX3     0x80000000
> > > +             >;
> > > +     };
> > > +
> > > +     pinctrl_spi_gpio: spigrp {
> > > +             fsl,pins = <
> > > +                     MX53_PAD_EIM_A22__GPIO2_16              0x1f4
> > > +                     MX53_PAD_EIM_A21__GPIO2_17              0x1f4
> > > +                     MX53_PAD_EIM_A16__GPIO2_22              0x1f4
> > > +                     MX53_PAD_EIM_A18__GPIO2_20              0x1f4
> > > +             >;
> > > +     };
> > > +};
> > > +
> > > +&ldb {
> > > +     pinctrl-names = "default";
> > > +     pinctrl-0 = <&pinctrl_lvds0>;
> > > +     status = "okay";
> > > +
> > > +     lvds0: lvds-channel@0 {
> > > +             reg = <0>;
> > > +             fsl,data-mapping = "spwg";
> > > +             fsl,data-width = <24>;
> > > +             status = "okay";
> > > +
> > > +             port@2 {
> > > +                     reg = <2>;
> > > +
> > > +                     lvds0_out: endpoint {
> > > +                             remote-endpoint = <&lvds_decoder_in>;
> > > +                     };
> > > +             };
> > > +     };
> > > +};
> > > +
> > > +&panel_rgb_in {
> > > +     remote-endpoint = <&lvds_decoder_out>;
> > > +};
> > > +
> > > +&spi_ts {
> > > +     pinctrl-0 = <&pinctrl_spi_gpio>;
> > > +     pinctrl-names = "default";
> > > +
> > > +     sck-gpios = <&gpio2 16 GPIO_ACTIVE_HIGH>;
> > > +     miso-gpios = <&gpio2 22 GPIO_ACTIVE_HIGH>;
> > > +     mosi-gpios = <&gpio2 17 GPIO_ACTIVE_HIGH>;
> > > +     cs-gpios = <&gpio2 20 GPIO_ACTIVE_HIGH>;
> > > +};
> > > +
> > > +&touchscreen {
> > > +     interrupts-extended = <&gpio3 22 IRQ_TYPE_EDGE_BOTH>;
> > > +     pendown-gpio = <&gpio3 22 GPIO_ACTIVE_LOW>;
> > > +};
> > > diff --git a/arch/arm/boot/dts/nxp/imx/imx53-sk-imx53-atm0700d4-rgb.dts b/arch/arm/boot/dts/nxp/imx/imx53-sk-imx53-atm0700d4-rgb.dts
> > > new file mode 100644
> > > index 000000000000..2559ada7e401
> > > --- /dev/null
> > > +++ b/arch/arm/boot/dts/nxp/imx/imx53-sk-imx53-atm0700d4-rgb.dts
> > > @@ -0,0 +1,112 @@
> > > +// SPDX-License-Identifier: GPL-2.0+
> > > +//
> > > +// Copyright 2023 Linaro Ltd.
> > > +
> > > +/dts-v1/;
> > > +
> > > +#include <dt-bindings/pwm/pwm.h>
> > > +#include "imx53-sk-imx53-atm0700d4.dtsi"
> > > +
> > > +/ {
> > > +     display: disp0 {
> > > +             compatible = "fsl,imx-parallel-display";
> > > +             interface-pix-fmt = "rgb24";
> > > +             pinctrl-0 = <&pinctrl_rgb24>;
> > > +             pinctrl-names = "default";
> > > +
> > > +             #address-cells = <1>;
> > > +             #size-cells = <0>;
> > > +
> > > +             port@0 {
> > > +                     reg = <0>;
> > > +
> > > +                     display0_in: endpoint {
> > > +                             remote-endpoint = <&ipu_di0_disp0>;
> > > +                     };
> > > +             };
> > > +
> > > +             port@1 {
> > > +                     reg = <1>;
> > > +
> > > +                     display_out: endpoint {
> > > +                             remote-endpoint = <&panel_rgb_in>;
> > > +                     };
> > > +             };
> > > +     };
> > > +
> > > +};
> > > +
> > > +&iomuxc {
> > > +     pinctrl_rgb24: rgb24grp {
> > > +             fsl,pins = <
> > > +                     MX53_PAD_DI0_DISP_CLK__IPU_DI0_DISP_CLK         0x5
> > > +                     MX53_PAD_DI0_PIN15__IPU_DI0_PIN15               0x5
> > > +                     MX53_PAD_DI0_PIN2__IPU_DI0_PIN2                 0x5
> > > +                     MX53_PAD_DI0_PIN3__IPU_DI0_PIN3                 0x5
> > > +                     MX53_PAD_DISP0_DAT0__IPU_DISP0_DAT_0            0x5
> > > +                     MX53_PAD_DISP0_DAT1__IPU_DISP0_DAT_1            0x5
> > > +                     MX53_PAD_DISP0_DAT2__IPU_DISP0_DAT_2            0x5
> > > +                     MX53_PAD_DISP0_DAT3__IPU_DISP0_DAT_3            0x5
> > > +                     MX53_PAD_DISP0_DAT4__IPU_DISP0_DAT_4            0x5
> > > +                     MX53_PAD_DISP0_DAT5__IPU_DISP0_DAT_5            0x5
> > > +                     MX53_PAD_DISP0_DAT6__IPU_DISP0_DAT_6            0x5
> > > +                     MX53_PAD_DISP0_DAT7__IPU_DISP0_DAT_7            0x5
> > > +                     MX53_PAD_DISP0_DAT8__IPU_DISP0_DAT_8            0x5
> > > +                     MX53_PAD_DISP0_DAT9__IPU_DISP0_DAT_9            0x5
> > > +                     MX53_PAD_DISP0_DAT10__IPU_DISP0_DAT_10          0x5
> > > +                     MX53_PAD_DISP0_DAT11__IPU_DISP0_DAT_11          0x5
> > > +                     MX53_PAD_DISP0_DAT12__IPU_DISP0_DAT_12          0x5
> > > +                     MX53_PAD_DISP0_DAT13__IPU_DISP0_DAT_13          0x5
> > > +                     MX53_PAD_DISP0_DAT14__IPU_DISP0_DAT_14          0x5
> > > +                     MX53_PAD_DISP0_DAT15__IPU_DISP0_DAT_15          0x5
> > > +                     MX53_PAD_DISP0_DAT16__IPU_DISP0_DAT_16          0x5
> > > +                     MX53_PAD_DISP0_DAT17__IPU_DISP0_DAT_17          0x5
> > > +                     MX53_PAD_DISP0_DAT18__IPU_DISP0_DAT_18          0x5
> > > +                     MX53_PAD_DISP0_DAT19__IPU_DISP0_DAT_19          0x5
> > > +                     MX53_PAD_DISP0_DAT20__IPU_DISP0_DAT_20          0x5
> > > +                     MX53_PAD_DISP0_DAT21__IPU_DISP0_DAT_21          0x5
> > > +                     MX53_PAD_DISP0_DAT22__IPU_DISP0_DAT_22          0x5
> > > +                     MX53_PAD_DISP0_DAT23__IPU_DISP0_DAT_23          0x5
> > > +             >;
> > > +     };
> > > +
> > > +     pinctrl_spi_gpio: spigrp {
> > > +             fsl,pins = <
> > > +                     MX53_PAD_SD1_DATA1__GPIO1_17            0x1f4
> > > +                     MX53_PAD_GPIO_7__GPIO1_7                0x1f4
> > > +                     MX53_PAD_PATA_DATA3__GPIO2_3            0x1f4
> > > +                     MX53_PAD_PATA_DATA8__GPIO2_8            0x1f4
> > > +             >;
> > > +     };
> > > +};
> > > +
> > > +&ipu_di0_disp0 {
> > > +     remote-endpoint = <&display0_in>;
> > > +};
> > > +
> > > +&panel {
> > > +     enable-gpios = <&gpio1 9 GPIO_ACTIVE_HIGH>;
> > > +};
> > > +
> > > +&panel_rgb_in {
> > > +     remote-endpoint = <&display_out>;
> > > +};
> > > +
> > > +&pwm1 {
> > > +     status = "disabled";
> > > +};
> > > +
> > > +&spi_ts {
> > > +     pinctrl-0 = <&pinctrl_spi_gpio>;
> > > +     pinctrl-names = "default";
> > > +
> > > +     sck-gpios = <&gpio1 7 GPIO_ACTIVE_HIGH>;
> > > +     mosi-gpios = <&gpio2 3 GPIO_ACTIVE_HIGH>;
> > > +     miso-gpios = <&gpio1 17 GPIO_ACTIVE_HIGH>;
> > > +     cs-gpios = <&gpio2 8 GPIO_ACTIVE_HIGH>;
> > > +};
> > > +
> > > +&touchscreen {
> > > +     interrupts-extended = <&gpio2 6 IRQ_TYPE_EDGE_BOTH>;
> > > +     pendown-gpio = <&gpio2 6 GPIO_ACTIVE_LOW>;
> > > +};
> > > diff --git a/arch/arm/boot/dts/nxp/imx/imx53-sk-imx53-atm0700d4.dtsi b/arch/arm/boot/dts/nxp/imx/imx53-sk-imx53-atm0700d4.dtsi
> > > new file mode 100644
> > > index 000000000000..e395004e80e6
> > > --- /dev/null
> > > +++ b/arch/arm/boot/dts/nxp/imx/imx53-sk-imx53-atm0700d4.dtsi
> > > @@ -0,0 +1,45 @@
> > > +// SPDX-License-Identifier: GPL-2.0+
> > > +//
> > > +// Copyright 2023 Linaro Ltd.
> > > +
> > > +/dts-v1/;
> > > +
> > > +#include <dt-bindings/pwm/pwm.h>
> > > +#include "imx53-sk-imx53.dts"
> > > +
> > > +/ {
> > > +     panel: panel-rgb {
> > > +             compatible = "powertip,ph800480t013-idf02";
> > > +
> > > +             port {
> > > +                     panel_rgb_in: endpoint {
> > > +                     };
> > > +             };
> > > +     };
> > > +
> > > +     spi_ts: spi {
> > > +             compatible = "spi-gpio";
> > > +             #address-cells = <0x1>;
> > > +             #size-cells = <0x0>;
> > > +
> > > +             num-chipselects = <1>;
> > > +
> > > +             touchscreen: touchscreen@0 {
> > > +                     reg = <0>;
> > > +                     compatible = "ti,ads7843";
> > > +                     spi-max-frequency = <300000>;
> > > +
> > > +                     ti,vref-mv = /bits/ 16 <3300>;
> > > +                     ti,x-plate-ohms = /bits/ 16 <450>;
> > > +                     ti,y-plate-ohms = /bits/ 16 <250>;
> > > +                     ti,debounce-tol = /bits/ 16 <10>;
> > > +                     ti,debounce-rep = /bits/ 16 <0>;
> > > +                     touchscreen-size-x = <4096>;
> > > +                     touchscreen-size-y = <4096>;
> > > +                     touchscreen-swapped-x-y;
> > > +                     touchscreen-max-pressure = <100>;
> > > +
> > > +                     wakeup-source;
> > > +             };
> > > +     };
> > > +};
diff mbox series

Patch

diff --git a/arch/arm/boot/dts/nxp/imx/Makefile b/arch/arm/boot/dts/nxp/imx/Makefile
index 3629e343d322..7532ed6468a0 100644
--- a/arch/arm/boot/dts/nxp/imx/Makefile
+++ b/arch/arm/boot/dts/nxp/imx/Makefile
@@ -47,6 +47,8 @@  dtb-$(CONFIG_SOC_IMX53) += \
 	imx53-qsb.dtb \
 	imx53-qsrb.dtb \
 	imx53-sk-imx53.dtb \
+	imx53-sk-imx53-atm0700d4-lvds.dtb \
+	imx53-sk-imx53-atm0700d4-rgb.dtb \
 	imx53-smd.dtb \
 	imx53-tx53-x03x.dtb \
 	imx53-tx53-x13x.dtb \
diff --git a/arch/arm/boot/dts/nxp/imx/imx53-sk-imx53-atm0700d4-lvds.dts b/arch/arm/boot/dts/nxp/imx/imx53-sk-imx53-atm0700d4-lvds.dts
new file mode 100644
index 000000000000..b1c1e7c759b3
--- /dev/null
+++ b/arch/arm/boot/dts/nxp/imx/imx53-sk-imx53-atm0700d4-lvds.dts
@@ -0,0 +1,97 @@ 
+// SPDX-License-Identifier: GPL-2.0+
+//
+// Copyright 2023 Linaro Ltd.
+
+/dts-v1/;
+
+#include <dt-bindings/pwm/pwm.h>
+#include "imx53-sk-imx53-atm0700d4.dtsi"
+
+/ {
+	lvds-decoder {
+		compatible = "ti,sn65lvds94", "lvds-decoder";
+
+		ports {
+			#address-cells = <1>;
+			#size-cells = <0>;
+
+			port@0 {
+				reg = <0>;
+
+				lvds_decoder_in: endpoint {
+					remote-endpoint = <&lvds0_out>;
+				};
+			};
+
+			port@1 {
+				reg = <1>;
+
+				lvds_decoder_out: endpoint {
+					remote-endpoint = <&panel_rgb_in>;
+				};
+			};
+		};
+	};
+};
+
+&iomuxc {
+	pinctrl_lvds0: lvds0grp {
+		/* LVDS pins only have pin mux configuration */
+		fsl,pins = <
+			MX53_PAD_LVDS0_CLK_P__LDB_LVDS0_CLK	0x80000000
+			MX53_PAD_LVDS0_TX0_P__LDB_LVDS0_TX0	0x80000000
+			MX53_PAD_LVDS0_TX1_P__LDB_LVDS0_TX1	0x80000000
+			MX53_PAD_LVDS0_TX2_P__LDB_LVDS0_TX2	0x80000000
+			MX53_PAD_LVDS0_TX3_P__LDB_LVDS0_TX3	0x80000000
+		>;
+	};
+
+	pinctrl_spi_gpio: spigrp {
+		fsl,pins = <
+			MX53_PAD_EIM_A22__GPIO2_16		0x1f4
+			MX53_PAD_EIM_A21__GPIO2_17		0x1f4
+			MX53_PAD_EIM_A16__GPIO2_22		0x1f4
+			MX53_PAD_EIM_A18__GPIO2_20		0x1f4
+		>;
+	};
+};
+
+&ldb {
+	pinctrl-names = "default";
+	pinctrl-0 = <&pinctrl_lvds0>;
+	status = "okay";
+
+	lvds0: lvds-channel@0 {
+		reg = <0>;
+		fsl,data-mapping = "spwg";
+		fsl,data-width = <24>;
+		status = "okay";
+
+		port@2 {
+			reg = <2>;
+
+			lvds0_out: endpoint {
+				remote-endpoint = <&lvds_decoder_in>;
+			};
+		};
+	};
+};
+
+&panel_rgb_in {
+	remote-endpoint = <&lvds_decoder_out>;
+};
+
+&spi_ts {
+	pinctrl-0 = <&pinctrl_spi_gpio>;
+	pinctrl-names = "default";
+
+	sck-gpios = <&gpio2 16 GPIO_ACTIVE_HIGH>;
+	miso-gpios = <&gpio2 22 GPIO_ACTIVE_HIGH>;
+	mosi-gpios = <&gpio2 17 GPIO_ACTIVE_HIGH>;
+	cs-gpios = <&gpio2 20 GPIO_ACTIVE_HIGH>;
+};
+
+&touchscreen {
+	interrupts-extended = <&gpio3 22 IRQ_TYPE_EDGE_BOTH>;
+	pendown-gpio = <&gpio3 22 GPIO_ACTIVE_LOW>;
+};
diff --git a/arch/arm/boot/dts/nxp/imx/imx53-sk-imx53-atm0700d4-rgb.dts b/arch/arm/boot/dts/nxp/imx/imx53-sk-imx53-atm0700d4-rgb.dts
new file mode 100644
index 000000000000..2559ada7e401
--- /dev/null
+++ b/arch/arm/boot/dts/nxp/imx/imx53-sk-imx53-atm0700d4-rgb.dts
@@ -0,0 +1,112 @@ 
+// SPDX-License-Identifier: GPL-2.0+
+//
+// Copyright 2023 Linaro Ltd.
+
+/dts-v1/;
+
+#include <dt-bindings/pwm/pwm.h>
+#include "imx53-sk-imx53-atm0700d4.dtsi"
+
+/ {
+	display: disp0 {
+		compatible = "fsl,imx-parallel-display";
+		interface-pix-fmt = "rgb24";
+		pinctrl-0 = <&pinctrl_rgb24>;
+		pinctrl-names = "default";
+
+		#address-cells = <1>;
+		#size-cells = <0>;
+
+		port@0 {
+			reg = <0>;
+
+			display0_in: endpoint {
+				remote-endpoint = <&ipu_di0_disp0>;
+			};
+		};
+
+		port@1 {
+			reg = <1>;
+
+			display_out: endpoint {
+				remote-endpoint = <&panel_rgb_in>;
+			};
+		};
+	};
+
+};
+
+&iomuxc {
+	pinctrl_rgb24: rgb24grp {
+		fsl,pins = <
+			MX53_PAD_DI0_DISP_CLK__IPU_DI0_DISP_CLK		0x5
+			MX53_PAD_DI0_PIN15__IPU_DI0_PIN15		0x5
+			MX53_PAD_DI0_PIN2__IPU_DI0_PIN2			0x5
+			MX53_PAD_DI0_PIN3__IPU_DI0_PIN3			0x5
+			MX53_PAD_DISP0_DAT0__IPU_DISP0_DAT_0		0x5
+			MX53_PAD_DISP0_DAT1__IPU_DISP0_DAT_1		0x5
+			MX53_PAD_DISP0_DAT2__IPU_DISP0_DAT_2		0x5
+			MX53_PAD_DISP0_DAT3__IPU_DISP0_DAT_3		0x5
+			MX53_PAD_DISP0_DAT4__IPU_DISP0_DAT_4		0x5
+			MX53_PAD_DISP0_DAT5__IPU_DISP0_DAT_5		0x5
+			MX53_PAD_DISP0_DAT6__IPU_DISP0_DAT_6		0x5
+			MX53_PAD_DISP0_DAT7__IPU_DISP0_DAT_7		0x5
+			MX53_PAD_DISP0_DAT8__IPU_DISP0_DAT_8		0x5
+			MX53_PAD_DISP0_DAT9__IPU_DISP0_DAT_9		0x5
+			MX53_PAD_DISP0_DAT10__IPU_DISP0_DAT_10		0x5
+			MX53_PAD_DISP0_DAT11__IPU_DISP0_DAT_11		0x5
+			MX53_PAD_DISP0_DAT12__IPU_DISP0_DAT_12		0x5
+			MX53_PAD_DISP0_DAT13__IPU_DISP0_DAT_13		0x5
+			MX53_PAD_DISP0_DAT14__IPU_DISP0_DAT_14		0x5
+			MX53_PAD_DISP0_DAT15__IPU_DISP0_DAT_15		0x5
+			MX53_PAD_DISP0_DAT16__IPU_DISP0_DAT_16		0x5
+			MX53_PAD_DISP0_DAT17__IPU_DISP0_DAT_17		0x5
+			MX53_PAD_DISP0_DAT18__IPU_DISP0_DAT_18		0x5
+			MX53_PAD_DISP0_DAT19__IPU_DISP0_DAT_19		0x5
+			MX53_PAD_DISP0_DAT20__IPU_DISP0_DAT_20		0x5
+			MX53_PAD_DISP0_DAT21__IPU_DISP0_DAT_21		0x5
+			MX53_PAD_DISP0_DAT22__IPU_DISP0_DAT_22		0x5
+			MX53_PAD_DISP0_DAT23__IPU_DISP0_DAT_23		0x5
+		>;
+	};
+
+	pinctrl_spi_gpio: spigrp {
+		fsl,pins = <
+			MX53_PAD_SD1_DATA1__GPIO1_17		0x1f4
+			MX53_PAD_GPIO_7__GPIO1_7		0x1f4
+			MX53_PAD_PATA_DATA3__GPIO2_3		0x1f4
+			MX53_PAD_PATA_DATA8__GPIO2_8		0x1f4
+		>;
+	};
+};
+
+&ipu_di0_disp0 {
+	remote-endpoint = <&display0_in>;
+};
+
+&panel {
+	enable-gpios = <&gpio1 9 GPIO_ACTIVE_HIGH>;
+};
+
+&panel_rgb_in {
+	remote-endpoint = <&display_out>;
+};
+
+&pwm1 {
+	status = "disabled";
+};
+
+&spi_ts {
+	pinctrl-0 = <&pinctrl_spi_gpio>;
+	pinctrl-names = "default";
+
+	sck-gpios = <&gpio1 7 GPIO_ACTIVE_HIGH>;
+	mosi-gpios = <&gpio2 3 GPIO_ACTIVE_HIGH>;
+	miso-gpios = <&gpio1 17 GPIO_ACTIVE_HIGH>;
+	cs-gpios = <&gpio2 8 GPIO_ACTIVE_HIGH>;
+};
+
+&touchscreen {
+	interrupts-extended = <&gpio2 6 IRQ_TYPE_EDGE_BOTH>;
+	pendown-gpio = <&gpio2 6 GPIO_ACTIVE_LOW>;
+};
diff --git a/arch/arm/boot/dts/nxp/imx/imx53-sk-imx53-atm0700d4.dtsi b/arch/arm/boot/dts/nxp/imx/imx53-sk-imx53-atm0700d4.dtsi
new file mode 100644
index 000000000000..e395004e80e6
--- /dev/null
+++ b/arch/arm/boot/dts/nxp/imx/imx53-sk-imx53-atm0700d4.dtsi
@@ -0,0 +1,45 @@ 
+// SPDX-License-Identifier: GPL-2.0+
+//
+// Copyright 2023 Linaro Ltd.
+
+/dts-v1/;
+
+#include <dt-bindings/pwm/pwm.h>
+#include "imx53-sk-imx53.dts"
+
+/ {
+	panel: panel-rgb {
+		compatible = "powertip,ph800480t013-idf02";
+
+		port {
+			panel_rgb_in: endpoint {
+			};
+		};
+	};
+
+	spi_ts: spi {
+		compatible = "spi-gpio";
+		#address-cells = <0x1>;
+		#size-cells = <0x0>;
+
+		num-chipselects = <1>;
+
+		touchscreen: touchscreen@0 {
+			reg = <0>;
+			compatible = "ti,ads7843";
+			spi-max-frequency = <300000>;
+
+			ti,vref-mv = /bits/ 16 <3300>;
+			ti,x-plate-ohms = /bits/ 16 <450>;
+			ti,y-plate-ohms = /bits/ 16 <250>;
+			ti,debounce-tol = /bits/ 16 <10>;
+			ti,debounce-rep = /bits/ 16 <0>;
+			touchscreen-size-x = <4096>;
+			touchscreen-size-y = <4096>;
+			touchscreen-swapped-x-y;
+			touchscreen-max-pressure = <100>;
+
+			wakeup-source;
+		};
+	};
+};