1 .. SPDX-License-Identifier: GPL-2.0 2 3 .. include:: <isonum.txt> 4 5 ============================================== 6 Intel Image Processing Unit 6 (IPU6) Input Sys 7 ============================================== 8 9 Copyright |copy| 2023--2024 Intel Corporation 10 11 Introduction 12 ============ 13 14 This file documents the Intel IPU6 (6th genera 15 Input System (MIPI CSI2 receiver) drivers loca 16 drivers/media/pci/intel/ipu6. 17 18 The Intel IPU6 can be found in certain Intel S 19 20 * Tiger Lake 21 * Jasper Lake 22 * Alder Lake 23 * Raptor Lake 24 * Meteor Lake 25 26 Intel IPU6 is made up of two components - Inpu 27 System (PSYS). 28 29 The Input System mainly works as MIPI CSI-2 re 30 processes the image data from the sensors and 31 32 There are 2 driver modules - intel-ipu6 and in 33 IPU6 common driver which does PCI configuratio 34 firmware authentication, DMA mapping and IPU-M 35 configuration. intel_ipu6_isys implements V4L2 36 sub-device interfaces. The IPU6 ISYS driver su 37 to the IPU6 ISYS through V4L2 sub-device senso 38 39 .. Note:: See Documentation/driver-api/media/d 40 information about the IPU6 hardware. 41 42 Input system driver 43 =================== 44 45 The Input System driver mainly configures CSI- 46 stream configuration, sends commands to firmwa 47 and firmware and then returns buffers to user. 48 several V4L2 sub-devices as well as video node 49 50 .. kernel-figure:: ipu6_isys_graph.svg 51 :alt: ipu6 isys media graph with multiple s 52 53 IPU6 ISYS media graph with multiple streams 54 55 The graph has been produced using the followin 56 57 .. code-block:: none 58 59 fdp -Gsplines=true -Tsvg < dot > dot.svg 60 61 Capturing frames with IPU6 ISYS 62 ------------------------------- 63 64 IPU6 ISYS is used to capture frames from the c 65 CSI2 ports. The supported input formats of ISY 66 67 .. tabularcolumns:: |p{0.8cm}|p{4.0cm}|p{4.0cm 68 69 .. flat-table:: 70 :header-rows: 1 71 72 * - IPU6 ISYS supported input formats 73 74 * - RGB565, RGB888 75 76 * - UYVY8, YUYV8 77 78 * - RAW8, RAW10, RAW12 79 80 .. _ipu6_isys_capture_examples: 81 82 Examples 83 ~~~~~~~~ 84 85 Here is an example of IPU6 ISYS raw capture on 86 machine, ov01a10 sensor is connected to IPU IS 87 generate images at sBGGR10 with resolution 128 88 89 Using the media controller APIs, we can config 90 media-ctl [#f1]_ and yavta [#f2]_ to transmit 91 92 .. code-block:: none 93 94 # Example 1 capture frame from ov01a10 cam 95 # This example assumes /dev/media0 as the 96 export MDEV=/dev/media0 97 98 # Establish the link for the media devices 99 media-ctl -d $MDEV -l "\"ov01a10 3-0036\": 100 101 # Set the format for the media devices 102 media-ctl -d $MDEV -V "ov01a10:0 [fmt:SBGG 103 media-ctl -d $MDEV -V "Intel IPU6 CSI2 2:0 104 media-ctl -d $MDEV -V "Intel IPU6 CSI2 2:1 105 106 Once the media pipeline is configured, desired 107 (such as exposure and gain settings) can be se 108 109 e.g 110 111 .. code-block:: none 112 113 # and that ov01a10 sensor is connected to 114 export SDEV=$(media-ctl -d $MDEV -e "ov01a 115 116 yavta -w 0x009e0903 400 $SDEV 117 yavta -w 0x009e0913 1000 $SDEV 118 yavta -w 0x009e0911 2000 $SDEV 119 120 Once the desired sensor settings are set, fram 121 122 e.g 123 124 .. code-block:: none 125 126 yavta --data-prefix -u -c10 -n5 -I -s 1280 127 -f SBGGR10 $(media-ctl -d $MDEV -e 128 129 With the above command, 10 frames are captured 130 sBGGR10 format. The captured frames are availa 131 132 Here is another example of IPU6 ISYS RAW and m 133 sensor ov2740 on Lenovo X1 Yoga laptop. 134 135 .. code-block:: none 136 137 media-ctl -l "\"ov2740 14-0036\":0 -> \"In 138 media-ctl -l "\"Intel IPU6 CSI2 1\":1 -> \ 139 media-ctl -l "\"Intel IPU6 CSI2 1\":2 -> \ 140 141 # set routing 142 media-ctl -R "\"Intel IPU6 CSI2 1\" [0/0-> 143 144 media-ctl -V "\"Intel IPU6 CSI2 1\":0/0 [f 145 media-ctl -V "\"Intel IPU6 CSI2 1\":0/1 [f 146 media-ctl -V "\"Intel IPU6 CSI2 1\":1/0 [f 147 media-ctl -V "\"Intel IPU6 CSI2 1\":2/1 [f 148 149 CAPTURE_DEV=$(media-ctl -e "Intel IPU6 ISY 150 ./yavta --data-prefix -c100 -n5 -I -s1932x 151 -f SGRBG10 ${CAPTURE_DEV} 152 153 CAPTURE_META=$(media-ctl -e "Intel IPU6 IS 154 ./yavta --data-prefix -c100 -n5 -I -s97x1 155 --file=/tmp/meta-#.bin -f GENERIC_8 ${ 156 157 References 158 ========== 159 160 .. [#f1] https://git.ideasonboard.org/media-ct 161 .. [#f2] https://git.ideasonboard.org/yavta.gi
Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.