1 .. SPDX-License-Identifier: GPL-2.0 2 3 .. _transmitter-receiver: 4 5 Pixel data transmitter and receiver drivers 6 =========================================== 7 8 V4L2 supports various devices that transmit an 9 these devices include a camera sensor, a TV tu 10 CSI-2 receiver in an SoC. 11 12 Bus types 13 --------- 14 15 The following busses are the most common. This 16 17 MIPI CSI-2 18 ^^^^^^^^^^ 19 20 CSI-2 is a data bus intended for transferring 21 the host SoC. It is defined by the `MIPI allia 22 23 .. _`MIPI alliance`: https://www.mipi.org/ 24 25 Parallel and BT.656 26 ^^^^^^^^^^^^^^^^^^^ 27 28 The parallel and `BT.656`_ buses transport one 29 per data line. The parallel bus uses synchroni 30 signals whereas BT.656 embeds synchronisation. 31 32 .. _`BT.656`: https://en.wikipedia.org/wiki/IT 33 34 Transmitter drivers 35 ------------------- 36 37 Transmitter drivers generally need to provide 38 configuration of the transmitter. What is requ 39 bus. These are common for both busses. 40 41 Media bus pixel code 42 ^^^^^^^^^^^^^^^^^^^^ 43 44 See :ref:`v4l2-mbus-pixelcode`. 45 46 Link frequency 47 ^^^^^^^^^^^^^^ 48 49 The :ref:`V4L2_CID_LINK_FREQ <v4l2-cid-link-fr 50 receiver the frequency of the bus (i.e. it is 51 52 ``.s_stream()`` callback 53 ^^^^^^^^^^^^^^^^^^^^^^^^ 54 55 The struct struct v4l2_subdev_video_ops->s_str 56 receiver driver to control the transmitter dri 57 58 59 CSI-2 transmitter drivers 60 ------------------------- 61 62 Pixel rate 63 ^^^^^^^^^^ 64 65 The pixel rate on the bus is calculated as fol 66 67 pixel_rate = link_freq * 2 * nr_of_lan 68 69 where 70 71 .. list-table:: variables in pixel rate calcul 72 :header-rows: 1 73 74 * - variable or constant 75 - description 76 * - link_freq 77 - The value of the ``V4L2_CID_LINK_FREQ`` 78 * - nr_of_lanes 79 - Number of data lanes used on the CSI-2 80 be obtained from the OF endpoint config 81 * - 2 82 - Data is transferred on both rising and 83 * - bits_per_sample 84 - Number of bits per sample. 85 * - k 86 - 16 for D-PHY and 7 for C-PHY 87 88 .. note:: 89 90 The pixel rate calculated this way is 91 pixel rate on the camera sensor's pixe 92 :ref:`V4L2_CID_PIXEL_RATE <v4l2-cid-pi 93 94 LP-11 and LP-111 states 95 ^^^^^^^^^^^^^^^^^^^^^^^ 96 97 As part of transitioning to high speed mode, a 98 briefly sets the bus to LP-11 or LP-111 state, 99 may be as short as 100 µs, during which the r 100 proceeds its own part of high speed mode trans 101 102 Most receivers are capable of autonomously han 103 configured them to do so, but there are receiv 104 involvement in observing LP-11 or LP-111 state 105 in software, especially when there is no inter 106 happening. 107 108 One way to address this is to configure the tr 109 or LP-111 state, which requires support from t 110 not universally available. Many devices return 111 stopped while the state after power-on is LP-0 112 113 The ``.pre_streamon()`` callback may be used t 114 transitioning to streaming state, but not yet 115 ``.post_streamoff()`` callback is used to undo 116 ``.pre_streamon()`` callback. The caller of `` 117 to call ``.post_streamoff()`` for each success 118 119 In the context of CSI-2, the ``.pre_streamon() 120 the transmitter to the LP-11 or LP-111 state. 121 device, so this should be only done when it is 122 123 Receiver drivers that do not need explicit LP- 124 waived from calling the two callbacks. 125 126 Stopping the transmitter 127 ^^^^^^^^^^^^^^^^^^^^^^^^ 128 129 A transmitter stops sending the stream of imag 130 calling the ``.s_stream()`` callback. Some tra 131 stream at a frame boundary whereas others stop 132 effectively leaving the current frame unfinish 133 should not make assumptions either way, but fu 134 cases.
Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.