static int camera_set_capture(struct soc_camera_platform_info *info, int enable) { struct i2c_adapter *a = i2c_get_adapter(0); struct i2c_msg msg; int ret = 0; int i; camera_power(0); if (!enable) return 0; /* no disable for now */ camera_power(1); for (i = 0; i < ARRAY_SIZE(camera_ncm03j_magic); i += 2) { u_int8_t buf[8]; msg.addr = 0x6e; msg.buf = buf; msg.len = 2; msg.flags = 0; buf[0] = camera_ncm03j_magic[i]; buf[1] = camera_ncm03j_magic[i + 1]; ret = (ret < 0) ? ret : i2c_transfer(a, &msg, 1); } return ret; }
static int ov7725_power(struct device *dev, int mode) { camera_power(0); if (mode) camera_power(1); return 0; }
static int camera_probe(void) { struct i2c_adapter *a = i2c_get_adapter(0); struct i2c_msg msg; int ret; camera_power(1); msg.addr = 0x6e; msg.buf = camera_ncm03j_magic; msg.len = 2; msg.flags = 0; ret = i2c_transfer(a, &msg, 1); camera_power(0); return ret; }