1*f80ad8b4SAndroid Build Coastguard Worker /* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */ 2*f80ad8b4SAndroid Build Coastguard Worker /* 3*f80ad8b4SAndroid Build Coastguard Worker * Media Bus API header 4*f80ad8b4SAndroid Build Coastguard Worker * 5*f80ad8b4SAndroid Build Coastguard Worker * Copyright (C) 2009, Guennadi Liakhovetski <[email protected]> 6*f80ad8b4SAndroid Build Coastguard Worker */ 7*f80ad8b4SAndroid Build Coastguard Worker 8*f80ad8b4SAndroid Build Coastguard Worker #ifndef __LINUX_V4L2_MEDIABUS_H 9*f80ad8b4SAndroid Build Coastguard Worker #define __LINUX_V4L2_MEDIABUS_H 10*f80ad8b4SAndroid Build Coastguard Worker 11*f80ad8b4SAndroid Build Coastguard Worker #include <linux/media-bus-format.h> 12*f80ad8b4SAndroid Build Coastguard Worker #include <linux/types.h> 13*f80ad8b4SAndroid Build Coastguard Worker #include <linux/videodev2.h> 14*f80ad8b4SAndroid Build Coastguard Worker 15*f80ad8b4SAndroid Build Coastguard Worker #define V4L2_MBUS_FRAMEFMT_SET_CSC 0x0001 16*f80ad8b4SAndroid Build Coastguard Worker 17*f80ad8b4SAndroid Build Coastguard Worker /** 18*f80ad8b4SAndroid Build Coastguard Worker * struct v4l2_mbus_framefmt - frame format on the media bus 19*f80ad8b4SAndroid Build Coastguard Worker * @width: image width 20*f80ad8b4SAndroid Build Coastguard Worker * @height: image height 21*f80ad8b4SAndroid Build Coastguard Worker * @code: data format code (from enum v4l2_mbus_pixelcode) 22*f80ad8b4SAndroid Build Coastguard Worker * @field: used interlacing type (from enum v4l2_field), zero for metadata 23*f80ad8b4SAndroid Build Coastguard Worker * mbus codes 24*f80ad8b4SAndroid Build Coastguard Worker * @colorspace: colorspace of the data (from enum v4l2_colorspace), zero on 25*f80ad8b4SAndroid Build Coastguard Worker * metadata mbus codes 26*f80ad8b4SAndroid Build Coastguard Worker * @ycbcr_enc: YCbCr encoding of the data (from enum v4l2_ycbcr_encoding), zero 27*f80ad8b4SAndroid Build Coastguard Worker * for metadata mbus codes 28*f80ad8b4SAndroid Build Coastguard Worker * @hsv_enc: HSV encoding of the data (from enum v4l2_hsv_encoding), zero for 29*f80ad8b4SAndroid Build Coastguard Worker * metadata mbus codes 30*f80ad8b4SAndroid Build Coastguard Worker * @quantization: quantization of the data (from enum v4l2_quantization), zero 31*f80ad8b4SAndroid Build Coastguard Worker * for metadata mbus codes 32*f80ad8b4SAndroid Build Coastguard Worker * @xfer_func: transfer function of the data (from enum v4l2_xfer_func), zero 33*f80ad8b4SAndroid Build Coastguard Worker * for metadata mbus codes 34*f80ad8b4SAndroid Build Coastguard Worker * @flags: flags (V4L2_MBUS_FRAMEFMT_*) 35*f80ad8b4SAndroid Build Coastguard Worker * @reserved: reserved bytes that can be later used 36*f80ad8b4SAndroid Build Coastguard Worker */ 37*f80ad8b4SAndroid Build Coastguard Worker struct v4l2_mbus_framefmt { 38*f80ad8b4SAndroid Build Coastguard Worker __u32 width; 39*f80ad8b4SAndroid Build Coastguard Worker __u32 height; 40*f80ad8b4SAndroid Build Coastguard Worker __u32 code; 41*f80ad8b4SAndroid Build Coastguard Worker __u32 field; 42*f80ad8b4SAndroid Build Coastguard Worker __u32 colorspace; 43*f80ad8b4SAndroid Build Coastguard Worker union { 44*f80ad8b4SAndroid Build Coastguard Worker /* enum v4l2_ycbcr_encoding */ 45*f80ad8b4SAndroid Build Coastguard Worker __u16 ycbcr_enc; 46*f80ad8b4SAndroid Build Coastguard Worker /* enum v4l2_hsv_encoding */ 47*f80ad8b4SAndroid Build Coastguard Worker __u16 hsv_enc; 48*f80ad8b4SAndroid Build Coastguard Worker }; 49*f80ad8b4SAndroid Build Coastguard Worker __u16 quantization; 50*f80ad8b4SAndroid Build Coastguard Worker __u16 xfer_func; 51*f80ad8b4SAndroid Build Coastguard Worker __u16 flags; 52*f80ad8b4SAndroid Build Coastguard Worker __u16 reserved[10]; 53*f80ad8b4SAndroid Build Coastguard Worker }; 54*f80ad8b4SAndroid Build Coastguard Worker 55*f80ad8b4SAndroid Build Coastguard Worker #ifndef __KERNEL__ 56*f80ad8b4SAndroid Build Coastguard Worker /* 57*f80ad8b4SAndroid Build Coastguard Worker * enum v4l2_mbus_pixelcode and its definitions are now deprecated, and 58*f80ad8b4SAndroid Build Coastguard Worker * MEDIA_BUS_FMT_ definitions (defined in media-bus-format.h) should be 59*f80ad8b4SAndroid Build Coastguard Worker * used instead. 60*f80ad8b4SAndroid Build Coastguard Worker * 61*f80ad8b4SAndroid Build Coastguard Worker * New defines should only be added to media-bus-format.h. The 62*f80ad8b4SAndroid Build Coastguard Worker * v4l2_mbus_pixelcode enum is frozen. 63*f80ad8b4SAndroid Build Coastguard Worker */ 64*f80ad8b4SAndroid Build Coastguard Worker 65*f80ad8b4SAndroid Build Coastguard Worker #define V4L2_MBUS_FROM_MEDIA_BUS_FMT(name) \ 66*f80ad8b4SAndroid Build Coastguard Worker V4L2_MBUS_FMT_ ## name = MEDIA_BUS_FMT_ ## name 67*f80ad8b4SAndroid Build Coastguard Worker 68*f80ad8b4SAndroid Build Coastguard Worker enum v4l2_mbus_pixelcode { 69*f80ad8b4SAndroid Build Coastguard Worker V4L2_MBUS_FROM_MEDIA_BUS_FMT(FIXED), 70*f80ad8b4SAndroid Build Coastguard Worker 71*f80ad8b4SAndroid Build Coastguard Worker V4L2_MBUS_FROM_MEDIA_BUS_FMT(RGB444_2X8_PADHI_BE), 72*f80ad8b4SAndroid Build Coastguard Worker V4L2_MBUS_FROM_MEDIA_BUS_FMT(RGB444_2X8_PADHI_LE), 73*f80ad8b4SAndroid Build Coastguard Worker V4L2_MBUS_FROM_MEDIA_BUS_FMT(RGB555_2X8_PADHI_BE), 74*f80ad8b4SAndroid Build Coastguard Worker V4L2_MBUS_FROM_MEDIA_BUS_FMT(RGB555_2X8_PADHI_LE), 75*f80ad8b4SAndroid Build Coastguard Worker V4L2_MBUS_FROM_MEDIA_BUS_FMT(BGR565_2X8_BE), 76*f80ad8b4SAndroid Build Coastguard Worker V4L2_MBUS_FROM_MEDIA_BUS_FMT(BGR565_2X8_LE), 77*f80ad8b4SAndroid Build Coastguard Worker V4L2_MBUS_FROM_MEDIA_BUS_FMT(RGB565_2X8_BE), 78*f80ad8b4SAndroid Build Coastguard Worker V4L2_MBUS_FROM_MEDIA_BUS_FMT(RGB565_2X8_LE), 79*f80ad8b4SAndroid Build Coastguard Worker V4L2_MBUS_FROM_MEDIA_BUS_FMT(RGB666_1X18), 80*f80ad8b4SAndroid Build Coastguard Worker V4L2_MBUS_FROM_MEDIA_BUS_FMT(RGB888_1X24), 81*f80ad8b4SAndroid Build Coastguard Worker V4L2_MBUS_FROM_MEDIA_BUS_FMT(RGB888_2X12_BE), 82*f80ad8b4SAndroid Build Coastguard Worker V4L2_MBUS_FROM_MEDIA_BUS_FMT(RGB888_2X12_LE), 83*f80ad8b4SAndroid Build Coastguard Worker V4L2_MBUS_FROM_MEDIA_BUS_FMT(ARGB8888_1X32), 84*f80ad8b4SAndroid Build Coastguard Worker 85*f80ad8b4SAndroid Build Coastguard Worker V4L2_MBUS_FROM_MEDIA_BUS_FMT(Y8_1X8), 86*f80ad8b4SAndroid Build Coastguard Worker V4L2_MBUS_FROM_MEDIA_BUS_FMT(UV8_1X8), 87*f80ad8b4SAndroid Build Coastguard Worker V4L2_MBUS_FROM_MEDIA_BUS_FMT(UYVY8_1_5X8), 88*f80ad8b4SAndroid Build Coastguard Worker V4L2_MBUS_FROM_MEDIA_BUS_FMT(VYUY8_1_5X8), 89*f80ad8b4SAndroid Build Coastguard Worker V4L2_MBUS_FROM_MEDIA_BUS_FMT(YUYV8_1_5X8), 90*f80ad8b4SAndroid Build Coastguard Worker V4L2_MBUS_FROM_MEDIA_BUS_FMT(YVYU8_1_5X8), 91*f80ad8b4SAndroid Build Coastguard Worker V4L2_MBUS_FROM_MEDIA_BUS_FMT(UYVY8_2X8), 92*f80ad8b4SAndroid Build Coastguard Worker V4L2_MBUS_FROM_MEDIA_BUS_FMT(VYUY8_2X8), 93*f80ad8b4SAndroid Build Coastguard Worker V4L2_MBUS_FROM_MEDIA_BUS_FMT(YUYV8_2X8), 94*f80ad8b4SAndroid Build Coastguard Worker V4L2_MBUS_FROM_MEDIA_BUS_FMT(YVYU8_2X8), 95*f80ad8b4SAndroid Build Coastguard Worker V4L2_MBUS_FROM_MEDIA_BUS_FMT(Y10_1X10), 96*f80ad8b4SAndroid Build Coastguard Worker V4L2_MBUS_FROM_MEDIA_BUS_FMT(UYVY10_2X10), 97*f80ad8b4SAndroid Build Coastguard Worker V4L2_MBUS_FROM_MEDIA_BUS_FMT(VYUY10_2X10), 98*f80ad8b4SAndroid Build Coastguard Worker V4L2_MBUS_FROM_MEDIA_BUS_FMT(YUYV10_2X10), 99*f80ad8b4SAndroid Build Coastguard Worker V4L2_MBUS_FROM_MEDIA_BUS_FMT(YVYU10_2X10), 100*f80ad8b4SAndroid Build Coastguard Worker V4L2_MBUS_FROM_MEDIA_BUS_FMT(Y12_1X12), 101*f80ad8b4SAndroid Build Coastguard Worker V4L2_MBUS_FROM_MEDIA_BUS_FMT(UYVY8_1X16), 102*f80ad8b4SAndroid Build Coastguard Worker V4L2_MBUS_FROM_MEDIA_BUS_FMT(VYUY8_1X16), 103*f80ad8b4SAndroid Build Coastguard Worker V4L2_MBUS_FROM_MEDIA_BUS_FMT(YUYV8_1X16), 104*f80ad8b4SAndroid Build Coastguard Worker V4L2_MBUS_FROM_MEDIA_BUS_FMT(YVYU8_1X16), 105*f80ad8b4SAndroid Build Coastguard Worker V4L2_MBUS_FROM_MEDIA_BUS_FMT(YDYUYDYV8_1X16), 106*f80ad8b4SAndroid Build Coastguard Worker V4L2_MBUS_FROM_MEDIA_BUS_FMT(UYVY10_1X20), 107*f80ad8b4SAndroid Build Coastguard Worker V4L2_MBUS_FROM_MEDIA_BUS_FMT(VYUY10_1X20), 108*f80ad8b4SAndroid Build Coastguard Worker V4L2_MBUS_FROM_MEDIA_BUS_FMT(YUYV10_1X20), 109*f80ad8b4SAndroid Build Coastguard Worker V4L2_MBUS_FROM_MEDIA_BUS_FMT(YVYU10_1X20), 110*f80ad8b4SAndroid Build Coastguard Worker V4L2_MBUS_FROM_MEDIA_BUS_FMT(YUV10_1X30), 111*f80ad8b4SAndroid Build Coastguard Worker V4L2_MBUS_FROM_MEDIA_BUS_FMT(AYUV8_1X32), 112*f80ad8b4SAndroid Build Coastguard Worker V4L2_MBUS_FROM_MEDIA_BUS_FMT(UYVY12_2X12), 113*f80ad8b4SAndroid Build Coastguard Worker V4L2_MBUS_FROM_MEDIA_BUS_FMT(VYUY12_2X12), 114*f80ad8b4SAndroid Build Coastguard Worker V4L2_MBUS_FROM_MEDIA_BUS_FMT(YUYV12_2X12), 115*f80ad8b4SAndroid Build Coastguard Worker V4L2_MBUS_FROM_MEDIA_BUS_FMT(YVYU12_2X12), 116*f80ad8b4SAndroid Build Coastguard Worker V4L2_MBUS_FROM_MEDIA_BUS_FMT(UYVY12_1X24), 117*f80ad8b4SAndroid Build Coastguard Worker V4L2_MBUS_FROM_MEDIA_BUS_FMT(VYUY12_1X24), 118*f80ad8b4SAndroid Build Coastguard Worker V4L2_MBUS_FROM_MEDIA_BUS_FMT(YUYV12_1X24), 119*f80ad8b4SAndroid Build Coastguard Worker V4L2_MBUS_FROM_MEDIA_BUS_FMT(YVYU12_1X24), 120*f80ad8b4SAndroid Build Coastguard Worker 121*f80ad8b4SAndroid Build Coastguard Worker V4L2_MBUS_FROM_MEDIA_BUS_FMT(SBGGR8_1X8), 122*f80ad8b4SAndroid Build Coastguard Worker V4L2_MBUS_FROM_MEDIA_BUS_FMT(SGBRG8_1X8), 123*f80ad8b4SAndroid Build Coastguard Worker V4L2_MBUS_FROM_MEDIA_BUS_FMT(SGRBG8_1X8), 124*f80ad8b4SAndroid Build Coastguard Worker V4L2_MBUS_FROM_MEDIA_BUS_FMT(SRGGB8_1X8), 125*f80ad8b4SAndroid Build Coastguard Worker V4L2_MBUS_FROM_MEDIA_BUS_FMT(SBGGR10_ALAW8_1X8), 126*f80ad8b4SAndroid Build Coastguard Worker V4L2_MBUS_FROM_MEDIA_BUS_FMT(SGBRG10_ALAW8_1X8), 127*f80ad8b4SAndroid Build Coastguard Worker V4L2_MBUS_FROM_MEDIA_BUS_FMT(SGRBG10_ALAW8_1X8), 128*f80ad8b4SAndroid Build Coastguard Worker V4L2_MBUS_FROM_MEDIA_BUS_FMT(SRGGB10_ALAW8_1X8), 129*f80ad8b4SAndroid Build Coastguard Worker V4L2_MBUS_FROM_MEDIA_BUS_FMT(SBGGR10_DPCM8_1X8), 130*f80ad8b4SAndroid Build Coastguard Worker V4L2_MBUS_FROM_MEDIA_BUS_FMT(SGBRG10_DPCM8_1X8), 131*f80ad8b4SAndroid Build Coastguard Worker V4L2_MBUS_FROM_MEDIA_BUS_FMT(SGRBG10_DPCM8_1X8), 132*f80ad8b4SAndroid Build Coastguard Worker V4L2_MBUS_FROM_MEDIA_BUS_FMT(SRGGB10_DPCM8_1X8), 133*f80ad8b4SAndroid Build Coastguard Worker V4L2_MBUS_FROM_MEDIA_BUS_FMT(SBGGR10_2X8_PADHI_BE), 134*f80ad8b4SAndroid Build Coastguard Worker V4L2_MBUS_FROM_MEDIA_BUS_FMT(SBGGR10_2X8_PADHI_LE), 135*f80ad8b4SAndroid Build Coastguard Worker V4L2_MBUS_FROM_MEDIA_BUS_FMT(SBGGR10_2X8_PADLO_BE), 136*f80ad8b4SAndroid Build Coastguard Worker V4L2_MBUS_FROM_MEDIA_BUS_FMT(SBGGR10_2X8_PADLO_LE), 137*f80ad8b4SAndroid Build Coastguard Worker V4L2_MBUS_FROM_MEDIA_BUS_FMT(SBGGR10_1X10), 138*f80ad8b4SAndroid Build Coastguard Worker V4L2_MBUS_FROM_MEDIA_BUS_FMT(SGBRG10_1X10), 139*f80ad8b4SAndroid Build Coastguard Worker V4L2_MBUS_FROM_MEDIA_BUS_FMT(SGRBG10_1X10), 140*f80ad8b4SAndroid Build Coastguard Worker V4L2_MBUS_FROM_MEDIA_BUS_FMT(SRGGB10_1X10), 141*f80ad8b4SAndroid Build Coastguard Worker V4L2_MBUS_FROM_MEDIA_BUS_FMT(SBGGR12_1X12), 142*f80ad8b4SAndroid Build Coastguard Worker V4L2_MBUS_FROM_MEDIA_BUS_FMT(SGBRG12_1X12), 143*f80ad8b4SAndroid Build Coastguard Worker V4L2_MBUS_FROM_MEDIA_BUS_FMT(SGRBG12_1X12), 144*f80ad8b4SAndroid Build Coastguard Worker V4L2_MBUS_FROM_MEDIA_BUS_FMT(SRGGB12_1X12), 145*f80ad8b4SAndroid Build Coastguard Worker 146*f80ad8b4SAndroid Build Coastguard Worker V4L2_MBUS_FROM_MEDIA_BUS_FMT(JPEG_1X8), 147*f80ad8b4SAndroid Build Coastguard Worker 148*f80ad8b4SAndroid Build Coastguard Worker V4L2_MBUS_FROM_MEDIA_BUS_FMT(S5C_UYVY_JPEG_1X8), 149*f80ad8b4SAndroid Build Coastguard Worker 150*f80ad8b4SAndroid Build Coastguard Worker V4L2_MBUS_FROM_MEDIA_BUS_FMT(AHSV8888_1X32), 151*f80ad8b4SAndroid Build Coastguard Worker }; 152*f80ad8b4SAndroid Build Coastguard Worker #endif /* __KERNEL__ */ 153*f80ad8b4SAndroid Build Coastguard Worker 154*f80ad8b4SAndroid Build Coastguard Worker #endif 155