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 * This program is free software; you can redistribute it and/or modify 8607ca46eSDavid Howells * it under the terms of the GNU General Public License version 2 as 9607ca46eSDavid Howells * published by the Free Software Foundation. 10607ca46eSDavid Howells */ 11607ca46eSDavid Howells 12607ca46eSDavid Howells #ifndef __LINUX_V4L2_MEDIABUS_H 13607ca46eSDavid Howells #define __LINUX_V4L2_MEDIABUS_H 14607ca46eSDavid Howells 15edcf58bcSBoris BREZILLON #include <linux/media-bus-format.h> 16607ca46eSDavid Howells #include <linux/types.h> 17607ca46eSDavid Howells #include <linux/videodev2.h> 18607ca46eSDavid Howells 19*62aacfa9SDafna Hirschfeld #define V4L2_MBUS_FRAMEFMT_SET_CSC 0x0001 20*62aacfa9SDafna Hirschfeld 21aa1b4da6SBoris BREZILLON /** 22aa1b4da6SBoris BREZILLON * struct v4l2_mbus_framefmt - frame format on the media bus 230018147cSKieran Bingham * @width: image width 240018147cSKieran Bingham * @height: image height 25aa1b4da6SBoris BREZILLON * @code: data format code (from enum v4l2_mbus_pixelcode) 26aa1b4da6SBoris BREZILLON * @field: used interlacing type (from enum v4l2_field) 27aa1b4da6SBoris BREZILLON * @colorspace: colorspace of the data (from enum v4l2_colorspace) 2811ff030cSHans Verkuil * @ycbcr_enc: YCbCr encoding of the data (from enum v4l2_ycbcr_encoding) 29*62aacfa9SDafna Hirschfeld * @hsv_enc: HSV encoding of the data (from enum v4l2_hsv_encoding) 3011ff030cSHans Verkuil * @quantization: quantization of the data (from enum v4l2_quantization) 3174fdcb2eSHans Verkuil * @xfer_func: transfer function of the data (from enum v4l2_xfer_func) 32*62aacfa9SDafna Hirschfeld * @flags: flags (V4L2_MBUS_FRAMEFMT_*) 33*62aacfa9SDafna Hirschfeld * @reserved: reserved bytes that can be later used 34aa1b4da6SBoris BREZILLON */ 35aa1b4da6SBoris BREZILLON struct v4l2_mbus_framefmt { 36aa1b4da6SBoris BREZILLON __u32 width; 37aa1b4da6SBoris BREZILLON __u32 height; 38aa1b4da6SBoris BREZILLON __u32 code; 39aa1b4da6SBoris BREZILLON __u32 field; 40aa1b4da6SBoris BREZILLON __u32 colorspace; 41*62aacfa9SDafna Hirschfeld union { 42*62aacfa9SDafna Hirschfeld /* enum v4l2_ycbcr_encoding */ 43f2d27e45SHans Verkuil __u16 ycbcr_enc; 44*62aacfa9SDafna Hirschfeld /* enum v4l2_hsv_encoding */ 45*62aacfa9SDafna Hirschfeld __u16 hsv_enc; 46*62aacfa9SDafna Hirschfeld }; 47f2d27e45SHans Verkuil __u16 quantization; 4874fdcb2eSHans Verkuil __u16 xfer_func; 49*62aacfa9SDafna Hirschfeld __u16 flags; 50*62aacfa9SDafna Hirschfeld __u16 reserved[10]; 51aa1b4da6SBoris BREZILLON }; 52aa1b4da6SBoris BREZILLON 53aa1b4da6SBoris BREZILLON #ifndef __KERNEL__ 54aa1b4da6SBoris BREZILLON /* 55aa1b4da6SBoris BREZILLON * enum v4l2_mbus_pixelcode and its definitions are now deprecated, and 56aa1b4da6SBoris BREZILLON * MEDIA_BUS_FMT_ definitions (defined in media-bus-format.h) should be 57aa1b4da6SBoris BREZILLON * used instead. 58aa1b4da6SBoris BREZILLON * 59aa1b4da6SBoris BREZILLON * New defines should only be added to media-bus-format.h. The 60aa1b4da6SBoris BREZILLON * v4l2_mbus_pixelcode enum is frozen. 61aa1b4da6SBoris BREZILLON */ 62aa1b4da6SBoris BREZILLON 63edcf58bcSBoris BREZILLON #define V4L2_MBUS_FROM_MEDIA_BUS_FMT(name) \ 64edcf58bcSBoris BREZILLON V4L2_MBUS_FMT_ ## name = MEDIA_BUS_FMT_ ## name 65edcf58bcSBoris BREZILLON 66607ca46eSDavid Howells enum v4l2_mbus_pixelcode { 67edcf58bcSBoris BREZILLON V4L2_MBUS_FROM_MEDIA_BUS_FMT(FIXED), 68607ca46eSDavid Howells 69edcf58bcSBoris BREZILLON V4L2_MBUS_FROM_MEDIA_BUS_FMT(RGB444_2X8_PADHI_BE), 70edcf58bcSBoris BREZILLON V4L2_MBUS_FROM_MEDIA_BUS_FMT(RGB444_2X8_PADHI_LE), 71edcf58bcSBoris BREZILLON V4L2_MBUS_FROM_MEDIA_BUS_FMT(RGB555_2X8_PADHI_BE), 72edcf58bcSBoris BREZILLON V4L2_MBUS_FROM_MEDIA_BUS_FMT(RGB555_2X8_PADHI_LE), 73edcf58bcSBoris BREZILLON V4L2_MBUS_FROM_MEDIA_BUS_FMT(BGR565_2X8_BE), 74edcf58bcSBoris BREZILLON V4L2_MBUS_FROM_MEDIA_BUS_FMT(BGR565_2X8_LE), 75edcf58bcSBoris BREZILLON V4L2_MBUS_FROM_MEDIA_BUS_FMT(RGB565_2X8_BE), 76edcf58bcSBoris BREZILLON V4L2_MBUS_FROM_MEDIA_BUS_FMT(RGB565_2X8_LE), 77edcf58bcSBoris BREZILLON V4L2_MBUS_FROM_MEDIA_BUS_FMT(RGB666_1X18), 78edcf58bcSBoris BREZILLON V4L2_MBUS_FROM_MEDIA_BUS_FMT(RGB888_1X24), 79edcf58bcSBoris BREZILLON V4L2_MBUS_FROM_MEDIA_BUS_FMT(RGB888_2X12_BE), 80edcf58bcSBoris BREZILLON V4L2_MBUS_FROM_MEDIA_BUS_FMT(RGB888_2X12_LE), 81edcf58bcSBoris BREZILLON V4L2_MBUS_FROM_MEDIA_BUS_FMT(ARGB8888_1X32), 82607ca46eSDavid Howells 83edcf58bcSBoris BREZILLON V4L2_MBUS_FROM_MEDIA_BUS_FMT(Y8_1X8), 84edcf58bcSBoris BREZILLON V4L2_MBUS_FROM_MEDIA_BUS_FMT(UV8_1X8), 85edcf58bcSBoris BREZILLON V4L2_MBUS_FROM_MEDIA_BUS_FMT(UYVY8_1_5X8), 86edcf58bcSBoris BREZILLON V4L2_MBUS_FROM_MEDIA_BUS_FMT(VYUY8_1_5X8), 87edcf58bcSBoris BREZILLON V4L2_MBUS_FROM_MEDIA_BUS_FMT(YUYV8_1_5X8), 88edcf58bcSBoris BREZILLON V4L2_MBUS_FROM_MEDIA_BUS_FMT(YVYU8_1_5X8), 89edcf58bcSBoris BREZILLON V4L2_MBUS_FROM_MEDIA_BUS_FMT(UYVY8_2X8), 90edcf58bcSBoris BREZILLON V4L2_MBUS_FROM_MEDIA_BUS_FMT(VYUY8_2X8), 91edcf58bcSBoris BREZILLON V4L2_MBUS_FROM_MEDIA_BUS_FMT(YUYV8_2X8), 92edcf58bcSBoris BREZILLON V4L2_MBUS_FROM_MEDIA_BUS_FMT(YVYU8_2X8), 93edcf58bcSBoris BREZILLON V4L2_MBUS_FROM_MEDIA_BUS_FMT(Y10_1X10), 94edcf58bcSBoris BREZILLON V4L2_MBUS_FROM_MEDIA_BUS_FMT(UYVY10_2X10), 95edcf58bcSBoris BREZILLON V4L2_MBUS_FROM_MEDIA_BUS_FMT(VYUY10_2X10), 96edcf58bcSBoris BREZILLON V4L2_MBUS_FROM_MEDIA_BUS_FMT(YUYV10_2X10), 97edcf58bcSBoris BREZILLON V4L2_MBUS_FROM_MEDIA_BUS_FMT(YVYU10_2X10), 98edcf58bcSBoris BREZILLON V4L2_MBUS_FROM_MEDIA_BUS_FMT(Y12_1X12), 99edcf58bcSBoris BREZILLON V4L2_MBUS_FROM_MEDIA_BUS_FMT(UYVY8_1X16), 100edcf58bcSBoris BREZILLON V4L2_MBUS_FROM_MEDIA_BUS_FMT(VYUY8_1X16), 101edcf58bcSBoris BREZILLON V4L2_MBUS_FROM_MEDIA_BUS_FMT(YUYV8_1X16), 102edcf58bcSBoris BREZILLON V4L2_MBUS_FROM_MEDIA_BUS_FMT(YVYU8_1X16), 103edcf58bcSBoris BREZILLON V4L2_MBUS_FROM_MEDIA_BUS_FMT(YDYUYDYV8_1X16), 104edcf58bcSBoris BREZILLON V4L2_MBUS_FROM_MEDIA_BUS_FMT(UYVY10_1X20), 105edcf58bcSBoris BREZILLON V4L2_MBUS_FROM_MEDIA_BUS_FMT(VYUY10_1X20), 106edcf58bcSBoris BREZILLON V4L2_MBUS_FROM_MEDIA_BUS_FMT(YUYV10_1X20), 107edcf58bcSBoris BREZILLON V4L2_MBUS_FROM_MEDIA_BUS_FMT(YVYU10_1X20), 108edcf58bcSBoris BREZILLON V4L2_MBUS_FROM_MEDIA_BUS_FMT(YUV10_1X30), 109edcf58bcSBoris BREZILLON V4L2_MBUS_FROM_MEDIA_BUS_FMT(AYUV8_1X32), 110edcf58bcSBoris BREZILLON V4L2_MBUS_FROM_MEDIA_BUS_FMT(UYVY12_2X12), 111edcf58bcSBoris BREZILLON V4L2_MBUS_FROM_MEDIA_BUS_FMT(VYUY12_2X12), 112edcf58bcSBoris BREZILLON V4L2_MBUS_FROM_MEDIA_BUS_FMT(YUYV12_2X12), 113edcf58bcSBoris BREZILLON V4L2_MBUS_FROM_MEDIA_BUS_FMT(YVYU12_2X12), 114edcf58bcSBoris BREZILLON V4L2_MBUS_FROM_MEDIA_BUS_FMT(UYVY12_1X24), 115edcf58bcSBoris BREZILLON V4L2_MBUS_FROM_MEDIA_BUS_FMT(VYUY12_1X24), 116edcf58bcSBoris BREZILLON V4L2_MBUS_FROM_MEDIA_BUS_FMT(YUYV12_1X24), 117edcf58bcSBoris BREZILLON V4L2_MBUS_FROM_MEDIA_BUS_FMT(YVYU12_1X24), 118607ca46eSDavid Howells 119edcf58bcSBoris BREZILLON V4L2_MBUS_FROM_MEDIA_BUS_FMT(SBGGR8_1X8), 120edcf58bcSBoris BREZILLON V4L2_MBUS_FROM_MEDIA_BUS_FMT(SGBRG8_1X8), 121edcf58bcSBoris BREZILLON V4L2_MBUS_FROM_MEDIA_BUS_FMT(SGRBG8_1X8), 122edcf58bcSBoris BREZILLON V4L2_MBUS_FROM_MEDIA_BUS_FMT(SRGGB8_1X8), 123edcf58bcSBoris BREZILLON V4L2_MBUS_FROM_MEDIA_BUS_FMT(SBGGR10_ALAW8_1X8), 124edcf58bcSBoris BREZILLON V4L2_MBUS_FROM_MEDIA_BUS_FMT(SGBRG10_ALAW8_1X8), 125edcf58bcSBoris BREZILLON V4L2_MBUS_FROM_MEDIA_BUS_FMT(SGRBG10_ALAW8_1X8), 126edcf58bcSBoris BREZILLON V4L2_MBUS_FROM_MEDIA_BUS_FMT(SRGGB10_ALAW8_1X8), 127edcf58bcSBoris BREZILLON V4L2_MBUS_FROM_MEDIA_BUS_FMT(SBGGR10_DPCM8_1X8), 128edcf58bcSBoris BREZILLON V4L2_MBUS_FROM_MEDIA_BUS_FMT(SGBRG10_DPCM8_1X8), 129edcf58bcSBoris BREZILLON V4L2_MBUS_FROM_MEDIA_BUS_FMT(SGRBG10_DPCM8_1X8), 130edcf58bcSBoris BREZILLON V4L2_MBUS_FROM_MEDIA_BUS_FMT(SRGGB10_DPCM8_1X8), 131edcf58bcSBoris BREZILLON V4L2_MBUS_FROM_MEDIA_BUS_FMT(SBGGR10_2X8_PADHI_BE), 132edcf58bcSBoris BREZILLON V4L2_MBUS_FROM_MEDIA_BUS_FMT(SBGGR10_2X8_PADHI_LE), 133edcf58bcSBoris BREZILLON V4L2_MBUS_FROM_MEDIA_BUS_FMT(SBGGR10_2X8_PADLO_BE), 134edcf58bcSBoris BREZILLON V4L2_MBUS_FROM_MEDIA_BUS_FMT(SBGGR10_2X8_PADLO_LE), 135edcf58bcSBoris BREZILLON V4L2_MBUS_FROM_MEDIA_BUS_FMT(SBGGR10_1X10), 136edcf58bcSBoris BREZILLON V4L2_MBUS_FROM_MEDIA_BUS_FMT(SGBRG10_1X10), 137edcf58bcSBoris BREZILLON V4L2_MBUS_FROM_MEDIA_BUS_FMT(SGRBG10_1X10), 138edcf58bcSBoris BREZILLON V4L2_MBUS_FROM_MEDIA_BUS_FMT(SRGGB10_1X10), 139edcf58bcSBoris BREZILLON V4L2_MBUS_FROM_MEDIA_BUS_FMT(SBGGR12_1X12), 140edcf58bcSBoris BREZILLON V4L2_MBUS_FROM_MEDIA_BUS_FMT(SGBRG12_1X12), 141edcf58bcSBoris BREZILLON V4L2_MBUS_FROM_MEDIA_BUS_FMT(SGRBG12_1X12), 142edcf58bcSBoris BREZILLON V4L2_MBUS_FROM_MEDIA_BUS_FMT(SRGGB12_1X12), 143607ca46eSDavid Howells 144edcf58bcSBoris BREZILLON V4L2_MBUS_FROM_MEDIA_BUS_FMT(JPEG_1X8), 145607ca46eSDavid Howells 146edcf58bcSBoris BREZILLON V4L2_MBUS_FROM_MEDIA_BUS_FMT(S5C_UYVY_JPEG_1X8), 147607ca46eSDavid Howells 148edcf58bcSBoris BREZILLON V4L2_MBUS_FROM_MEDIA_BUS_FMT(AHSV8888_1X32), 149607ca46eSDavid Howells }; 150aa1b4da6SBoris BREZILLON #endif /* __KERNEL__ */ 151607ca46eSDavid Howells 152607ca46eSDavid Howells #endif 153