Lines Matching refs:dev

314 	struct device			*dev;  member
333 static int ov10635_read16(struct rdacm20_device *dev, u16 reg) in ov10635_read16() argument
338 ret = i2c_master_send(dev->sensor, buf, 2); in ov10635_read16()
340 dev_dbg(dev->dev, "%s: register 0x%04x write failed (%d)\n", in ov10635_read16()
345 ret = i2c_master_recv(dev->sensor, buf, 2); in ov10635_read16()
347 dev_dbg(dev->dev, "%s: register 0x%04x read failed (%d)\n", in ov10635_read16()
355 static int __ov10635_write(struct rdacm20_device *dev, u16 reg, u8 val) in __ov10635_write() argument
360 dev_dbg(dev->dev, "%s(0x%04x, 0x%02x)\n", __func__, reg, val); in __ov10635_write()
362 ret = i2c_master_send(dev->sensor, buf, 3); in __ov10635_write()
366 static int ov10635_write(struct rdacm20_device *dev, u16 reg, u8 val) in ov10635_write() argument
370 ret = __ov10635_write(dev, reg, val); in ov10635_write()
372 dev_err(dev->dev, "%s: register 0x%04x write failed (%d)\n", in ov10635_write()
378 static int ov10635_set_regs(struct rdacm20_device *dev, in ov10635_set_regs() argument
386 ret = __ov10635_write(dev, regs[i].reg, regs[i].val); in ov10635_set_regs()
388 dev_err(dev->dev, in ov10635_set_regs()
400 struct rdacm20_device *dev = sd_to_rdacm20(sd); in rdacm20_s_stream() local
402 return max9271_set_serial_link(&dev->serializer, enable); in rdacm20_s_stream()
453 static int rdacm20_initialize(struct rdacm20_device *dev) in rdacm20_initialize() argument
458 max9271_wake_up(&dev->serializer); in rdacm20_initialize()
461 ret = max9271_set_serial_link(&dev->serializer, false); in rdacm20_initialize()
469 ret = max9271_configure_i2c(&dev->serializer, in rdacm20_initialize()
480 ret = max9271_enable_gpios(&dev->serializer, MAX9271_GPIO1OUT); in rdacm20_initialize()
484 ret = max9271_clear_gpios(&dev->serializer, MAX9271_GPIO1OUT); in rdacm20_initialize()
489 ret = max9271_configure_gmsl_link(&dev->serializer); in rdacm20_initialize()
493 ret = max9271_verify_id(&dev->serializer); in rdacm20_initialize()
497 ret = max9271_set_address(&dev->serializer, dev->addrs[0]); in rdacm20_initialize()
500 dev->serializer.client->addr = dev->addrs[0]; in rdacm20_initialize()
507 ret = max9271_set_gpios(&dev->serializer, MAX9271_GPIO1OUT); in rdacm20_initialize()
513 ret = ov10635_read16(dev, OV10635_PID); in rdacm20_initialize()
518 dev_err(dev->dev, "OV10635 ID read failed (%d)\n", in rdacm20_initialize()
527 dev_err(dev->dev, "OV10635 ID mismatch (0x%04x)\n", in rdacm20_initialize()
533 ret = ov10635_write(dev, OV10635_SC_CMMN_SCCB_ID, in rdacm20_initialize()
534 (dev->addrs[1] << 1) | in rdacm20_initialize()
537 dev_err(dev->dev, in rdacm20_initialize()
541 dev->sensor->addr = dev->addrs[1]; in rdacm20_initialize()
545 ret = ov10635_set_regs(dev, ov10635_regs_wizard, in rdacm20_initialize()
550 dev_info(dev->dev, "Identified RDACM20 camera module\n"); in rdacm20_initialize()
564 return max9271_set_high_threshold(&dev->serializer, true); in rdacm20_initialize()
569 struct rdacm20_device *dev; in rdacm20_probe() local
572 dev = devm_kzalloc(&client->dev, sizeof(*dev), GFP_KERNEL); in rdacm20_probe()
573 if (!dev) in rdacm20_probe()
575 dev->dev = &client->dev; in rdacm20_probe()
576 dev->serializer.client = client; in rdacm20_probe()
578 ret = of_property_read_u32_array(client->dev.of_node, "reg", in rdacm20_probe()
579 dev->addrs, 2); in rdacm20_probe()
581 dev_err(dev->dev, "Invalid DT reg property: %d\n", ret); in rdacm20_probe()
586 dev->sensor = i2c_new_dummy_device(client->adapter, in rdacm20_probe()
588 if (IS_ERR(dev->sensor)) { in rdacm20_probe()
589 ret = PTR_ERR(dev->sensor); in rdacm20_probe()
594 ret = rdacm20_initialize(dev); in rdacm20_probe()
599 v4l2_i2c_subdev_init(&dev->sd, client, &rdacm20_subdev_ops); in rdacm20_probe()
600 dev->sd.flags |= V4L2_SUBDEV_FL_HAS_DEVNODE; in rdacm20_probe()
602 v4l2_ctrl_handler_init(&dev->ctrls, 1); in rdacm20_probe()
603 v4l2_ctrl_new_std(&dev->ctrls, NULL, V4L2_CID_PIXEL_RATE, in rdacm20_probe()
606 dev->sd.ctrl_handler = &dev->ctrls; in rdacm20_probe()
608 ret = dev->ctrls.error; in rdacm20_probe()
612 dev->pad.flags = MEDIA_PAD_FL_SOURCE; in rdacm20_probe()
613 dev->sd.entity.function = MEDIA_ENT_F_CAM_SENSOR; in rdacm20_probe()
614 ret = media_entity_pads_init(&dev->sd.entity, 1, &dev->pad); in rdacm20_probe()
618 ret = v4l2_async_register_subdev(&dev->sd); in rdacm20_probe()
625 v4l2_ctrl_handler_free(&dev->ctrls); in rdacm20_probe()
627 media_entity_cleanup(&dev->sd.entity); in rdacm20_probe()
628 if (dev->sensor) in rdacm20_probe()
629 i2c_unregister_device(dev->sensor); in rdacm20_probe()
631 dev_err(&client->dev, "probe failed\n"); in rdacm20_probe()
638 struct rdacm20_device *dev = i2c_to_rdacm20(client); in rdacm20_remove() local
640 v4l2_async_unregister_subdev(&dev->sd); in rdacm20_remove()
641 v4l2_ctrl_handler_free(&dev->ctrls); in rdacm20_remove()
642 media_entity_cleanup(&dev->sd.entity); in rdacm20_remove()
643 i2c_unregister_device(dev->sensor); in rdacm20_remove()
648 struct rdacm20_device *dev = i2c_to_rdacm20(client); in rdacm20_shutdown() local
651 rdacm20_s_stream(&dev->sd, 0); in rdacm20_shutdown()