| /kernel/linux/linux-6.6/drivers/spi/ |
| D | spi-rzv2m-csi.c | 3 * Renesas RZ/V2M Clocked Serial Interface (CSI) driver 21 #define CSI_MODE 0x00 /* CSI mode control */ 22 #define CSI_CLKSEL 0x04 /* CSI clock select */ 23 #define CSI_CNT 0x08 /* CSI control */ 24 #define CSI_INT 0x0C /* CSI interrupt status */ 25 #define CSI_IFIFOL 0x10 /* CSI receive FIFO level display */ 26 #define CSI_OFIFOL 0x14 /* CSI transmit FIFO level display */ 27 #define CSI_IFIFO 0x18 /* CSI receive window */ 28 #define CSI_OFIFO 0x1C /* CSI transmit window */ 29 #define CSI_FIFOTRG 0x20 /* CSI FIFO trigger level */ [all …]
|
| /kernel/linux/linux-5.10/drivers/staging/media/imx/ |
| D | imx7-media-csi.c | 3 * V4L2 Capture CSI Subdev for Freescale i.MX6UL/L / i.MX7 SOC 41 /* csi control reg 1 */ 91 /* csi status reg */ 111 /* csi control reg 18 */ 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() [all …]
|
| /kernel/linux/linux-5.10/drivers/media/platform/sunxi/sun4i-csi/ |
| 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 …]
|
| 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 …]
|
| D | sun4i_v4l2.c | 56 struct sun4i_csi *csi = video_drvdata(file); in sun4i_csi_querycap() local 59 strscpy(cap->card, "sun4i-csi", sizeof(cap->card)); in sun4i_csi_querycap() 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 [all …]
|
| /kernel/linux/linux-6.6/drivers/media/platform/sunxi/sun4i-csi/ |
| 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 …]
|
| D | sun4i_csi.c | 50 struct sun4i_csi *csi = container_of(notifier, struct sun4i_csi, in sun4i_csi_notify_bound() local 53 csi->src_subdev = subdev; in sun4i_csi_notify_bound() 54 csi->src_pad = media_entity_get_fwnode_pad(&subdev->entity, in sun4i_csi_notify_bound() 57 if (csi->src_pad < 0) { in sun4i_csi_notify_bound() 58 dev_err(csi->dev, "Couldn't find output pad for subdev %s\n", in sun4i_csi_notify_bound() 60 return csi->src_pad; in sun4i_csi_notify_bound() 63 dev_dbg(csi->dev, "Bound %s pad: %d\n", subdev->name, csi->src_pad); in sun4i_csi_notify_bound() 69 struct sun4i_csi *csi = container_of(notifier, struct sun4i_csi, in sun4i_csi_notify_complete() local 71 struct v4l2_subdev *subdev = &csi->subdev; in sun4i_csi_notify_complete() 72 struct video_device *vdev = &csi->vdev; in sun4i_csi_notify_complete() [all …]
|
| D | sun4i_v4l2.c | 57 strscpy(cap->card, "sun4i-csi", sizeof(cap->card)); in sun4i_csi_querycap() 91 static void _sun4i_csi_try_fmt(struct sun4i_csi *csi, in _sun4i_csi_try_fmt() argument 134 struct sun4i_csi *csi = video_drvdata(file); in sun4i_csi_try_fmt_vid_cap() local 136 _sun4i_csi_try_fmt(csi, &f->fmt.pix_mp); in sun4i_csi_try_fmt_vid_cap() 144 struct sun4i_csi *csi = video_drvdata(file); in sun4i_csi_s_fmt_vid_cap() local 146 _sun4i_csi_try_fmt(csi, &f->fmt.pix_mp); in sun4i_csi_s_fmt_vid_cap() 147 csi->fmt = f->fmt.pix_mp; in sun4i_csi_s_fmt_vid_cap() 155 struct sun4i_csi *csi = video_drvdata(file); in sun4i_csi_g_fmt_vid_cap() local 157 f->fmt.pix_mp = csi->fmt; in sun4i_csi_g_fmt_vid_cap() 198 struct sun4i_csi *csi = video_drvdata(file); in sun4i_csi_open() local [all …]
|
| /kernel/linux/linux-6.6/drivers/media/platform/nxp/ |
| D | imx7-media-csi.c | 3 * V4L2 Capture CSI Subdev for Freescale i.MX6UL/L / i.MX7 SOC 36 /* csi control reg 1 */ 91 /* csi status reg */ 111 /* csi image parameter reg */ 115 /* csi control reg 18 */ 269 static u32 imx7_csi_reg_read(struct imx7_csi *csi, unsigned int offset) in imx7_csi_reg_read() argument 271 return readl(csi->regbase + offset); in imx7_csi_reg_read() 274 static void imx7_csi_reg_write(struct imx7_csi *csi, unsigned int value, in imx7_csi_reg_write() argument 277 writel(value, csi->regbase + offset); in imx7_csi_reg_write() 280 static u32 imx7_csi_irq_clear(struct imx7_csi *csi) in imx7_csi_irq_clear() argument [all …]
|
| /kernel/linux/linux-6.6/drivers/media/pci/intel/ivsc/ |
| D | mei_csi.c | 4 * Intel Visual Sensing Controller CSI Linux driver 8 * To set ownership of CSI-2 link and to configure CSI-2 link, there 34 #define MEI_CSI_ENTITY_NAME "Intel IVSC CSI" 40 /* to setup CSI-2 link an extra delay needed and determined experimentally */ 51 /* used to set csi ownership */ 54 /* used to configure CSI-2 link */ 61 /* CSI-2 link ownership definition */ 80 /* configuration of the CSI-2 link between host and IVSC */ 82 /* number of data lanes used on the CSI-2 link */ 85 /* frequency of the CSI-2 link */ [all …]
|
| /kernel/linux/linux-6.6/drivers/gpu/ipu-v3/ |
| D | ipu-csi.c | 32 /* CSI Register Offsets */ 55 /* CSI Register Fields */ 116 /* MIPI CSI-2 data types */ 133 * Bitfield of CSI bus signal polarities and modes. 153 * Enumeration of CSI data bus widths. 164 * Enumeration of CSI clock modes. 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() [all …]
|
| /kernel/linux/linux-5.10/drivers/gpu/ipu-v3/ |
| D | ipu-csi.c | 32 /* CSI Register Offsets */ 55 /* CSI Register Fields */ 116 /* MIPI CSI-2 data types */ 133 * Bitfield of CSI bus signal polarities and modes. 153 * Enumeration of CSI data bus widths. 164 * Enumeration of CSI clock modes. 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() [all …]
|
| /kernel/linux/linux-5.10/drivers/staging/media/tegra-video/ |
| D | csi.c | 19 #include "csi.h" 36 * CSI is a separate subdevice which has 6 source pads to generate 37 * test pattern. CSI subdevice pad ops are used only for TPG and 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 [all …]
|
| D | tegra210.c | 8 * VI and CSI SoC specific data, operations and registers accessors. 17 #include "csi.h" 33 /* Tegra210 VI CSI registers */ 57 /* Tegra210 CSI Pixel Parser registers: Starts from 0x838, offset 0x0 */ 85 /* Tegra210 CSI PHY registers */ 216 * Recover VI and CSI hardware blocks in case of missing frame start in tegra_channel_capture_error_recover() 217 * events due to source not streaming or noisy csi inputs from the in tegra_channel_capture_error_recover() 219 * events which can cause CSI and VI hardware hang. in tegra_channel_capture_error_recover() 235 /* recover CSI block */ in tegra_channel_capture_error_recover() 644 /* Tegra210 CSI PHY registers accessors */ [all …]
|
| D | csi.h | 14 * Each CSI brick supports max of 4 lanes that can be used as either 15 * one x4 port using both CILA and CILB partitions of a CSI brick or can 21 /* each CSI channel can have one sink and one source pads */ 38 * struct tegra_csi_channel - Tegra CSI channel 44 * @csi: Tegra CSI device structure 45 * @of_node: csi device tree node 47 * @csi_port_num: CSI channel port number 53 * @mipi: mipi device for corresponding csi channel pads, or NULL if not applicable (TPG, error) 61 struct tegra_csi *csi; member 75 * struct tpg_framerate - Tegra CSI TPG framerate configuration [all …]
|
| /kernel/linux/linux-6.6/drivers/staging/media/tegra-video/ |
| D | csi.c | 18 #include "csi.h" 35 * CSI is a separate subdevice which has 6 source pads to generate 36 * test pattern. CSI subdevice pad ops are used only for TPG and 94 static int csi_get_frmrate_table_index(struct tegra_csi *csi, u32 code, in csi_get_frmrate_table_index() argument 100 frmrate = csi->soc->tpg_frmrate_table; in csi_get_frmrate_table_index() 101 for (i = 0; i < csi->soc->tpg_frmrate_table_size; i++) { in csi_get_frmrate_table_index() 115 struct tegra_csi *csi = csi_chan->csi; in csi_chan_update_blank_intervals() local 116 const struct tpg_framerate *frmrate = csi->soc->tpg_frmrate_table; in csi_chan_update_blank_intervals() 119 index = csi_get_frmrate_table_index(csi_chan->csi, code, in csi_chan_update_blank_intervals() 160 struct tegra_csi *csi = csi_chan->csi; in csi_enum_frameintervals() local [all …]
|
| D | csi.h | 14 * Each CSI brick supports max of 4 lanes that can be used as either 15 * one x4 port using both CILA and CILB partitions of a CSI brick or can 22 /* Maximum 2 CSI x4 ports can be ganged up for streaming */ 25 /* each CSI channel can have one sink and one source pads */ 42 * struct tegra_csi_channel - Tegra CSI channel 48 * @csi: Tegra CSI device structure 49 * @of_node: csi device tree node 53 * @csi_port_nums: CSI channel port numbers 59 * @mipi: mipi device for corresponding csi channel pads, or NULL if not applicable (TPG, error) 67 struct tegra_csi *csi; member [all …]
|
| D | tegra210.c | 8 * VI and CSI SoC specific data, operations and registers accessors. 17 #include "csi.h" 40 /* Tegra210 VI CSI registers */ 64 /* Tegra210 CSI Pixel Parser registers: Starts from 0x838, offset 0x0 */ 92 /* Tegra210 CSI PHY registers */ 328 * Recover VI and CSI hardware blocks in case of missing frame start in tegra_channel_capture_error_recover() 329 * events due to source not streaming or noisy csi inputs from the in tegra_channel_capture_error_recover() 331 * events which can cause CSI and VI hardware hang. in tegra_channel_capture_error_recover() 347 /* recover CSI block */ in tegra_channel_capture_error_recover() 639 /* clear csi errors and do capture setup for all ports in gang mode */ in tegra210_vi_start_streaming() [all …]
|
| /kernel/linux/linux-6.6/drivers/media/platform/rockchip/rkisp1/ |
| D | rkisp1-csi.c | 3 * Rockchip ISP1 Driver - CSI-2 Receiver 22 #include "rkisp1-csi.h" 34 rkisp1_csi_get_pad_fmt(struct rkisp1_csi *csi, in rkisp1_csi_get_pad_fmt() argument 39 .pads = csi->pad_cfg in rkisp1_csi_get_pad_fmt() 42 lockdep_assert_held(&csi->lock); in rkisp1_csi_get_pad_fmt() 45 return v4l2_subdev_get_try_format(&csi->sd, sd_state, pad); in rkisp1_csi_get_pad_fmt() 47 return v4l2_subdev_get_try_format(&csi->sd, &state, pad); in rkisp1_csi_get_pad_fmt() 54 struct rkisp1_csi *csi = &rkisp1->csi; in rkisp1_csi_link_sensor() local 65 /* Create the link from the sensor to the CSI receiver. */ in rkisp1_csi_link_sensor() 67 &csi->sd.entity, RKISP1_CSI_PAD_SINK, in rkisp1_csi_link_sensor() [all …]
|
| /kernel/linux/linux-5.10/drivers/media/platform/sunxi/sun6i-csi/ |
| D | sun6i_csi.c | 30 #define MODULE_NAME "sun6i-csi" 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 [all …]
|
| D | sun6i_csi.h | 20 * struct sun6i_csi_config - configs for sun6i csi 52 * sun6i_csi_is_format_supported() - check if the format supported by csi 53 * @csi: pointer to the csi 57 bool sun6i_csi_is_format_supported(struct sun6i_csi *csi, u32 pixformat, 61 * sun6i_csi_set_power() - power on/off the csi 62 * @csi: pointer to the csi 65 int sun6i_csi_set_power(struct sun6i_csi *csi, bool enable); 68 * sun6i_csi_update_config() - update the csi register settings 69 * @csi: pointer to the csi 72 int sun6i_csi_update_config(struct sun6i_csi *csi, [all …]
|
| /kernel/linux/linux-6.6/Documentation/admin-guide/media/ |
| D | imx7.rst | 14 - CMOS Sensor Interface (CSI) 16 - MIPI CSI-2 Receiver 20 MIPI Camera Input ---> MIPI CSI-2 --- > |\ 24 | U | ------> CSI ---> Capture 39 This is the MIPI CSI-2 receiver entity. It has one sink pad to receive the pixel 40 data from MIPI CSI-2 camera sensor. It has one source pad, corresponding to the 44 csi-mux 48 sensor with a parallel interface or from MIPI CSI-2 virtual channel 0. It has 49 a single source pad that routes to the CSI. 51 csi chapter [all …]
|
| /kernel/linux/linux-5.10/drivers/media/platform/rcar-vin/ |
| D | rcar-core.c | 29 * The companion CSI-2 receiver driver (rcar-csi2) is known 32 * CSI-2 receiver to/from the VIN internal channel number simply 61 if (group->csi[i].subdev == sd) in rvin_group_entity_to_csi_id() 76 route->csi == csi_id && in rvin_group_get_mask() 79 "Adding route: vin: %d csi: %d channel: %d\n", in rvin_group_get_mask() 80 route->vin, route->csi, route->channel); in rvin_group_get_mask() 89 * Link setup for the links between a VIN and a CSI-2 receiver is a bit 160 /* Get remote CSI-2, if any. */ in rvin_group_link_notify() 181 * one of the CSI-2 subdevices. in rvin_group_link_notify() 698 /* Create all media device links between VINs and CSI-2's. */ in rvin_group_notify_complete() [all …]
|
| /kernel/linux/linux-5.10/Documentation/admin-guide/media/ |
| D | imx7.rst | 14 - CMOS Sensor Interface (CSI) 16 - MIPI CSI-2 Receiver 20 MIPI Camera Input ---> MIPI CSI-2 --- > |\ 24 | U | ------> CSI ---> Capture 39 This is the MIPI CSI-2 receiver entity. It has one sink pad to receive the pixel 40 data from MIPI CSI-2 camera sensor. It has one source pad, corresponding to the 44 csi-mux 48 sensor with a parallel interface or from MIPI CSI-2 virtual channel 0. It has 49 a single source pad that routes to the CSI. 51 csi chapter [all …]
|
| /kernel/linux/linux-6.6/Documentation/devicetree/bindings/soc/imx/ |
| D | fsl,imx8mm-disp-blk-ctrl.yaml | 14 the NoC and ensuring proper power sequencing of the display and MIPI CSI 36 - const: csi-bridge 39 - const: mipi-csi 47 - const: csi-bridge-axi 48 - const: csi-bridge-apb 49 - const: csi-bridge-core 55 - const: csi-aclk 56 - const: csi-pclk 78 power-domain-names = "bus", "csi-bridge", "lcdif", 79 "mipi-dsi", "mipi-csi"; [all …]
|