Lines Matching refs:client
400 static int ov9740_reg_read(struct i2c_client *client, u16 reg, u8 *val) in ov9740_reg_read() argument
405 .addr = client->addr, in ov9740_reg_read()
411 .addr = client->addr, in ov9740_reg_read()
420 ret = i2c_transfer(client->adapter, msg, 2); in ov9740_reg_read()
422 dev_err(&client->dev, "Failed reading register 0x%04x!\n", reg); in ov9740_reg_read()
430 static int ov9740_reg_write(struct i2c_client *client, u16 reg, u8 val) in ov9740_reg_write() argument
444 msg.addr = client->addr; in ov9740_reg_write()
449 ret = i2c_transfer(client->adapter, &msg, 1); in ov9740_reg_write()
451 dev_err(&client->dev, "Failed writing register 0x%04x!\n", reg); in ov9740_reg_write()
460 static int ov9740_reg_rmw(struct i2c_client *client, u16 reg, u8 set, u8 unset) in ov9740_reg_rmw() argument
465 ret = ov9740_reg_read(client, reg, &val); in ov9740_reg_rmw()
467 dev_err(&client->dev, in ov9740_reg_rmw()
476 ret = ov9740_reg_write(client, reg, val); in ov9740_reg_rmw()
478 dev_err(&client->dev, in ov9740_reg_rmw()
487 static int ov9740_reg_write_array(struct i2c_client *client, in ov9740_reg_write_array() argument
495 ret = ov9740_reg_write(client, in ov9740_reg_write_array()
507 struct i2c_client *client = v4l2_get_subdevdata(sd); in ov9740_s_stream() local
513 ret = ov9740_reg_rmw(client, OV9740_IMAGE_ORT, 0x2, 0); in ov9740_s_stream()
515 ret = ov9740_reg_rmw(client, OV9740_IMAGE_ORT, 0, 0x2); in ov9740_s_stream()
520 ret = ov9740_reg_rmw(client, OV9740_IMAGE_ORT, 0x1, 0); in ov9740_s_stream()
522 ret = ov9740_reg_rmw(client, OV9740_IMAGE_ORT, 0, 0x1); in ov9740_s_stream()
527 dev_dbg(&client->dev, "Enabling Streaming\n"); in ov9740_s_stream()
529 ret = ov9740_reg_write(client, OV9740_MODE_SELECT, 0x01); in ov9740_s_stream()
532 dev_dbg(&client->dev, "Disabling Streaming\n"); in ov9740_s_stream()
534 ret = ov9740_reg_write(client, OV9740_SOFTWARE_RESET, 0x01); in ov9740_s_stream()
537 ret = ov9740_reg_write(client, OV9740_MODE_SELECT, in ov9740_s_stream()
561 static int ov9740_set_res(struct i2c_client *client, u32 width, u32 height) in ov9740_set_res() argument
596 ret = ov9740_reg_write(client, OV9740_X_ADDR_START_HI, x_start >> 8); in ov9740_set_res()
599 ret = ov9740_reg_write(client, OV9740_X_ADDR_START_LO, x_start & 0xff); in ov9740_set_res()
602 ret = ov9740_reg_write(client, OV9740_Y_ADDR_START_HI, y_start >> 8); in ov9740_set_res()
605 ret = ov9740_reg_write(client, OV9740_Y_ADDR_START_LO, y_start & 0xff); in ov9740_set_res()
609 ret = ov9740_reg_write(client, OV9740_X_ADDR_END_HI, x_end >> 8); in ov9740_set_res()
612 ret = ov9740_reg_write(client, OV9740_X_ADDR_END_LO, x_end & 0xff); in ov9740_set_res()
615 ret = ov9740_reg_write(client, OV9740_Y_ADDR_END_HI, y_end >> 8); in ov9740_set_res()
618 ret = ov9740_reg_write(client, OV9740_Y_ADDR_END_LO, y_end & 0xff); in ov9740_set_res()
622 ret = ov9740_reg_write(client, OV9740_X_OUTPUT_SIZE_HI, width >> 8); in ov9740_set_res()
625 ret = ov9740_reg_write(client, OV9740_X_OUTPUT_SIZE_LO, width & 0xff); in ov9740_set_res()
628 ret = ov9740_reg_write(client, OV9740_Y_OUTPUT_SIZE_HI, height >> 8); in ov9740_set_res()
631 ret = ov9740_reg_write(client, OV9740_Y_OUTPUT_SIZE_LO, height & 0xff); in ov9740_set_res()
635 ret = ov9740_reg_write(client, OV9740_ISP_CTRL1E, scale_input_x >> 8); in ov9740_set_res()
638 ret = ov9740_reg_write(client, OV9740_ISP_CTRL1F, scale_input_x & 0xff); in ov9740_set_res()
641 ret = ov9740_reg_write(client, OV9740_ISP_CTRL20, scale_input_y >> 8); in ov9740_set_res()
644 ret = ov9740_reg_write(client, OV9740_ISP_CTRL21, scale_input_y & 0xff); in ov9740_set_res()
648 ret = ov9740_reg_write(client, OV9740_VFIFO_READ_START_HI, in ov9740_set_res()
652 ret = ov9740_reg_write(client, OV9740_VFIFO_READ_START_LO, in ov9740_set_res()
657 ret = ov9740_reg_write(client, OV9740_ISP_CTRL00, 0xff); in ov9740_set_res()
660 ret = ov9740_reg_write(client, OV9740_ISP_CTRL01, 0xef | in ov9740_set_res()
664 ret = ov9740_reg_write(client, OV9740_ISP_CTRL03, 0xff); in ov9740_set_res()
674 struct i2c_client *client = v4l2_get_subdevdata(sd); in ov9740_s_fmt() local
690 ret = ov9740_reg_write_array(client, ov9740_defaults, in ov9740_s_fmt()
695 ret = ov9740_set_res(client, mf->width, mf->height); in ov9740_s_fmt()
787 struct i2c_client *client = v4l2_get_subdevdata(sd); in ov9740_s_power() local
788 struct soc_camera_subdev_desc *ssdd = soc_camera_i2c_to_desc(client); in ov9740_s_power()
793 ret = soc_camera_power_on(&client->dev, ssdd, priv->clk); in ov9740_s_power()
807 soc_camera_power_off(&client->dev, ssdd, priv->clk); in ov9740_s_power()
817 struct i2c_client *client = v4l2_get_subdevdata(sd); in ov9740_get_register() local
826 ret = ov9740_reg_read(client, reg->reg, &val); in ov9740_get_register()
838 struct i2c_client *client = v4l2_get_subdevdata(sd); in ov9740_set_register() local
843 return ov9740_reg_write(client, reg->reg, reg->val); in ov9740_set_register()
847 static int ov9740_video_probe(struct i2c_client *client) in ov9740_video_probe() argument
849 struct v4l2_subdev *sd = i2c_get_clientdata(client); in ov9740_video_probe()
861 ret = ov9740_reg_read(client, OV9740_MODEL_ID_HI, &modelhi); in ov9740_video_probe()
865 ret = ov9740_reg_read(client, OV9740_MODEL_ID_LO, &modello); in ov9740_video_probe()
871 ret = ov9740_reg_read(client, OV9740_REVISION_NUMBER, &priv->revision); in ov9740_video_probe()
875 ret = ov9740_reg_read(client, OV9740_MANUFACTURER_ID, &priv->manid); in ov9740_video_probe()
879 ret = ov9740_reg_read(client, OV9740_SMIA_VERSION, &priv->smiaver); in ov9740_video_probe()
888 dev_info(&client->dev, "ov9740 Model ID 0x%04x, Revision 0x%02x, " in ov9740_video_probe()
903 struct i2c_client *client = v4l2_get_subdevdata(sd); in ov9740_g_mbus_config() local
904 struct soc_camera_subdev_desc *ssdd = soc_camera_i2c_to_desc(client); in ov9740_g_mbus_config()
948 static int ov9740_probe(struct i2c_client *client, in ov9740_probe() argument
952 struct soc_camera_subdev_desc *ssdd = soc_camera_i2c_to_desc(client); in ov9740_probe()
956 dev_err(&client->dev, "Missing platform_data for driver\n"); in ov9740_probe()
960 priv = devm_kzalloc(&client->dev, sizeof(struct ov9740_priv), GFP_KERNEL); in ov9740_probe()
962 dev_err(&client->dev, "Failed to allocate private data!\n"); in ov9740_probe()
966 v4l2_i2c_subdev_init(&priv->subdev, client, &ov9740_subdev_ops); in ov9740_probe()
976 priv->clk = v4l2_clk_get(&client->dev, "mclk"); in ov9740_probe()
982 ret = ov9740_video_probe(client); in ov9740_probe()
992 static int ov9740_remove(struct i2c_client *client) in ov9740_remove() argument
994 struct ov9740_priv *priv = i2c_get_clientdata(client); in ov9740_remove()