From 3eb759a2fbeb96b7adb5521fa202e54b36ebc132 Mon Sep 17 00:00:00 2001
From: Nicola Sparnacci <nicola.sparnacci@seco.com>
Date: Tue, 19 Mar 2024 15:20:14 +0100
Subject: [PATCH] [C57][OVERLAY][C57-43] Add 1280x800 LVDS panel

Tested with FN101PGRGUL034C 1280*800 with cable LVDS CV-1412/240.

The panel is AUO G101EAN02.
---
 arch/arm64/boot/dts/seco/overlays/Makefile    |   1 +
 ...seco-imx8qxp-c57-lvds-1280x800-overlay.dts | 125 ++++++++++++++++++
 2 files changed, 126 insertions(+)
 create mode 100644 arch/arm64/boot/dts/seco/overlays/seco-imx8qxp-c57-lvds-1280x800-overlay.dts

diff --git a/arch/arm64/boot/dts/seco/overlays/Makefile b/arch/arm64/boot/dts/seco/overlays/Makefile
index 8906bfdab41bfb..eeea12dae7640d 100644
--- a/arch/arm64/boot/dts/seco/overlays/Makefile
+++ b/arch/arm64/boot/dts/seco/overlays/Makefile
@@ -53,6 +53,7 @@ dtbo-$(CONFIG_ARCH_MXC) += \
 	seco-imx8mn-c72-lvds-dual-156.dtbo \
 	seco-imx8qxp-c57-lvds-800x480.dtbo \
 	seco-imx8qxp-c57-lvds-1024x600.dtbo \
+	seco-imx8qxp-c57-lvds-1280x800.dtbo \
 	seco-imx8qxp-c57-sn65dsi86-edp.dtbo
 
 	# seco-imx8qm-c26-dp.dtbo\
diff --git a/arch/arm64/boot/dts/seco/overlays/seco-imx8qxp-c57-lvds-1280x800-overlay.dts b/arch/arm64/boot/dts/seco/overlays/seco-imx8qxp-c57-lvds-1280x800-overlay.dts
new file mode 100644
index 00000000000000..c2e6ea74f58f37
--- /dev/null
+++ b/arch/arm64/boot/dts/seco/overlays/seco-imx8qxp-c57-lvds-1280x800-overlay.dts
@@ -0,0 +1,125 @@
+/*
+ * Copyright 2017-2018 NXP
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ */
+
+#include <dt-bindings/display/media-bus-format.h>
+#include <dt-bindings/gpio/gpio.h>
+
+/dts-v1/;
+/plugin/;
+
+/ {
+    compatible = "fsl,imx8qxp-mek","seco,imx8qxp-c57","fsl,imx8qxp";
+
+/*  __________________________________________________________________________
+ * |                                                                          |
+ * |                      LVDS 1280x800 (SINGLE CHANNEL)                      |
+ * |__________________________________________________________________________|
+ */
+
+    fragment@0 {
+        target-path = "/";
+        __overlay__ {
+            regulators {
+                mux_sel: mux_sel {
+                    compatible = "regulator-fixed";
+                    regulator-name = "MUX_SEL";
+                    regulator-min-microvolt = <3300000>;
+                    regulator-max-microvolt = <3300000>;
+                    gpio = <&gpio3 22 GPIO_ACTIVE_HIGH>;
+                    regulator-always-on;
+                };
+            };
+        };
+    };
+
+    fragment@1 {
+        target-path = "/";
+        __overlay__ {
+            lvds_panel {
+                compatible   = "panel-lvds";
+                status = "okay";
+                data-mapping = "vesa-24";
+                width-mm = <217>;
+                height-mm = <136>;
+
+                panel-timing {
+                    clock-frequency = <66100000>;
+                    hactive = <1280>;
+                    vactive = <800>;
+                    hback-porch = <35>;
+                    hfront-porch = <35>;
+                    vback-porch = <4>;
+                    vfront-porch = <4>;
+                    hsync-len = <10>;
+                    vsync-len = <2>;
+                    de-active = <0>;
+                    pixelclk-active = <0>;
+                };
+
+                port@0 {
+                    panel_lvds_in: endpoint {
+                        remote-endpoint = <&lvds_out>;
+                    };
+                };
+            };
+        };
+    };
+
+    fragment@2 {
+            target = <&ldb1_phy>;
+            __overlay__ {
+        status = "okay";
+        };
+    };
+
+    fragment@3 {
+        target = <&ldb1>;
+        __overlay__ {
+            #address-cells = <1>;
+            #size-cells = <0>;
+            status = "okay";
+
+            lvds-channel@0 {
+                #address-cells = <1>;
+                #size-cells = <0>;
+                status = "okay";
+
+                /delete-node/ port@1;
+
+                port@1 {
+                    reg = <1>;
+                    #address-cells = <1>;
+                    #size-cells = <0>;
+                    lvds_out: endpoint {
+                        remote-endpoint = <&panel_lvds_in>;
+                    };
+                };
+            };
+        };
+    };
+
+    fragment@4 {
+        target = <&ldb2_phy>;
+        __overlay__ {
+            status = "disabled";
+        };
+    };
+
+    fragment@5 {
+        target = <&ldb2>;
+        __overlay__ {
+            status = "disabled";
+        };
+    };
+};
\ No newline at end of file
-- 
GitLab