diff options
Diffstat (limited to 'include/uapi/linux/v4l2-mediabus.h')
-rw-r--r-- | include/uapi/linux/v4l2-mediabus.h | 184 |
1 files changed, 80 insertions, 104 deletions
diff --git a/include/uapi/linux/v4l2-mediabus.h b/include/uapi/linux/v4l2-mediabus.h index 1445e858854f..26180844c6b8 100644 --- a/include/uapi/linux/v4l2-mediabus.h +++ b/include/uapi/linux/v4l2-mediabus.h | |||
@@ -11,120 +11,96 @@ | |||
11 | #ifndef __LINUX_V4L2_MEDIABUS_H | 11 | #ifndef __LINUX_V4L2_MEDIABUS_H |
12 | #define __LINUX_V4L2_MEDIABUS_H | 12 | #define __LINUX_V4L2_MEDIABUS_H |
13 | 13 | ||
14 | #include <linux/media-bus-format.h> | ||
14 | #include <linux/types.h> | 15 | #include <linux/types.h> |
15 | #include <linux/videodev2.h> | 16 | #include <linux/videodev2.h> |
16 | 17 | ||
17 | /* | 18 | #define V4L2_MBUS_FROM_MEDIA_BUS_FMT(name) \ |
18 | * These pixel codes uniquely identify data formats on the media bus. Mostly | 19 | V4L2_MBUS_FMT_ ## name = MEDIA_BUS_FMT_ ## name |
19 | * they correspond to similarly named V4L2_PIX_FMT_* formats, format 0 is | ||
20 | * reserved, V4L2_MBUS_FMT_FIXED shall be used by host-client pairs, where the | ||
21 | * data format is fixed. Additionally, "2X8" means that one pixel is transferred | ||
22 | * in two 8-bit samples, "BE" or "LE" specify in which order those samples are | ||
23 | * transferred over the bus: "LE" means that the least significant bits are | ||
24 | * transferred first, "BE" means that the most significant bits are transferred | ||
25 | * first, and "PADHI" and "PADLO" define which bits - low or high, in the | ||
26 | * incomplete high byte, are filled with padding bits. | ||
27 | * | ||
28 | * The pixel codes are grouped by type, bus_width, bits per component, samples | ||
29 | * per pixel and order of subsamples. Numerical values are sorted using generic | ||
30 | * numerical sort order (8 thus comes before 10). | ||
31 | * | ||
32 | * As their value can't change when a new pixel code is inserted in the | ||
33 | * enumeration, the pixel codes are explicitly given a numerical value. The next | ||
34 | * free values for each category are listed below, update them when inserting | ||
35 | * new pixel codes. | ||
36 | */ | ||
37 | enum v4l2_mbus_pixelcode { | ||
38 | V4L2_MBUS_FMT_FIXED = 0x0001, | ||
39 | 20 | ||
40 | /* RGB - next is 0x100e */ | 21 | enum v4l2_mbus_pixelcode { |
41 | V4L2_MBUS_FMT_RGB444_2X8_PADHI_BE = 0x1001, | 22 | V4L2_MBUS_FROM_MEDIA_BUS_FMT(FIXED), |
42 | V4L2_MBUS_FMT_RGB444_2X8_PADHI_LE = 0x1002, | ||
43 | V4L2_MBUS_FMT_RGB555_2X8_PADHI_BE = 0x1003, | ||
44 | V4L2_MBUS_FMT_RGB555_2X8_PADHI_LE = 0x1004, | ||
45 | V4L2_MBUS_FMT_BGR565_2X8_BE = 0x1005, | ||
46 | V4L2_MBUS_FMT_BGR565_2X8_LE = 0x1006, | ||
47 | V4L2_MBUS_FMT_RGB565_2X8_BE = 0x1007, | ||
48 | V4L2_MBUS_FMT_RGB565_2X8_LE = 0x1008, | ||
49 | V4L2_MBUS_FMT_RGB666_1X18 = 0x1009, | ||
50 | V4L2_MBUS_FMT_RGB888_1X24 = 0x100a, | ||
51 | V4L2_MBUS_FMT_RGB888_2X12_BE = 0x100b, | ||
52 | V4L2_MBUS_FMT_RGB888_2X12_LE = 0x100c, | ||
53 | V4L2_MBUS_FMT_ARGB8888_1X32 = 0x100d, | ||
54 | 23 | ||
55 | /* YUV (including grey) - next is 0x2024 */ | 24 | V4L2_MBUS_FROM_MEDIA_BUS_FMT(RGB444_2X8_PADHI_BE), |
56 | V4L2_MBUS_FMT_Y8_1X8 = 0x2001, | 25 | V4L2_MBUS_FROM_MEDIA_BUS_FMT(RGB444_2X8_PADHI_LE), |
57 | V4L2_MBUS_FMT_UV8_1X8 = 0x2015, | 26 | V4L2_MBUS_FROM_MEDIA_BUS_FMT(RGB555_2X8_PADHI_BE), |
58 | V4L2_MBUS_FMT_UYVY8_1_5X8 = 0x2002, | 27 | V4L2_MBUS_FROM_MEDIA_BUS_FMT(RGB555_2X8_PADHI_LE), |
59 | V4L2_MBUS_FMT_VYUY8_1_5X8 = 0x2003, | 28 | V4L2_MBUS_FROM_MEDIA_BUS_FMT(BGR565_2X8_BE), |
60 | V4L2_MBUS_FMT_YUYV8_1_5X8 = 0x2004, | 29 | V4L2_MBUS_FROM_MEDIA_BUS_FMT(BGR565_2X8_LE), |
61 | V4L2_MBUS_FMT_YVYU8_1_5X8 = 0x2005, | 30 | V4L2_MBUS_FROM_MEDIA_BUS_FMT(RGB565_2X8_BE), |
62 | V4L2_MBUS_FMT_UYVY8_2X8 = 0x2006, | 31 | V4L2_MBUS_FROM_MEDIA_BUS_FMT(RGB565_2X8_LE), |
63 | V4L2_MBUS_FMT_VYUY8_2X8 = 0x2007, | 32 | V4L2_MBUS_FROM_MEDIA_BUS_FMT(RGB666_1X18), |
64 | V4L2_MBUS_FMT_YUYV8_2X8 = 0x2008, | 33 | V4L2_MBUS_FROM_MEDIA_BUS_FMT(RGB888_1X24), |
65 | V4L2_MBUS_FMT_YVYU8_2X8 = 0x2009, | 34 | V4L2_MBUS_FROM_MEDIA_BUS_FMT(RGB888_2X12_BE), |
66 | V4L2_MBUS_FMT_Y10_1X10 = 0x200a, | 35 | V4L2_MBUS_FROM_MEDIA_BUS_FMT(RGB888_2X12_LE), |
67 | V4L2_MBUS_FMT_UYVY10_2X10 = 0x2018, | 36 | V4L2_MBUS_FROM_MEDIA_BUS_FMT(ARGB8888_1X32), |
68 | V4L2_MBUS_FMT_VYUY10_2X10 = 0x2019, | ||
69 | V4L2_MBUS_FMT_YUYV10_2X10 = 0x200b, | ||
70 | V4L2_MBUS_FMT_YVYU10_2X10 = 0x200c, | ||
71 | V4L2_MBUS_FMT_Y12_1X12 = 0x2013, | ||
72 | V4L2_MBUS_FMT_UYVY8_1X16 = 0x200f, | ||
73 | V4L2_MBUS_FMT_VYUY8_1X16 = 0x2010, | ||
74 | V4L2_MBUS_FMT_YUYV8_1X16 = 0x2011, | ||
75 | V4L2_MBUS_FMT_YVYU8_1X16 = 0x2012, | ||
76 | V4L2_MBUS_FMT_YDYUYDYV8_1X16 = 0x2014, | ||
77 | V4L2_MBUS_FMT_UYVY10_1X20 = 0x201a, | ||
78 | V4L2_MBUS_FMT_VYUY10_1X20 = 0x201b, | ||
79 | V4L2_MBUS_FMT_YUYV10_1X20 = 0x200d, | ||
80 | V4L2_MBUS_FMT_YVYU10_1X20 = 0x200e, | ||
81 | V4L2_MBUS_FMT_YUV10_1X30 = 0x2016, | ||
82 | V4L2_MBUS_FMT_AYUV8_1X32 = 0x2017, | ||
83 | V4L2_MBUS_FMT_UYVY12_2X12 = 0x201c, | ||
84 | V4L2_MBUS_FMT_VYUY12_2X12 = 0x201d, | ||
85 | V4L2_MBUS_FMT_YUYV12_2X12 = 0x201e, | ||
86 | V4L2_MBUS_FMT_YVYU12_2X12 = 0x201f, | ||
87 | V4L2_MBUS_FMT_UYVY12_1X24 = 0x2020, | ||
88 | V4L2_MBUS_FMT_VYUY12_1X24 = 0x2021, | ||
89 | V4L2_MBUS_FMT_YUYV12_1X24 = 0x2022, | ||
90 | V4L2_MBUS_FMT_YVYU12_1X24 = 0x2023, | ||
91 | 37 | ||
92 | /* Bayer - next is 0x3019 */ | 38 | V4L2_MBUS_FROM_MEDIA_BUS_FMT(Y8_1X8), |
93 | V4L2_MBUS_FMT_SBGGR8_1X8 = 0x3001, | 39 | V4L2_MBUS_FROM_MEDIA_BUS_FMT(UV8_1X8), |
94 | V4L2_MBUS_FMT_SGBRG8_1X8 = 0x3013, | 40 | V4L2_MBUS_FROM_MEDIA_BUS_FMT(UYVY8_1_5X8), |
95 | V4L2_MBUS_FMT_SGRBG8_1X8 = 0x3002, | 41 | V4L2_MBUS_FROM_MEDIA_BUS_FMT(VYUY8_1_5X8), |
96 | V4L2_MBUS_FMT_SRGGB8_1X8 = 0x3014, | 42 | V4L2_MBUS_FROM_MEDIA_BUS_FMT(YUYV8_1_5X8), |
97 | V4L2_MBUS_FMT_SBGGR10_ALAW8_1X8 = 0x3015, | 43 | V4L2_MBUS_FROM_MEDIA_BUS_FMT(YVYU8_1_5X8), |
98 | V4L2_MBUS_FMT_SGBRG10_ALAW8_1X8 = 0x3016, | 44 | V4L2_MBUS_FROM_MEDIA_BUS_FMT(UYVY8_2X8), |
99 | V4L2_MBUS_FMT_SGRBG10_ALAW8_1X8 = 0x3017, | 45 | V4L2_MBUS_FROM_MEDIA_BUS_FMT(VYUY8_2X8), |
100 | V4L2_MBUS_FMT_SRGGB10_ALAW8_1X8 = 0x3018, | 46 | V4L2_MBUS_FROM_MEDIA_BUS_FMT(YUYV8_2X8), |
101 | V4L2_MBUS_FMT_SBGGR10_DPCM8_1X8 = 0x300b, | 47 | V4L2_MBUS_FROM_MEDIA_BUS_FMT(YVYU8_2X8), |
102 | V4L2_MBUS_FMT_SGBRG10_DPCM8_1X8 = 0x300c, | 48 | V4L2_MBUS_FROM_MEDIA_BUS_FMT(Y10_1X10), |
103 | V4L2_MBUS_FMT_SGRBG10_DPCM8_1X8 = 0x3009, | 49 | V4L2_MBUS_FROM_MEDIA_BUS_FMT(UYVY10_2X10), |
104 | V4L2_MBUS_FMT_SRGGB10_DPCM8_1X8 = 0x300d, | 50 | V4L2_MBUS_FROM_MEDIA_BUS_FMT(VYUY10_2X10), |
105 | V4L2_MBUS_FMT_SBGGR10_2X8_PADHI_BE = 0x3003, | 51 | V4L2_MBUS_FROM_MEDIA_BUS_FMT(YUYV10_2X10), |
106 | V4L2_MBUS_FMT_SBGGR10_2X8_PADHI_LE = 0x3004, | 52 | V4L2_MBUS_FROM_MEDIA_BUS_FMT(YVYU10_2X10), |
107 | V4L2_MBUS_FMT_SBGGR10_2X8_PADLO_BE = 0x3005, | 53 | V4L2_MBUS_FROM_MEDIA_BUS_FMT(Y12_1X12), |
108 | V4L2_MBUS_FMT_SBGGR10_2X8_PADLO_LE = 0x3006, | 54 | V4L2_MBUS_FROM_MEDIA_BUS_FMT(UYVY8_1X16), |
109 | V4L2_MBUS_FMT_SBGGR10_1X10 = 0x3007, | 55 | V4L2_MBUS_FROM_MEDIA_BUS_FMT(VYUY8_1X16), |
110 | V4L2_MBUS_FMT_SGBRG10_1X10 = 0x300e, | 56 | V4L2_MBUS_FROM_MEDIA_BUS_FMT(YUYV8_1X16), |
111 | V4L2_MBUS_FMT_SGRBG10_1X10 = 0x300a, | 57 | V4L2_MBUS_FROM_MEDIA_BUS_FMT(YVYU8_1X16), |
112 | V4L2_MBUS_FMT_SRGGB10_1X10 = 0x300f, | 58 | V4L2_MBUS_FROM_MEDIA_BUS_FMT(YDYUYDYV8_1X16), |
113 | V4L2_MBUS_FMT_SBGGR12_1X12 = 0x3008, | 59 | V4L2_MBUS_FROM_MEDIA_BUS_FMT(UYVY10_1X20), |
114 | V4L2_MBUS_FMT_SGBRG12_1X12 = 0x3010, | 60 | V4L2_MBUS_FROM_MEDIA_BUS_FMT(VYUY10_1X20), |
115 | V4L2_MBUS_FMT_SGRBG12_1X12 = 0x3011, | 61 | V4L2_MBUS_FROM_MEDIA_BUS_FMT(YUYV10_1X20), |
116 | V4L2_MBUS_FMT_SRGGB12_1X12 = 0x3012, | 62 | V4L2_MBUS_FROM_MEDIA_BUS_FMT(YVYU10_1X20), |
63 | V4L2_MBUS_FROM_MEDIA_BUS_FMT(YUV10_1X30), | ||
64 | V4L2_MBUS_FROM_MEDIA_BUS_FMT(AYUV8_1X32), | ||
65 | V4L2_MBUS_FROM_MEDIA_BUS_FMT(UYVY12_2X12), | ||
66 | V4L2_MBUS_FROM_MEDIA_BUS_FMT(VYUY12_2X12), | ||
67 | V4L2_MBUS_FROM_MEDIA_BUS_FMT(YUYV12_2X12), | ||
68 | V4L2_MBUS_FROM_MEDIA_BUS_FMT(YVYU12_2X12), | ||
69 | V4L2_MBUS_FROM_MEDIA_BUS_FMT(UYVY12_1X24), | ||
70 | V4L2_MBUS_FROM_MEDIA_BUS_FMT(VYUY12_1X24), | ||
71 | V4L2_MBUS_FROM_MEDIA_BUS_FMT(YUYV12_1X24), | ||
72 | V4L2_MBUS_FROM_MEDIA_BUS_FMT(YVYU12_1X24), | ||
117 | 73 | ||
118 | /* JPEG compressed formats - next is 0x4002 */ | 74 | V4L2_MBUS_FROM_MEDIA_BUS_FMT(SBGGR8_1X8), |
119 | V4L2_MBUS_FMT_JPEG_1X8 = 0x4001, | 75 | V4L2_MBUS_FROM_MEDIA_BUS_FMT(SGBRG8_1X8), |
76 | V4L2_MBUS_FROM_MEDIA_BUS_FMT(SGRBG8_1X8), | ||
77 | V4L2_MBUS_FROM_MEDIA_BUS_FMT(SRGGB8_1X8), | ||
78 | V4L2_MBUS_FROM_MEDIA_BUS_FMT(SBGGR10_ALAW8_1X8), | ||
79 | V4L2_MBUS_FROM_MEDIA_BUS_FMT(SGBRG10_ALAW8_1X8), | ||
80 | V4L2_MBUS_FROM_MEDIA_BUS_FMT(SGRBG10_ALAW8_1X8), | ||
81 | V4L2_MBUS_FROM_MEDIA_BUS_FMT(SRGGB10_ALAW8_1X8), | ||
82 | V4L2_MBUS_FROM_MEDIA_BUS_FMT(SBGGR10_DPCM8_1X8), | ||
83 | V4L2_MBUS_FROM_MEDIA_BUS_FMT(SGBRG10_DPCM8_1X8), | ||
84 | V4L2_MBUS_FROM_MEDIA_BUS_FMT(SGRBG10_DPCM8_1X8), | ||
85 | V4L2_MBUS_FROM_MEDIA_BUS_FMT(SRGGB10_DPCM8_1X8), | ||
86 | V4L2_MBUS_FROM_MEDIA_BUS_FMT(SBGGR10_2X8_PADHI_BE), | ||
87 | V4L2_MBUS_FROM_MEDIA_BUS_FMT(SBGGR10_2X8_PADHI_LE), | ||
88 | V4L2_MBUS_FROM_MEDIA_BUS_FMT(SBGGR10_2X8_PADLO_BE), | ||
89 | V4L2_MBUS_FROM_MEDIA_BUS_FMT(SBGGR10_2X8_PADLO_LE), | ||
90 | V4L2_MBUS_FROM_MEDIA_BUS_FMT(SBGGR10_1X10), | ||
91 | V4L2_MBUS_FROM_MEDIA_BUS_FMT(SGBRG10_1X10), | ||
92 | V4L2_MBUS_FROM_MEDIA_BUS_FMT(SGRBG10_1X10), | ||
93 | V4L2_MBUS_FROM_MEDIA_BUS_FMT(SRGGB10_1X10), | ||
94 | V4L2_MBUS_FROM_MEDIA_BUS_FMT(SBGGR12_1X12), | ||
95 | V4L2_MBUS_FROM_MEDIA_BUS_FMT(SGBRG12_1X12), | ||
96 | V4L2_MBUS_FROM_MEDIA_BUS_FMT(SGRBG12_1X12), | ||
97 | V4L2_MBUS_FROM_MEDIA_BUS_FMT(SRGGB12_1X12), | ||
120 | 98 | ||
121 | /* Vendor specific formats - next is 0x5002 */ | 99 | V4L2_MBUS_FROM_MEDIA_BUS_FMT(JPEG_1X8), |
122 | 100 | ||
123 | /* S5C73M3 sensor specific interleaved UYVY and JPEG */ | 101 | V4L2_MBUS_FROM_MEDIA_BUS_FMT(S5C_UYVY_JPEG_1X8), |
124 | V4L2_MBUS_FMT_S5C_UYVY_JPEG_1X8 = 0x5001, | ||
125 | 102 | ||
126 | /* HSV - next is 0x6002 */ | 103 | V4L2_MBUS_FROM_MEDIA_BUS_FMT(AHSV8888_1X32), |
127 | V4L2_MBUS_FMT_AHSV8888_1X32 = 0x6001, | ||
128 | }; | 104 | }; |
129 | 105 | ||
130 | /** | 106 | /** |