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

DSI

Use the following example dts overlay (.dtso) to enable DSI. The code is also available Texas Instruments' kernel source page.

// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
/**
 * DT Overlay for RPi 7inch touchscreen panel interfaced with DSI on
 * AM62P5-SK EVM.
 *
 * RPi DSI Panel: https://www.raspberrypi.com/products/raspberry-pi-touch-display/
 *
 * Copyright (C) 2024 Texas Instruments Incorporated - https://www.ti.com/
 */

/dts-v1/;
/plugin/;

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

#include "k3-pinctrl.h"

&{/} {
	panel0 {
		compatible = "raspberrypi,7inch-dsi", "simple-panel";
		backlight = <&display_reg>;
		power-supply = <&display_reg>;

		port {

			panel_in: endpoint {
				remote-endpoint = <&panel_bridge_out>;
			};
		};
	};

	bridge_reg: bridge-regulator {
		compatible = "regulator-fixed";
		regulator-name = "bridge-reg";
		gpio = <&display_reg 0 0>;
		vin-supply = <&display_reg>;
		enable-active-high;
	};
};

&dphy_tx0 {
	status = "okay";
};

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

	display_reg: regulator@45 {
		compatible = "raspberrypi,7inch-touchscreen-panel-regulator";
		reg = <0x45>;
		gpio-controller;
		#gpio-cells = <2>;
	};
};

&dss1 {
	status = "okay";
};

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

	/* DSS1-VP1: DSI Output */
	port@1 {
		reg = <1>;

		dss1_dpi1_out: endpoint {
			remote-endpoint = <&dsi0_in>;
		};
	};
};

&dsi0 {
	status = "okay";
	#address-cells = <1>;
	#size-cells = <0>;

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

		port@0 {
			reg = <0>;

			dsi0_out: endpoint {
				remote-endpoint = <&panel_bridge_in>;
			};
		};

		port@1 {
			reg = <1>;

			dsi0_in: endpoint {
				remote-endpoint = <&dss1_dpi1_out>;
			};
		};
	};

	bridge@0 {
		status = "okay";
		compatible = "toshiba,tc358762";
		reg = <0>;
		vddc-supply = <&bridge_reg>;

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

			port@0 {
				reg = <0>;

				panel_bridge_in: endpoint {
					remote-endpoint = <&dsi0_out>;
				};
			};

			port@1 {
				reg = <1>;

				panel_bridge_out: endpoint {
					remote-endpoint = <&panel_in>;
				};
			};
		};
	};
};
  • The DSI output is derived through a Cadence DSI/DPHY bridge interfaced with the DPI output from DSS1 VP1. Details about this bridge driver is located at Texas Instruments' kernel source page. This bridge is internal to the SoC.
  • The DSI output is connected to the DSI_in of the Raspberry Pi DSI panel,which uses a Toshiba bridge internally to convert DSI to DPI. Implement the driver in the same dtso. See Texas Instruments' kernel source page for additional documentation.