]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
arm64: dts: ti: am62-phyboard-lyra: Add DT overlay for Lincoln LCD185-101CT panel
authorWadim Egorov <w.egorov@phytec.de>
Thu, 30 Apr 2026 13:01:15 +0000 (15:01 +0200)
committerNishanth Menon <nm@ti.com>
Tue, 5 May 2026 13:22:43 +0000 (08:22 -0500)
The panel is a Lincoln Technology Solutions LCD185-101CT [0]. It is
a dual-link LVDS panel and supports WUXGA resolution (1920x1200).
Furthermore, it has an I2C based touch controller: Goodix-GT928.

Add an device tree overlay to support the Lincoln LCD185-101CT panel
in combination with the phyBOARD-Lyra-AM62x.

[0] https://lincolntechsolutions.com/wp-content/uploads/2024/09/LCD185-101CTL1ARNTT_DS_R1.3.pdf

Signed-off-by: Wadim Egorov <w.egorov@phytec.de>
Link: https://patch.msgid.link/20260430130115.2380887-1-w.egorov@phytec.de
Signed-off-by: Nishanth Menon <nm@ti.com>
arch/arm64/boot/dts/ti/Makefile
arch/arm64/boot/dts/ti/k3-am62-phyboard-lyra-oldi-lcd185.dtso [new file with mode: 0644]

index 5269c9619b65c1f6e8d886883599c94f972eabe7..6aaa4a2a7561029ea0656c476159e71c5b049bcb 100644 (file)
@@ -29,6 +29,7 @@ dtb-$(CONFIG_ARCH_K3) += k3-am625-verdin-wifi-zinnia.dtb
 dtb-$(CONFIG_ARCH_K3) += k3-am62x-phyboard-lyra-gpio-fan.dtbo
 dtb-$(CONFIG_ARCH_K3) += k3-am62-lp-sk.dtb
 dtb-$(CONFIG_ARCH_K3) += k3-am62-lp-sk-nand.dtbo
+dtb-$(CONFIG_ARCH_K3) += k3-am62-phyboard-lyra-oldi-lcd185.dtbo
 dtb-$(CONFIG_ARCH_K3) += k3-am62-pocketbeagle2.dtb
 dtb-$(CONFIG_ARCH_K3) += k3-am6254atl-sk.dtb
 
@@ -183,6 +184,8 @@ k3-am625-phyboard-lyra-disable-spi-nor-dtbs := k3-am625-phyboard-lyra-rdk.dtb \
        k3-am6xx-phycore-disable-spi-nor.dtbo
 k3-am625-phyboard-lyra-gpio-fan-dtbs := k3-am625-phyboard-lyra-rdk.dtb \
        k3-am62x-phyboard-lyra-gpio-fan.dtbo
+k3-am625-phyboard-lyra-oldi-lcd185-dtbs := k3-am625-phyboard-lyra-rdk.dtb \
+       k3-am62-phyboard-lyra-oldi-lcd185.dtbo
 k3-am625-phyboard-lyra-qspi-nor-dtbs := k3-am625-phyboard-lyra-rdk.dtb \
        k3-am6xx-phycore-qspi-nor.dtbo
 k3-am625-sk-csi2-imx219-dtbs := k3-am625-sk.dtb \
@@ -287,6 +290,7 @@ dtb- += k3-am625-beagleplay-csi2-ov5640.dtb \
        k3-am625-phyboard-lyra-disable-rtc.dtb \
        k3-am625-phyboard-lyra-disable-spi-nor.dtb \
        k3-am625-phyboard-lyra-gpio-fan.dtb \
+       k3-am625-phyboard-lyra-oldi-lcd185.dtb \
        k3-am625-phyboard-lyra-qspi-nor.dtb \
        k3-am625-sk-csi2-imx219.dtb \
        k3-am625-sk-csi2-ov5640.dtb \
diff --git a/arch/arm64/boot/dts/ti/k3-am62-phyboard-lyra-oldi-lcd185.dtso b/arch/arm64/boot/dts/ti/k3-am62-phyboard-lyra-oldi-lcd185.dtso
new file mode 100644 (file)
index 0000000..d9f75ff
--- /dev/null
@@ -0,0 +1,185 @@
+// SPDX-License-Identifier: GPL-2.0-only OR MIT
+/*
+ * Copyright (C) 2022-2026 PHYTEC Messtechnik GmbH
+ * Author: Wadim Egorov <w.egorov@phytec.de>
+ */
+
+/dts-v1/;
+/plugin/;
+
+#include <dt-bindings/pwm/pwm.h>
+#include <dt-bindings/gpio/gpio.h>
+#include <dt-bindings/interrupt-controller/irq.h>
+#include "k3-pinctrl.h"
+
+&{/} {
+       display {
+               compatible = "lincolntech,lcd185-101ct";
+               backlight = <&backlight>;
+               power-supply = <&vdd_usb_5v0>;
+
+               ports {
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+
+                       port@0 {
+                               reg = <0>;
+                               dual-lvds-odd-pixels;
+                               lcd_in0: endpoint {
+                                       remote-endpoint = <&oldi_0_out>;
+                               };
+                       };
+
+                       port@1 {
+                               reg = <1>;
+                               dual-lvds-even-pixels;
+                               lcd_in1: endpoint {
+                                       remote-endpoint = <&oldi_1_out>;
+                               };
+                       };
+               };
+       };
+
+       backlight: backlight {
+               compatible = "pwm-backlight";
+               brightness-levels = <0 4 8 16 32 64 128 255>;
+               default-brightness-level = <6>;
+               enable-gpios = <&gpio_exp 5 GPIO_ACTIVE_HIGH>;
+               pinctrl-names = "default";
+               pinctrl-0 = <&bl_pwm_pins_default>;
+               pwms = <&epwm0 1 50000 0>;
+       };
+
+       vdd_usb_5v0: regulator-vdd-usb5v0 {
+               compatible = "regulator-fixed";
+               regulator-name = "vdd-usb5v0";
+               regulator-min-microvolt = <5000000>;
+               regulator-max-microvolt = <5000000>;
+               regulator-always-on;
+               regulator-boot-on;
+       };
+};
+
+&dss {
+       pinctrl-names = "default";
+       pinctrl-0 = <&main_oldi0_pins_default>, <&main_dss0_pins_default>;
+};
+
+&dss_ports {
+       #address-cells = <1>;
+       #size-cells = <0>;
+
+       /* VP1: Output to OLDI */
+       port@0 {
+               reg = <0>;
+               #address-cells = <1>;
+               #size-cells = <0>;
+
+               dpi0_out0: endpoint@0 {
+                       reg = <0>;
+                       remote-endpoint = <&oldi_0_in>;
+               };
+
+               dpi0_out1: endpoint@1 {
+                       reg = <1>;
+                       remote-endpoint = <&oldi_1_in>;
+               };
+       };
+};
+
+&epwm0 {
+       status = "okay";
+};
+
+&main_i2c1 {
+       #address-cells = <1>;
+       #size-cells = <0>;
+
+       touchscreen@5d {
+               compatible = "goodix,gt928";
+               reg = <0x5d>;
+
+               pinctrl-names = "default";
+               pinctrl-0 = <&touch_screen_pins_default>;
+
+               interrupt-parent = <&main_gpio0>;
+               interrupts = <19 IRQ_TYPE_LEVEL_LOW>;
+
+               reset-gpios = <&main_gpio0 18 GPIO_ACTIVE_HIGH>;
+               irq-gpios = <&main_gpio0 19 GPIO_ACTIVE_HIGH>;
+       };
+};
+
+&main_pmx0 {
+       bl_pwm_pins_default: bl-pwm-default-pins {
+               pinctrl-single,pins = <
+                       AM62X_IOPAD(0x01b8, PIN_INPUT, 2) /* (C13) SPI0_CS1.EHRPWM0_B */
+               >;
+       };
+
+       touch_screen_pins_default: touch-screen-default-pins {
+               pinctrl-single,pins = <
+                       AM62X_IOPAD(0x048, PIN_OUTPUT, 7) /* (N25) GPMC0_AD3.GPIO0_18 - RST */
+                       AM62X_IOPAD(0x04c, PIN_INPUT, 7) /* (P24) GPMC0_AD4.GPIO0_19 - INT */
+               >;
+       };
+
+       main_oldi0_pins_default: main-oldi0-default-pins {
+               pinctrl-single,pins = <
+                       AM62X_IOPAD(0x0260, PIN_OUTPUT, 0) /* (AA5) OLDI0_A0N */
+                       AM62X_IOPAD(0x025c, PIN_OUTPUT, 0) /* (Y6) OLDI0_A0P */
+                       AM62X_IOPAD(0x0268, PIN_OUTPUT, 0) /* (AD3) OLDI0_A1N */
+                       AM62X_IOPAD(0x0264, PIN_OUTPUT, 0) /* (AB4) OLDI0_A1P */
+                       AM62X_IOPAD(0x0270, PIN_OUTPUT, 0) /* (Y8) OLDI0_A2N */
+                       AM62X_IOPAD(0x026c, PIN_OUTPUT, 0) /* (AA8) OLDI0_A2P */
+                       AM62X_IOPAD(0x0278, PIN_OUTPUT, 0) /* (AB6) OLDI0_A3N */
+                       AM62X_IOPAD(0x0274, PIN_OUTPUT, 0) /* (AA7) OLDI0_A3P */
+                       AM62X_IOPAD(0x0280, PIN_OUTPUT, 0) /* (AC6) OLDI0_A4N */
+                       AM62X_IOPAD(0x027c, PIN_OUTPUT, 0) /* (AC5) OLDI0_A4P */
+                       AM62X_IOPAD(0x0288, PIN_OUTPUT, 0) /* (AE5) OLDI0_A5N */
+                       AM62X_IOPAD(0x0284, PIN_OUTPUT, 0) /* (AD6) OLDI0_A5P */
+                       AM62X_IOPAD(0x0290, PIN_OUTPUT, 0) /* (AE6) OLDI0_A6N */
+                       AM62X_IOPAD(0x028c, PIN_OUTPUT, 0) /* (AD7) OLDI0_A6P */
+                       AM62X_IOPAD(0x0298, PIN_OUTPUT, 0) /* (AD8) OLDI0_A7N */
+                       AM62X_IOPAD(0x0294, PIN_OUTPUT, 0) /* (AE7) OLDI0_A7P */
+                       AM62X_IOPAD(0x02a0, PIN_OUTPUT, 0) /* (AD4) OLDI0_CLK0N */
+                       AM62X_IOPAD(0x029c, PIN_OUTPUT, 0) /* (AE3) OLDI0_CLK0P */
+                       AM62X_IOPAD(0x02a8, PIN_OUTPUT, 0) /* (AE4) OLDI0_CLK1N */
+                       AM62X_IOPAD(0x02a4, PIN_OUTPUT, 0) /* (AD5) OLDI0_CLK1P */
+               >;
+       };
+};
+
+&oldi0 {
+       ti,companion-oldi = <&oldi1>;
+       status = "okay";
+};
+
+&oldi0_port0 {
+       oldi_0_in: endpoint {
+               remote-endpoint = <&dpi0_out0>;
+       };
+};
+
+&oldi0_port1 {
+       oldi_0_out: endpoint {
+               remote-endpoint = <&lcd_in0>;
+       };
+};
+
+&oldi1 {
+       ti,secondary-oldi;
+       status = "okay";
+};
+
+&oldi1_port0 {
+       oldi_1_in: endpoint {
+               remote-endpoint = <&dpi0_out1>;
+       };
+};
+
+&oldi1_port1 {
+       oldi_1_out: endpoint {
+               remote-endpoint = <&lcd_in1>;
+       };
+};