Lines Matching refs:client

274  * @client: i2c driver client structure
278 static int gc0310_write_reg_array(struct i2c_client *client,
284 err = i2c_smbus_write_byte_data(client, reglist[i].reg, reglist[i].val);
286 dev_err(&client->dev, "write error: wrote 0x%x to offset 0x%x error %d",
297 struct i2c_client *client = v4l2_get_subdevdata(&dev->sd);
299 return i2c_smbus_write_word_swapped(client, GC0310_AEC_PK_EXPO_H, exp);
304 struct i2c_client *client = v4l2_get_subdevdata(&dev->sd);
321 ret = i2c_smbus_write_byte_data(client, GC0310_AGC_ADJ, again);
325 return i2c_smbus_write_byte_data(client, GC0310_DGC_ADJ, dgain);
405 static int gc0310_detect(struct i2c_client *client)
407 struct i2c_adapter *adapter = client->adapter;
413 ret = pm_runtime_get_sync(&client->dev);
415 ret = i2c_smbus_read_word_swapped(client, GC0310_SC_CMMN_CHIP_ID_H);
416 pm_runtime_put(&client->dev);
418 dev_err(&client->dev, "read sensor_id failed: %d\n", ret);
422 dev_dbg(&client->dev, "sensor ID = 0x%x\n", ret);
425 dev_err(&client->dev, "sensor ID error, read id = 0x%x, target id = 0x%x\n",
430 dev_dbg(&client->dev, "detect gc0310 success\n");
438 struct i2c_client *client = v4l2_get_subdevdata(sd);
441 dev_dbg(&client->dev, "%s S enable=%d\n", __func__, enable);
445 ret = pm_runtime_get_sync(&client->dev);
451 ret = gc0310_write_reg_array(client, gc0310_reset_register,
456 ret = gc0310_write_reg_array(client, gc0310_VGA_30fps,
467 ret = i2c_smbus_write_byte_data(client, 0xFE, 0x30);
472 ret = i2c_smbus_write_byte_data(client, GC0310_RESET_RELATED, GC0310_REGISTER_PAGE_3);
476 ret = i2c_smbus_write_byte_data(client, GC0310_SW_STREAM,
481 ret = i2c_smbus_write_byte_data(client, GC0310_RESET_RELATED, GC0310_REGISTER_PAGE_0);
486 pm_runtime_put(&client->dev);
493 pm_runtime_put(&client->dev);
592 static void gc0310_remove(struct i2c_client *client)
594 struct v4l2_subdev *sd = i2c_get_clientdata(client);
597 dev_dbg(&client->dev, "gc0310_remove...\n");
603 pm_runtime_disable(&client->dev);
606 static int gc0310_probe(struct i2c_client *client)
616 ep_fwnode = fwnode_graph_get_next_endpoint(dev_fwnode(&client->dev), NULL);
618 return dev_err_probe(&client->dev, -EPROBE_DEFER, "waiting for fwnode graph endpoint\n");
622 dev = devm_kzalloc(&client->dev, sizeof(*dev), GFP_KERNEL);
626 dev->reset = devm_gpiod_get(&client->dev, "reset", GPIOD_OUT_HIGH);
628 return dev_err_probe(&client->dev, PTR_ERR(dev->reset),
632 dev->powerdown = devm_gpiod_get(&client->dev, "powerdown", GPIOD_OUT_HIGH);
634 return dev_err_probe(&client->dev, PTR_ERR(dev->powerdown),
639 v4l2_i2c_subdev_init(&dev->sd, client, &gc0310_ops);
642 pm_runtime_set_suspended(&client->dev);
643 pm_runtime_enable(&client->dev);
644 pm_runtime_set_autosuspend_delay(&client->dev, 1000);
645 pm_runtime_use_autosuspend(&client->dev);
647 ret = gc0310_detect(client);
649 gc0310_remove(client);
659 gc0310_remove(client);
665 gc0310_remove(client);
671 gc0310_remove(client);