Amlogic A311D 驱动分析系列(三)-点MIPI屏

本文详细介绍了A311D芯片如何通过配置DTS实现4Kp60HDMI2.1和MIPI-DSI双屏输出,重点解析了mesong12b_skt-panel.dtsi文件中的mipi屏参数设置,包括屏参、背光配置以及初始化代码等关键步骤。在完成这些配置后,若硬件无误,屏幕应能正常点亮。调试过程中可能遇到的问题也进行了简要提及。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

A311D 输出支持4Kp60 HDMI 2.1, CVBS, 4-lane MIPI-DSI输出,因此,为了实现双屏输出,

需要点MIPI屏,MIPI屏由两部分组成屏参+初始化代码。

一、首先查看屏参信息 ,比如我这块屏

二、配置dts

A311D 对应mesong12b_skt-panel.dtsi

1.配置mipi屏参

可以参照下面。自己可以添加一个新的屏参,比如lcd_5

			lcd_0{
			model_name = "B080XAN01";
			interface = "mipi";
            //基本配置-厂家提供
			basic_setting = <768 1024 /*h_active, v_active*/
				948 1140 /*h_period, v_period*/
				8 /*lcd_bits*/
				119 159>; /*screen_widht, screen_height*/
            //填写timing-厂家提供
			lcd_timing = <64 56 0 /*hs_width, hs_bp, hs_pol*/
				50 30 0>; /*vs_width, vs_bp, vs_pol*/
			clk_attr = <0 /*fr_adj_type(0=clk, 1=htotal, 2=vtotal)*/
				0 /*clk_ss_level */
				1 /*clk_auto_generate*/
				64843200>; /*pixel_clk(unit in Hz)*/
			mipi_attr = <4 /*lane_num*/
				550 /*bit_rate_max(MHz)*/
				0 /*factor(*100, default 0 for auto)*/
				1 /*operation_mode_init(0=video, 1=command)*/
				0 /*operation_mode_display(0=video, 1=command)*/
				2 /*
				   *video_mode_type
				   *(0=sync_pulse,1=sync_event,2=burst)
				   */
				1 /*clk_always_hs(0=disable,1=enable)*/
				0>; /*phy_switch(0=auto,1=standard,2=slow)*/

			/* dsi_init: data_type, num, data... */
            //屏参初始化代码-厂家提供
			dsi_init_on = <0x05 1 0x11
					0xfd 1 20   /*delay(ms)*/
					0x05 1 0x29
					0xfd 1 20   /*delay(ms)*/
					0xff 0>;    /*ending*/
			dsi_init_off = <0x05 1 0x28
					0xfd 1 10   /*delay(ms)*/
					0x05 1 0x10
					0xfd 1 10   /*delay(ms)*/
					0xff 0>;    /*ending*/
			extern_init = <0xff>; /*0xff for invalid*/

			/* power step: type, index, value, delay(ms) */
			power_on_step = <
				0 1 0 100
				0 0 0 10
				0 0 1 20
				2 0 0 0
				0xff 0 0 0>; /*ending*/
			power_off_step = <
				2 0 0 50
				0 0 0 10
				0 1 1 100
				0xff 0 0 0>; /*ending*/
			backlight_index = <0>;
		};

2.配置背光

背光根据实际的脚位进行配置

	backlight{
		compatible = "amlogic, backlight-g12b";
		status = "okay";
		key_valid = <0>;
		pinctrl-names = "pwm_on","pwm_off";
		pinctrl-0 = <&pwm_f_pins2>;
		pinctrl-1 = <&bl_pwm_off_pins>;
		pinctrl_version = <2>; /* for uboot */
		bl_pwm_config = <&bl_pwm_conf>;
		bl-gpios = <&gpio GPIOH_4 GPIO_ACTIVE_HIGH
			&gpio GPIOH_5 GPIO_ACTIVE_HIGH>;
		bl_gpio_names = "GPIOH_4","GPIOH_5";

		/* pwm port: PWM_A, PWM_B, PWM_C, PWM_D, PWM_E, PWM_F, PWM_VS*/
		/* power index:(point gpios_index, 0xff=invalid)
		 * power value:(0=output low, 1=output high, 2=input)
		 * power delay:(unit in ms)
		 */

		backlight_0{
			index = <0>;
			bl_name = "backlight_pwm";
			bl_level_default_uboot_kernel = <100 100>;
			bl_level_attr = <255 10 /*max, min*/
				128 128>; /*mid, mid_mapping*/
			bl_ctrl_method = <1>; /* 1=pwm, 2=pwm_combo, 4=extern */
			bl_power_attr = <0 /*en_gpio_index*/
				1 0 /*on_value, off_value*/
				200 200>; /*on_delay(ms), off_delay(ms)*/
			bl_pwm_port = "PWM_F";
			bl_pwm_attr = <1 /*pwm_method*/
				180 /*pwm_freq(pwm:Hz, pwm_vs:multiple of vs)*/
				100 25>; /*duty_max(%), duty_min(%)*/
			bl_pwm_power = <1 1 /*pwm_gpio_index, pwm_gpio_off*/
				10 10>; /*pwm_on_delay(ms), pwm_off_delay(ms)*/
			bl_pwm_en_sequence_reverse = <0>; /* 1 for reverse */
		};

配置完上述,如果硬件没问题,基本上屏就亮了。当然,调试过程也是很痛苦的。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值