SPRADS3 July   2025 AM62P

 

  1.   1
  2.   Abstract
  3.   Trademarks
  4. 1Introduction
    1. 1.1 DSS Components
    2. 1.2 PLL and Output Routing with DSS
  5. 2Configuring Individual Displays
    1. 2.1 Configuring OLDI
    2. 2.2 Configuring DPI
    3. 2.3 Configuring DSI
  6. 3Configuring Simultaneous Displays
  7. 4Software Configuration
    1. 4.1 OLDI (Dual Link)
    2. 4.2 OLDI (Single Link - Cloned Mode)
    3. 4.3 OLDI (Single Link - Independent Mode)
    4. 4.4 DPI / HDMI
    5. 4.5 DSI
  8. 5Summary
  9. 6References

OLDI (Dual Link)

Use the following dts overlay (.dtso) to enable dual link OLDI. The code is also available at: Texas Instruments kernel source page.

// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
/**
 * Microtips integrated OLDI panel (MF-101HIEBCAF0) and touch DT overlay for AM62P5-SK
 *
 * Panel data sheet: https://simplespec.microtipsusa.com/uploads/spec/datasheetFile/2588/13-101HIEBCAF0-S_V1.1_20221104.pdf
 *
 * Copyright (C) 2024 Texas Instruments Incorporated - http://www.ti.com/
 */

/dts-v1/;
/plugin/;

#include <dt-bindings/gpio/gpio.h>
#include <dt-bindings/interrupt-controller/irq.h>

&{/} {
	display {
		compatible = "microtips,mf-101hiebcaf0", "panel-simple";

		/*
		* Note that the OLDI TX 0 transmits the odd set of pixels
		* while the OLDI TX 1 transmits the even set. This is a
		* fixed configuration in the IP integration and is not
		* changeable. The properties, "dual-lvds-odd-pixels" and
		* "dual-lvds-even-pixels" have been used to merely
		* identify if a Dual Link configuration is required.
		* Swapping them will cause an error in the dss oldi driver.
		*/
		ports {
			#address-cells = <1>;
			#size-cells = <0>;

			port@0 {
				reg = <0>;
				dual-lvds-odd-pixels;

				lcd_in0: endpoint {
					remote-endpoint = <&oldi0_dss0_out>;
				};
			};

			port@1 {
				reg = <1>;
				dual-lvds-even-pixels;

				lcd_in1: endpoint {
					remote-endpoint = <&oldi1_dss0_out>;
				};
			};
		};
	};
};

&dss0 {
	status = "okay";
};

&oldi0_dss0 {
	status = "okay";
	ti,companion-oldi = <&oldi1_dss0>;
};

&oldi1_dss0 {
	status = "okay";
	ti,secondary-oldi;
};

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

	port@0 {
		reg = <0>;

		oldi0_dss0_in: endpoint {
			remote-endpoint = <&dss0_dpi0_out0>;
		};
	};

	port@1 {
		reg = <1>;

		oldi0_dss0_out: endpoint {
			remote-endpoint = <&lcd_in0>;
		};
	};
};

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

	port@0 {
		reg = <0>;

		oldi1_dss0_in: endpoint {
			remote-endpoint = <&dss0_dpi0_out1>;
		};
	};

	port@1 {
		reg = <1>;

		oldi1_dss0_out: endpoint {
			remote-endpoint = <&lcd_in1>;
		};
	};
};

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

	/* VP1: Output to OLDI */
	port@0 {
		reg = <0>;
		#address-cells = <1>;
		#size-cells = <0>;

		dss0_dpi0_out0: endpoint@0 {
			reg = <0>;
			remote-endpoint = <&oldi0_dss0_in>;
		};

		dss0_dpi0_out1: endpoint@1 {
			reg = <1>;
			remote-endpoint = <&oldi1_dss0_in>;
		};
	};
};

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

	touchscreen@41 {
		compatible = "ilitek,ili251x";
		reg = <0x41>;
		interrupt-parent = <&exp1>;
		interrupts = <0 IRQ_TYPE_EDGE_FALLING>;
		reset-gpios = <&exp2 20 GPIO_ACTIVE_LOW>;
	};
};
  1. Every LCD vendor has a unique timing parameter and for Microtips LCD. A compatible field is defined in the DTS file as shown above. The compatible field maps to a file called panel-simple.c and the field is located under the Kernel directory drivers/gpu/drm/panel. In the panel-simple.c file, the timing parameter is defined by SK-LCD1 vendor.
  2. For dual link OLDI, use dss0 to drive the video signals to both OLDI TX0 and OLDI TX1. In dual link mode, both olditx IPs are enabled, and as a result, use two endpoints under dss0 vp0.
  3. There is a display node and within the display node, there are two ports (port@0 and port@1).
  4. The flags dual-lvds-odd-pixels and dual-lvds-even-pixels identify that the panel that is configured is Dual link OLDI panel.
  5. SK-LCD1 has touch IC integrated and communicates on bus address 0x41. Based on custom hardware designs, users must change the I2C bus, interrupt and reset-gpio signals.
  6. For more information on the DT, see Texas Instruments kernel source page for AM625 and Texas Instrument's kernel source page for AM65x.