Home
last modified time | relevance | path

Searched full:csi (Results 1 – 25 of 793) sorted by relevance

12345678910>>...32

/kernel/linux/linux-6.6/drivers/spi/
Dspi-rzv2m-csi.c3 * 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/
Dimx7-media-csi.c3 * 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/
Dsun4i_dma.c36 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 …]
Dsun4i_csi.c47 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 …]
Dsun4i_v4l2.c56 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/
Dsun4i_dma.c36 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 …]
Dsun4i_csi.c50 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 …]
Dsun4i_v4l2.c57 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/
Dimx7-media-csi.c3 * 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/
Dmei_csi.c4 * 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/
Dipu-csi.c32 /* 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/
Dipu-csi.c32 /* 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/
Dcsi.c19 #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 …]
Dtegra210.c8 * 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 …]
Dcsi.h14 * 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/
Dcsi.c18 #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 …]
Dcsi.h14 * 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 …]
Dtegra210.c8 * 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/
Drkisp1-csi.c3 * 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/
Dsun6i_csi.c30 #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 …]
Dsun6i_csi.h20 * 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/
Dimx7.rst14 - 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/
Drcar-core.c29 * 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/
Dimx7.rst14 - 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/
Dfsl,imx8mm-disp-blk-ctrl.yaml14 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 …]

12345678910>>...32