Merge pull request #2538 from openmv/pag_mipi_support

sensors/pag7936: Add support for MIPI mode.
This commit is contained in:
Ibrahim Abdelkader 2024-12-04 17:45:29 +02:00 committed by GitHub
commit 612ce6cb70
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

View File

@ -113,6 +113,47 @@
#endif #endif
static const uint16_t default_regs[][2] = { static const uint16_t default_regs[][2] = {
#if OMV_PAG7936_MIPI_CSI2
{ 0x004C, 0x8D },
{ 0x004D, 0x20 },
{ 0x004E, 0x00 },
{ 0x004F, 0x00 },
{ 0x110A, 0x00 },
{ 0x0905, 0x60 },
{ 0x0978, 0x01 },
{ 0x0979, 0x66 },
{ 0x097C, 0x30 },
{ 0x097D, 0x02 },
{ 0x0985, 0x06 },
{ 0x0989, 0x10 },
{ 0x098B, 0x91 },
{ 0x098E, 0x06 },
{ 0x0850, 0x00 },
{ 0x094A, 0x43 },
{ 0x09A0, 0x08 },
{ 0x0032, 0x00 },
{ 0x0033, 0x00 },
{ 0x0764, 0x00 },
{ 0x0304, 0x30 },
{ 0x0305, 0x03 },
{ 0x0307, 0x10 },
{ 0x0308, 0x05 },
{ 0x0306, 0x04 },
{ 0x0311, 0x00 },
{ 0x030F, 0x01 },
{ 0x0168, 0x6D },
{ 0x0730, 0x78 },
{ 0x0724, 0x20 },
{ 0x0188, 0x14 },
{ 0x02A5, 0xEF },
{ 0x0186, 0x40 },
{ 0x0A1A, 0x20 },
{ 0x0A32, 0x2A },
{ 0x0A33, 0x2A },
{ 0x0A34, 0x0D },
{ 0x0A35, 0x0D },
{ 0x000B, 0x01 },
#else
{ 0x010C, 0x23 }, { 0x010C, 0x23 },
{ 0x010D, 0x05 }, { 0x010D, 0x05 },
{ 0x007B, 0x8C }, { 0x007B, 0x8C },
@ -121,9 +162,9 @@ static const uint16_t default_regs[][2] = {
{ 0x007E, 0x8C }, { 0x007E, 0x8C },
{ 0x007F, 0x8C }, { 0x007F, 0x8C },
{ 0x0EAF, 0x31 }, // Interface polarity (Not default) { 0x0EAF, 0x31 }, // Interface polarity (Not default)
{ 0x004C, 0x1A }, { 0x004C, 0x1A }, // frame time
{ 0x004D, 0x41 }, { 0x004D, 0x41 }, // ftime
{ 0x004E, 0x00 }, { 0x004E, 0x00 }, // ftime
{ 0x004F, 0x00 }, { 0x004F, 0x00 },
{ 0x110A, 0x00 }, { 0x110A, 0x00 },
{ 0x0905, 0x60 }, { 0x0905, 0x60 },
@ -136,38 +177,7 @@ static const uint16_t default_regs[][2] = {
{ 0x0985, 0x10 }, { 0x0985, 0x10 },
{ 0x098B, 0x90 }, { 0x098B, 0x90 },
{ 0x098E, 0x06 }, { 0x098E, 0x06 },
{ 0x0810, 0x01 }, { 0x0850, 0x00 }, // TODO BPC
{ 0x0814, 0xB3 }, //R_center_rx[10:0]=691
{ 0x0815, 0x02 }, //R_center_rx[10:0]=691
{ 0x0816, 0xBB }, //R_center_ry[9:0]=443
{ 0x0817, 0x01 }, //R_center_ry[9:0]=443
{ 0x0818, 0xA9 }, //R_center_gx[10:0]=681
{ 0x0819, 0x02 }, //R_center_gx[10:0]=681
{ 0x081A, 0xBB }, //R_center_gy[9:0]=443
{ 0x081B, 0x01 }, //R_center_gy[9:0]=443
{ 0x081C, 0xB0 }, //R_center_bx[10:0]=688
{ 0x081D, 0x02 }, //R_center_bx[10:0]=688
{ 0x081E, 0xBD }, //R_center_by[9:0]=445
{ 0x081F, 0x01 }, //R_center_by[9:0]=445
{ 0x0820, 0x61 }, //R_LSC_RS[7:0]=97
{ 0x0821, 0x5B }, //R_LSC_GS[7:0]=91
{ 0x0822, 0x5F }, //R_LSC_BS[7:0]=95
{ 0x0823, 0x41 }, //R_LSC_RQ[7:0]=65
{ 0x0824, 0x50 }, //R_LSC_GQ[7:0]=80
{ 0x0825, 0x7F }, //R_LSC_BQ[7:0]=127
{ 0x0826, 0x07 }, //R_LSC_SftRS[3:0]=7
{ 0x0827, 0x07 }, //R_LSC_SftGS[3:0]=7
{ 0x0828, 0x07 }, //R_LSC_SftBS[3:0]=7
{ 0x0829, 0x09 }, //R_LSC_SftRQ[3:0]=9
{ 0x082A, 0x09 }, //R_LSC_SftGQ[3:0]=9
{ 0x082B, 0x09 }, //R_LSC_SftBQ[3:0]=9
{ 0x082E, 0xD8 }, //R_LSC_LMaxR2R[15:0]=39640
{ 0x082F, 0x9A }, //R_LSC_LMaxR2R[15:0]=39640
{ 0x0830, 0xD8 }, //R_LSC_LMaxR2G[15:0]=39640
{ 0x0831, 0x9A }, //R_LSC_LMaxR2G[15:0]=39640
{ 0x0832, 0xD8 }, //R_LSC_LMaxR2B[15:0]=39640
{ 0x0833, 0x9A }, //R_LSC_LMaxR2B[15:0]=39640
{ 0x0850, 0x00 },
{ 0x094A, 0x43 }, { 0x094A, 0x43 },
{ 0x09A0, 0x08 }, { 0x09A0, 0x08 },
{ 0x0724, 0x10 }, { 0x0724, 0x10 },
@ -210,6 +220,41 @@ static const uint16_t default_regs[][2] = {
{ 0x0A33, 0x2A }, { 0x0A33, 0x2A },
{ 0x0A34, 0x0D }, { 0x0A34, 0x0D },
{ 0x0A35, 0x0D }, { 0x0A35, 0x0D },
{ 0x000B, 0x02 },
#endif
{ 0x0810, 0x01 },
{ 0x0814, 0xB3 }, //R_center_rx[10:0]=691
{ 0x0815, 0x02 }, //R_center_rx[10:0]=691
{ 0x0816, 0xBB }, //R_center_ry[9:0]=443
{ 0x0817, 0x01 }, //R_center_ry[9:0]=443
{ 0x0818, 0xA9 }, //R_center_gx[10:0]=681
{ 0x0819, 0x02 }, //R_center_gx[10:0]=681
{ 0x081A, 0xBB }, //R_center_gy[9:0]=443
{ 0x081B, 0x01 }, //R_center_gy[9:0]=443
{ 0x081C, 0xB0 }, //R_center_bx[10:0]=688
{ 0x081D, 0x02 }, //R_center_bx[10:0]=688
{ 0x081E, 0xBD }, //R_center_by[9:0]=445
{ 0x081F, 0x01 }, //R_center_by[9:0]=445
{ 0x0820, 0x61 }, //R_LSC_RS[7:0]=97
{ 0x0821, 0x5B }, //R_LSC_GS[7:0]=91
{ 0x0822, 0x5F }, //R_LSC_BS[7:0]=95
{ 0x0823, 0x41 }, //R_LSC_RQ[7:0]=65
{ 0x0824, 0x50 }, //R_LSC_GQ[7:0]=80
{ 0x0825, 0x7F }, //R_LSC_BQ[7:0]=127
{ 0x0826, 0x07 }, //R_LSC_SftRS[3:0]=7
{ 0x0827, 0x07 }, //R_LSC_SftGS[3:0]=7
{ 0x0828, 0x07 }, //R_LSC_SftBS[3:0]=7
{ 0x0829, 0x09 }, //R_LSC_SftRQ[3:0]=9
{ 0x082A, 0x09 }, //R_LSC_SftGQ[3:0]=9
{ 0x082B, 0x09 }, //R_LSC_SftBQ[3:0]=9
{ 0x082E, 0xD8 }, //R_LSC_LMaxR2R[15:0]=39640
{ 0x082F, 0x9A }, //R_LSC_LMaxR2R[15:0]=39640
{ 0x0830, 0xD8 }, //R_LSC_LMaxR2G[15:0]=39640
{ 0x0831, 0x9A }, //R_LSC_LMaxR2G[15:0]=39640
{ 0x0832, 0xD8 }, //R_LSC_LMaxR2B[15:0]=39640
{ 0x0833, 0x9A }, //R_LSC_LMaxR2B[15:0]=39640
// WOI
{ 0x0E10, 0x01 }, { 0x0E10, 0x01 },
{ 0x0E11, 0x00 }, { 0x0E11, 0x00 },
{ 0x0E12, 0x05 }, { 0x0E12, 0x05 },
@ -219,8 +264,8 @@ static const uint16_t default_regs[][2] = {
{ 0x0E16, 0x00 }, { 0x0E16, 0x00 },
{ 0x0E17, 0x10 }, { 0x0E17, 0x10 },
{ 0x0E18, 0x00 }, { 0x0E18, 0x00 },
{ 0x00EB, 0x80 }, { 0x00EB, 0x80 },
{ 0x000B, 0x02 },
{ 0x0030, 0x01 }, { 0x0030, 0x01 },
{ 0x0008, 0x83 }, { 0x0008, 0x83 },
{ 0x0000, 0x00 }, { 0x0000, 0x00 },