请教各位!
在OV9650驱动中寄存器初始化的结构体是
typedef struct s3c_fimc_i2c_value {
u8 subaddr;
u8 value;
} OV965X_t;
驱动中通过i2c_transfer将i2c_msg数据传入
int s3c_fimc_i2c_write(struct i2c_client *client, u8 i2c_data[], u8 length)
{
u8 buf[length];
u8 i;
struct i2c_msg msg = {client->addr, 0, length, buf};
for ( i=0; i<length; i++ ) {
buf = i2c_data;
}
return i2c_transfer(client->adapter, &msg, 1) == 1 ? 0 : -EIO;
}
而我现在调试的摄像头是16位地址和16位数据的。
typedef struct s3c_fimc_i2c_value {
u8 subaddr1;
u8 subaddr2;
u8 value1;
u8 value2;
} mt2031_t;
同样的方式将初始化数组传入,芯片没有工作,判断是寄存器初始化没有写入,
驱动中是如何区分我是写的8位地址还是16位地址?