@ -12,7 +12,6 @@
You should have received a copy of the GNU General Public License
You should have received a copy of the GNU General Public License
along with this program . If not , see < http : //www.gnu.org/licenses/>.
along with this program . If not , see < http : //www.gnu.org/licenses/>.
*/
*/
# pragma once
/* It seems to be mandatory to write these patches by unit of 48 bytes, the
/* It seems to be mandatory to write these patches by unit of 48 bytes, the
* 2 first ones seem to be an address since it increments of 48 at each line
* 2 first ones seem to be an address since it increments of 48 at each line
@ -20,10 +19,15 @@
* writeRegisters ( addr , 0xf000 , 48 , line1 ) ;
* writeRegisters ( addr , 0xf000 , 48 , line1 ) ;
* . . .
* . . .
*/
*/
# define MT9V117_PATCH_LINE_NUM 13
# include "CameraSensor_Mt9v117.h"
uint8_t patch_line1 [ ] =
# include <AP_HAL/AP_HAL.h>
{
# if CONFIG_HAL_BOARD_SUBTYPE == HAL_BOARD_SUBTYPE_LINUX_BEBOP
using namespace Linux ;
static uint8_t patch_line1 [ ] = {
0xf0 , 0x00 , 0x72 , 0xcf , 0xff , 0x00 , 0x3e , 0xd0 , 0x92 , 0x00 ,
0xf0 , 0x00 , 0x72 , 0xcf , 0xff , 0x00 , 0x3e , 0xd0 , 0x92 , 0x00 ,
0x71 , 0xcf , 0xff , 0xff , 0xf2 , 0x18 , 0xb1 , 0x10 , 0x92 , 0x05 ,
0x71 , 0xcf , 0xff , 0xff , 0xf2 , 0x18 , 0xb1 , 0x10 , 0x92 , 0x05 ,
0xb1 , 0x11 , 0x92 , 0x04 , 0xb1 , 0x12 , 0x70 , 0xcf , 0xff , 0x00 ,
0xb1 , 0x11 , 0x92 , 0x04 , 0xb1 , 0x12 , 0x70 , 0xcf , 0xff , 0x00 ,
@ -31,8 +35,7 @@ uint8_t patch_line1[] =
0xff , 0xff , 0xe7 , 0x1c , 0x88 , 0x36 , 0x09 , 0x0f , 0x00 , 0xb3
0xff , 0xff , 0xe7 , 0x1c , 0x88 , 0x36 , 0x09 , 0x0f , 0x00 , 0xb3
} ;
} ;
uint8_t patch_line2 [ ] =
static uint8_t patch_line2 [ ] = {
{
0xf0 , 0x30 , 0x69 , 0x13 , 0xe1 , 0x80 , 0xd8 , 0x08 , 0x20 , 0xca ,
0xf0 , 0x30 , 0x69 , 0x13 , 0xe1 , 0x80 , 0xd8 , 0x08 , 0x20 , 0xca ,
0x03 , 0x22 , 0x71 , 0xcf , 0xff , 0xff , 0xe5 , 0x68 , 0x91 , 0x35 ,
0x03 , 0x22 , 0x71 , 0xcf , 0xff , 0xff , 0xe5 , 0x68 , 0x91 , 0x35 ,
0x22 , 0x0a , 0x1f , 0x80 , 0xff , 0xff , 0xf2 , 0x18 , 0x29 , 0x05 ,
0x22 , 0x0a , 0x1f , 0x80 , 0xff , 0xff , 0xf2 , 0x18 , 0x29 , 0x05 ,
@ -40,8 +43,7 @@ uint8_t patch_line2[] =
0x00 , 0x00 , 0xff , 0xf0 , 0x21 , 0x8c , 0xf0 , 0x10 , 0x1a , 0x22
0x00 , 0x00 , 0xff , 0xf0 , 0x21 , 0x8c , 0xf0 , 0x10 , 0x1a , 0x22
} ;
} ;
uint8_t patch_line3 [ ] =
static uint8_t patch_line3 [ ] = {
{
0xf0 , 0x60 , 0x10 , 0x44 , 0x12 , 0x20 , 0x11 , 0x02 , 0xf7 , 0x87 ,
0xf0 , 0x60 , 0x10 , 0x44 , 0x12 , 0x20 , 0x11 , 0x02 , 0xf7 , 0x87 ,
0x22 , 0x4f , 0x03 , 0x83 , 0x1a , 0x20 , 0x10 , 0xc4 , 0xf0 , 0x09 ,
0x22 , 0x4f , 0x03 , 0x83 , 0x1a , 0x20 , 0x10 , 0xc4 , 0xf0 , 0x09 ,
0xba , 0xae , 0x7b , 0x50 , 0x1a , 0x20 , 0x10 , 0x84 , 0x21 , 0x45 ,
0xba , 0xae , 0x7b , 0x50 , 0x1a , 0x20 , 0x10 , 0x84 , 0x21 , 0x45 ,
@ -49,8 +51,7 @@ uint8_t patch_line3[] =
0x3e , 0xd0 , 0xb0 , 0x60 , 0xb0 , 0x25 , 0x7e , 0xe0 , 0x78 , 0xe0
0x3e , 0xd0 , 0xb0 , 0x60 , 0xb0 , 0x25 , 0x7e , 0xe0 , 0x78 , 0xe0
} ;
} ;
uint8_t patch_line4 [ ] =
static uint8_t patch_line4 [ ] = {
{
0xf0 , 0x90 , 0x71 , 0xcf , 0xff , 0xff , 0xf2 , 0x18 , 0x91 , 0x12 ,
0xf0 , 0x90 , 0x71 , 0xcf , 0xff , 0xff , 0xf2 , 0x18 , 0x91 , 0x12 ,
0x72 , 0xcf , 0xff , 0xff , 0xe7 , 0x1c , 0x8a , 0x57 , 0x20 , 0x04 ,
0x72 , 0xcf , 0xff , 0xff , 0xe7 , 0x1c , 0x8a , 0x57 , 0x20 , 0x04 ,
0x0f , 0x80 , 0x00 , 0x00 , 0xff , 0xf0 , 0xe2 , 0x80 , 0x20 , 0xc5 ,
0x0f , 0x80 , 0x00 , 0x00 , 0xff , 0xf0 , 0xe2 , 0x80 , 0x20 , 0xc5 ,
@ -58,8 +59,7 @@ uint8_t patch_line4[] =
0xff , 0x00 , 0x3e , 0xd0 , 0xb1 , 0x04 , 0x7e , 0xe0 , 0x78 , 0xe0
0xff , 0x00 , 0x3e , 0xd0 , 0xb1 , 0x04 , 0x7e , 0xe0 , 0x78 , 0xe0
} ;
} ;
uint8_t patch_line5 [ ] =
static uint8_t patch_line5 [ ] = {
{
0xf0 , 0xc0 , 0x70 , 0xcf , 0xff , 0xff , 0xe7 , 0x1c , 0x88 , 0x57 ,
0xf0 , 0xc0 , 0x70 , 0xcf , 0xff , 0xff , 0xe7 , 0x1c , 0x88 , 0x57 ,
0x71 , 0xcf , 0xff , 0xff , 0xf2 , 0x18 , 0x91 , 0x13 , 0xea , 0x84 ,
0x71 , 0xcf , 0xff , 0xff , 0xf2 , 0x18 , 0x91 , 0x13 , 0xea , 0x84 ,
0xb8 , 0xa9 , 0x78 , 0x10 , 0xf0 , 0x03 , 0xb8 , 0x89 , 0xb8 , 0x8c ,
0xb8 , 0xa9 , 0x78 , 0x10 , 0xf0 , 0x03 , 0xb8 , 0x89 , 0xb8 , 0x8c ,
@ -67,8 +67,7 @@ uint8_t patch_line5[] =
0x7e , 0xe0 , 0xc0 , 0xf1 , 0x09 , 0x1e , 0x03 , 0xc0 , 0xc1 , 0xa1
0x7e , 0xe0 , 0xc0 , 0xf1 , 0x09 , 0x1e , 0x03 , 0xc0 , 0xc1 , 0xa1
} ;
} ;
uint8_t patch_line6 [ ] =
static uint8_t patch_line6 [ ] = {
{
0xf0 , 0xf0 , 0x75 , 0x08 , 0x76 , 0x28 , 0x77 , 0x48 , 0xc2 , 0x40 ,
0xf0 , 0xf0 , 0x75 , 0x08 , 0x76 , 0x28 , 0x77 , 0x48 , 0xc2 , 0x40 ,
0xd8 , 0x20 , 0x71 , 0xcf , 0x00 , 0x03 , 0x20 , 0x67 , 0xda , 0x02 ,
0xd8 , 0x20 , 0x71 , 0xcf , 0x00 , 0x03 , 0x20 , 0x67 , 0xda , 0x02 ,
0x08 , 0xae , 0x03 , 0xa0 , 0x73 , 0xc9 , 0x0e , 0x25 , 0x13 , 0xc0 ,
0x08 , 0xae , 0x03 , 0xa0 , 0x73 , 0xc9 , 0x0e , 0x25 , 0x13 , 0xc0 ,
@ -76,8 +75,7 @@ uint8_t patch_line6[] =
0x01 , 0x00 , 0xd8 , 0x00 , 0xb8 , 0x9e , 0x0e , 0x5a , 0x03 , 0x20
0x01 , 0x00 , 0xd8 , 0x00 , 0xb8 , 0x9e , 0x0e , 0x5a , 0x03 , 0x20
} ;
} ;
uint8_t patch_line7 [ ] =
static uint8_t patch_line7 [ ] = {
{
0xf1 , 0x20 , 0xd9 , 0x01 , 0xd8 , 0x00 , 0xb8 , 0x9e , 0x0e , 0xb6 ,
0xf1 , 0x20 , 0xd9 , 0x01 , 0xd8 , 0x00 , 0xb8 , 0x9e , 0x0e , 0xb6 ,
0x03 , 0x20 , 0xd9 , 0x01 , 0x8d , 0x14 , 0x08 , 0x17 , 0x01 , 0x91 ,
0x03 , 0x20 , 0xd9 , 0x01 , 0x8d , 0x14 , 0x08 , 0x17 , 0x01 , 0x91 ,
0x8d , 0x16 , 0xe8 , 0x07 , 0x0b , 0x36 , 0x01 , 0x60 , 0xd8 , 0x07 ,
0x8d , 0x16 , 0xe8 , 0x07 , 0x0b , 0x36 , 0x01 , 0x60 , 0xd8 , 0x07 ,
@ -85,8 +83,7 @@ uint8_t patch_line7[] =
0xd8 , 0x00 , 0x20 , 0xca , 0x02 , 0x62 , 0x00 , 0xc9 , 0x03 , 0xe0
0xd8 , 0x00 , 0x20 , 0xca , 0x02 , 0x62 , 0x00 , 0xc9 , 0x03 , 0xe0
} ;
} ;
uint8_t patch_line8 [ ] =
static uint8_t patch_line8 [ ] = {
{
0xf1 , 0x50 , 0xc0 , 0xa1 , 0x78 , 0xe0 , 0xc0 , 0xf1 , 0x08 , 0xb2 ,
0xf1 , 0x50 , 0xc0 , 0xa1 , 0x78 , 0xe0 , 0xc0 , 0xf1 , 0x08 , 0xb2 ,
0x03 , 0xc0 , 0x76 , 0xcf , 0xff , 0xff , 0xe5 , 0x40 , 0x75 , 0xcf ,
0x03 , 0xc0 , 0x76 , 0xcf , 0xff , 0xff , 0xe5 , 0x40 , 0x75 , 0xcf ,
0xff , 0xff , 0xe5 , 0x68 , 0x95 , 0x17 , 0x96 , 0x40 , 0x77 , 0xcf ,
0xff , 0xff , 0xe5 , 0x68 , 0x95 , 0x17 , 0x96 , 0x40 , 0x77 , 0xcf ,
@ -94,8 +91,7 @@ uint8_t patch_line8[] =
0x97 , 0x40 , 0x0a , 0x11 , 0x00 , 0x40 , 0x0b , 0x0a , 0x01 , 0x00
0x97 , 0x40 , 0x0a , 0x11 , 0x00 , 0x40 , 0x0b , 0x0a , 0x01 , 0x00
} ;
} ;
uint8_t patch_line9 [ ] =
static uint8_t patch_line9 [ ] = {
{
0xf1 , 0x80 , 0x95 , 0x17 , 0xb6 , 0x00 , 0x95 , 0x18 , 0xb7 , 0x00 ,
0xf1 , 0x80 , 0x95 , 0x17 , 0xb6 , 0x00 , 0x95 , 0x18 , 0xb7 , 0x00 ,
0x76 , 0xcf , 0xff , 0xff , 0xe5 , 0x44 , 0x96 , 0x20 , 0x95 , 0x15 ,
0x76 , 0xcf , 0xff , 0xff , 0xe5 , 0x44 , 0x96 , 0x20 , 0x95 , 0x15 ,
0x08 , 0x13 , 0x00 , 0x40 , 0x0e , 0x1e , 0x01 , 0x20 , 0xd9 , 0x00 ,
0x08 , 0x13 , 0x00 , 0x40 , 0x0e , 0x1e , 0x01 , 0x20 , 0xd9 , 0x00 ,
@ -103,8 +99,7 @@ uint8_t patch_line9[] =
0xe7 , 0x1c , 0x77 , 0xcf , 0xff , 0xff , 0xe5 , 0x46 , 0x97 , 0x40
0xe7 , 0x1c , 0x77 , 0xcf , 0xff , 0xff , 0xe5 , 0x46 , 0x97 , 0x40
} ;
} ;
uint8_t patch_line10 [ ] =
static uint8_t patch_line10 [ ] = {
{
0xf1 , 0xb0 , 0x8d , 0x16 , 0x76 , 0xcf , 0xff , 0xff , 0xe5 , 0x48 ,
0xf1 , 0xb0 , 0x8d , 0x16 , 0x76 , 0xcf , 0xff , 0xff , 0xe5 , 0x48 ,
0x8d , 0x37 , 0x08 , 0x0d , 0x00 , 0x81 , 0x96 , 0x40 , 0x09 , 0x15 ,
0x8d , 0x37 , 0x08 , 0x0d , 0x00 , 0x81 , 0x96 , 0x40 , 0x09 , 0x15 ,
0x00 , 0x80 , 0x0f , 0xd6 , 0x01 , 0x00 , 0x8d , 0x16 , 0xb7 , 0x00 ,
0x00 , 0x80 , 0x0f , 0xd6 , 0x01 , 0x00 , 0x8d , 0x16 , 0xb7 , 0x00 ,
@ -112,8 +107,7 @@ uint8_t patch_line10[] =
0x03 , 0xc0 , 0xc0 , 0xf1 , 0x0d , 0x9e , 0x01 , 0x00 , 0xe8 , 0x04
0x03 , 0xc0 , 0xc0 , 0xf1 , 0x0d , 0x9e , 0x01 , 0x00 , 0xe8 , 0x04
} ;
} ;
uint8_t patch_line11 [ ] =
static uint8_t patch_line11 [ ] = {
{
0xf1 , 0xe0 , 0xff , 0x88 , 0xf0 , 0x0a , 0x0d , 0x6a , 0x01 , 0x00 ,
0xf1 , 0xe0 , 0xff , 0x88 , 0xf0 , 0x0a , 0x0d , 0x6a , 0x01 , 0x00 ,
0x0d , 0x8e , 0x01 , 0x00 , 0xe8 , 0x7e , 0xff , 0x85 , 0x0d , 0x72 ,
0x0d , 0x8e , 0x01 , 0x00 , 0xe8 , 0x7e , 0xff , 0x85 , 0x0d , 0x72 ,
0x01 , 0x00 , 0xff , 0x8c , 0xff , 0xa7 , 0xff , 0xb2 , 0xd8 , 0x00 ,
0x01 , 0x00 , 0xff , 0x8c , 0xff , 0xa7 , 0xff , 0xb2 , 0xd8 , 0x00 ,
@ -121,8 +115,7 @@ uint8_t patch_line11[] =
0x81 , 0x41 , 0xe0 , 0x02 , 0x81 , 0x20 , 0x08 , 0xf7 , 0x81 , 0x34
0x81 , 0x41 , 0xe0 , 0x02 , 0x81 , 0x20 , 0x08 , 0xf7 , 0x81 , 0x34
} ;
} ;
uint8_t patch_line12 [ ] =
static uint8_t patch_line12 [ ] = {
{
0xf2 , 0x10 , 0xa1 , 0x40 , 0xd8 , 0x00 , 0xc0 , 0xd1 , 0x7e , 0xe0 ,
0xf2 , 0x10 , 0xa1 , 0x40 , 0xd8 , 0x00 , 0xc0 , 0xd1 , 0x7e , 0xe0 ,
0x53 , 0x51 , 0x30 , 0x34 , 0x20 , 0x6f , 0x6e , 0x5f , 0x73 , 0x74 ,
0x53 , 0x51 , 0x30 , 0x34 , 0x20 , 0x6f , 0x6e , 0x5f , 0x73 , 0x74 ,
0x61 , 0x72 , 0x74 , 0x5f , 0x73 , 0x74 , 0x72 , 0x65 , 0x61 , 0x6d ,
0x61 , 0x72 , 0x74 , 0x5f , 0x73 , 0x74 , 0x72 , 0x65 , 0x61 , 0x6d ,
@ -130,18 +123,12 @@ uint8_t patch_line12[] =
0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00
0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00
} ;
} ;
uint8_t patch_line13 [ ] =
static uint8_t patch_line13 [ ] = {
{
0xf2 , 0x40 , 0xff , 0xff , 0xe8 , 0x28 , 0xff , 0xff , 0xf0 , 0xe8 ,
0xf2 , 0x40 , 0xff , 0xff , 0xe8 , 0x28 , 0xff , 0xff , 0xf0 , 0xe8 ,
0xff , 0xff , 0xe8 , 0x08 , 0xff , 0xff , 0xf1 , 0x54
0xff , 0xff , 0xe8 , 0x08 , 0xff , 0xff , 0xf1 , 0x54
} ;
} ;
struct mt9v117_patch_line {
const struct mt9v117_patch CameraSensor_Mt9v117 : : _patch_lines [ MT9V117_PATCH_LINE_NUM ] = {
uint8_t * data ;
uint8_t size ;
} ;
struct mt9v117_patch_line patch_lines [ MT9V117_PATCH_LINE_NUM ] = {
{ patch_line1 , sizeof ( patch_line1 ) } ,
{ patch_line1 , sizeof ( patch_line1 ) } ,
{ patch_line2 , sizeof ( patch_line2 ) } ,
{ patch_line2 , sizeof ( patch_line2 ) } ,
{ patch_line3 , sizeof ( patch_line3 ) } ,
{ patch_line3 , sizeof ( patch_line3 ) } ,
@ -156,3 +143,5 @@ struct mt9v117_patch_line patch_lines[MT9V117_PATCH_LINE_NUM] = {
{ patch_line12 , sizeof ( patch_line12 ) } ,
{ patch_line12 , sizeof ( patch_line12 ) } ,
{ patch_line13 , sizeof ( patch_line13 ) }
{ patch_line13 , sizeof ( patch_line13 ) }
} ;
} ;
# endif