Lines Matching refs:client

105 static struct mt9m001 *to_mt9m001(const struct i2c_client *client)  in to_mt9m001()  argument
107 return container_of(i2c_get_clientdata(client), struct mt9m001, subdev); in to_mt9m001()
110 static int reg_read(struct i2c_client *client, const u8 reg) in reg_read() argument
112 return i2c_smbus_read_word_swapped(client, reg); in reg_read()
115 static int reg_write(struct i2c_client *client, const u8 reg, in reg_write() argument
118 return i2c_smbus_write_word_swapped(client, reg, data); in reg_write()
121 static int reg_set(struct i2c_client *client, const u8 reg, in reg_set() argument
126 ret = reg_read(client, reg); in reg_set()
129 return reg_write(client, reg, ret | data); in reg_set()
132 static int reg_clear(struct i2c_client *client, const u8 reg, in reg_clear() argument
137 ret = reg_read(client, reg); in reg_clear()
140 return reg_write(client, reg, ret & ~data); in reg_clear()
143 static int mt9m001_init(struct i2c_client *client) in mt9m001_init() argument
147 dev_dbg(&client->dev, "%s\n", __func__); in mt9m001_init()
153 ret = reg_write(client, MT9M001_RESET, 1); in mt9m001_init()
155 ret = reg_write(client, MT9M001_RESET, 0); in mt9m001_init()
159 ret = reg_write(client, MT9M001_OUTPUT_CONTROL, 0); in mt9m001_init()
166 struct i2c_client *client = v4l2_get_subdevdata(sd); in mt9m001_s_stream() local
169 if (reg_write(client, MT9M001_OUTPUT_CONTROL, enable ? 2 : 0) < 0) in mt9m001_s_stream()
176 struct i2c_client *client = v4l2_get_subdevdata(sd); in mt9m001_s_crop() local
177 struct mt9m001 *mt9m001 = to_mt9m001(client); in mt9m001_s_crop()
202 ret = reg_write(client, MT9M001_HORIZONTAL_BLANKING, hblank); in mt9m001_s_crop()
204 ret = reg_write(client, MT9M001_VERTICAL_BLANKING, vblank); in mt9m001_s_crop()
211 ret = reg_write(client, MT9M001_COLUMN_START, rect.left); in mt9m001_s_crop()
213 ret = reg_write(client, MT9M001_ROW_START, rect.top); in mt9m001_s_crop()
215 ret = reg_write(client, MT9M001_WINDOW_WIDTH, rect.width - 1); in mt9m001_s_crop()
217 ret = reg_write(client, MT9M001_WINDOW_HEIGHT, in mt9m001_s_crop()
220 ret = reg_write(client, MT9M001_SHUTTER_WIDTH, mt9m001->total_h); in mt9m001_s_crop()
230 struct i2c_client *client = v4l2_get_subdevdata(sd); in mt9m001_g_crop() local
231 struct mt9m001 *mt9m001 = to_mt9m001(client); in mt9m001_g_crop()
257 struct i2c_client *client = v4l2_get_subdevdata(sd); in mt9m001_get_fmt() local
258 struct mt9m001 *mt9m001 = to_mt9m001(client); in mt9m001_get_fmt()
276 struct i2c_client *client = v4l2_get_subdevdata(sd); in mt9m001_s_fmt() local
277 struct mt9m001 *mt9m001 = to_mt9m001(client); in mt9m001_s_fmt()
306 struct i2c_client *client = v4l2_get_subdevdata(sd); in mt9m001_set_fmt() local
307 struct mt9m001 *mt9m001 = to_mt9m001(client); in mt9m001_set_fmt()
340 struct i2c_client *client = v4l2_get_subdevdata(sd); in mt9m001_g_register() local
346 reg->val = reg_read(client, reg->reg); in mt9m001_g_register()
357 struct i2c_client *client = v4l2_get_subdevdata(sd); in mt9m001_s_register() local
362 if (reg_write(client, reg->reg, reg->val) < 0) in mt9m001_s_register()
371 struct i2c_client *client = v4l2_get_subdevdata(sd); in mt9m001_s_power() local
372 struct soc_camera_subdev_desc *ssdd = soc_camera_i2c_to_desc(client); in mt9m001_s_power()
373 struct mt9m001 *mt9m001 = to_mt9m001(client); in mt9m001_s_power()
375 return soc_camera_set_power(&client->dev, ssdd, mt9m001->clk, on); in mt9m001_s_power()
400 struct i2c_client *client = v4l2_get_subdevdata(sd); in mt9m001_s_ctrl() local
407 data = reg_set(client, MT9M001_READ_OPTIONS2, 0x8000); in mt9m001_s_ctrl()
409 data = reg_clear(client, MT9M001_READ_OPTIONS2, 0x8000); in mt9m001_s_ctrl()
421 dev_dbg(&client->dev, "Setting gain %d\n", data); in mt9m001_s_ctrl()
422 data = reg_write(client, MT9M001_GLOBAL_GAIN, data); in mt9m001_s_ctrl()
439 dev_dbg(&client->dev, "Setting gain from %d to %d\n", in mt9m001_s_ctrl()
440 reg_read(client, MT9M001_GLOBAL_GAIN), data); in mt9m001_s_ctrl()
441 data = reg_write(client, MT9M001_GLOBAL_GAIN, data); in mt9m001_s_ctrl()
453 dev_dbg(&client->dev, in mt9m001_s_ctrl()
455 reg_read(client, MT9M001_SHUTTER_WIDTH), shutter); in mt9m001_s_ctrl()
456 if (reg_write(client, MT9M001_SHUTTER_WIDTH, shutter) < 0) in mt9m001_s_ctrl()
463 if (reg_write(client, MT9M001_SHUTTER_WIDTH, mt9m001->total_h) < 0) in mt9m001_s_ctrl()
476 struct i2c_client *client) in mt9m001_video_probe() argument
478 struct mt9m001 *mt9m001 = to_mt9m001(client); in mt9m001_video_probe()
488 data = reg_write(client, MT9M001_CHIP_ENABLE, 1); in mt9m001_video_probe()
489 dev_dbg(&client->dev, "write: %d\n", data); in mt9m001_video_probe()
492 data = reg_read(client, MT9M001_CHIP_VERSION); in mt9m001_video_probe()
504 dev_err(&client->dev, in mt9m001_video_probe()
532 dev_info(&client->dev, "Detected a MT9M001 chip ID %x (%s)\n", data, in mt9m001_video_probe()
535 ret = mt9m001_init(client); in mt9m001_video_probe()
537 dev_err(&client->dev, "Failed to initialise the camera\n"); in mt9m001_video_probe()
557 struct i2c_client *client = v4l2_get_subdevdata(sd); in mt9m001_g_skip_top_lines() local
558 struct mt9m001 *mt9m001 = to_mt9m001(client); in mt9m001_g_skip_top_lines()
582 struct i2c_client *client = v4l2_get_subdevdata(sd); in mt9m001_enum_mbus_code() local
583 struct mt9m001 *mt9m001 = to_mt9m001(client); in mt9m001_enum_mbus_code()
595 struct i2c_client *client = v4l2_get_subdevdata(sd); in mt9m001_g_mbus_config() local
596 struct soc_camera_subdev_desc *ssdd = soc_camera_i2c_to_desc(client); in mt9m001_g_mbus_config()
611 const struct i2c_client *client = v4l2_get_subdevdata(sd); in mt9m001_s_mbus_config() local
612 struct soc_camera_subdev_desc *ssdd = soc_camera_i2c_to_desc(client); in mt9m001_s_mbus_config()
613 struct mt9m001 *mt9m001 = to_mt9m001(client); in mt9m001_s_mbus_config()
652 static int mt9m001_probe(struct i2c_client *client, in mt9m001_probe() argument
656 struct i2c_adapter *adapter = to_i2c_adapter(client->dev.parent); in mt9m001_probe()
657 struct soc_camera_subdev_desc *ssdd = soc_camera_i2c_to_desc(client); in mt9m001_probe()
661 dev_err(&client->dev, "MT9M001 driver needs platform data\n"); in mt9m001_probe()
671 mt9m001 = devm_kzalloc(&client->dev, sizeof(struct mt9m001), GFP_KERNEL); in mt9m001_probe()
675 v4l2_i2c_subdev_init(&mt9m001->subdev, client, &mt9m001_subdev_ops); in mt9m001_probe()
704 mt9m001->clk = v4l2_clk_get(&client->dev, "mclk"); in mt9m001_probe()
710 ret = mt9m001_video_probe(ssdd, client); in mt9m001_probe()
720 static int mt9m001_remove(struct i2c_client *client) in mt9m001_remove() argument
722 struct mt9m001 *mt9m001 = to_mt9m001(client); in mt9m001_remove()
723 struct soc_camera_subdev_desc *ssdd = soc_camera_i2c_to_desc(client); in mt9m001_remove()