From: Liu Ying Date: Tue, 7 Apr 2026 09:15:31 +0000 (+0800) Subject: arm64: dts: imx93-9x9-qsb: Add tianma,tm050rdh03 panel X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=54d60132995b7c516c7a531975d8bc5d9187ce04;p=thirdparty%2Flinux.git arm64: dts: imx93-9x9-qsb: Add tianma,tm050rdh03 panel Support tianma,tm050rdh03 DPI panel on i.MX93 9x9 QSB. Move the common parts from imx93-9x9-qsb-ontat-kd50g21-40nt-a1.dtso into imx93-9x9-qsb-ontat-kd50g21-40nt-a1.dtsi for reuse by the tm050rdh03 overlay file. The panel connects with the QSB board through an adapter board[1] designed by NXP. Link: https://www.nxp.com/design/design-center/development-boards-and-designs/parallel-lcd-display:TM050RDH03-41 [1] Signed-off-by: Liu Ying Signed-off-by: Frank Li --- diff --git a/arch/arm64/boot/dts/freescale/Makefile b/arch/arm64/boot/dts/freescale/Makefile index 0a4dabac5de4..513f61eb27b8 100644 --- a/arch/arm64/boot/dts/freescale/Makefile +++ b/arch/arm64/boot/dts/freescale/Makefile @@ -464,9 +464,11 @@ dtb-$(CONFIG_ARCH_MXC) += imx93-9x9-qsb.dtb imx93-9x9-qsb-can1-dtbs += imx93-9x9-qsb.dtb imx93-9x9-qsb-can1.dtbo imx93-9x9-qsb-i3c-dtbs += imx93-9x9-qsb.dtb imx93-9x9-qsb-i3c.dtbo imx93-9x9-qsb-ontat-kd50g21-40nt-a1-dtbs += imx93-9x9-qsb.dtb imx93-9x9-qsb-ontat-kd50g21-40nt-a1.dtbo +imx93-9x9-qsb-tianma-tm050rdh03-dtbs += imx93-9x9-qsb.dtb imx93-9x9-qsb-tianma-tm050rdh03.dtbo dtb-$(CONFIG_ARCH_MXC) += imx93-9x9-qsb-can1.dtb dtb-$(CONFIG_ARCH_MXC) += imx93-9x9-qsb-i3c.dtb dtb-$(CONFIG_ARCH_MXC) += imx93-9x9-qsb-ontat-kd50g21-40nt-a1.dtb +dtb-$(CONFIG_ARCH_MXC) += imx93-9x9-qsb-tianma-tm050rdh03.dtb dtb-$(CONFIG_ARCH_MXC) += imx93-11x11-evk.dtb dtb-$(CONFIG_ARCH_MXC) += imx93-11x11-frdm.dtb diff --git a/arch/arm64/boot/dts/freescale/imx93-9x9-qsb-ontat-kd50g21-40nt-a1.dtsi b/arch/arm64/boot/dts/freescale/imx93-9x9-qsb-ontat-kd50g21-40nt-a1.dtsi new file mode 100644 index 000000000000..d167c9fc3b8f --- /dev/null +++ b/arch/arm64/boot/dts/freescale/imx93-9x9-qsb-ontat-kd50g21-40nt-a1.dtsi @@ -0,0 +1,110 @@ +// SPDX-License-Identifier: (GPL-2.0+ OR MIT) +/* + * Copyright 2026 NXP + */ + +/dts-v1/; +/plugin/; + +#include +#include "imx93-pinfunc.h" + +&{/} { + backlight: backlight { + compatible = "gpio-backlight"; + gpios = <&pcal6524 2 GPIO_ACTIVE_HIGH>; + }; + + panel { + compatible = "ontat,kd50g21-40nt-a1"; + backlight = <&backlight>; + power-supply = <®_rpi_3v3>; + + port { + panel_in: endpoint { + remote-endpoint = <&dpi_to_panel>; + }; + }; + }; +}; + +&dpi_bridge { + pinctrl-names = "default"; + pinctrl-0 = <&pinctrl_lcdif>; + status = "okay"; + + ports { + #address-cells = <1>; + #size-cells = <0>; + + port@1 { + reg = <1>; + + dpi_to_panel: endpoint { + remote-endpoint = <&panel_in>; + bus-width = <18>; + }; + }; + }; +}; + +&iomuxc { + pinctrl_lcdif: lcdifgrp { + fsl,pins = < + MX93_PAD_GPIO_IO00__MEDIAMIX_DISP_CLK 0x31e + MX93_PAD_GPIO_IO01__MEDIAMIX_DISP_DE 0x31e + MX93_PAD_GPIO_IO02__MEDIAMIX_DISP_VSYNC 0x31e + MX93_PAD_GPIO_IO03__MEDIAMIX_DISP_HSYNC 0x31e + MX93_PAD_GPIO_IO04__MEDIAMIX_DISP_DATA00 0x31e + MX93_PAD_GPIO_IO05__MEDIAMIX_DISP_DATA01 0x31e + MX93_PAD_GPIO_IO06__MEDIAMIX_DISP_DATA02 0x31e + MX93_PAD_GPIO_IO07__MEDIAMIX_DISP_DATA03 0x31e + MX93_PAD_GPIO_IO08__MEDIAMIX_DISP_DATA04 0x31e + MX93_PAD_GPIO_IO09__MEDIAMIX_DISP_DATA05 0x31e + MX93_PAD_GPIO_IO10__MEDIAMIX_DISP_DATA06 0x31e + MX93_PAD_GPIO_IO11__MEDIAMIX_DISP_DATA07 0x31e + MX93_PAD_GPIO_IO12__MEDIAMIX_DISP_DATA08 0x31e + MX93_PAD_GPIO_IO13__MEDIAMIX_DISP_DATA09 0x31e + MX93_PAD_GPIO_IO14__MEDIAMIX_DISP_DATA10 0x31e + MX93_PAD_GPIO_IO15__MEDIAMIX_DISP_DATA11 0x31e + MX93_PAD_GPIO_IO16__MEDIAMIX_DISP_DATA12 0x31e + MX93_PAD_GPIO_IO17__MEDIAMIX_DISP_DATA13 0x31e + MX93_PAD_GPIO_IO18__MEDIAMIX_DISP_DATA14 0x31e + MX93_PAD_GPIO_IO19__MEDIAMIX_DISP_DATA15 0x31e + MX93_PAD_GPIO_IO20__MEDIAMIX_DISP_DATA16 0x31e + MX93_PAD_GPIO_IO21__MEDIAMIX_DISP_DATA17 0x31e + >; + }; +}; + +&lcdif { + status = "okay"; +}; + +&media_blk_ctrl { + status = "okay"; +}; + +&pcal6524 { + /* + * exp-sel-hog has property 'output-low' while DT overlay doesn't + * support /delete-property/. Both 'output-low' and 'output-high' + * will exist under hog nodes if DT overlay file sets 'output-high'. + * Workaround is to disable this hog and create new hog with + * 'output-high'. + */ + exp-sel-hog { + status = "disabled"; + }; + + exp-high-sel-hog { + gpio-hog; + gpios = <22 GPIO_ACTIVE_HIGH>; + output-high; + }; +}; + +&sai3 { + /* disable due to GPIO12 and GPIO17~20 pin conflicts with LCDIF */ + status = "disabled"; +}; diff --git a/arch/arm64/boot/dts/freescale/imx93-9x9-qsb-ontat-kd50g21-40nt-a1.dtso b/arch/arm64/boot/dts/freescale/imx93-9x9-qsb-ontat-kd50g21-40nt-a1.dtso index d167c9fc3b8f..356533a7b513 100644 --- a/arch/arm64/boot/dts/freescale/imx93-9x9-qsb-ontat-kd50g21-40nt-a1.dtso +++ b/arch/arm64/boot/dts/freescale/imx93-9x9-qsb-ontat-kd50g21-40nt-a1.dtso @@ -3,108 +3,4 @@ * Copyright 2026 NXP */ -/dts-v1/; -/plugin/; - -#include -#include "imx93-pinfunc.h" - -&{/} { - backlight: backlight { - compatible = "gpio-backlight"; - gpios = <&pcal6524 2 GPIO_ACTIVE_HIGH>; - }; - - panel { - compatible = "ontat,kd50g21-40nt-a1"; - backlight = <&backlight>; - power-supply = <®_rpi_3v3>; - - port { - panel_in: endpoint { - remote-endpoint = <&dpi_to_panel>; - }; - }; - }; -}; - -&dpi_bridge { - pinctrl-names = "default"; - pinctrl-0 = <&pinctrl_lcdif>; - status = "okay"; - - ports { - #address-cells = <1>; - #size-cells = <0>; - - port@1 { - reg = <1>; - - dpi_to_panel: endpoint { - remote-endpoint = <&panel_in>; - bus-width = <18>; - }; - }; - }; -}; - -&iomuxc { - pinctrl_lcdif: lcdifgrp { - fsl,pins = < - MX93_PAD_GPIO_IO00__MEDIAMIX_DISP_CLK 0x31e - MX93_PAD_GPIO_IO01__MEDIAMIX_DISP_DE 0x31e - MX93_PAD_GPIO_IO02__MEDIAMIX_DISP_VSYNC 0x31e - MX93_PAD_GPIO_IO03__MEDIAMIX_DISP_HSYNC 0x31e - MX93_PAD_GPIO_IO04__MEDIAMIX_DISP_DATA00 0x31e - MX93_PAD_GPIO_IO05__MEDIAMIX_DISP_DATA01 0x31e - MX93_PAD_GPIO_IO06__MEDIAMIX_DISP_DATA02 0x31e - MX93_PAD_GPIO_IO07__MEDIAMIX_DISP_DATA03 0x31e - MX93_PAD_GPIO_IO08__MEDIAMIX_DISP_DATA04 0x31e - MX93_PAD_GPIO_IO09__MEDIAMIX_DISP_DATA05 0x31e - MX93_PAD_GPIO_IO10__MEDIAMIX_DISP_DATA06 0x31e - MX93_PAD_GPIO_IO11__MEDIAMIX_DISP_DATA07 0x31e - MX93_PAD_GPIO_IO12__MEDIAMIX_DISP_DATA08 0x31e - MX93_PAD_GPIO_IO13__MEDIAMIX_DISP_DATA09 0x31e - MX93_PAD_GPIO_IO14__MEDIAMIX_DISP_DATA10 0x31e - MX93_PAD_GPIO_IO15__MEDIAMIX_DISP_DATA11 0x31e - MX93_PAD_GPIO_IO16__MEDIAMIX_DISP_DATA12 0x31e - MX93_PAD_GPIO_IO17__MEDIAMIX_DISP_DATA13 0x31e - MX93_PAD_GPIO_IO18__MEDIAMIX_DISP_DATA14 0x31e - MX93_PAD_GPIO_IO19__MEDIAMIX_DISP_DATA15 0x31e - MX93_PAD_GPIO_IO20__MEDIAMIX_DISP_DATA16 0x31e - MX93_PAD_GPIO_IO21__MEDIAMIX_DISP_DATA17 0x31e - >; - }; -}; - -&lcdif { - status = "okay"; -}; - -&media_blk_ctrl { - status = "okay"; -}; - -&pcal6524 { - /* - * exp-sel-hog has property 'output-low' while DT overlay doesn't - * support /delete-property/. Both 'output-low' and 'output-high' - * will exist under hog nodes if DT overlay file sets 'output-high'. - * Workaround is to disable this hog and create new hog with - * 'output-high'. - */ - exp-sel-hog { - status = "disabled"; - }; - - exp-high-sel-hog { - gpio-hog; - gpios = <22 GPIO_ACTIVE_HIGH>; - output-high; - }; -}; - -&sai3 { - /* disable due to GPIO12 and GPIO17~20 pin conflicts with LCDIF */ - status = "disabled"; -}; +#include "imx93-9x9-qsb-ontat-kd50g21-40nt-a1.dtsi" diff --git a/arch/arm64/boot/dts/freescale/imx93-9x9-qsb-tianma-tm050rdh03.dtso b/arch/arm64/boot/dts/freescale/imx93-9x9-qsb-tianma-tm050rdh03.dtso new file mode 100644 index 000000000000..c233797ec28c --- /dev/null +++ b/arch/arm64/boot/dts/freescale/imx93-9x9-qsb-tianma-tm050rdh03.dtso @@ -0,0 +1,14 @@ +// SPDX-License-Identifier: (GPL-2.0+ OR MIT) +/* + * Copyright 2026 NXP + */ + +#include +#include "imx93-9x9-qsb-ontat-kd50g21-40nt-a1.dtsi" + +&{/} { + panel { + compatible = "tianma,tm050rdh03"; + enable-gpios = <&pcal6524 8 GPIO_ACTIVE_HIGH>; + }; +};