ZHCAFK4 July   2025 AM62P

 

  1.   1
  2.   摘要
  3.   商标
  4. 1简介
    1. 1.1 DSS Components
    2. 1.2 使用 DSS 进行 PLL 和输出路由
  5. 2配置各个显示器
    1. 2.1 配置 OLDI
    2. 2.2 配置 DPI
    3. 2.3 配置 DSI
  6. 3配置同时显示
  7. 4软件配置
    1. 4.1 OLDI(双链路)
    2. 4.2 OLDI(单链路 - 克隆模式)
    3. 4.3 OLDI(单链路 - 独立模式)
    4. 4.4 DPI/HDMI
    5. 4.5 DSI
  8. 5总结
  9. 6参考资料

OLDI(双链路)

使用以下 dts 叠加 (.dtso) 来启用双链路 OLDI。也可从以下位置获取代码:德州仪器 (TI) 内核源页面

// 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. 每个 LCD 供应商都有唯一的时序参数,用于 Microtips LCD。如上所示,已在 DTS 文件中定义了一个兼容字段。兼容字段映射到名为 panel-simple.c 的文件,该字段位于内核目录 drivers/gpu/drm/panel 下。在 panel-simple.c 文件中,时序参数由 SK-LCD1 供应商定义。
  2. 对于双链路 OLDI,使用 dss0 将视频信号传输至 OLDI TX0 和 OLDI TX1。在双链路模式下,两个 olditx IP 均已启用。因此,使用 dss0 vp0 下的两个端点。
  3. 有一个显示节点,在显示节点中有两个端口(port@0 和 port@1)。
  4. 标志 dual-lvds-odd-pixelsdual-lvds-even-pixels 用于标识配置为双链路 OLDI 面板的面板。
  5. SK-LCD1 集成了触摸 IC 功能,并在总线地址 0x41 上进行通信。根据定制硬件设计,用户必须更改 I2C 总线,中断并复位 GPIO 信号。
  6. 有关 DT 的更多信息,请参阅 德州仪器 (TI) 的 AM625 内核源页面德州仪器 (TI) 的 AM65x 内核源页面