User`s guide
Supporting the i.MX53 Camera Sensor Interface CSI0
i.MX53 System Development User’s Guide, Rev. 1
Freescale Semiconductor 20-7
au8Buf[2] = val;
if (i2c_master_send(my_camera_i2c_client, au8Buf, 3) < 0) {
pr_err("%s:write reg error:reg=%x,val=%x\n",__func__, reg, val);
return -1;
}
return 0;
}
static s32 my_camera_read_reg(u16 reg, u8 *val)
{
u8 au8RegBuf[2] = {0};
u8 u8RdVal = 0;
au8RegBuf[0] = reg >> 8;
au8RegBuf[1] = reg & 0xff;
if (2 != i2c_master_send(my_camera_i2c_client, au8RegBuf, 2)) {
pr_err("%s:write reg error:reg=%x\n",__func__, reg);
return -1;
}
if (1 != i2c_master_recv(my_camera_i2c_client, &u8RdVal, 1)) {// @ECA
pr_err("%s:read reg error:reg=%x,val=%x\n",__func__, reg, u8RdVal);
return -1;
}
*val = u8RdVal;
return u8RdVal;
}
static int my_camera_probe(struct i2c_client *client, const struct i2c_device_id *id)
{
...
my_camera_i2c_client = client;
...
}
static __init int mycamera_init(void)
{
u8 err;
err = i2c_add_driver(&mycamera_i2c_driver);
if (err != 0)
pr_err("%s:driver registration failed, error=%d \n",__func__, err);
return err;
}
static void __exit mycamera_clean(void)
{
i2c_del_driver(&mycamera_i2c_driver);
}
module_init(mycamera_init);
module_exit(mycamera_clean);