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 (Single Link - Independent Mode)

Use the following example dts overlay (.dtso) to enable 2x single link OLDI in independent mode. The code is also available at Beyond SDK Github.

// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
/**
 * Rocktech Panel (single-link lvds) with AM62P-SK EVM in independent mode
 *
 * AM62P-SKEVM: https://www.ti.com/tool/SK-AM62P-LP
 *
 * 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>

&{/} {
	display0 {
		compatible = "rocktech,rk101ii01d-ct", "panel-simple";

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

	display1 {
                compatible = "rocktech,rk101ii01d-ct", "panel-simple";

		port {
			lcd1_in: endpoint {
				remote-endpoint = <&oldi1_dss1_out>;
			};
		};
	};
};

&dss0 {
	status = "okay";
};

&dss1 {
	status = "okay";
    assigned-clocks = <&k3_clks 235 7>,
                      <&k3_clks 241 0>;
	assigned-clock-parents = <&k3_clks 235 9>, /* OLDI TX1 driven by PLL18 and DSS1 VP0 */
                            <&k3_clks 241 1>;  /* PLL18 for DSS1 VP0 */
};

&oldi0_dss0 {
	status = "okay";
};

&oldi1_dss1 {
	status = "okay";	
};

&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 = <&lcd0_in>;
		};
	};
};

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

	port@0 {
		reg = <0>;

		oldi1_dss1_in: endpoint {
			remote-endpoint = <&dss1_dpi0_out1>;
		};
	};

	port@1 {
		reg = <1>;

		oldi1_dss1_out: endpoint {
			remote-endpoint = <&lcd1_in>;
		};
	};
};

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

	/* DSS0 VP1: Output to OLDI0 */
	port@0 {
		reg = <0>;

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

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

	/* DSS1 VP1: Output to OLDI1 */
	port@0 {
		reg = <0>;

		dss1_dpi0_out1: endpoint {
			remote-endpoint = <&oldi1_dss1_in>;
		};
	};
};
'
  • Every LCD vendor has a unique timing parameter and for (an example) Rocktech 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 is located under the Kernel directory drivers/gpu/drm/panel. In panel-simple.c file, the timing parameter is defined by the SK-LCD1 vendor.
  • For single link OLDI in independent mode, use dss0 and dss1 to drive OLDI TX0 and OLDI TX1 separately. In independent mode, both olditx IPs are enabled, but one endpoint under dss0 vp0 and other is under dss0 vp1.
  • For information on MUX configuration, see TISCI documents for AM62P.
  • This mode is differentiated from OLDI (Single Link - cloned mode) mode because of the the absence of companion node which couple OLDI TX0 and OLDI TX1.
  • There are two separate display nodes and each of them has a single port (port@0).