1e2be04c7SGreg Kroah-Hartman /* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */ 2607ca46eSDavid Howells /* 3607ca46eSDavid Howells * Media Bus API header 4607ca46eSDavid Howells * 5607ca46eSDavid Howells * Copyright (C) 2009, Guennadi Liakhovetski <g.liakhovetski@gmx.de> 6607ca46eSDavid Howells */ 7607ca46eSDavid Howells 8607ca46eSDavid Howells #ifndef __LINUX_V4L2_MEDIABUS_H 9607ca46eSDavid Howells #define __LINUX_V4L2_MEDIABUS_H 10607ca46eSDavid Howells 11edcf58bcSBoris BREZILLON #include <linux/media-bus-format.h> 12607ca46eSDavid Howells #include <linux/types.h> 13607ca46eSDavid Howells #include <linux/videodev2.h> 14607ca46eSDavid Howells 15*62aacfa9SDafna Hirschfeld #define V4L2_MBUS_FRAMEFMT_SET_CSC 0x0001 16*62aacfa9SDafna Hirschfeld 17aa1b4da6SBoris BREZILLON /** 18aa1b4da6SBoris BREZILLON * struct v4l2_mbus_framefmt - frame format on the media bus 190018147cSKieran Bingham * @width: image width 200018147cSKieran Bingham * @height: image height 21aa1b4da6SBoris BREZILLON * @code: data format code (from enum v4l2_mbus_pixelcode) 22aa1b4da6SBoris BREZILLON * @field: used interlacing type (from enum v4l2_field) 23aa1b4da6SBoris BREZILLON * @colorspace: colorspace of the data (from enum v4l2_colorspace) 2411ff030cSHans Verkuil * @ycbcr_enc: YCbCr encoding of the data (from enum v4l2_ycbcr_encoding) 25*62aacfa9SDafna Hirschfeld * @hsv_enc: HSV encoding of the data (from enum v4l2_hsv_encoding) 2611ff030cSHans Verkuil * @quantization: quantization of the data (from enum v4l2_quantization) 2774fdcb2eSHans Verkuil * @xfer_func: transfer function of the data (from enum v4l2_xfer_func) 28*62aacfa9SDafna Hirschfeld * @flags: flags (V4L2_MBUS_FRAMEFMT_*) 29*62aacfa9SDafna Hirschfeld * @reserved: reserved bytes that can be later used 30aa1b4da6SBoris BREZILLON */ 31aa1b4da6SBoris BREZILLON struct v4l2_mbus_framefmt { 32aa1b4da6SBoris BREZILLON __u32 width; 33aa1b4da6SBoris BREZILLON __u32 height; 34aa1b4da6SBoris BREZILLON __u32 code; 35aa1b4da6SBoris BREZILLON __u32 field; 36aa1b4da6SBoris BREZILLON __u32 colorspace; 37*62aacfa9SDafna Hirschfeld union { 38*62aacfa9SDafna Hirschfeld /* enum v4l2_ycbcr_encoding */ 39f2d27e45SHans Verkuil __u16 ycbcr_enc; 40*62aacfa9SDafna Hirschfeld /* enum v4l2_hsv_encoding */ 41*62aacfa9SDafna Hirschfeld __u16 hsv_enc; 42*62aacfa9SDafna Hirschfeld }; 43f2d27e45SHans Verkuil __u16 quantization; 4474fdcb2eSHans Verkuil __u16 xfer_func; 45*62aacfa9SDafna Hirschfeld __u16 flags; 46*62aacfa9SDafna Hirschfeld __u16 reserved[10]; 47aa1b4da6SBoris BREZILLON }; 48aa1b4da6SBoris BREZILLON 49aa1b4da6SBoris BREZILLON #ifndef __KERNEL__ 50aa1b4da6SBoris BREZILLON /* 51aa1b4da6SBoris BREZILLON * enum v4l2_mbus_pixelcode and its definitions are now deprecated, and 52aa1b4da6SBoris BREZILLON * MEDIA_BUS_FMT_ definitions (defined in media-bus-format.h) should be 53aa1b4da6SBoris BREZILLON * used instead. 54aa1b4da6SBoris BREZILLON * 55aa1b4da6SBoris BREZILLON * New defines should only be added to media-bus-format.h. The 56aa1b4da6SBoris BREZILLON * v4l2_mbus_pixelcode enum is frozen. 57aa1b4da6SBoris BREZILLON */ 58aa1b4da6SBoris BREZILLON 59edcf58bcSBoris BREZILLON #define V4L2_MBUS_FROM_MEDIA_BUS_FMT(name) \ 60edcf58bcSBoris BREZILLON V4L2_MBUS_FMT_ ## name = MEDIA_BUS_FMT_ ## name 61edcf58bcSBoris BREZILLON 62607ca46eSDavid Howells enum v4l2_mbus_pixelcode { 63edcf58bcSBoris BREZILLON V4L2_MBUS_FROM_MEDIA_BUS_FMT(FIXED), 64607ca46eSDavid Howells 65edcf58bcSBoris BREZILLON V4L2_MBUS_FROM_MEDIA_BUS_FMT(RGB444_2X8_PADHI_BE), 66edcf58bcSBoris BREZILLON V4L2_MBUS_FROM_MEDIA_BUS_FMT(RGB444_2X8_PADHI_LE), 67edcf58bcSBoris BREZILLON V4L2_MBUS_FROM_MEDIA_BUS_FMT(RGB555_2X8_PADHI_BE), 68edcf58bcSBoris BREZILLON V4L2_MBUS_FROM_MEDIA_BUS_FMT(RGB555_2X8_PADHI_LE), 69edcf58bcSBoris BREZILLON V4L2_MBUS_FROM_MEDIA_BUS_FMT(BGR565_2X8_BE), 70edcf58bcSBoris BREZILLON V4L2_MBUS_FROM_MEDIA_BUS_FMT(BGR565_2X8_LE), 71edcf58bcSBoris BREZILLON V4L2_MBUS_FROM_MEDIA_BUS_FMT(RGB565_2X8_BE), 72edcf58bcSBoris BREZILLON V4L2_MBUS_FROM_MEDIA_BUS_FMT(RGB565_2X8_LE), 73edcf58bcSBoris BREZILLON V4L2_MBUS_FROM_MEDIA_BUS_FMT(RGB666_1X18), 74edcf58bcSBoris BREZILLON V4L2_MBUS_FROM_MEDIA_BUS_FMT(RGB888_1X24), 75edcf58bcSBoris BREZILLON V4L2_MBUS_FROM_MEDIA_BUS_FMT(RGB888_2X12_BE), 76edcf58bcSBoris BREZILLON V4L2_MBUS_FROM_MEDIA_BUS_FMT(RGB888_2X12_LE), 77edcf58bcSBoris BREZILLON V4L2_MBUS_FROM_MEDIA_BUS_FMT(ARGB8888_1X32), 78607ca46eSDavid Howells 79edcf58bcSBoris BREZILLON V4L2_MBUS_FROM_MEDIA_BUS_FMT(Y8_1X8), 80edcf58bcSBoris BREZILLON V4L2_MBUS_FROM_MEDIA_BUS_FMT(UV8_1X8), 81edcf58bcSBoris BREZILLON V4L2_MBUS_FROM_MEDIA_BUS_FMT(UYVY8_1_5X8), 82edcf58bcSBoris BREZILLON V4L2_MBUS_FROM_MEDIA_BUS_FMT(VYUY8_1_5X8), 83edcf58bcSBoris BREZILLON V4L2_MBUS_FROM_MEDIA_BUS_FMT(YUYV8_1_5X8), 84edcf58bcSBoris BREZILLON V4L2_MBUS_FROM_MEDIA_BUS_FMT(YVYU8_1_5X8), 85edcf58bcSBoris BREZILLON V4L2_MBUS_FROM_MEDIA_BUS_FMT(UYVY8_2X8), 86edcf58bcSBoris BREZILLON V4L2_MBUS_FROM_MEDIA_BUS_FMT(VYUY8_2X8), 87edcf58bcSBoris BREZILLON V4L2_MBUS_FROM_MEDIA_BUS_FMT(YUYV8_2X8), 88edcf58bcSBoris BREZILLON V4L2_MBUS_FROM_MEDIA_BUS_FMT(YVYU8_2X8), 89edcf58bcSBoris BREZILLON V4L2_MBUS_FROM_MEDIA_BUS_FMT(Y10_1X10), 90edcf58bcSBoris BREZILLON V4L2_MBUS_FROM_MEDIA_BUS_FMT(UYVY10_2X10), 91edcf58bcSBoris BREZILLON V4L2_MBUS_FROM_MEDIA_BUS_FMT(VYUY10_2X10), 92edcf58bcSBoris BREZILLON V4L2_MBUS_FROM_MEDIA_BUS_FMT(YUYV10_2X10), 93edcf58bcSBoris BREZILLON V4L2_MBUS_FROM_MEDIA_BUS_FMT(YVYU10_2X10), 94edcf58bcSBoris BREZILLON V4L2_MBUS_FROM_MEDIA_BUS_FMT(Y12_1X12), 95edcf58bcSBoris BREZILLON V4L2_MBUS_FROM_MEDIA_BUS_FMT(UYVY8_1X16), 96edcf58bcSBoris BREZILLON V4L2_MBUS_FROM_MEDIA_BUS_FMT(VYUY8_1X16), 97edcf58bcSBoris BREZILLON V4L2_MBUS_FROM_MEDIA_BUS_FMT(YUYV8_1X16), 98edcf58bcSBoris BREZILLON V4L2_MBUS_FROM_MEDIA_BUS_FMT(YVYU8_1X16), 99edcf58bcSBoris BREZILLON V4L2_MBUS_FROM_MEDIA_BUS_FMT(YDYUYDYV8_1X16), 100edcf58bcSBoris BREZILLON V4L2_MBUS_FROM_MEDIA_BUS_FMT(UYVY10_1X20), 101edcf58bcSBoris BREZILLON V4L2_MBUS_FROM_MEDIA_BUS_FMT(VYUY10_1X20), 102edcf58bcSBoris BREZILLON V4L2_MBUS_FROM_MEDIA_BUS_FMT(YUYV10_1X20), 103edcf58bcSBoris BREZILLON V4L2_MBUS_FROM_MEDIA_BUS_FMT(YVYU10_1X20), 104edcf58bcSBoris BREZILLON V4L2_MBUS_FROM_MEDIA_BUS_FMT(YUV10_1X30), 105edcf58bcSBoris BREZILLON V4L2_MBUS_FROM_MEDIA_BUS_FMT(AYUV8_1X32), 106edcf58bcSBoris BREZILLON V4L2_MBUS_FROM_MEDIA_BUS_FMT(UYVY12_2X12), 107edcf58bcSBoris BREZILLON V4L2_MBUS_FROM_MEDIA_BUS_FMT(VYUY12_2X12), 108edcf58bcSBoris BREZILLON V4L2_MBUS_FROM_MEDIA_BUS_FMT(YUYV12_2X12), 109edcf58bcSBoris BREZILLON V4L2_MBUS_FROM_MEDIA_BUS_FMT(YVYU12_2X12), 110edcf58bcSBoris BREZILLON V4L2_MBUS_FROM_MEDIA_BUS_FMT(UYVY12_1X24), 111edcf58bcSBoris BREZILLON V4L2_MBUS_FROM_MEDIA_BUS_FMT(VYUY12_1X24), 112edcf58bcSBoris BREZILLON V4L2_MBUS_FROM_MEDIA_BUS_FMT(YUYV12_1X24), 113edcf58bcSBoris BREZILLON V4L2_MBUS_FROM_MEDIA_BUS_FMT(YVYU12_1X24), 114607ca46eSDavid Howells 115edcf58bcSBoris BREZILLON V4L2_MBUS_FROM_MEDIA_BUS_FMT(SBGGR8_1X8), 116edcf58bcSBoris BREZILLON V4L2_MBUS_FROM_MEDIA_BUS_FMT(SGBRG8_1X8), 117edcf58bcSBoris BREZILLON V4L2_MBUS_FROM_MEDIA_BUS_FMT(SGRBG8_1X8), 118edcf58bcSBoris BREZILLON V4L2_MBUS_FROM_MEDIA_BUS_FMT(SRGGB8_1X8), 119edcf58bcSBoris BREZILLON V4L2_MBUS_FROM_MEDIA_BUS_FMT(SBGGR10_ALAW8_1X8), 120edcf58bcSBoris BREZILLON V4L2_MBUS_FROM_MEDIA_BUS_FMT(SGBRG10_ALAW8_1X8), 121edcf58bcSBoris BREZILLON V4L2_MBUS_FROM_MEDIA_BUS_FMT(SGRBG10_ALAW8_1X8), 122edcf58bcSBoris BREZILLON V4L2_MBUS_FROM_MEDIA_BUS_FMT(SRGGB10_ALAW8_1X8), 123edcf58bcSBoris BREZILLON V4L2_MBUS_FROM_MEDIA_BUS_FMT(SBGGR10_DPCM8_1X8), 124edcf58bcSBoris BREZILLON V4L2_MBUS_FROM_MEDIA_BUS_FMT(SGBRG10_DPCM8_1X8), 125edcf58bcSBoris BREZILLON V4L2_MBUS_FROM_MEDIA_BUS_FMT(SGRBG10_DPCM8_1X8), 126edcf58bcSBoris BREZILLON V4L2_MBUS_FROM_MEDIA_BUS_FMT(SRGGB10_DPCM8_1X8), 127edcf58bcSBoris BREZILLON V4L2_MBUS_FROM_MEDIA_BUS_FMT(SBGGR10_2X8_PADHI_BE), 128edcf58bcSBoris BREZILLON V4L2_MBUS_FROM_MEDIA_BUS_FMT(SBGGR10_2X8_PADHI_LE), 129edcf58bcSBoris BREZILLON V4L2_MBUS_FROM_MEDIA_BUS_FMT(SBGGR10_2X8_PADLO_BE), 130edcf58bcSBoris BREZILLON V4L2_MBUS_FROM_MEDIA_BUS_FMT(SBGGR10_2X8_PADLO_LE), 131edcf58bcSBoris BREZILLON V4L2_MBUS_FROM_MEDIA_BUS_FMT(SBGGR10_1X10), 132edcf58bcSBoris BREZILLON V4L2_MBUS_FROM_MEDIA_BUS_FMT(SGBRG10_1X10), 133edcf58bcSBoris BREZILLON V4L2_MBUS_FROM_MEDIA_BUS_FMT(SGRBG10_1X10), 134edcf58bcSBoris BREZILLON V4L2_MBUS_FROM_MEDIA_BUS_FMT(SRGGB10_1X10), 135edcf58bcSBoris BREZILLON V4L2_MBUS_FROM_MEDIA_BUS_FMT(SBGGR12_1X12), 136edcf58bcSBoris BREZILLON V4L2_MBUS_FROM_MEDIA_BUS_FMT(SGBRG12_1X12), 137edcf58bcSBoris BREZILLON V4L2_MBUS_FROM_MEDIA_BUS_FMT(SGRBG12_1X12), 138edcf58bcSBoris BREZILLON V4L2_MBUS_FROM_MEDIA_BUS_FMT(SRGGB12_1X12), 139607ca46eSDavid Howells 140edcf58bcSBoris BREZILLON V4L2_MBUS_FROM_MEDIA_BUS_FMT(JPEG_1X8), 141607ca46eSDavid Howells 142edcf58bcSBoris BREZILLON V4L2_MBUS_FROM_MEDIA_BUS_FMT(S5C_UYVY_JPEG_1X8), 143607ca46eSDavid Howells 144edcf58bcSBoris BREZILLON V4L2_MBUS_FROM_MEDIA_BUS_FMT(AHSV8888_1X32), 145607ca46eSDavid Howells }; 146aa1b4da6SBoris BREZILLON #endif /* __KERNEL__ */ 147607ca46eSDavid Howells 148607ca46eSDavid Howells #endif 149