2 * Support for Intel Camera Imaging ISP subsystem.
3 * Copyright (c) 2015, Intel Corporation.
5 * This program is free software; you can redistribute it and/or modify it
6 * under the terms and conditions of the GNU General Public License,
7 * version 2, as published by the Free Software Foundation.
9 * This program is distributed in the hope it will be useful, but WITHOUT
10 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
11 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
15 #ifndef __IA_CSS_STREAM_FORMAT_H
16 #define __IA_CSS_STREAM_FORMAT_H
19 * This file contains formats usable for ISP streaming input
22 #include <type_support.h> /* bool */
24 /* The ISP streaming input interface supports the following formats.
25 * These match the corresponding MIPI formats.
27 enum ia_css_stream_format {
28 IA_CSS_STREAM_FORMAT_YUV420_8_LEGACY, /** 8 bits per subpixel */
29 IA_CSS_STREAM_FORMAT_YUV420_8, /** 8 bits per subpixel */
30 IA_CSS_STREAM_FORMAT_YUV420_10, /** 10 bits per subpixel */
31 IA_CSS_STREAM_FORMAT_YUV420_16, /** 16 bits per subpixel */
32 IA_CSS_STREAM_FORMAT_YUV422_8, /** UYVY..UYVY, 8 bits per subpixel */
33 IA_CSS_STREAM_FORMAT_YUV422_10, /** UYVY..UYVY, 10 bits per subpixel */
34 IA_CSS_STREAM_FORMAT_YUV422_16, /** UYVY..UYVY, 16 bits per subpixel */
35 IA_CSS_STREAM_FORMAT_RGB_444, /** BGR..BGR, 4 bits per subpixel */
36 IA_CSS_STREAM_FORMAT_RGB_555, /** BGR..BGR, 5 bits per subpixel */
37 IA_CSS_STREAM_FORMAT_RGB_565, /** BGR..BGR, 5 bits B and R, 6 bits G */
38 IA_CSS_STREAM_FORMAT_RGB_666, /** BGR..BGR, 6 bits per subpixel */
39 IA_CSS_STREAM_FORMAT_RGB_888, /** BGR..BGR, 8 bits per subpixel */
40 IA_CSS_STREAM_FORMAT_RAW_6, /** RAW data, 6 bits per pixel */
41 IA_CSS_STREAM_FORMAT_RAW_7, /** RAW data, 7 bits per pixel */
42 IA_CSS_STREAM_FORMAT_RAW_8, /** RAW data, 8 bits per pixel */
43 IA_CSS_STREAM_FORMAT_RAW_10, /** RAW data, 10 bits per pixel */
44 IA_CSS_STREAM_FORMAT_RAW_12, /** RAW data, 12 bits per pixel */
45 IA_CSS_STREAM_FORMAT_RAW_14, /** RAW data, 14 bits per pixel */
46 IA_CSS_STREAM_FORMAT_RAW_16, /** RAW data, 16 bits per pixel, which is
47 not specified in CSI-MIPI standard*/
48 IA_CSS_STREAM_FORMAT_BINARY_8, /** Binary byte stream, which is target at
51 /* CSI2-MIPI specific format: Generic short packet data. It is used to
52 * keep the timing information for the opening/closing of shutters,
53 * triggering of flashes and etc.
55 IA_CSS_STREAM_FORMAT_GENERIC_SHORT1, /** Generic Short Packet Code 1 */
56 IA_CSS_STREAM_FORMAT_GENERIC_SHORT2, /** Generic Short Packet Code 2 */
57 IA_CSS_STREAM_FORMAT_GENERIC_SHORT3, /** Generic Short Packet Code 3 */
58 IA_CSS_STREAM_FORMAT_GENERIC_SHORT4, /** Generic Short Packet Code 4 */
59 IA_CSS_STREAM_FORMAT_GENERIC_SHORT5, /** Generic Short Packet Code 5 */
60 IA_CSS_STREAM_FORMAT_GENERIC_SHORT6, /** Generic Short Packet Code 6 */
61 IA_CSS_STREAM_FORMAT_GENERIC_SHORT7, /** Generic Short Packet Code 7 */
62 IA_CSS_STREAM_FORMAT_GENERIC_SHORT8, /** Generic Short Packet Code 8 */
64 /* CSI2-MIPI specific format: YUV data.
66 IA_CSS_STREAM_FORMAT_YUV420_8_SHIFT, /** YUV420 8-bit (Chroma Shifted Pixel Sampling) */
67 IA_CSS_STREAM_FORMAT_YUV420_10_SHIFT, /** YUV420 8-bit (Chroma Shifted Pixel Sampling) */
69 /* CSI2-MIPI specific format: Generic long packet data
71 IA_CSS_STREAM_FORMAT_EMBEDDED, /** Embedded 8-bit non Image Data */
73 /* CSI2-MIPI specific format: User defined byte-based data. For example,
74 * the data transmitter (e.g. the SoC sensor) can keep the JPEG data as
75 * the User Defined Data Type 4 and the MPEG data as the
76 * User Defined Data Type 7.
78 IA_CSS_STREAM_FORMAT_USER_DEF1, /** User defined 8-bit data type 1 */
79 IA_CSS_STREAM_FORMAT_USER_DEF2, /** User defined 8-bit data type 2 */
80 IA_CSS_STREAM_FORMAT_USER_DEF3, /** User defined 8-bit data type 3 */
81 IA_CSS_STREAM_FORMAT_USER_DEF4, /** User defined 8-bit data type 4 */
82 IA_CSS_STREAM_FORMAT_USER_DEF5, /** User defined 8-bit data type 5 */
83 IA_CSS_STREAM_FORMAT_USER_DEF6, /** User defined 8-bit data type 6 */
84 IA_CSS_STREAM_FORMAT_USER_DEF7, /** User defined 8-bit data type 7 */
85 IA_CSS_STREAM_FORMAT_USER_DEF8, /** User defined 8-bit data type 8 */
88 #define IA_CSS_STREAM_FORMAT_NUM IA_CSS_STREAM_FORMAT_USER_DEF8
90 unsigned int ia_css_util_input_format_bpp(
91 enum ia_css_stream_format format,
94 #endif /* __IA_CSS_STREAM_FORMAT_H */