• Home
  • Raw
  • Download

Lines Matching refs:client

58 #define mt9t112_reg_write(ret, client, a, b) \  argument
59 ECHECKER(ret, __mt9t112_reg_write(client, a, b))
60 #define mt9t112_mcu_write(ret, client, a, b) \ argument
61 ECHECKER(ret, __mt9t112_mcu_write(client, a, b))
63 #define mt9t112_reg_mask_set(ret, client, a, b, c) \ argument
64 ECHECKER(ret, __mt9t112_reg_mask_set(client, a, b, c))
65 #define mt9t112_mcu_mask_set(ret, client, a, b, c) \ argument
66 ECHECKER(ret, __mt9t112_mcu_mask_set(client, a, b, c))
68 #define mt9t112_reg_read(ret, client, a) \ argument
69 ECHECKER(ret, __mt9t112_reg_read(client, a))
91 struct i2c_client *client; member
143 static struct mt9t112_priv *to_mt9t112(const struct i2c_client *client) in to_mt9t112() argument
145 return container_of(i2c_get_clientdata(client), in to_mt9t112()
150 static int __mt9t112_reg_read(const struct i2c_client *client, u16 command) in __mt9t112_reg_read() argument
158 msg[0].addr = client->addr; in __mt9t112_reg_read()
163 msg[1].addr = client->addr; in __mt9t112_reg_read()
173 ret = i2c_transfer(client->adapter, msg, 2); in __mt9t112_reg_read()
181 static int __mt9t112_reg_write(const struct i2c_client *client, in __mt9t112_reg_write() argument
194 msg.addr = client->addr; in __mt9t112_reg_write()
203 ret = i2c_transfer(client->adapter, &msg, 1); in __mt9t112_reg_write()
210 static int __mt9t112_reg_mask_set(const struct i2c_client *client, in __mt9t112_reg_mask_set() argument
215 int val = __mt9t112_reg_read(client, command); in __mt9t112_reg_mask_set()
222 return __mt9t112_reg_write(client, command, val); in __mt9t112_reg_mask_set()
226 static int __mt9t112_mcu_read(const struct i2c_client *client, u16 command) in __mt9t112_mcu_read() argument
230 ret = __mt9t112_reg_write(client, 0x098E, command); in __mt9t112_mcu_read()
234 return __mt9t112_reg_read(client, 0x0990); in __mt9t112_mcu_read()
237 static int __mt9t112_mcu_write(const struct i2c_client *client, in __mt9t112_mcu_write() argument
242 ret = __mt9t112_reg_write(client, 0x098E, command); in __mt9t112_mcu_write()
246 return __mt9t112_reg_write(client, 0x0990, data); in __mt9t112_mcu_write()
249 static int __mt9t112_mcu_mask_set(const struct i2c_client *client, in __mt9t112_mcu_mask_set() argument
254 int val = __mt9t112_mcu_read(client, command); in __mt9t112_mcu_mask_set()
261 return __mt9t112_mcu_write(client, command, val); in __mt9t112_mcu_mask_set()
264 static int mt9t112_reset(const struct i2c_client *client) in mt9t112_reset() argument
268 mt9t112_reg_mask_set(ret, client, 0x001a, 0x0001, 0x0001); in mt9t112_reset()
270 mt9t112_reg_mask_set(ret, client, 0x001a, 0x0001, 0x0000); in mt9t112_reset()
279 static int mt9t112_clock_info(const struct i2c_client *client, u32 ext) in mt9t112_clock_info() argument
287 mt9t112_reg_read(n, client, 0x0012); in mt9t112_clock_info()
294 mt9t112_reg_read(n, client, 0x002a); in mt9t112_clock_info()
301 mt9t112_reg_read(n, client, 0x002c); in mt9t112_clock_info()
304 mt9t112_reg_read(n, client, 0x0010); in mt9t112_clock_info()
309 dev_dbg(&client->dev, "EXTCLK : %10u K %s\n", ext, enable); in mt9t112_clock_info()
313 dev_dbg(&client->dev, "VCO : %10u K %s\n", vco, enable); in mt9t112_clock_info()
317 dev_dbg(&client->dev, "PIXCLK : %10u K %s\n", clk, enable); in mt9t112_clock_info()
321 dev_dbg(&client->dev, "MIPICLK : %10u K %s\n", clk, enable); in mt9t112_clock_info()
325 dev_dbg(&client->dev, "MCU CLK : %10u K %s\n", clk, enable); in mt9t112_clock_info()
329 dev_dbg(&client->dev, "SOC CLK : %10u K %s\n", clk, enable); in mt9t112_clock_info()
333 dev_dbg(&client->dev, "Sensor CLK : %10u K %s\n", clk, enable); in mt9t112_clock_info()
336 dev_dbg(&client->dev, "External sensor : %10u K\n", clk); in mt9t112_clock_info()
340 dev_dbg(&client->dev, "PFD : %10u K %s\n", clk, enable); in mt9t112_clock_info()
352 static int mt9t112_set_a_frame_size(const struct i2c_client *client, in mt9t112_set_a_frame_size() argument
361 mt9t112_mcu_write(ret, client, VAR(26, 0), width); in mt9t112_set_a_frame_size()
362 mt9t112_mcu_write(ret, client, VAR(26, 2), height); in mt9t112_set_a_frame_size()
365 mt9t112_mcu_write(ret, client, VAR(18, 43), 8 + width); in mt9t112_set_a_frame_size()
366 mt9t112_mcu_write(ret, client, VAR(18, 45), 8 + height); in mt9t112_set_a_frame_size()
369 mt9t112_mcu_write(ret, client, VAR(18, 2), 4 + hstart); in mt9t112_set_a_frame_size()
370 mt9t112_mcu_write(ret, client, VAR(18, 4), 4 + wstart); in mt9t112_set_a_frame_size()
373 mt9t112_mcu_write(ret, client, VAR(18, 6), 11 + height + hstart); in mt9t112_set_a_frame_size()
374 mt9t112_mcu_write(ret, client, VAR(18, 8), 11 + width + wstart); in mt9t112_set_a_frame_size()
376 mt9t112_mcu_write(ret, client, VAR8(1, 0), 0x06); in mt9t112_set_a_frame_size()
381 static int mt9t112_set_pll_dividers(const struct i2c_client *client, in mt9t112_set_pll_dividers() argument
393 mt9t112_reg_mask_set(ret, client, 0x0010, 0x3fff, val); in mt9t112_set_pll_dividers()
399 mt9t112_reg_mask_set(ret, client, 0x0012, 0x0fff, val); in mt9t112_set_pll_dividers()
406 mt9t112_reg_mask_set(ret, client, 0x002A, 0x7fff, val); in mt9t112_set_pll_dividers()
411 mt9t112_reg_mask_set(ret, client, 0x002C, 0x100f, val); in mt9t112_set_pll_dividers()
416 static int mt9t112_init_pll(const struct i2c_client *client) in mt9t112_init_pll() argument
418 struct mt9t112_priv *priv = to_mt9t112(client); in mt9t112_init_pll()
421 mt9t112_reg_mask_set(ret, client, 0x0014, 0x003, 0x0001); in mt9t112_init_pll()
424 mt9t112_reg_write(ret, client, 0x0014, 0x2145); in mt9t112_init_pll()
427 mt9t112_set_pll_dividers(client, in mt9t112_init_pll()
444 mt9t112_reg_write(ret, client, 0x0014, 0x2525); in mt9t112_init_pll()
445 mt9t112_reg_write(ret, client, 0x0014, 0x2527); in mt9t112_init_pll()
446 mt9t112_reg_write(ret, client, 0x0014, 0x3427); in mt9t112_init_pll()
447 mt9t112_reg_write(ret, client, 0x0014, 0x3027); in mt9t112_init_pll()
456 mt9t112_reg_write(ret, client, 0x0014, 0x3046); in mt9t112_init_pll()
457 mt9t112_reg_write(ret, client, 0x0016, 0x0400); /* JPEG initialization workaround */ in mt9t112_init_pll()
458 mt9t112_reg_write(ret, client, 0x0022, 0x0190); in mt9t112_init_pll()
459 mt9t112_reg_write(ret, client, 0x3B84, 0x0212); in mt9t112_init_pll()
462 mt9t112_reg_write(ret, client, 0x002E, 0x0500); in mt9t112_init_pll()
464 mt9t112_reg_mask_set(ret, client, 0x0018, 0x0002, 0x0002); in mt9t112_init_pll()
465 mt9t112_reg_mask_set(ret, client, 0x3B82, 0x0004, 0x0004); in mt9t112_init_pll()
468 mt9t112_reg_mask_set(ret, client, 0x0018, 0x0004, 0x0004); in mt9t112_init_pll()
471 mt9t112_reg_mask_set(ret, client, 0x0018, 0x0001, 0); in mt9t112_init_pll()
479 mt9t112_reg_write(ret, client, 0x0614, 0x0001); in mt9t112_init_pll()
481 mt9t112_reg_write(ret, client, 0x0614, 0x0001); in mt9t112_init_pll()
483 mt9t112_reg_write(ret, client, 0x0614, 0x0001); in mt9t112_init_pll()
485 mt9t112_reg_write(ret, client, 0x0614, 0x0001); in mt9t112_init_pll()
487 mt9t112_reg_write(ret, client, 0x0614, 0x0001); in mt9t112_init_pll()
489 mt9t112_reg_write(ret, client, 0x0614, 0x0001); in mt9t112_init_pll()
494 mt9t112_reg_read(data, client, 0x0018); in mt9t112_init_pll()
504 static int mt9t112_init_setting(const struct i2c_client *client) in mt9t112_init_setting() argument
510 mt9t112_mcu_mask_set(ret, client, VAR(26, 160), 0x0040, 0x0000); in mt9t112_init_setting()
513 mt9t112_mcu_write(ret, client, VAR(18, 12), 0x0024); in mt9t112_init_setting()
516 mt9t112_mcu_write(ret, client, VAR(18, 15), 0x00CC); in mt9t112_init_setting()
519 mt9t112_mcu_write(ret, client, VAR(18, 17), 0x01f1); in mt9t112_init_setting()
522 mt9t112_mcu_write(ret, client, VAR(18, 19), 0x00fF); in mt9t112_init_setting()
525 mt9t112_mcu_write(ret, client, VAR(18, 29), 0x032D); in mt9t112_init_setting()
528 mt9t112_mcu_write(ret, client, VAR(18, 31), 0x073a); in mt9t112_init_setting()
531 mt9t112_mcu_write(ret, client, VAR(18, 37), 0x07d0); in mt9t112_init_setting()
534 mt9t112_mcu_mask_set(ret, client, VAR(27, 160), 0x0040, 0x0000); in mt9t112_init_setting()
537 mt9t112_mcu_write(ret, client, VAR(18, 74), 0x004); in mt9t112_init_setting()
540 mt9t112_mcu_write(ret, client, VAR(18, 76), 0x004); in mt9t112_init_setting()
543 mt9t112_mcu_write(ret, client, VAR(18, 78), 0x60B); in mt9t112_init_setting()
546 mt9t112_mcu_write(ret, client, VAR(18, 80), 0x80B); in mt9t112_init_setting()
549 mt9t112_mcu_write(ret, client, VAR(18, 87), 0x008C); in mt9t112_init_setting()
552 mt9t112_mcu_write(ret, client, VAR(18, 89), 0x01F1); in mt9t112_init_setting()
555 mt9t112_mcu_write(ret, client, VAR(18, 91), 0x00FF); in mt9t112_init_setting()
558 mt9t112_mcu_write(ret, client, VAR(18, 101), 0x0668); in mt9t112_init_setting()
561 mt9t112_mcu_write(ret, client, VAR(18, 103), 0x0AF0); in mt9t112_init_setting()
564 mt9t112_mcu_write(ret, client, VAR(18, 109), 0x0AF0); in mt9t112_init_setting()
575 mt9t112_mcu_write(ret, client, VAR8(8, 5), 0x01); in mt9t112_init_setting()
578 mt9t112_mcu_write(ret, client, VAR(27, 17), 0x0003); in mt9t112_init_setting()
581 mt9t112_mcu_write(ret, client, VAR(26, 17), 0x0003); in mt9t112_init_setting()
588 mt9t112_mcu_write(ret, client, VAR8(18, 165), 0x25); in mt9t112_init_setting()
591 mt9t112_mcu_write(ret, client, VAR8(18, 166), 0x28); in mt9t112_init_setting()
594 mt9t112_mcu_write(ret, client, VAR8(18, 167), 0x2C); in mt9t112_init_setting()
597 mt9t112_mcu_write(ret, client, VAR8(18, 168), 0x2F); in mt9t112_init_setting()
600 mt9t112_mcu_write(ret, client, VAR8(18, 68), 0xBA); in mt9t112_init_setting()
604 mt9t112_mcu_write(ret, client, VAR8(18, 303), 0x00); in mt9t112_init_setting()
607 mt9t112_mcu_write(ret, client, VAR8(18, 69), 0x9B); in mt9t112_init_setting()
611 mt9t112_mcu_write(ret, client, VAR8(18, 301), 0x00); in mt9t112_init_setting()
614 mt9t112_mcu_write(ret, client, VAR8(18, 140), 0x82); in mt9t112_init_setting()
618 mt9t112_mcu_write(ret, client, VAR8(18, 304), 0x00); in mt9t112_init_setting()
621 mt9t112_mcu_write(ret, client, VAR8(18, 141), 0x6D); in mt9t112_init_setting()
625 mt9t112_mcu_write(ret, client, VAR8(18, 302), 0x00); in mt9t112_init_setting()
628 mt9t112_mcu_write(ret, client, VAR8(8, 2), 0x10); in mt9t112_init_setting()
631 mt9t112_mcu_write(ret, client, VAR8(8, 9), 0x02); in mt9t112_init_setting()
634 mt9t112_mcu_write(ret, client, VAR8(8, 10), 0x03); in mt9t112_init_setting()
637 mt9t112_mcu_write(ret, client, VAR8(8, 12), 0x0A); in mt9t112_init_setting()
640 mt9t112_mcu_write(ret, client, VAR(18, 70), 0x0014); in mt9t112_init_setting()
643 mt9t112_mcu_write(ret, client, VAR(18, 142), 0x0014); in mt9t112_init_setting()
649 mt9t112_mcu_write(ret, client, VAR8(18, 0x0044), 133); in mt9t112_init_setting()
650 mt9t112_mcu_write(ret, client, VAR8(18, 0x0045), 110); in mt9t112_init_setting()
651 mt9t112_mcu_write(ret, client, VAR8(18, 0x008c), 130); in mt9t112_init_setting()
652 mt9t112_mcu_write(ret, client, VAR8(18, 0x008d), 108); in mt9t112_init_setting()
654 mt9t112_mcu_write(ret, client, VAR8(18, 0x00A5), 27); in mt9t112_init_setting()
655 mt9t112_mcu_write(ret, client, VAR8(18, 0x00a6), 30); in mt9t112_init_setting()
656 mt9t112_mcu_write(ret, client, VAR8(18, 0x00a7), 32); in mt9t112_init_setting()
657 mt9t112_mcu_write(ret, client, VAR8(18, 0x00a8), 35); in mt9t112_init_setting()
662 static int mt9t112_auto_focus_setting(const struct i2c_client *client) in mt9t112_auto_focus_setting() argument
666 mt9t112_mcu_write(ret, client, VAR(12, 13), 0x000F); in mt9t112_auto_focus_setting()
667 mt9t112_mcu_write(ret, client, VAR(12, 23), 0x0F0F); in mt9t112_auto_focus_setting()
668 mt9t112_mcu_write(ret, client, VAR8(1, 0), 0x06); in mt9t112_auto_focus_setting()
670 mt9t112_reg_write(ret, client, 0x0614, 0x0000); in mt9t112_auto_focus_setting()
672 mt9t112_mcu_write(ret, client, VAR8(1, 0), 0x05); in mt9t112_auto_focus_setting()
673 mt9t112_mcu_write(ret, client, VAR8(12, 2), 0x02); in mt9t112_auto_focus_setting()
674 mt9t112_mcu_write(ret, client, VAR(12, 3), 0x0002); in mt9t112_auto_focus_setting()
675 mt9t112_mcu_write(ret, client, VAR(17, 3), 0x8001); in mt9t112_auto_focus_setting()
676 mt9t112_mcu_write(ret, client, VAR(17, 11), 0x0025); in mt9t112_auto_focus_setting()
677 mt9t112_mcu_write(ret, client, VAR(17, 13), 0x0193); in mt9t112_auto_focus_setting()
678 mt9t112_mcu_write(ret, client, VAR8(17, 33), 0x18); in mt9t112_auto_focus_setting()
679 mt9t112_mcu_write(ret, client, VAR8(1, 0), 0x05); in mt9t112_auto_focus_setting()
684 static int mt9t112_auto_focus_trigger(const struct i2c_client *client) in mt9t112_auto_focus_trigger() argument
688 mt9t112_mcu_write(ret, client, VAR8(12, 25), 0x01); in mt9t112_auto_focus_trigger()
693 static int mt9t112_init_camera(const struct i2c_client *client) in mt9t112_init_camera() argument
697 ECHECKER(ret, mt9t112_reset(client)); in mt9t112_init_camera()
699 ECHECKER(ret, mt9t112_init_pll(client)); in mt9t112_init_camera()
701 ECHECKER(ret, mt9t112_init_setting(client)); in mt9t112_init_camera()
703 ECHECKER(ret, mt9t112_auto_focus_setting(client)); in mt9t112_init_camera()
705 mt9t112_reg_mask_set(ret, client, 0x0018, 0x0004, 0); in mt9t112_init_camera()
708 mt9t112_reg_write(ret, client, 0x3084, 0x2409); in mt9t112_init_camera()
709 mt9t112_reg_write(ret, client, 0x3092, 0x0A49); in mt9t112_init_camera()
710 mt9t112_reg_write(ret, client, 0x3094, 0x4949); in mt9t112_init_camera()
711 mt9t112_reg_write(ret, client, 0x3096, 0x4950); in mt9t112_init_camera()
718 mt9t112_mcu_write(ret, client, VAR(26, 160), 0x0A2E); in mt9t112_init_camera()
719 mt9t112_mcu_write(ret, client, VAR(27, 160), 0x0A2E); in mt9t112_init_camera()
723 mt9t112_mcu_write(ret, client, VAR(27, 144), 0x0CB4); in mt9t112_init_camera()
727 mt9t112_mcu_write(ret, client, VAR8(27, 142), 0x01); in mt9t112_init_camera()
730 mt9t112_reg_write(ret, client, 0x316C, 0x350F); in mt9t112_init_camera()
733 mt9t112_reg_write(ret, client, 0x1E, 0x777); in mt9t112_init_camera()
744 struct i2c_client *client = v4l2_get_subdevdata(sd); in mt9t112_g_chip_ident() local
745 struct mt9t112_priv *priv = to_mt9t112(client); in mt9t112_g_chip_ident()
757 struct i2c_client *client = v4l2_get_subdevdata(sd); in mt9t112_g_register() local
761 mt9t112_reg_read(ret, client, reg->reg); in mt9t112_g_register()
771 struct i2c_client *client = v4l2_get_subdevdata(sd); in mt9t112_s_register() local
774 mt9t112_reg_write(ret, client, reg->reg, reg->val); in mt9t112_s_register()
782 struct i2c_client *client = v4l2_get_subdevdata(sd); in mt9t112_s_power() local
783 struct soc_camera_subdev_desc *ssdd = soc_camera_i2c_to_desc(client); in mt9t112_s_power()
785 return soc_camera_set_power(&client->dev, ssdd, on); in mt9t112_s_power()
803 struct i2c_client *client = v4l2_get_subdevdata(sd); in mt9t112_s_stream() local
804 struct mt9t112_priv *priv = to_mt9t112(client); in mt9t112_s_stream()
817 mt9t112_set_a_frame_size(client, VGA_WIDTH, VGA_HEIGHT); in mt9t112_s_stream()
824 ECHECKER(ret, mt9t112_init_camera(client)); in mt9t112_s_stream()
827 mt9t112_reg_write(ret, client, 0x3C20, param); in mt9t112_s_stream()
834 mt9t112_mcu_write(ret, client, VAR(26, 7), priv->format->fmt); in mt9t112_s_stream()
835 mt9t112_mcu_write(ret, client, VAR(26, 9), priv->format->order); in mt9t112_s_stream()
836 mt9t112_mcu_write(ret, client, VAR8(1, 0), 0x06); in mt9t112_s_stream()
838 mt9t112_set_a_frame_size(client, in mt9t112_s_stream()
842 ECHECKER(ret, mt9t112_auto_focus_trigger(client)); in mt9t112_s_stream()
844 dev_dbg(&client->dev, "format : %d\n", priv->format->code); in mt9t112_s_stream()
845 dev_dbg(&client->dev, "size : %d x %d\n", in mt9t112_s_stream()
849 CLOCK_INFO(client, EXT_CLOCK); in mt9t112_s_stream()
902 struct i2c_client *client = v4l2_get_subdevdata(sd); in mt9t112_g_crop() local
903 struct mt9t112_priv *priv = to_mt9t112(client); in mt9t112_g_crop()
913 struct i2c_client *client = v4l2_get_subdevdata(sd); in mt9t112_s_crop() local
914 struct mt9t112_priv *priv = to_mt9t112(client); in mt9t112_s_crop()
923 struct i2c_client *client = v4l2_get_subdevdata(sd); in mt9t112_g_fmt() local
924 struct mt9t112_priv *priv = to_mt9t112(client); in mt9t112_g_fmt()
938 struct i2c_client *client = v4l2_get_subdevdata(sd); in mt9t112_s_fmt() local
939 struct mt9t112_priv *priv = to_mt9t112(client); in mt9t112_s_fmt()
959 struct i2c_client *client = v4l2_get_subdevdata(sd); in mt9t112_try_fmt() local
960 struct mt9t112_priv *priv = to_mt9t112(client); in mt9t112_try_fmt()
985 struct i2c_client *client = v4l2_get_subdevdata(sd); in mt9t112_enum_fmt() local
986 struct mt9t112_priv *priv = to_mt9t112(client); in mt9t112_enum_fmt()
999 struct i2c_client *client = v4l2_get_subdevdata(sd); in mt9t112_g_mbus_config() local
1000 struct soc_camera_subdev_desc *ssdd = soc_camera_i2c_to_desc(client); in mt9t112_g_mbus_config()
1014 struct i2c_client *client = v4l2_get_subdevdata(sd); in mt9t112_s_mbus_config() local
1015 struct soc_camera_subdev_desc *ssdd = soc_camera_i2c_to_desc(client); in mt9t112_s_mbus_config()
1016 struct mt9t112_priv *priv = to_mt9t112(client); in mt9t112_s_mbus_config()
1045 static int mt9t112_camera_probe(struct i2c_client *client) in mt9t112_camera_probe() argument
1047 struct mt9t112_priv *priv = to_mt9t112(client); in mt9t112_camera_probe()
1059 mt9t112_reg_read(chipid, client, 0x0000); in mt9t112_camera_probe()
1073 dev_err(&client->dev, "Product ID error %04x\n", chipid); in mt9t112_camera_probe()
1078 dev_info(&client->dev, "%s chip ID %04x\n", devname, chipid); in mt9t112_camera_probe()
1085 static int mt9t112_probe(struct i2c_client *client, in mt9t112_probe() argument
1089 struct soc_camera_subdev_desc *ssdd = soc_camera_i2c_to_desc(client); in mt9t112_probe()
1099 dev_err(&client->dev, "mt9t112: missing platform data!\n"); in mt9t112_probe()
1103 priv = devm_kzalloc(&client->dev, sizeof(*priv), GFP_KERNEL); in mt9t112_probe()
1109 v4l2_i2c_subdev_init(&priv->subdev, client, &mt9t112_subdev_ops); in mt9t112_probe()
1111 ret = mt9t112_camera_probe(client); in mt9t112_probe()
1121 static int mt9t112_remove(struct i2c_client *client) in mt9t112_remove() argument