linux-headers (unknown)

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