AIO-3399 LVDS屏颜色异常

求助求助!!!!

环境:AIO-3399J
屏幕:单LVDS,3lane,6bit
问题:点亮后画面颜色异常
dts代码:

&dsi {
	status = "okay";
	dsi_panel: panel {
		compatible ="simple-panel-dsi";
		reg = <0>;
		//ddc-i2c-bu
		//power-supply = <&vcc_lcd>;
		//pinctrl-0 = <&lcd_panel_reset &lcd_panel_enable>;
		backlight = <&backlight>;
		/*
		enable-gpios = <&gpio1 1 GPIO_ACTIVE_LOW>;
		reset-gpios = <&gpio4 29 GPIO_ACTIVE_LOW>;
		*/
		dsi,flags = <(MIPI_DSI_MODE_VIDEO | MIPI_DSI_MODE_VIDEO_BURST | MIPI_DSI_MODE_LPM | MIPI_DSI_MODE_EOT_PACKET)>;
		dsi,format = <MIPI_DSI_FMT_RGB666>;
		bus-format = <MEDIA_BUS_FMT_RGB666_1X18>;
		dsi,lvds-force-clk = <560>; // 500/2/3 ~= 83.5Mhz
		dsi,lanes = <3>;

        dsi,channel = <0>;

        enable-delay-ms = <35>;//takes for the panel to display
        prepare-delay-ms = <6>;//take for the panel to receive video data

        unprepare-delay-ms = <0>;//take for the panel to display off
        disable-delay-ms = <20>;//takes for the panel to power off
		//1024*600 IVO
		/*
        size,width = <222>;
        size,height = <125>;
		*/
		//1280*800 IVO
        size,width = <217>;
        size,height = <136>;
        status = "okay";

        panel-init-sequence = [
	29 02 06 3C 01 09 00 07 00	//PPI_TX_RX_TA,[10:0]=1.5*PPI_LPTXTIMECNT=9,[26:16]=(5*PPI_LPTXTIMECNT-3)*4=7
	29 02 06 14 01 06 00 00 00	//PPI_LPTXTIMECNT=6
	29 02 06 64 01 0B 00 00 00		//PPI_D0S_CLRSIPOCOUNT
	29 02 06 68 01 0B 00 00 00		//PPI_D1S_CLRSIPOCOUNT
	29 02 06 6C 01 0B 00 00 00		//PPI_D2S_CLRSIPOCOUNT
	29 02 06 70 01 0B 00 00 00		//PPI_D3S_CLRSIPOCOUNT
	29 02 06 34 01 0F 00 00 00	//OK //PPI_LANEENABLE
	29 02 06 10 02 0F 00 00 00	//OK //DSI_LANEENABLE
	29 02 06 04 01 01 00 00 00	//OK //PPI_STARTPPI
	29 02 06 04 02 01 00 00 00		//DSI_START,has removed
	29 02 06 50 04 20 00 F0 03	//OK //VPCTRL, 00000011 11110000 00000001 00100000 = bit0(0:msf disable),bit8(0:RGB666),bit17,18,19(0:hs,de,vs active Low),bit29:20(3F:vs delay 63)
//1280*800
	29 02 06 54 04 20 00 50 00	//OK //HTIM1, 00000000 10110100 00000000 00110010 = bit8:0(0x14:hs pulse width 20pixel),bit24:16(0xf0: h back porch 240pixel)
	29 02 06 58 04 00 05 30 00	//OK //HTIM2, 00000000 01001000 00000111 10000000 = bit10:0(0x400:h active 1024pixel),bit24:16(0x3c: h front porch 60pixel)
	29 02 06 5C 04 06 00 0e 00	//OK //VTIM1, 00000000 00011001 00000000 00001010 = bit7:0(0x0c:vs pulse width 12pixel),bit23:16(0x14: v back porch 20pixel)
	29 02 06 60 04 20 03 03 00	//OK //VTIM2, 00000000 00001010 00000100 00111000 = bit10:0(0x258:v active 600pixel),bit23:16(0x0c: v front porch 12pixel)

	29 02 06 64 04 01 00 00 00	//OK //VFUEN, 1 update timing parameters(HTIM1,HTIM2...)
	29 02 06 A0 04 06 80 44 00	//OK //LVPHY0, 00000000 01000100 10000000 00000110 = bit4:0(00110:vf 60~85MHZ),bit6:5(00:60~85Mhz),bit10(1:reduced range)

	29 02 06 A0 04 06 80 04 00	//OK //LVPHY0, bit22(0:normal ,1:reset)
	29 02 06 04 05 04 00 00 00	//OK //SYSRST,
	29 02 06 80 04 00 01 02 03	//R0,R1,R2,R3
	29 02 06 84 04 04 07 05 08	//R4,R7,R5,G0
	29 02 06 88 04 09 0A 0E 0F	//G1,G2,G6,G7
	29 02 06 8C 04 0B 0C 0D 10	//G3,G4,G5,B0
	29 02 06 90 04 16 17 11 12	//B6,B7,B1,B2
	29 02 06 94 04 13 14 15 1B	//B3,B4,B5,0
	29 02 06 98 04 18 19 1A 06	//HS,VS,DE,R6
	29 02 06 9C 04 41 00 00 00	//LVCFG, 00000000 00000000 00000100 00110001 = bit0(1:lvds enbale),bit1(0:singlelvds,1:duallvds),bit7:4(3:pclk divide option divide by 3),bit11:10(01:DCLK=DSI_CLK/2)
        ];

		panel-exit-sequence = [
			05 05 01 28
			05 78 01 10
		];

		power_ctr: power_ctr {
               rockchip,debug = <0>;
               lcd_pwr_en: lcd-pwr-en {
                       gpios = <&gpio3 16 GPIO_ACTIVE_HIGH>;
                       pinctrl-names = "default";
                       pinctrl-0 = <&lcd_panel_pwr_en>;
                       rockchip,delay = <10>;
               };

               lcd_rst: lcd-rst {
                       gpios = <&gpio2 27 GPIO_ACTIVE_HIGH>;
					   pinctrl-names = "default";
					   pinctrl-0 = <&lcd_panel_reset>;
                       rockchip,delay = <6>;
               };
	   	};

		disp_timings: display-timings {
				          native-mode = <&timing0>;
				          timing0: timing0 {
				          //1280*800
				                       clock-frequency = <70000000>; //83460000 @60
				                       hactive = <1280>;
				                       vactive = <800>;
				                       hsync-len = <32>;   //20, 50
				                       hback-porch = <80>; //50, 56
				                       hfront-porch = <48>;//50, 30 //1580
				                       vsync-len = <6>;
				                       vback-porch = <14>;
				                       vfront-porch = <3>;
				                       hsync-active = <0>;
				                       vsync-active = <0>;
				                       de-active = <0>;
				                       pixelclk-active = <1>;
				                   };
				      };
	};
};

问题已解决,将如下LVDS输出选择的配置删除即可

       //29 02 06 80 04 00 01 02 03        //R0,R1,R2,R3
        //29 02 06 84 04 04 07 05 08        //R4,R7,R5,G0
        //29 02 06 88 04 09 0A 0E 0F        //G1,G2,G6,G7
        //29 02 06 8C 04 0B 0C 0D 10        //G3,G4,G5,B0
        //29 02 06 90 04 16 17 11 12        //B6,B7,B1,B2
        //29 02 06 94 04 13 14 15 1B        //B3,B4,B5,0
        //29 02 06 98 04 18 19 1A 06        //HS,VS,DE,R6

baiying303 发表于 2018-9-8 17:29
问题已解决,将如下LVDS输出选择的配置删除即可

清晰明膫,点赞

高手,能请教一下,我的屏幕分辨率是480*800的7寸屏,怎么能让这块板子支持吗?谢谢。 也是LVDS接口。

有点看不懂,这里的注释:
//PPI_TX_RX_TA,[10:0]=1.5PPI_LPTXTIMECNT=9,[26:16]=(5PPI_LPTXTIMECNT-3)*4=7

这个7值是怎么算出来的

29 02 06 A0 04 06 80 44 00 //OK //LVPHY0, 00000000 01000100 10000000 00000110 = bit4:0(00110:vf 60~85MHZ),bit6:5(00:60~85Mhz),bit10(1:reduced range)
这段指令是设置时钟频率吗?有点看不懂

能提供下配置的xls文件吗

666666666666666666