This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

AM625: Single Lane LVDS on Linux 6.6 fails to initialize

Part Number: AM625

Tool/software:

Hello,

I am trying to use a single lane LVDS display on the 6.6 linux kernel. I am using a display overlay that worked on the 6.1 kernel but after updating to 6.6 it no longer works. I am not aware of any working examples of single lane lvds display on the 6.6 kernel. Are there any examples or documentation on changes in the new kernel that could help with updating the device tree overlay? 

This is the error that I get while booting:

tidss 30200000.dss: failed to init OLDI: -517

Here is the overlay:

/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 = "edt,etml1010g3dra";
		backlight = <&backlight>;

		ports{
			#address-cells = <1>;
			#size-cells = <0>;
			port@0 {
				lcd_in0: endpoint {
					remote-endpoint = <&oldi_0_out>;
				};
			};
		};
	};

	backlight: backlight {
		pinctrl-names = "default";
		pinctrl-0 = <&bl_pwm_pins_default>;

		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>;
		pwms = <&epwm0 1 50000 0>;
	};
};

&main_pmx0 {
	bl_pwm_pins_default: bl-pwm-pins-default {
		pinctrl-single,pins = <
			AM62X_IOPAD(0x01b8, PIN_INPUT, 2) /* (C13) SPI0_CS1.EHRPWM0_B */
		>;
	};

	main_oldi0_pins_default: main-oldi0-pins-default {
		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(0x02a0, PIN_OUTPUT, 0) /* (AD4) OLDI0_CLK0N */
			AM62X_IOPAD(0x029c, PIN_OUTPUT, 0) /* (AE3) OLDI0_CLK0P */
		>;
	};
};

&epwm0 {
	status = "okay";
};

&dss {
	pinctrl-names = "default";
	pinctrl-0 = <&main_oldi0_pins_default &main_dss0_pins_default>;
};

&dss_ports {
	#address-cells = <1>;
	#size-cells = <0>;

	/* VP1: LVDS Output */
	port@0 {
		reg = <0>;

		dpi0_out0: endpoint {
			remote-endpoint = <&oldi_0_in>;
		};
	};
};

&oldi0 {
	status = "okay";
};

&oldi0_ports {
	#address-cells = <1>;
	#size-cells = <0>;

	port@0 {
		reg = <0>;
		oldi_0_in: endpoint {
			remote-endpoint = <&dpi0_out0>;
		};
	};

	port@1 {
		reg = <1>;
		oldi_0_out: endpoint {
			remote-endpoint = <&lcd_in0>;
		};
	};
};

Thank you for the help,

Nathan