rk3399 lt8912 mipi->hdmi 调试

任务:

调试rk3399上lt8912 (mipi --> hdmi, lvds) 模块,配置mipi–>hdmi,完成hdmi显示

方法一:

dts中配置mipi屏参,写一个I2c驱动初始化lt8912模块

方法二:

通过dts中,mipi框架配置

方法一实现:使用自己写的初始化驱动

&i2c1 {
	status = "okay";
	clock-frequency = <100000>;			//8912要求i2c频率不得超过100k
	lt8912: lt8912@48 {
		compatible = "hdmi,lt8912";
		reg = <0x48>;		//也可以不需要该节点,因为8912需要操作3个地址,也可以在驱动中定义
		reset-gpios = <&gpio1 3 IRQ_TYPE_LEVEL_LOW>;		//根据原理图中配置复位脚
	};
};
&dsi {
	status = "okay";	
	panel@0 {
		compatible ="simple-panel-dsi";
		reg = <0>;
		power-supply = <&vcc_lcd>;
		backlight = <&backlight>;
		prepare-delay-ms = <60>;
		enable-delay-ms = <200>;
		disable-delay-ms = <200>;
		unprepare-delay-ms = <80>;
		reset-delay-ms = <80>;
		init-delay-ms = <80>;
		dsi,flags = <(MIPI_DSI_MODE_VIDEO | MIPI_DSI_MODE_VIDEO_BURST |
					MIPI_DSI_MODE_VIDEO_HBP | MIPI_DSI_MODE_LPM |
					MIPI_DSI_MODE_EOT_PACKET )>;
		dsi,format = <MIPI_DSI_FMT_RGB888>;
		dsi,lanes = <4>;
		display-timings {
			native-mode = <&timing1>;
			timing1: timing1 {
				clock-frequency = <148500000>;
				hactive = <1920>;
				vactive = <1080>;
				hfront-porch = <88>;
				hsync-len = <44>;
				hback-porch = <148>;
				vfront-porch = <4>;
				vsync-len = <5>;
				vback-porch = <36>;
				hsync-active = <0>;
				vsync-active = <0>;
				de-active = <0>;
				pixelclk-active = <0>;
			};
		};
	};
};

&route_dsi {
		connect = <&vopb_out_dsi>;
        status = "okay";
};

&dsi_in_vopb {
	status = "okay";
};

&dsi_in_vopl {
	status = "disabled";
};

需要注意的点:
1.首先要先配好i2c,确保i2c通信没有问题。
2.在dts中将配置写好
3.在驱动中有使用到复位脚,注意获取到gpio口后需要request,后才能使用
4.8912需要使用到3个i2c地址,具体参考驱动写法
5.最后注意,如果上电方面有问题,可以查一下上电时序的问题,尤其reset脚的上电时序

方法二实现:是用rk sdk中的代码
主要的就是配置dts框架,然后打开sdk中自带8912驱动的config。
自带mipi框架的dts配置

&dsi {
	status = "okay";
	lt8912@0 {
			compatible = "lontium,lt8912";
			reg = <0>;
			reset-gpios = <&gpio1 RK_PA3 GPIO_ACTIVE_LOW>;
			i2c-bus = <&i2c1>;
			display-timings {
					native-mode = <&timing1>;
					timing1: timing1 {
							clock-frequency = <148500000>;
							hactive = <1920>;
							vactive = <1080>;
							hfront-porch = <88>;
							hsync-len = <44>;
							hback-porch = <148>;
							vfront-porch = <4>;
							vsync-len = <5>;
							vback-porch = <36>;
							hsync-active = <0>;
							vsync-active = <0>;
							de-active = <0>;
							pixelclk-active = <0>;
					};
			};
	};
};
&route_dsi {
		connect = <&vopb_out_dsi>;
        status = "okay";
};
&dsi_in_vopb {
	status = "okay";
};

&dsi_in_vopl {
	status = "disabled";
};

需要注意的是,由于使用的是官方的框架,具体的功能和配置需要查看驱动代码,或者官方的文档。出现问题主要就是dts的配置问题,需要认真核对,和检查。
最开始还遇到一个问题,就是I2c无法写入的问题,查过i2c配置也没有什么问题,后来发现是电源方面没有配置好,之后也需要注意这一点。

### 回答1: MIPI-UTILITY-V1.1是一种MIPI(Mobile Industry Processor Interface,移动行业处理器接口)的实用工具版本。MIPI是一个标准化的接口协议,被广泛用于移动设备中,如智能手机和平板电脑。 MIPI-UTILITY-V1.1作为其中的一个版本,主要用于改进和优化移动设备的功能和性能。它提供了一系列的工具和功能,以帮助开发者更好地使用和管理移动设备的接口。 首先,MIPI-UTILITY-V1.1提供了一套标准的接口驱动程序,用于管理和控制设备的各种接口。这些接口包括显示接口、摄像头接口、触摸屏接口等等。通过这些驱动程序,开发者可以方便地配置和控制这些接口,以实现设备的各种功能。 其次,MIPI-UTILITY-V1.1还提供了一些性能优化的工具。比如,它可以帮助开发者对设备的电源管理进行优化,延长电池的使用时间。同时,它还提供了一些性能测试工具,用于评估设备的性能水平,帮助开发者找到并解决性能瓶颈。 另外,MIPI-UTILITY-V1.1还支持一些高级功能,如设备的远程管理和调试。开发者可以通过网络连接,远程操作和调试移动设备,从而提高开发效率和便利性。 总之,MIPI-UTILITY-V1.1是一种实用工具版本,通过提供接口驱动程序、性能优化工具和高级功能支持,帮助开发者更好地使用和管理移动设备的接口,从而改进和优化设备的功能和性能。 ### 回答2: MIPI-Utility-v1.1是一个MIPI(移动产业处理接口)工具集的版本。MIPI是一个标准组织,致力于制定移动设备的接口标准,包括摄像头、显示器等外设的连接和控制。 MIPI-Utility-v1.1是根据MIPI标准制定的工具集版本。该工具集包含了一系列用于测试和验证MIPI接口设备的工具和功能。这些工具可以帮助工程师进行设备调试、性能优化和故障排除。 MIPI-Utility-v1.1包括了以下主要功能和特性: 1. MIPI设备配置和控制:此工具可以用于配置和控制连接到MIPI总线的各种外设,如摄像头、显示屏等。工程师可以通过这个工具设置各种参数,如分辨率、帧速率、信号格式等。 2. 信号分析和监测:此工具可以用于分析和监测MIPI总线上的信号波形,以便工程师检查数据传输是否正常。它可以捕获和显示MIPI总线上的各种信号,如时钟、数据和控制信号。 3. 故障排除和调试MIPI-Utility-v1.1提供了一系列的工具和功能,用于故障排除和设备调试。它可以帮助工程师定位问题,并进行实时分析和诊断。 总之,MIPI-Utility-v1.1是用于测试和验证MIPI接口设备的工具集。它可以帮助工程师进行设备配置、信号分析和故障排除。通过使用这个工具,工程师能够更好地了解和掌握MIPI接口设备的性能和功能。
评论 11
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值