]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
arm64: dts: imx93-phyboard-segin: Add peb-av-02 overlay
authorAndrej Picej <andrej.picej@norik.com>
Tue, 13 Jan 2026 19:06:08 +0000 (20:06 +0100)
committerFrank Li <Frank.Li@nxp.com>
Mon, 2 Mar 2026 22:27:45 +0000 (17:27 -0500)
Add overlay for Audio-Video module PEB-AV-02. Add support for panel
display, capacitive touchscreen and backlight.

The pwm-backlight uses the GPIO based PWM implementation for now. Switch
to the FlexIO PWM support once available.

Signed-off-by: Andrej Picej <andrej.picej@norik.com>
[rework commit message, use local regulator, remove compatible]
Signed-off-by: Primoz Fiser <primoz.fiser@norik.com>
Signed-off-by: Christian Hemp <c.hemp@phytec.de>
[m.felsch@pengutronix.de: cleanup downstream commit]
Tested-by: Primoz Fiser <primoz.fiser@norik.com>
Signed-off-by: Marco Felsch <m.felsch@pengutronix.de>
Signed-off-by: Frank Li <Frank.Li@nxp.com>
arch/arm64/boot/dts/freescale/Makefile
arch/arm64/boot/dts/freescale/imx93-phyboard-segin-peb-av-02.dtso [new file with mode: 0644]

index 25793aa7c0ab35dc1d3497a6026e246c3f56535a..e0738525d37ef0a7fc5e5f358c8887e3c63e18f5 100644 (file)
@@ -428,12 +428,14 @@ dtb-$(CONFIG_ARCH_MXC) += imx93-phyboard-segin.dtb
 imx93-phyboard-nash-jtag-dtbs += imx93-phyboard-nash.dtb imx93-phyboard-nash-jtag.dtbo
 imx93-phyboard-nash-peb-wlbt-07-dtbs += imx93-phyboard-nash.dtb imx93-phyboard-nash-peb-wlbt-07.dtbo
 imx93-phyboard-nash-pwm-fan-dtbs += imx93-phyboard-nash.dtb imx93-phyboard-nash-pwm-fan.dtbo
+imx93-phyboard-segin-peb-av-02-dtbs += imx93-phyboard-segin.dtb imx93-phyboard-segin-peb-av-02.dtbo
 imx93-phyboard-segin-peb-eval-01-dtbs += imx93-phyboard-segin.dtb imx93-phyboard-segin-peb-eval-01.dtbo
 imx93-phyboard-segin-peb-wlbt-05-dtbs += imx93-phyboard-segin.dtb imx93-phyboard-segin-peb-wlbt-05.dtbo
 imx93-phycore-rpmsg-dtbs += imx93-phyboard-nash.dtb imx93-phyboard-segin.dtb imx93-phycore-rpmsg.dtbo
 dtb-$(CONFIG_ARCH_MXC) += imx93-phyboard-nash-jtag.dtb
 dtb-$(CONFIG_ARCH_MXC) += imx93-phyboard-nash-peb-wlbt-07.dtb
 dtb-$(CONFIG_ARCH_MXC) += imx93-phyboard-nash-pwm-fan.dtb
+dtb-$(CONFIG_ARCH_MXC) += imx93-phyboard-segin-peb-av-02.dtb
 dtb-$(CONFIG_ARCH_MXC) += imx93-phyboard-segin-peb-eval-01.dtb
 dtb-$(CONFIG_ARCH_MXC) += imx93-phyboard-segin-peb-wlbt-05.dtb
 dtb-$(CONFIG_ARCH_MXC) += imx93-phycore-rpmsg.dtb
diff --git a/arch/arm64/boot/dts/freescale/imx93-phyboard-segin-peb-av-02.dtso b/arch/arm64/boot/dts/freescale/imx93-phyboard-segin-peb-av-02.dtso
new file mode 100644 (file)
index 0000000..af33075
--- /dev/null
@@ -0,0 +1,146 @@
+// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
+/*
+ * Copyright (C) 2025 PHYTEC Messtechnik GmbH
+ * Copyright (C) 2025 Pengutronix
+ *
+ * Author: Andrej Picej <andrej.picej@norik.com>
+ * Author: Marco Felsch <kernel@pengutronix.de>
+ */
+
+#include <dt-bindings/clock/imx93-clock.h>
+#include <dt-bindings/gpio/gpio.h>
+#include <dt-bindings/interrupt-controller/arm-gic.h>
+#include "imx93-pinfunc.h"
+
+/dts-v1/;
+/plugin/;
+
+&{/} {
+       backlight: backlight {
+               compatible = "pwm-backlight";
+               brightness-levels = <0 4 8 16 32 64 128 255>;
+               default-brightness-level = <5>;
+               power-supply = <&reg_vcc_3v3_con>;
+               pwms = <&pwm7 0 5000000 0>;
+       };
+
+       panel {
+               compatible = "edt,etm0700g0edh6";
+               pinctrl-names = "default";
+               pinctrl-0 = <&pinctrl_panel>;
+
+               backlight = <&backlight>;
+               enable-gpios = <&gpio4 29 GPIO_ACTIVE_HIGH>;
+               power-supply = <&reg_vcc_3v3_con>;
+
+               port {
+                       panel_in: endpoint {
+                               remote-endpoint = <&dpi_to_panel>;
+                       };
+               };
+       };
+
+       /* TODO: Convert to FlexIO PWM once supported */
+       pwm7: pwm-7 {
+               compatible = "pwm-gpio";
+               pinctrl-names = "default";
+               pinctrl-0 = <&pinctrl_pwm7>;
+               gpios = <&gpio4 28 GPIO_ACTIVE_HIGH>;
+               #pwm-cells = <3>;
+       };
+
+       reg_vcc_3v3_con: regulator-vcc-3v3-con {
+               compatible = "regulator-fixed";
+               regulator-name = "VCC3V3_CON";
+               regulator-max-microvolt = <3300000>;
+               regulator-min-microvolt = <3300000>;
+       };
+};
+
+&dpi_bridge {
+       status = "okay";
+};
+
+&dpi_to_panel {
+       remote-endpoint = <&panel_in>;
+};
+
+&lcdif {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_lcdif>;
+       assigned-clocks = <&clk IMX93_CLK_VIDEO_PLL>;
+       assigned-clock-rates = <332600000>;
+       status = "okay";
+};
+
+&lpi2c2 {
+       #address-cells = <1>;
+       #size-cells = <0>;
+
+       touchscreen@38 {
+               compatible = "edt,edt-ft5406";
+               reg = <0x38>;
+               pinctrl-names = "default";
+               pinctrl-0 = <&pinctrl_touchscreen>;
+               interrupt-parent = <&gpio4>;
+               interrupts = <12 IRQ_TYPE_EDGE_FALLING>;
+               reset-gpios = <&gpio4 1 GPIO_ACTIVE_LOW>;
+               vcc-supply = <&reg_vcc_3v3_con>;
+               iovcc-supply = <&reg_vcc_3v3_con>;
+               touchscreen-size-x = <1792>;
+               touchscreen-size-y = <1024>;
+               wakeup-source;
+       };
+};
+
+&media_blk_ctrl {
+       status = "okay";
+};
+
+&iomuxc {
+       pinctrl_lcdif: lcdifgrp {
+               fsl,pins = <
+                       MX93_PAD_GPIO_IO00__MEDIAMIX_DISP_CLK           0x50e
+                       MX93_PAD_GPIO_IO01__MEDIAMIX_DISP_DE            0x50e
+                       MX93_PAD_GPIO_IO02__MEDIAMIX_DISP_VSYNC         0x50e
+                       MX93_PAD_GPIO_IO03__MEDIAMIX_DISP_HSYNC         0x50e
+                       MX93_PAD_GPIO_IO04__MEDIAMIX_DISP_DATA00        0x50e
+                       MX93_PAD_GPIO_IO05__MEDIAMIX_DISP_DATA01        0x50e
+                       MX93_PAD_GPIO_IO06__MEDIAMIX_DISP_DATA02        0x50e
+                       MX93_PAD_GPIO_IO07__MEDIAMIX_DISP_DATA03        0x50e
+                       MX93_PAD_GPIO_IO08__MEDIAMIX_DISP_DATA04        0x50e
+                       MX93_PAD_GPIO_IO09__MEDIAMIX_DISP_DATA05        0x51e
+                       MX93_PAD_GPIO_IO10__MEDIAMIX_DISP_DATA06        0x50e
+                       MX93_PAD_GPIO_IO11__MEDIAMIX_DISP_DATA07        0x50e
+                       MX93_PAD_GPIO_IO12__MEDIAMIX_DISP_DATA08        0x50e
+                       MX93_PAD_GPIO_IO13__MEDIAMIX_DISP_DATA09        0x50e
+                       MX93_PAD_GPIO_IO14__MEDIAMIX_DISP_DATA10        0x50e
+                       MX93_PAD_GPIO_IO15__MEDIAMIX_DISP_DATA11        0x50e
+                       MX93_PAD_GPIO_IO16__MEDIAMIX_DISP_DATA12        0x506
+                       MX93_PAD_GPIO_IO17__MEDIAMIX_DISP_DATA13        0x506
+                       MX93_PAD_GPIO_IO18__MEDIAMIX_DISP_DATA14        0x506
+                       MX93_PAD_GPIO_IO19__MEDIAMIX_DISP_DATA15        0x506
+                       MX93_PAD_GPIO_IO20__MEDIAMIX_DISP_DATA16        0x506
+                       MX93_PAD_GPIO_IO21__MEDIAMIX_DISP_DATA17        0x506
+               >;
+       };
+
+       pinctrl_panel: panelgrp {
+               fsl,pins = <
+                       MX93_PAD_CCM_CLKO4__GPIO4_IO29                  0x1133e
+               >;
+       };
+
+       pinctrl_pwm7: pwm7grp {
+               fsl,pins = <
+                       MX93_PAD_CCM_CLKO3__GPIO4_IO28                  0x1133e
+               >;
+       };
+
+       pinctrl_touchscreen: touchscreengrp {
+               fsl,pins = <
+                       MX93_PAD_ENET1_MDIO__GPIO4_IO01                 0x11e
+                       MX93_PAD_ENET1_RD2__GPIO4_IO12                  0x1133e
+               >;
+       };
+};