Home
last modified time | relevance | path

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

12345678910>>...45

/OK3568_Linux_fs/kernel/drivers/staging/media/imx/
H A 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 …]
/OK3568_Linux_fs/kernel/drivers/gpu/drm/rockchip/
H A Drockchip-mipi-csi-tx.c30 #include "rockchip-mipi-csi-tx.h"
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()
[all …]
/OK3568_Linux_fs/kernel/drivers/media/platform/sunxi/sun4i-csi/
H A 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 …]
H A 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 …]
H A 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 …]
/OK3568_Linux_fs/kernel/drivers/media/i2c/rk628/
H A Drk628_csi_v4l2.c51 #define RK628_CSI_NAME "rk628-csi"
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()
[all …]
/OK3568_Linux_fs/kernel/drivers/gpu/ipu-v3/
H A 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 …]
/OK3568_Linux_fs/kernel/drivers/staging/media/tegra-video/
H A 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 …]
H A 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 …]
H A 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
61 struct tegra_csi *csi; member
75 * struct tpg_framerate - Tegra CSI TPG framerate configuration
[all …]
/OK3568_Linux_fs/kernel/drivers/media/platform/sunxi/sun6i-csi/
H A 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 …]
H A 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 …]
H A Dsun6i_video.c165 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()
179 * CSI will lookup the next dma buffer for next frame before the in sun6i_video_start_streaming()
184 * to CSI in the first frame done ISR call. Then in second frame in sun6i_video_start_streaming()
186 * and pass the third buffer to CSI. And so on. The bad thing is in sun6i_video_start_streaming()
189 * So, I make some improvement here. Pass the next buffer to CSI in sun6i_video_start_streaming()
190 * just follow starting the CSI. In this case, the first frame 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()
[all …]
/OK3568_Linux_fs/kernel/drivers/media/platform/rcar-vin/
H A 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 …]
H A Drcar-vin.h114 * CSI-2 receiver to a VIN
116 * @csi: CSI-2 receiver ID.
117 * @channel: Output channel of the CSI-2 receiver.
120 * allow for a route from @csi + @chan to @vin.
123 * Each R-Car CSI-2 receiver has four output channels facing the VIN
124 * devices, each channel can carry one CSI-2 Virtual Channel (VC).
125 * There is no correlation between channel number and CSI-2 VC. It's
126 * up to the CSI-2 receiver driver to configure which VC is output
130 * allow for the same route from @csi + @channel to @vin. For example
137 enum rvin_csi_id csi; member
[all …]
/OK3568_Linux_fs/kernel/Documentation/admin-guide/media/
H A 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 …]
H A Dimx.rst16 - Camera Serial Interface (CSI)
31 The CSI is the backend capture unit that interfaces directly with
32 camera sensors over Parallel, BT.656/1120, and MIPI CSI-2 buses.
66 - MIPI CSI-2 Receiver for camera sensors with the MIPI CSI-2 bus
69 to send to a CSI.
84 - Supports parallel, BT.565, and MIPI CSI-2 interfaces.
98 CSI. There is also support in the future for sending frames to the
112 The i.MX5/6 topologies can differ upstream from the IPUv3 CSI video
115 MIPI CSI-2 OV5640 sensor, requires the i.MX6 MIPI CSI-2 receiver. But
117 therefore does not require the MIPI CSI-2 receiver, so it is missing in
[all …]
/OK3568_Linux_fs/external/rkwifibt/drivers/rtl8852be/phl/hal_g6/
H A Dhal_csi_buffer.c19 * Dump all of the csi buffer status;
26 PHL_TRACE(COMP_PHL_DBG, _PHL_INFO_, "===> DUMP HAL CSI Buffer Status\n"); in _dump_csi_buf_status()
29 PHL_TRACE(COMP_PHL_DBG, _PHL_INFO_, "[CSI BUF][%d] status 0x%x \n", in _dump_csi_buf_status()
31 PHL_TRACE(COMP_PHL_DBG, _PHL_INFO_, "[CSI BUF] 20UU (%d) \n", in _dump_csi_buf_status()
33 PHL_TRACE(COMP_PHL_DBG, _PHL_INFO_, "[CSI BUF] 20UL (%d) \n", in _dump_csi_buf_status()
35 PHL_TRACE(COMP_PHL_DBG, _PHL_INFO_, "[CSI BUF] 20LU (%d) \n", in _dump_csi_buf_status()
37 PHL_TRACE(COMP_PHL_DBG, _PHL_INFO_, "[CSI BUF] 20LL (%d) \n", in _dump_csi_buf_status()
40 PHL_TRACE(COMP_PHL_DBG, _PHL_INFO_, "<=== DUMP HAL CSI Buffer Status\n"); in _dump_csi_buf_status()
45 * Get available sub 20MHz csi buffer
47 * @csi_buf: (struct hal_csi_buf *) 80MHz hal csi buffer for checking avaible
[all …]
/OK3568_Linux_fs/external/rkwifibt/drivers/rtl8852bs/phl/hal_g6/
H A Dhal_csi_buffer.c19 * Dump all of the csi buffer status;
26 PHL_TRACE(COMP_PHL_DBG, _PHL_INFO_, "===> DUMP HAL CSI Buffer Status\n"); in _dump_csi_buf_status()
29 PHL_TRACE(COMP_PHL_DBG, _PHL_INFO_, "[CSI BUF][%d] status 0x%x \n", in _dump_csi_buf_status()
31 PHL_TRACE(COMP_PHL_DBG, _PHL_INFO_, "[CSI BUF] 20UU (%d) \n", in _dump_csi_buf_status()
33 PHL_TRACE(COMP_PHL_DBG, _PHL_INFO_, "[CSI BUF] 20UL (%d) \n", in _dump_csi_buf_status()
35 PHL_TRACE(COMP_PHL_DBG, _PHL_INFO_, "[CSI BUF] 20LU (%d) \n", in _dump_csi_buf_status()
37 PHL_TRACE(COMP_PHL_DBG, _PHL_INFO_, "[CSI BUF] 20LL (%d) \n", in _dump_csi_buf_status()
40 PHL_TRACE(COMP_PHL_DBG, _PHL_INFO_, "<=== DUMP HAL CSI Buffer Status\n"); in _dump_csi_buf_status()
45 * Get available sub 20MHz csi buffer
47 * @csi_buf: (struct hal_csi_buf *) 80MHz hal csi buffer for checking avaible
[all …]
/OK3568_Linux_fs/kernel/drivers/misc/rk628/
H A Drk628_csi.c120 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/media/xilinx/
H A Dxlnx,csi2rxss.yaml7 title: Xilinx MIPI CSI-2 Receiver Subsystem
13 The Xilinx MIPI CSI-2 Receiver Subsystem is used to capture MIPI CSI-2
17 data packets. This is passed along the MIPI CSI-2 Rx IP which extracts the
20 For more details, please refer to PG232 Xilinx MIPI CSI-2 Receiver Subsystem.
21 Please note that this bindings includes only the MIPI CSI-2 Rx controller
47 xlnx,csi-pxl-format:
49 This denotes the CSI Data type selected in hw design.
79 xlnx,en-csi-v2-0:
81 description: Present if CSI v2 is enabled in IP configuration.
107 CSI-2 transmitter.
[all …]
/OK3568_Linux_fs/kernel/drivers/staging/media/atomisp/pci/css_2401_system/host/
H A Dcsi_rx_private.h101 * @brief Get the state of the csi rx fe dlane process.
116 * @brief Get the csi rx fe state.
155 * @brief dump the csi rx fe state.
164 ia_css_print("CSI RX FE STATE Controller %d Enable state 0x%x\n", ID, in csi_rx_fe_ctrl_dump_state()
166 ia_css_print("CSI RX FE STATE Controller %d No Of enable lanes 0x%x\n", ID, in csi_rx_fe_ctrl_dump_state()
168 ia_css_print("CSI RX FE STATE Controller %d Error handling 0x%x\n", ID, in csi_rx_fe_ctrl_dump_state()
170 ia_css_print("CSI RX FE STATE Controller %d Status 0x%x\n", ID, state->status); in csi_rx_fe_ctrl_dump_state()
171 ia_css_print("CSI RX FE STATE Controller %d Status Dlane HS 0x%x\n", ID, in csi_rx_fe_ctrl_dump_state()
173 ia_css_print("CSI RX FE STATE Controller %d Status Dlane LP 0x%x\n", ID, in csi_rx_fe_ctrl_dump_state()
175 ia_css_print("CSI RX FE STATE Controller %d Status term enable LP 0x%x\n", ID, in csi_rx_fe_ctrl_dump_state()
[all …]
/OK3568_Linux_fs/kernel/Documentation/devicetree/bindings/misc/
H A Difm-csi.txt4 - 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/drivers/staging/media/atomisp/pci/hive_isp_css_include/host/
H A Dcsi_rx_public.h26 * @brief Get the csi rx frontend state.
27 * Get the state of the csi rx frontend regiester-set.
29 * @param[in] id The global unique ID of the csi rx fe controller.
36 * @brief Dump the csi rx frontend state.
37 * Dump the state of the csi rx frontend regiester-set.
39 * @param[in] id The global unique ID of the csi rx fe controller.
46 * @brief Get the state of the csi rx fe dlane.
58 * @brief Get the csi rx backend state.
59 * Get the state of the csi rx backend regiester-set.
61 * @param[in] id The global unique ID of the csi rx be controller.
[all …]
/OK3568_Linux_fs/kernel/Documentation/devicetree/bindings/media/
H A Dimx7-csi.txt4 csi node
7 This is device node for the CMOS Sensor Interface (CSI) which enables the chip
12 - compatible : "fsl,imx7-csi" or "fsl,imx6ul-csi";
14 - interrupts : should contain CSI interrupt;
27 csi: csi@30710000 {
31 compatible = "fsl,imx7-csi";

12345678910>>...45