| /OK3568_Linux_fs/kernel/drivers/gpu/drm/rockchip/ |
| H A D | rockchip-mipi-csi-tx.c | 177 grf_field_write(struct rockchip_mipi_csi *csi, enum grf_reg_fields index, in grf_field_write() argument 180 const u32 field = csi->pdata->csi0_grf_reg_fields[index]; in grf_field_write() 184 if (!field || !csi->grf) in grf_field_write() 191 regmap_write(csi->grf, reg, (val << lsb) | (GENMASK(msb, lsb) << 16)); in grf_field_write() 194 static inline void csi_writel(struct rockchip_mipi_csi *csi, u32 offset, u32 v) in csi_writel() argument 196 writel(v, csi->regs + offset); in csi_writel() 197 csi->regsbak[offset >> 2] = v; in csi_writel() 200 static inline u32 csi_readl(struct rockchip_mipi_csi *csi, u32 offset) in csi_readl() argument 202 return readl(csi->regs + offset); in csi_readl() 205 static inline void csi_mask_write(struct rockchip_mipi_csi *csi, u32 offset, in csi_mask_write() argument [all …]
|
| /OK3568_Linux_fs/kernel/drivers/staging/media/imx/ |
| H A D | imx7-media-csi.c | 203 static u32 imx7_csi_reg_read(struct imx7_csi *csi, unsigned int offset) in imx7_csi_reg_read() argument 205 return readl(csi->regbase + offset); in imx7_csi_reg_read() 208 static void imx7_csi_reg_write(struct imx7_csi *csi, unsigned int value, in imx7_csi_reg_write() argument 211 writel(value, csi->regbase + offset); in imx7_csi_reg_write() 214 static void imx7_csi_hw_reset(struct imx7_csi *csi) in imx7_csi_hw_reset() argument 216 imx7_csi_reg_write(csi, in imx7_csi_hw_reset() 217 imx7_csi_reg_read(csi, CSI_CSICR3) | BIT_FRMCNT_RST, in imx7_csi_hw_reset() 220 imx7_csi_reg_write(csi, CSICR1_RESET_VAL, CSI_CSICR1); in imx7_csi_hw_reset() 221 imx7_csi_reg_write(csi, CSICR2_RESET_VAL, CSI_CSICR2); in imx7_csi_hw_reset() 222 imx7_csi_reg_write(csi, CSICR3_RESET_VAL, CSI_CSICR3); in imx7_csi_hw_reset() [all …]
|
| H A D | Makefile | 9 imx6-media-csi-objs := imx-media-csi.o imx-media-fim.o 14 obj-$(CONFIG_VIDEO_IMX_CSI) += imx6-media-csi.o 17 obj-$(CONFIG_VIDEO_IMX7_CSI) += imx7-media-csi.o
|
| H A D | imx-ic-prp.c | 297 struct v4l2_subdev *csi; in prp_link_validate() local 305 csi = imx_media_pipeline_subdev(&ic_priv->sd.entity, in prp_link_validate() 307 if (IS_ERR(csi)) in prp_link_validate() 308 csi = NULL; in prp_link_validate() 323 if (!csi) { in prp_link_validate() 329 if (csi) { in prp_link_validate() 330 switch (csi->grp_id) { in prp_link_validate()
|
| /OK3568_Linux_fs/kernel/drivers/media/platform/sunxi/sun4i-csi/ |
| H A D | sun4i_dma.c | 36 static void sun4i_csi_capture_start(struct sun4i_csi *csi) in sun4i_csi_capture_start() argument 38 writel(CSI_CPT_CTRL_VIDEO_START, csi->regs + CSI_CPT_CTRL_REG); in sun4i_csi_capture_start() 41 static void sun4i_csi_capture_stop(struct sun4i_csi *csi) in sun4i_csi_capture_stop() argument 43 writel(0, csi->regs + CSI_CPT_CTRL_REG); in sun4i_csi_capture_stop() 52 struct sun4i_csi *csi = vb2_get_drv_priv(vq); in sun4i_csi_queue_setup() local 53 unsigned int num_planes = csi->fmt.num_planes; in sun4i_csi_queue_setup() 61 if (sizes[i] < csi->fmt.plane_fmt[i].sizeimage) in sun4i_csi_queue_setup() 68 sizes[i] = csi->fmt.plane_fmt[i].sizeimage; in sun4i_csi_queue_setup() 75 struct sun4i_csi *csi = vb2_get_drv_priv(vb->vb2_queue); in sun4i_csi_buffer_prepare() local 78 for (i = 0; i < csi->fmt.num_planes; i++) { in sun4i_csi_buffer_prepare() [all …]
|
| H A D | sun4i_csi.c | 47 struct sun4i_csi *csi = container_of(notifier, struct sun4i_csi, in sun4i_csi_notify_bound() local 50 csi->src_subdev = subdev; in sun4i_csi_notify_bound() 51 csi->src_pad = media_entity_get_fwnode_pad(&subdev->entity, in sun4i_csi_notify_bound() 54 if (csi->src_pad < 0) { in sun4i_csi_notify_bound() 55 dev_err(csi->dev, "Couldn't find output pad for subdev %s\n", in sun4i_csi_notify_bound() 57 return csi->src_pad; in sun4i_csi_notify_bound() 60 dev_dbg(csi->dev, "Bound %s pad: %d\n", subdev->name, csi->src_pad); in sun4i_csi_notify_bound() 66 struct sun4i_csi *csi = container_of(notifier, struct sun4i_csi, in sun4i_csi_notify_complete() local 68 struct v4l2_subdev *subdev = &csi->subdev; in sun4i_csi_notify_complete() 69 struct video_device *vdev = &csi->vdev; in sun4i_csi_notify_complete() [all …]
|
| H A D | sun4i_v4l2.c | 56 struct sun4i_csi *csi = video_drvdata(file); in sun4i_csi_querycap() local 61 dev_name(csi->dev)); in sun4i_csi_querycap() 95 static void _sun4i_csi_try_fmt(struct sun4i_csi *csi, in _sun4i_csi_try_fmt() argument 142 struct sun4i_csi *csi = video_drvdata(file); in sun4i_csi_try_fmt_vid_cap() local 144 _sun4i_csi_try_fmt(csi, &f->fmt.pix_mp); in sun4i_csi_try_fmt_vid_cap() 152 struct sun4i_csi *csi = video_drvdata(file); in sun4i_csi_s_fmt_vid_cap() local 154 _sun4i_csi_try_fmt(csi, &f->fmt.pix_mp); in sun4i_csi_s_fmt_vid_cap() 155 csi->fmt = f->fmt.pix_mp; in sun4i_csi_s_fmt_vid_cap() 163 struct sun4i_csi *csi = video_drvdata(file); in sun4i_csi_g_fmt_vid_cap() local 165 f->fmt.pix_mp = csi->fmt; in sun4i_csi_g_fmt_vid_cap() [all …]
|
| H A D | Makefile | 3 sun4i-csi-y += sun4i_csi.o 4 sun4i-csi-y += sun4i_dma.o 5 sun4i-csi-y += sun4i_v4l2.o 7 obj-$(CONFIG_VIDEO_SUN4I_CSI) += sun4i-csi.o
|
| /OK3568_Linux_fs/kernel/drivers/media/i2c/rk628/ |
| H A D | rk628_csi_v4l2.c | 271 static int mipi_dphy_power_on(struct rk628_csi *csi); 272 static void mipi_dphy_power_off(struct rk628_csi *csi); 284 static void rk628_dsi_set_scs(struct rk628_csi *csi); 296 struct rk628_csi *csi = to_csi(sd); in tx_5v_power_present() local 299 if (!csi->plugin_det_gpio) in tx_5v_power_present() 304 val = gpiod_get_value(csi->plugin_det_gpio); in tx_5v_power_present() 318 struct rk628_csi *csi = to_csi(sd); in no_signal() local 320 v4l2_dbg(1, debug, sd, "%s no signal:%d\n", __func__, csi->nosignal); in no_signal() 321 return csi->nosignal; in no_signal() 326 struct rk628_csi *csi = to_csi(sd); in audio_present() local [all …]
|
| /OK3568_Linux_fs/kernel/drivers/gpu/ipu-v3/ |
| H A D | ipu-csi.c | 177 static inline u32 ipu_csi_read(struct ipu_csi *csi, unsigned offset) in ipu_csi_read() argument 179 return readl(csi->base + offset); in ipu_csi_read() 182 static inline void ipu_csi_write(struct ipu_csi *csi, u32 value, in ipu_csi_write() argument 185 writel(value, csi->base + offset); in ipu_csi_write() 192 static int ipu_csi_set_testgen_mclk(struct ipu_csi *csi, u32 pixel_clk, in ipu_csi_set_testgen_mclk() argument 201 dev_err(csi->ipu->dev, in ipu_csi_set_testgen_mclk() 206 temp = ipu_csi_read(csi, CSI_SENS_CONF); in ipu_csi_set_testgen_mclk() 208 ipu_csi_write(csi, temp | (div_ratio << CSI_SENS_CONF_DIVRATIO_SHIFT), in ipu_csi_set_testgen_mclk() 378 ipu_csi_set_bt_interlaced_codes(struct ipu_csi *csi, in ipu_csi_set_bt_interlaced_codes() argument 409 ipu_csi_write(csi, 0x40596 | CSI_CCIR_ERR_DET_EN, in ipu_csi_set_bt_interlaced_codes() [all …]
|
| /OK3568_Linux_fs/kernel/drivers/staging/media/tegra-video/ |
| H A D | csi.c | 95 static int csi_get_frmrate_table_index(struct tegra_csi *csi, u32 code, in csi_get_frmrate_table_index() argument 101 frmrate = csi->soc->tpg_frmrate_table; in csi_get_frmrate_table_index() 102 for (i = 0; i < csi->soc->tpg_frmrate_table_size; i++) { in csi_get_frmrate_table_index() 116 struct tegra_csi *csi = csi_chan->csi; in csi_chan_update_blank_intervals() local 117 const struct tpg_framerate *frmrate = csi->soc->tpg_frmrate_table; in csi_chan_update_blank_intervals() 120 index = csi_get_frmrate_table_index(csi_chan->csi, code, in csi_chan_update_blank_intervals() 161 struct tegra_csi *csi = csi_chan->csi; in csi_enum_frameintervals() local 162 const struct tpg_framerate *frmrate = csi->soc->tpg_frmrate_table; in csi_enum_frameintervals() 172 index = csi_get_frmrate_table_index(csi_chan->csi, fie->code, in csi_enum_frameintervals() 259 struct tegra_csi *csi = csi_chan->csi; in tegra_csi_calc_settle_time() local [all …]
|
| H A D | tegra210.c | 645 static void csi_write(struct tegra_csi *csi, u8 portno, unsigned int addr, in csi_write() argument 650 csi_pp_base = csi->iomem + CSI_PP_OFFSET(portno >> 1); in csi_write() 656 static void pp_write(struct tegra_csi *csi, u8 portno, u32 addr, u32 val) in pp_write() argument 661 csi_pp_base = csi->iomem + CSI_PP_OFFSET(portno >> 1); in pp_write() 667 static u32 pp_read(struct tegra_csi *csi, u8 portno, u32 addr) in pp_read() argument 672 csi_pp_base = csi->iomem + CSI_PP_OFFSET(portno >> 1); in pp_read() 679 static void cil_write(struct tegra_csi *csi, u8 portno, u32 addr, u32 val) in cil_write() argument 684 csi_cil_base = csi->iomem + CSI_PP_OFFSET(portno >> 1) + in cil_write() 691 static u32 cil_read(struct tegra_csi *csi, u8 portno, u32 addr) in cil_read() argument 696 csi_cil_base = csi->iomem + CSI_PP_OFFSET(portno >> 1) + in cil_read() [all …]
|
| /OK3568_Linux_fs/kernel/drivers/media/platform/rcar-vin/ |
| H A D | rcar-core.c | 61 if (group->csi[i].subdev == sd) in rvin_group_entity_to_csi_id() 76 route->csi == csi_id && in rvin_group_get_mask() 80 route->vin, route->csi, route->channel); in rvin_group_get_mask() 714 if (!vin->group->csi[route->csi].subdev) in rvin_group_notify_complete() 717 source = &vin->group->csi[route->csi].subdev->entity; in rvin_group_notify_complete() 754 if (vin->group->csi[i].fwnode != asd->match.fwnode) in rvin_group_notify_unbind() 756 vin->group->csi[i].subdev = NULL; in rvin_group_notify_unbind() 776 if (vin->group->csi[i].fwnode != asd->match.fwnode) in rvin_group_notify_bound() 778 vin->group->csi[i].subdev = subdev; in rvin_group_notify_bound() 812 if (vin->group->csi[vep->base.id].fwnode) { in rvin_mc_parse_of_endpoint() [all …]
|
| /OK3568_Linux_fs/kernel/drivers/media/platform/sunxi/sun6i-csi/ |
| H A D | sun6i_csi.c | 33 struct sun6i_csi csi; member 44 static inline struct sun6i_csi_dev *sun6i_csi_to_dev(struct sun6i_csi *csi) in sun6i_csi_to_dev() argument 46 return container_of(csi, struct sun6i_csi_dev, csi); in sun6i_csi_to_dev() 50 bool sun6i_csi_is_format_supported(struct sun6i_csi *csi, in sun6i_csi_is_format_supported() argument 53 struct sun6i_csi_dev *sdev = sun6i_csi_to_dev(csi); in sun6i_csi_is_format_supported() 60 if ((sdev->csi.v4l2_ep.bus_type == V4L2_MBUS_PARALLEL in sun6i_csi_is_format_supported() 61 || sdev->csi.v4l2_ep.bus_type == V4L2_MBUS_BT656) in sun6i_csi_is_format_supported() 62 && sdev->csi.v4l2_ep.bus.parallel.bus_width == 16) { in sun6i_csi_is_format_supported() 164 int sun6i_csi_set_power(struct sun6i_csi *csi, bool enable) in sun6i_csi_set_power() argument 166 struct sun6i_csi_dev *sdev = sun6i_csi_to_dev(csi); in sun6i_csi_set_power() [all …]
|
| H A D | sun6i_video.c | 165 ret = sun6i_csi_update_config(video->csi, &config); in sun6i_video_start_streaming() 174 sun6i_csi_update_buf_addr(video->csi, buf->dma_addr); in sun6i_video_start_streaming() 176 sun6i_csi_set_stream(video->csi, true); in sun6i_video_start_streaming() 197 sun6i_csi_update_buf_addr(video->csi, next_buf->dma_addr); in sun6i_video_start_streaming() 208 sun6i_csi_set_stream(video->csi, false); in sun6i_video_start_streaming() 232 sun6i_csi_set_stream(video->csi, false); in sun6i_video_stop_streaming() 269 dev_dbg(video->csi->dev, "Frame dropped!\n"); in sun6i_video_frame_done() 281 sun6i_csi_update_buf_addr(video->csi, next_buf->dma_addr); in sun6i_video_frame_done() 282 dev_dbg(video->csi->dev, "Frame dropped!\n"); in sun6i_video_frame_done() 296 sun6i_csi_update_buf_addr(video->csi, next_buf->dma_addr); in sun6i_video_frame_done() [all …]
|
| H A D | sun6i_csi.h | 57 bool sun6i_csi_is_format_supported(struct sun6i_csi *csi, u32 pixformat, 65 int sun6i_csi_set_power(struct sun6i_csi *csi, bool enable); 72 int sun6i_csi_update_config(struct sun6i_csi *csi, 80 void sun6i_csi_update_buf_addr(struct sun6i_csi *csi, dma_addr_t addr); 87 void sun6i_csi_set_stream(struct sun6i_csi *csi, bool enable);
|
| /OK3568_Linux_fs/kernel/drivers/misc/rk628/ |
| H A D | rk628_csi.c | 120 struct rk628_csi *csi = rk628->csi; in rk628_csi_get_detected_timings() local 122 if (!csi) in rk628_csi_get_detected_timings() 130 rk628_mode_copy(&csi->mode, dst); in rk628_csi_get_detected_timings() 203 struct rk628_csi *csi = rk628->csi; in mipi_dphy_init_hsfreqrange() local 205 if (!csi) in mipi_dphy_init_hsfreqrange() 209 if (csi->lane_mbps <= hsfreqrange_table[index].max_lane_mbps) in mipi_dphy_init_hsfreqrange() 253 struct rk628_csi *csi = rk628->csi; in mipi_dphy_power_on() local 255 if (!csi) in mipi_dphy_power_on() 258 if ((csi->mode.hdisplay == 3840) && in mipi_dphy_power_on() 259 (csi->mode.vdisplay == 2160)) { in mipi_dphy_power_on() [all …]
|
| /OK3568_Linux_fs/kernel/Documentation/devicetree/bindings/misc/ |
| H A D | ifm-csi.txt | 4 - compatible: "ifm,o2d-csi" 10 - ifm,csi-clk-handle: the phandle to a node in the DT describing the sensor 12 - ifm,csi-addr-bus-width: address bus width (valid values are 16, 24, 25) 13 - ifm,csi-data-bus-width: data bus width (valid values are 8 and 16) 14 - ifm,csi-wait-cycles: sensor bus wait cycles 17 - ifm,csi-byte-swap: if this property is present, the byte swapping on 22 csi@3,0 { 23 compatible = "ifm,o2d-csi"; 27 ifm,csi-clk-handle = <&timer7>; 32 ifm,csi-addr-bus-width = <24>; [all …]
|
| /OK3568_Linux_fs/kernel/Documentation/admin-guide/media/ |
| H A D | imx7.rst | 44 csi-mux 51 csi chapter 59 This entity has one sink pad that receives from the csi-mux entity and a single 84 media-ctl -l "'imx7-mipi-csis.0':1 -> 'csi-mux':1[1]" 85 media-ctl -l "'csi-mux':2 -> 'csi':0[1]" 86 media-ctl -l "'csi':1 -> 'csi capture':0[1]" 90 media-ctl -V "'csi-mux':1 [fmt:SBGGR10_1X10/800x600 field:none]" 91 media-ctl -V "'csi-mux':2 [fmt:SBGGR10_1X10/800x600 field:none]" 93 media-ctl -V "'csi':0 [fmt:SBGGR10_1X10/800x600 field:none]" 105 driver imx7-csi [all …]
|
| /OK3568_Linux_fs/kernel/drivers/media/platform/rockchip/isp/ |
| H A D | csi.c | 72 struct rkisp_csi_device *csi; in rkisp_csi_link_setup() local 80 csi = v4l2_get_subdevdata(sd); in rkisp_csi_link_setup() 84 stream = &csi->ispdev->cap_dev.stream[id + 1]; in rkisp_csi_link_setup() 86 if (csi->sink[id].linked) { in rkisp_csi_link_setup() 90 csi->sink[id].linked = true; in rkisp_csi_link_setup() 91 csi->sink[id].index = 1 << id; in rkisp_csi_link_setup() 93 csi->sink[id].linked = false; in rkisp_csi_link_setup() 94 csi->sink[id].index = 0; in rkisp_csi_link_setup() 97 stream->linked = csi->sink[id].linked; in rkisp_csi_link_setup() 135 struct rkisp_csi_device *csi = v4l2_get_subdevdata(sd); in rkisp_csi_s_stream() local [all …]
|
| /OK3568_Linux_fs/kernel/Documentation/devicetree/bindings/media/ |
| H A D | imx7-csi.txt | 4 csi node 12 - compatible : "fsl,imx7-csi" or "fsl,imx6ul-csi"; 27 csi: csi@30710000 { 31 compatible = "fsl,imx7-csi";
|
| /OK3568_Linux_fs/kernel/include/video/ |
| H A D | imx-ipu-v3.h | 358 int ipu_csi_init_interface(struct ipu_csi *csi, 362 bool ipu_csi_is_interlaced(struct ipu_csi *csi); 363 void ipu_csi_get_window(struct ipu_csi *csi, struct v4l2_rect *w); 364 void ipu_csi_set_window(struct ipu_csi *csi, struct v4l2_rect *w); 365 void ipu_csi_set_downsize(struct ipu_csi *csi, bool horiz, bool vert); 366 void ipu_csi_set_test_generator(struct ipu_csi *csi, bool active, 369 int ipu_csi_set_mipi_datatype(struct ipu_csi *csi, u32 vc, 371 int ipu_csi_set_skip_smfc(struct ipu_csi *csi, u32 skip, 373 int ipu_csi_set_dest(struct ipu_csi *csi, enum ipu_csi_dest csi_dest); 374 int ipu_csi_enable(struct ipu_csi *csi); [all …]
|
| /OK3568_Linux_fs/kernel/arch/powerpc/boot/dts/ |
| H A D | o2d.dtsi | 103 csi@3,0 { 104 compatible = "ifm,o2d-csi"; 106 ifm,csi-clk-handle = <&gpt7>; 113 ifm,csi-addr-bus-width = <24>; 114 ifm,csi-data-bus-width = <8>; 115 ifm,csi-wait-cycles = <0>;
|
| /OK3568_Linux_fs/kernel/arch/arm64/boot/dts/allwinner/ |
| H A D | sun50i-a100-allwinner-perf1.dts | 124 regulator-name = "vcc-pe-csi"; 130 regulator-name = "ldo-avdd-csi"; 136 regulator-name = "avcc-csi"; 142 regulator-name = "vcc-pc-lvds-csi-efuse-emmc-nand"; 148 regulator-name = "dvdd-csi";
|
| /OK3568_Linux_fs/kernel/Documentation/devicetree/bindings/display/rockchip/ |
| H A D | rockchip_mipi_csi_tx.txt | 6 "rockchip,rk1808-mipi-csi". 39 csi: csi@ffb20000 { 40 compatible = "rockchip,rk1808-mipi-csi";
|