Lines Matching full:csi

3  * Rockchip ISP1 Driver - CSI-2 Receiver
22 #include "rkisp1-csi.h"
37 struct rkisp1_csi *csi = &rkisp1->csi; in rkisp1_csi_link_sensor() local
48 /* Create the link from the sensor to the CSI receiver. */ in rkisp1_csi_link_sensor()
50 &csi->sd.entity, RKISP1_CSI_PAD_SINK, in rkisp1_csi_link_sensor()
53 dev_err(csi->rkisp1->dev, "failed to link src pad of %s\n", in rkisp1_csi_link_sensor()
61 static int rkisp1_csi_config(struct rkisp1_csi *csi, in rkisp1_csi_config() argument
65 struct rkisp1_device *rkisp1 = csi->rkisp1; in rkisp1_csi_config()
113 static void rkisp1_csi_enable(struct rkisp1_csi *csi) in rkisp1_csi_enable() argument
115 struct rkisp1_device *rkisp1 = csi->rkisp1; in rkisp1_csi_enable()
123 static void rkisp1_csi_disable(struct rkisp1_csi *csi) in rkisp1_csi_disable() argument
125 struct rkisp1_device *rkisp1 = csi->rkisp1; in rkisp1_csi_disable()
149 static int rkisp1_csi_start(struct rkisp1_csi *csi, in rkisp1_csi_start() argument
153 struct rkisp1_device *rkisp1 = csi->rkisp1; in rkisp1_csi_start()
159 ret = rkisp1_csi_config(csi, sensor, format); in rkisp1_csi_start()
171 phy_set_mode(csi->dphy, PHY_MODE_MIPI_DPHY); in rkisp1_csi_start()
172 phy_configure(csi->dphy, &opts); in rkisp1_csi_start()
173 phy_power_on(csi->dphy); in rkisp1_csi_start()
175 rkisp1_csi_enable(csi); in rkisp1_csi_start()
186 static void rkisp1_csi_stop(struct rkisp1_csi *csi) in rkisp1_csi_stop() argument
188 rkisp1_csi_disable(csi); in rkisp1_csi_stop()
190 phy_power_off(csi->dphy); in rkisp1_csi_stop()
218 rkisp1->csi.is_dphy_errctrl_disabled = true; in rkisp1_csi_isr()
230 if (rkisp1->csi.is_dphy_errctrl_disabled) { in rkisp1_csi_isr()
234 rkisp1->csi.is_dphy_errctrl_disabled = false; in rkisp1_csi_isr()
310 struct rkisp1_csi *csi = to_rkisp1_csi(sd); in rkisp1_csi_set_fmt() local
330 csi->rkisp1->info->max_width); in rkisp1_csi_set_fmt()
333 csi->rkisp1->info->max_height); in rkisp1_csi_set_fmt()
350 struct rkisp1_csi *csi = to_rkisp1_csi(sd); in rkisp1_csi_s_stream() local
351 struct rkisp1_device *rkisp1 = csi->rkisp1; in rkisp1_csi_s_stream()
362 v4l2_subdev_call(csi->source, video, s_stream, false); in rkisp1_csi_s_stream()
364 rkisp1_csi_stop(csi); in rkisp1_csi_s_stream()
371 dev_dbg(rkisp1->dev, "Failed to get source for CSI: %ld\n", in rkisp1_csi_s_stream()
395 ret = rkisp1_csi_start(csi, source_asd, format); in rkisp1_csi_s_stream()
401 rkisp1_csi_stop(csi); in rkisp1_csi_s_stream()
405 csi->source = source; in rkisp1_csi_s_stream()
439 struct rkisp1_csi *csi = &rkisp1->csi; in rkisp1_csi_register() local
444 csi->rkisp1 = rkisp1; in rkisp1_csi_register()
446 sd = &csi->sd; in rkisp1_csi_register()
455 pads = csi->pads; in rkisp1_csi_register()
469 ret = v4l2_device_register_subdev(&csi->rkisp1->v4l2_dev, sd); in rkisp1_csi_register()
471 dev_err(sd->dev, "Failed to register csi receiver subdev\n"); in rkisp1_csi_register()
481 csi->rkisp1 = NULL; in rkisp1_csi_register()
487 struct rkisp1_csi *csi = &rkisp1->csi; in rkisp1_csi_unregister() local
489 if (!csi->rkisp1) in rkisp1_csi_unregister()
492 v4l2_device_unregister_subdev(&csi->sd); in rkisp1_csi_unregister()
493 v4l2_subdev_cleanup(&csi->sd); in rkisp1_csi_unregister()
494 media_entity_cleanup(&csi->sd.entity); in rkisp1_csi_unregister()
499 struct rkisp1_csi *csi = &rkisp1->csi; in rkisp1_csi_init() local
501 csi->rkisp1 = rkisp1; in rkisp1_csi_init()
503 csi->dphy = devm_phy_get(rkisp1->dev, "dphy"); in rkisp1_csi_init()
504 if (IS_ERR(csi->dphy)) in rkisp1_csi_init()
505 return dev_err_probe(rkisp1->dev, PTR_ERR(csi->dphy), in rkisp1_csi_init()
508 phy_init(csi->dphy); in rkisp1_csi_init()
515 struct rkisp1_csi *csi = &rkisp1->csi; in rkisp1_csi_cleanup() local
517 phy_exit(csi->dphy); in rkisp1_csi_cleanup()