Lines Matching refs:sd
40 struct v4l2_subdev sd; member
485 static inline struct vs6624 *to_vs6624(struct v4l2_subdev *sd) in to_vs6624() argument
487 return container_of(sd, struct vs6624, sd); in to_vs6624()
491 return &container_of(ctrl->handler, struct vs6624, hdl)->sd; in to_sd()
495 static int vs6624_read(struct v4l2_subdev *sd, u16 index) in vs6624_read() argument
497 struct i2c_client *client = v4l2_get_subdevdata(sd); in vs6624_read()
509 static int vs6624_write(struct v4l2_subdev *sd, u16 index, in vs6624_write() argument
512 struct i2c_client *client = v4l2_get_subdevdata(sd); in vs6624_write()
522 static int vs6624_writeregs(struct v4l2_subdev *sd, const u16 *regs) in vs6624_writeregs() argument
531 vs6624_write(sd, reg, data); in vs6624_writeregs()
538 struct v4l2_subdev *sd = to_sd(ctrl); in vs6624_s_ctrl() local
542 vs6624_write(sd, VS6624_CONTRAST0, ctrl->val); in vs6624_s_ctrl()
545 vs6624_write(sd, VS6624_SATURATION0, ctrl->val); in vs6624_s_ctrl()
548 vs6624_write(sd, VS6624_HMIRROR0, ctrl->val); in vs6624_s_ctrl()
551 vs6624_write(sd, VS6624_VFLIP0, ctrl->val); in vs6624_s_ctrl()
560 static int vs6624_enum_mbus_fmt(struct v4l2_subdev *sd, unsigned index, in vs6624_enum_mbus_fmt() argument
570 static int vs6624_try_mbus_fmt(struct v4l2_subdev *sd, in vs6624_try_mbus_fmt() argument
596 static int vs6624_s_mbus_fmt(struct v4l2_subdev *sd, in vs6624_s_mbus_fmt() argument
599 struct vs6624 *sensor = to_vs6624(sd); in vs6624_s_mbus_fmt()
602 ret = vs6624_try_mbus_fmt(sd, fmt); in vs6624_s_mbus_fmt()
609 vs6624_write(sd, VS6624_IMG_FMT0, 0x0); in vs6624_s_mbus_fmt()
610 vs6624_write(sd, VS6624_YUV_SETUP, 0x1); in vs6624_s_mbus_fmt()
613 vs6624_write(sd, VS6624_IMG_FMT0, 0x0); in vs6624_s_mbus_fmt()
614 vs6624_write(sd, VS6624_YUV_SETUP, 0x3); in vs6624_s_mbus_fmt()
617 vs6624_write(sd, VS6624_IMG_FMT0, 0x4); in vs6624_s_mbus_fmt()
618 vs6624_write(sd, VS6624_RGB_SETUP, 0x0); in vs6624_s_mbus_fmt()
626 vs6624_write(sd, VS6624_IMAGE_SIZE0, 0x2); in vs6624_s_mbus_fmt()
628 vs6624_write(sd, VS6624_IMAGE_SIZE0, 0x4); in vs6624_s_mbus_fmt()
630 vs6624_write(sd, VS6624_IMAGE_SIZE0, 0x6); in vs6624_s_mbus_fmt()
632 vs6624_write(sd, VS6624_IMAGE_SIZE0, 0x3); in vs6624_s_mbus_fmt()
634 vs6624_write(sd, VS6624_IMAGE_SIZE0, 0x5); in vs6624_s_mbus_fmt()
636 vs6624_write(sd, VS6624_IMAGE_SIZE0, 0x7); in vs6624_s_mbus_fmt()
638 vs6624_write(sd, VS6624_IMAGE_SIZE0, 0x8); in vs6624_s_mbus_fmt()
639 vs6624_write(sd, VS6624_MAN_HSIZE0_MSB, fmt->width >> 8); in vs6624_s_mbus_fmt()
640 vs6624_write(sd, VS6624_MAN_HSIZE0_LSB, fmt->width & 0xFF); in vs6624_s_mbus_fmt()
641 vs6624_write(sd, VS6624_MAN_VSIZE0_MSB, fmt->height >> 8); in vs6624_s_mbus_fmt()
642 vs6624_write(sd, VS6624_MAN_VSIZE0_LSB, fmt->height & 0xFF); in vs6624_s_mbus_fmt()
643 vs6624_write(sd, VS6624_CROP_CTRL0, 0x1); in vs6624_s_mbus_fmt()
651 static int vs6624_g_mbus_fmt(struct v4l2_subdev *sd, in vs6624_g_mbus_fmt() argument
654 struct vs6624 *sensor = to_vs6624(sd); in vs6624_g_mbus_fmt()
660 static int vs6624_g_parm(struct v4l2_subdev *sd, struct v4l2_streamparm *parms) in vs6624_g_parm() argument
662 struct vs6624 *sensor = to_vs6624(sd); in vs6624_g_parm()
675 static int vs6624_s_parm(struct v4l2_subdev *sd, struct v4l2_streamparm *parms) in vs6624_s_parm() argument
677 struct vs6624 *sensor = to_vs6624(sd); in vs6624_s_parm()
694 vs6624_write(sd, VS6624_DISABLE_FR_DAMPER, 0x0); in vs6624_s_parm()
695 vs6624_write(sd, VS6624_FR_NUM_MSB, in vs6624_s_parm()
697 vs6624_write(sd, VS6624_FR_NUM_LSB, in vs6624_s_parm()
699 vs6624_write(sd, VS6624_FR_DEN, in vs6624_s_parm()
704 static int vs6624_s_stream(struct v4l2_subdev *sd, int enable) in vs6624_s_stream() argument
707 vs6624_write(sd, VS6624_USER_CMD, 0x2); in vs6624_s_stream()
709 vs6624_write(sd, VS6624_USER_CMD, 0x4); in vs6624_s_stream()
715 static int vs6624_g_register(struct v4l2_subdev *sd, struct v4l2_dbg_register *reg) in vs6624_g_register() argument
717 reg->val = vs6624_read(sd, reg->reg & 0xffff); in vs6624_g_register()
722 static int vs6624_s_register(struct v4l2_subdev *sd, const struct v4l2_dbg_register *reg) in vs6624_s_register() argument
724 vs6624_write(sd, reg->reg & 0xffff, reg->val & 0xff); in vs6624_s_register()
759 struct v4l2_subdev *sd; in vs6624_probe() local
785 sd = &sensor->sd; in vs6624_probe()
786 v4l2_i2c_subdev_init(sd, client, &vs6624_ops); in vs6624_probe()
788 vs6624_writeregs(sd, vs6624_p1); in vs6624_probe()
789 vs6624_write(sd, VS6624_MICRO_EN, 0x2); in vs6624_probe()
790 vs6624_write(sd, VS6624_DIO_EN, 0x1); in vs6624_probe()
792 vs6624_writeregs(sd, vs6624_p2); in vs6624_probe()
794 vs6624_writeregs(sd, vs6624_default); in vs6624_probe()
795 vs6624_write(sd, VS6624_HSYNC_SETUP, 0xF); in vs6624_probe()
796 vs6624_writeregs(sd, vs6624_run_setup); in vs6624_probe()
801 vs6624_write(sd, VS6624_DISABLE_FR_DAMPER, 0x0); in vs6624_probe()
802 vs6624_write(sd, VS6624_FR_NUM_MSB, in vs6624_probe()
804 vs6624_write(sd, VS6624_FR_NUM_LSB, in vs6624_probe()
806 vs6624_write(sd, VS6624_FR_DEN, in vs6624_probe()
826 sd->ctrl_handler = hdl; in vs6624_probe()
843 struct v4l2_subdev *sd = i2c_get_clientdata(client); in vs6624_remove() local
845 v4l2_device_unregister_subdev(sd); in vs6624_remove()
846 v4l2_ctrl_handler_free(sd->ctrl_handler); in vs6624_remove()