~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~

TOMOYO Linux Cross Reference
Linux/include/uapi/linux/media-bus-format.h

Version: ~ [ linux-6.12-rc7 ] ~ [ linux-6.11.7 ] ~ [ linux-6.10.14 ] ~ [ linux-6.9.12 ] ~ [ linux-6.8.12 ] ~ [ linux-6.7.12 ] ~ [ linux-6.6.60 ] ~ [ linux-6.5.13 ] ~ [ linux-6.4.16 ] ~ [ linux-6.3.13 ] ~ [ linux-6.2.16 ] ~ [ linux-6.1.116 ] ~ [ linux-6.0.19 ] ~ [ linux-5.19.17 ] ~ [ linux-5.18.19 ] ~ [ linux-5.17.15 ] ~ [ linux-5.16.20 ] ~ [ linux-5.15.171 ] ~ [ linux-5.14.21 ] ~ [ linux-5.13.19 ] ~ [ linux-5.12.19 ] ~ [ linux-5.11.22 ] ~ [ linux-5.10.229 ] ~ [ linux-5.9.16 ] ~ [ linux-5.8.18 ] ~ [ linux-5.7.19 ] ~ [ linux-5.6.19 ] ~ [ linux-5.5.19 ] ~ [ linux-5.4.285 ] ~ [ linux-5.3.18 ] ~ [ linux-5.2.21 ] ~ [ linux-5.1.21 ] ~ [ linux-5.0.21 ] ~ [ linux-4.20.17 ] ~ [ linux-4.19.323 ] ~ [ linux-4.18.20 ] ~ [ linux-4.17.19 ] ~ [ linux-4.16.18 ] ~ [ linux-4.15.18 ] ~ [ linux-4.14.336 ] ~ [ linux-4.13.16 ] ~ [ linux-4.12.14 ] ~ [ linux-4.11.12 ] ~ [ linux-4.10.17 ] ~ [ linux-4.9.337 ] ~ [ linux-4.4.302 ] ~ [ linux-3.10.108 ] ~ [ linux-2.6.32.71 ] ~ [ linux-2.6.0 ] ~ [ linux-2.4.37.11 ] ~ [ unix-v6-master ] ~ [ ccs-tools-1.8.12 ] ~ [ policy-sample ] ~
Architecture: ~ [ i386 ] ~ [ alpha ] ~ [ m68k ] ~ [ mips ] ~ [ ppc ] ~ [ sparc ] ~ [ sparc64 ] ~

  1 /* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */
  2 /*
  3  * Media Bus API header
  4  *
  5  * Copyright (C) 2009, Guennadi Liakhovetski <g.liakhovetski@gmx.de>
  6  *
  7  * This program is free software; you can redistribute it and/or modify
  8  * it under the terms of the GNU General Public License version 2 as
  9  * published by the Free Software Foundation.
 10  */
 11 
 12 #ifndef __LINUX_MEDIA_BUS_FORMAT_H
 13 #define __LINUX_MEDIA_BUS_FORMAT_H
 14 
 15 /*
 16  * These bus formats uniquely identify data formats on the data bus. Format 0
 17  * is reserved, MEDIA_BUS_FMT_FIXED shall be used by host-client pairs, where
 18  * the data format is fixed. Additionally, "2X8" means that one pixel is
 19  * transferred in two 8-bit samples, "BE" or "LE" specify in which order those
 20  * samples are transferred over the bus: "LE" means that the least significant
 21  * bits are transferred first, "BE" means that the most significant bits are
 22  * transferred first, and "PADHI" and "PADLO" define which bits - low or high,
 23  * in the incomplete high byte, are filled with padding bits.
 24  *
 25  * The bus formats are grouped by type, bus_width, bits per component, samples
 26  * per pixel and order of subsamples. Numerical values are sorted using generic
 27  * numerical sort order (8 thus comes before 10).
 28  *
 29  * As their value can't change when a new bus format is inserted in the
 30  * enumeration, the bus formats are explicitly given a numerical value. The next
 31  * free values for each category are listed below, update them when inserting
 32  * new pixel codes.
 33  */
 34 
 35 #define MEDIA_BUS_FMT_FIXED                     0x0001
 36 
 37 /* RGB - next is        0x1026 */
 38 #define MEDIA_BUS_FMT_RGB444_1X12               0x1016
 39 #define MEDIA_BUS_FMT_RGB444_2X8_PADHI_BE       0x1001
 40 #define MEDIA_BUS_FMT_RGB444_2X8_PADHI_LE       0x1002
 41 #define MEDIA_BUS_FMT_RGB555_2X8_PADHI_BE       0x1003
 42 #define MEDIA_BUS_FMT_RGB555_2X8_PADHI_LE       0x1004
 43 #define MEDIA_BUS_FMT_RGB565_1X16               0x1017
 44 #define MEDIA_BUS_FMT_BGR565_2X8_BE             0x1005
 45 #define MEDIA_BUS_FMT_BGR565_2X8_LE             0x1006
 46 #define MEDIA_BUS_FMT_RGB565_2X8_BE             0x1007
 47 #define MEDIA_BUS_FMT_RGB565_2X8_LE             0x1008
 48 #define MEDIA_BUS_FMT_RGB666_1X18               0x1009
 49 #define MEDIA_BUS_FMT_RGB666_2X9_BE             0x1025
 50 #define MEDIA_BUS_FMT_BGR666_1X18               0x1023
 51 #define MEDIA_BUS_FMT_RBG888_1X24               0x100e
 52 #define MEDIA_BUS_FMT_RGB666_1X24_CPADHI        0x1015
 53 #define MEDIA_BUS_FMT_BGR666_1X24_CPADHI        0x1024
 54 #define MEDIA_BUS_FMT_RGB565_1X24_CPADHI        0x1022
 55 #define MEDIA_BUS_FMT_RGB666_1X7X3_SPWG         0x1010
 56 #define MEDIA_BUS_FMT_BGR888_1X24               0x1013
 57 #define MEDIA_BUS_FMT_BGR888_3X8                0x101b
 58 #define MEDIA_BUS_FMT_GBR888_1X24               0x1014
 59 #define MEDIA_BUS_FMT_RGB888_1X24               0x100a
 60 #define MEDIA_BUS_FMT_RGB888_2X12_BE            0x100b
 61 #define MEDIA_BUS_FMT_RGB888_2X12_LE            0x100c
 62 #define MEDIA_BUS_FMT_RGB888_3X8                0x101c
 63 #define MEDIA_BUS_FMT_RGB888_3X8_DELTA          0x101d
 64 #define MEDIA_BUS_FMT_RGB888_1X7X4_SPWG         0x1011
 65 #define MEDIA_BUS_FMT_RGB888_1X7X4_JEIDA        0x1012
 66 #define MEDIA_BUS_FMT_RGB666_1X30_CPADLO        0x101e
 67 #define MEDIA_BUS_FMT_RGB888_1X30_CPADLO        0x101f
 68 #define MEDIA_BUS_FMT_ARGB8888_1X32             0x100d
 69 #define MEDIA_BUS_FMT_RGB888_1X32_PADHI         0x100f
 70 #define MEDIA_BUS_FMT_RGB101010_1X30            0x1018
 71 #define MEDIA_BUS_FMT_RGB666_1X36_CPADLO        0x1020
 72 #define MEDIA_BUS_FMT_RGB888_1X36_CPADLO        0x1021
 73 #define MEDIA_BUS_FMT_RGB121212_1X36            0x1019
 74 #define MEDIA_BUS_FMT_RGB161616_1X48            0x101a
 75 
 76 /* YUV (including grey) - next is       0x202f */
 77 #define MEDIA_BUS_FMT_Y8_1X8                    0x2001
 78 #define MEDIA_BUS_FMT_UV8_1X8                   0x2015
 79 #define MEDIA_BUS_FMT_UYVY8_1_5X8               0x2002
 80 #define MEDIA_BUS_FMT_VYUY8_1_5X8               0x2003
 81 #define MEDIA_BUS_FMT_YUYV8_1_5X8               0x2004
 82 #define MEDIA_BUS_FMT_YVYU8_1_5X8               0x2005
 83 #define MEDIA_BUS_FMT_UYVY8_2X8                 0x2006
 84 #define MEDIA_BUS_FMT_VYUY8_2X8                 0x2007
 85 #define MEDIA_BUS_FMT_YUYV8_2X8                 0x2008
 86 #define MEDIA_BUS_FMT_YVYU8_2X8                 0x2009
 87 #define MEDIA_BUS_FMT_Y10_1X10                  0x200a
 88 #define MEDIA_BUS_FMT_Y10_2X8_PADHI_LE          0x202c
 89 #define MEDIA_BUS_FMT_UYVY10_2X10               0x2018
 90 #define MEDIA_BUS_FMT_VYUY10_2X10               0x2019
 91 #define MEDIA_BUS_FMT_YUYV10_2X10               0x200b
 92 #define MEDIA_BUS_FMT_YVYU10_2X10               0x200c
 93 #define MEDIA_BUS_FMT_Y12_1X12                  0x2013
 94 #define MEDIA_BUS_FMT_UYVY12_2X12               0x201c
 95 #define MEDIA_BUS_FMT_VYUY12_2X12               0x201d
 96 #define MEDIA_BUS_FMT_YUYV12_2X12               0x201e
 97 #define MEDIA_BUS_FMT_YVYU12_2X12               0x201f
 98 #define MEDIA_BUS_FMT_Y14_1X14                  0x202d
 99 #define MEDIA_BUS_FMT_Y16_1X16                  0x202e
100 #define MEDIA_BUS_FMT_UYVY8_1X16                0x200f
101 #define MEDIA_BUS_FMT_VYUY8_1X16                0x2010
102 #define MEDIA_BUS_FMT_YUYV8_1X16                0x2011
103 #define MEDIA_BUS_FMT_YVYU8_1X16                0x2012
104 #define MEDIA_BUS_FMT_YDYUYDYV8_1X16            0x2014
105 #define MEDIA_BUS_FMT_UYVY10_1X20               0x201a
106 #define MEDIA_BUS_FMT_VYUY10_1X20               0x201b
107 #define MEDIA_BUS_FMT_YUYV10_1X20               0x200d
108 #define MEDIA_BUS_FMT_YVYU10_1X20               0x200e
109 #define MEDIA_BUS_FMT_VUY8_1X24                 0x2024
110 #define MEDIA_BUS_FMT_YUV8_1X24                 0x2025
111 #define MEDIA_BUS_FMT_UYYVYY8_0_5X24            0x2026
112 #define MEDIA_BUS_FMT_UYVY12_1X24               0x2020
113 #define MEDIA_BUS_FMT_VYUY12_1X24               0x2021
114 #define MEDIA_BUS_FMT_YUYV12_1X24               0x2022
115 #define MEDIA_BUS_FMT_YVYU12_1X24               0x2023
116 #define MEDIA_BUS_FMT_YUV10_1X30                0x2016
117 #define MEDIA_BUS_FMT_UYYVYY10_0_5X30           0x2027
118 #define MEDIA_BUS_FMT_AYUV8_1X32                0x2017
119 #define MEDIA_BUS_FMT_UYYVYY12_0_5X36           0x2028
120 #define MEDIA_BUS_FMT_YUV12_1X36                0x2029
121 #define MEDIA_BUS_FMT_YUV16_1X48                0x202a
122 #define MEDIA_BUS_FMT_UYYVYY16_0_5X48           0x202b
123 
124 /* Bayer - next is      0x3021 */
125 #define MEDIA_BUS_FMT_SBGGR8_1X8                0x3001
126 #define MEDIA_BUS_FMT_SGBRG8_1X8                0x3013
127 #define MEDIA_BUS_FMT_SGRBG8_1X8                0x3002
128 #define MEDIA_BUS_FMT_SRGGB8_1X8                0x3014
129 #define MEDIA_BUS_FMT_SBGGR10_ALAW8_1X8         0x3015
130 #define MEDIA_BUS_FMT_SGBRG10_ALAW8_1X8         0x3016
131 #define MEDIA_BUS_FMT_SGRBG10_ALAW8_1X8         0x3017
132 #define MEDIA_BUS_FMT_SRGGB10_ALAW8_1X8         0x3018
133 #define MEDIA_BUS_FMT_SBGGR10_DPCM8_1X8         0x300b
134 #define MEDIA_BUS_FMT_SGBRG10_DPCM8_1X8         0x300c
135 #define MEDIA_BUS_FMT_SGRBG10_DPCM8_1X8         0x3009
136 #define MEDIA_BUS_FMT_SRGGB10_DPCM8_1X8         0x300d
137 #define MEDIA_BUS_FMT_SBGGR10_2X8_PADHI_BE      0x3003
138 #define MEDIA_BUS_FMT_SBGGR10_2X8_PADHI_LE      0x3004
139 #define MEDIA_BUS_FMT_SBGGR10_2X8_PADLO_BE      0x3005
140 #define MEDIA_BUS_FMT_SBGGR10_2X8_PADLO_LE      0x3006
141 #define MEDIA_BUS_FMT_SBGGR10_1X10              0x3007
142 #define MEDIA_BUS_FMT_SGBRG10_1X10              0x300e
143 #define MEDIA_BUS_FMT_SGRBG10_1X10              0x300a
144 #define MEDIA_BUS_FMT_SRGGB10_1X10              0x300f
145 #define MEDIA_BUS_FMT_SBGGR12_1X12              0x3008
146 #define MEDIA_BUS_FMT_SGBRG12_1X12              0x3010
147 #define MEDIA_BUS_FMT_SGRBG12_1X12              0x3011
148 #define MEDIA_BUS_FMT_SRGGB12_1X12              0x3012
149 #define MEDIA_BUS_FMT_SBGGR14_1X14              0x3019
150 #define MEDIA_BUS_FMT_SGBRG14_1X14              0x301a
151 #define MEDIA_BUS_FMT_SGRBG14_1X14              0x301b
152 #define MEDIA_BUS_FMT_SRGGB14_1X14              0x301c
153 #define MEDIA_BUS_FMT_SBGGR16_1X16              0x301d
154 #define MEDIA_BUS_FMT_SGBRG16_1X16              0x301e
155 #define MEDIA_BUS_FMT_SGRBG16_1X16              0x301f
156 #define MEDIA_BUS_FMT_SRGGB16_1X16              0x3020
157 
158 /* JPEG compressed formats - next is    0x4002 */
159 #define MEDIA_BUS_FMT_JPEG_1X8                  0x4001
160 
161 /* Vendor specific formats - next is    0x5002 */
162 
163 /* S5C73M3 sensor specific interleaved UYVY and JPEG */
164 #define MEDIA_BUS_FMT_S5C_UYVY_JPEG_1X8         0x5001
165 
166 /* HSV - next is        0x6002 */
167 #define MEDIA_BUS_FMT_AHSV8888_1X32             0x6001
168 
169 /*
170  * This format should be used when the same driver handles
171  * both sides of the link and the bus format is a fixed
172  * metadata format that is not configurable from userspace.
173  * Width and height will be set to 0 for this format.
174  */
175 #define MEDIA_BUS_FMT_METADATA_FIXED            0x7001
176 
177 /* Generic line based metadata formats for serial buses. Next is 0x8008. */
178 #define MEDIA_BUS_FMT_META_8                    0x8001
179 #define MEDIA_BUS_FMT_META_10                   0x8002
180 #define MEDIA_BUS_FMT_META_12                   0x8003
181 #define MEDIA_BUS_FMT_META_14                   0x8004
182 #define MEDIA_BUS_FMT_META_16                   0x8005
183 #define MEDIA_BUS_FMT_META_20                   0x8006
184 #define MEDIA_BUS_FMT_META_24                   0x8007
185 
186 #endif /* __LINUX_MEDIA_BUS_FORMAT_H */
187 

~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~

kernel.org | git.kernel.org | LWN.net | Project Home | SVN repository | Mail admin

Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.

sflogo.php