这个lvds的驱动配置有问题吗????
void imx291_linear_1080p30_init_lvds(VI_PIPE ViPipe)
{
imx291_write_register (ViPipe, 0x3000,0x01);
imx291_write_register (ViPipe, 0x3004,0x10);
imx291_write_register (ViPipe, 0x3005,0x01); //
imx291_write_register (ViPipe, 0x3006,0x00);
imx291_write_register (ViPipe, 0x3007,0x03);//
imx291_write_register (ViPipe, 0x3008,0xA0);
imx291_write_register (ViPipe, 0x3009,0x02); //
imx291_write_register (ViPipe, 0x300A,0xf0);
imx291_write_register (ViPipe, 0x300B,0x00);
imx291_write_register (ViPipe, 0x300C,0x00);
imx291_write_register (ViPipe, 0x300D,0x00);
imx291_write_register (ViPipe, 0x300E,0x01);
imx291_write_register (ViPipe, 0x300F,0x00);
imx291_write_register (ViPipe, 0x3010,0x21);
imx291_write_register (ViPipe, 0x3011,0x00);
imx291_write_register (ViPipe, 0x3012,0x64); //
imx291_write_register (ViPipe, 0x3013,0x00); //
imx291_write_register (ViPipe, 0x3014,0x00);
imx291_write_register (ViPipe, 0x3015,0x00);
imx291_write_register (ViPipe, 0x3016,0x09);
imx291_write_register (ViPipe, 0x3017,0x00);
imx291_write_register (ViPipe, 0x3018,0x65); //
imx291_write_register (ViPipe, 0x3019,0x04); //
imx291_write_register (ViPipe, 0x301A,0x00); //
imx291_write_register (ViPipe, 0x301B,0x00);
imx291_write_register (ViPipe, 0x301C,0x30); //
imx291_write_register (ViPipe, 0x301D,0x11);//
imx291_write_register (ViPipe, 0x301E,0xB2);
imx291_write_register (ViPipe, 0x301F,0x01);
imx291_write_register (ViPipe, 0x3020,0x00);
imx291_write_register (ViPipe, 0x3021,0x00);
imx291_write_register (ViPipe, 0x3022,0x00);
imx291_write_register (ViPipe, 0x303A,0x0c);//0x0c 0x10
imx291_write_register (ViPipe, 0x303B,0x00);
imx291_write_register (ViPipe, 0x303C,0x00);
imx291_write_register (ViPipe, 0x303D,0x00);
imx291_write_register (ViPipe, 0x303E,0x49);
imx291_write_register (ViPipe, 0x303F,0x04);
imx291_write_register (ViPipe, 0x3040,0x00);
imx291_write_register (ViPipe, 0x3041,0x00);
imx291_write_register (ViPipe, 0x3042,0x9C);
imx291_write_register (ViPipe, 0x3043,0x07);
imx291_write_register (ViPipe, 0x3046,0xe1); //
imx291_write_register (ViPipe, 0x3047,0x01);
imx291_write_register (ViPipe, 0x3048,0x00);
imx291_write_register (ViPipe, 0x3049,0x08);
imx291_write_register (ViPipe, 0x304A,0x00);
imx291_write_register (ViPipe, 0x305C,0x18);//
imx291_write_register (ViPipe, 0x305D,0x00);//
imx291_write_register (ViPipe, 0x305E,0x20); //
imx291_write_register (ViPipe, 0x305F,0x01);//
imx291_write_register (ViPipe, 0x3070,0x02);
imx291_write_register (ViPipe, 0x3071,0x11);
imx291_write_register (ViPipe, 0x30A6,0x20);
imx291_write_register (ViPipe, 0x30A7,0x00);
imx291_write_register (ViPipe, 0x30A8,0x20);
imx291_write_register (ViPipe, 0x30A9,0x00);
imx291_write_register (ViPipe, 0x30AA,0x20);
imx291_write_register (ViPipe, 0x30AB,0x00);
imx291_write_register (ViPipe, 0x30AC,0x20);
imx291_write_register (ViPipe, 0x3119,0x9E);
imx291_write_register (ViPipe, 0x311E,0x08);
imx291_write_register (ViPipe, 0x3128,0x05);
imx291_write_register (ViPipe, 0x3129,0x00);//
imx291_write_register (ViPipe, 0x313D,0x83);
imx291_write_register (ViPipe, 0x315E,0x1A);//
imx291_write_register (ViPipe, 0x3164,0x1A); //
imx291_write_register (ViPipe, 0x317C,0x00); //
imx291_write_register (ViPipe, 0x317D,0x00);
imx291_write_register (ViPipe, 0x31EC,0x0e);//
imx291_write_register (ViPipe, 0x32B8,0x50);
imx291_write_register (ViPipe, 0x32B9,0x10);
imx291_write_register (ViPipe, 0x32BA,0x00);
imx291_write_register (ViPipe, 0x32BB,0x04);
imx291_write_register (ViPipe, 0x32C8,0x50);
imx291_write_register (ViPipe, 0x32C9,0x10);
imx291_write_register (ViPipe, 0x32CA,0x00);
imx291_write_register (ViPipe, 0x32CB,0x04);
imx291_write_register (ViPipe, 0x332C,0xD3);
imx291_write_register (ViPipe, 0x332D,0x10);
imx291_write_register (ViPipe, 0x332E,0x0D);
imx291_write_register (ViPipe, 0x3358,0x06);
imx291_write_register (ViPipe, 0x3359,0xE1);
imx291_write_register (ViPipe, 0x335A,0x11);
imx291_write_register (ViPipe, 0x3360,0x1E);
imx291_write_register (ViPipe, 0x3361,0x61);
imx291_write_register (ViPipe, 0x3362,0x10);
imx291_write_register (ViPipe, 0x33B0,0x50);
imx291_write_register (ViPipe, 0x33B1,0x80);
imx291_write_register (ViPipe, 0x33B2,0x1a);
imx291_write_register (ViPipe, 0x33B3,0x04);
#if 0
imx291_write_register (ViPipe, 0x3405,0x20);
imx291_write_register (ViPipe, 0x3406,0x00);
imx291_write_register (ViPipe, 0x3407,0x03);
imx291_write_register (ViPipe, 0x3414,0x0A);
imx291_write_register (ViPipe, 0x3418,0x49);
imx291_write_register (ViPipe, 0x3419,0x04);
imx291_write_register (ViPipe, 0x3441,0x0C);
imx291_write_register (ViPipe, 0x3442,0x0C);
imx291_write_register (ViPipe, 0x3443,0x03);
imx291_write_register (ViPipe, 0x3444,0x20);
imx291_write_register (ViPipe, 0x3445,0x25);
imx291_write_register (ViPipe, 0x3446,0x47);
imx291_write_register (ViPipe, 0x3447,0x00);
imx291_write_register (ViPipe, 0x3448,0x1F);
imx291_write_register (ViPipe, 0x3449,0x00);
imx291_write_register (ViPipe, 0x344A,0x17);
imx291_write_register (ViPipe, 0x344B,0x00);
imx291_write_register (ViPipe, 0x344C,0x0F);
imx291_write_register (ViPipe, 0x344D,0x00);
imx291_write_register (ViPipe, 0x344E,0x17);
imx291_write_register (ViPipe, 0x344F,0x00);
imx291_write_register (ViPipe, 0x3450,0x47);
imx291_write_register (ViPipe, 0x3451,0x00);
imx291_write_register (ViPipe, 0x3452,0x0F);
imx291_write_register (ViPipe, 0x3453,0x00);
imx291_write_register (ViPipe, 0x3454,0x0F);
imx291_write_register (ViPipe, 0x3455,0x00);
imx291_write_register (ViPipe, 0x3472,0x9C);
imx291_write_register (ViPipe, 0x3473,0x07);
#endif
imx291_write_register (ViPipe, 0x3480,0x49); //
imx291_default_reg_init(ViPipe);
imx291_write_register (ViPipe, 0x3000, 0x00); /* standby */
delay_ms(20);
imx291_write_register (ViPipe, 0x3002, 0x00); /* master mode start */
imx291_write_register (ViPipe, 0x304b, 0x0a); /* XVSOUTSEL XHSOUTSEL */
printf("===IMX291 1080P 30fps 12bit LINE lvds Init OK!===\n");
} |