linux/include/uapi/linux/media-bus-format.h
<<
>>
Prefs
   1/*
   2 * Media Bus API header
   3 *
   4 * Copyright (C) 2009, Guennadi Liakhovetski <g.liakhovetski@gmx.de>
   5 *
   6 * This program is free software; you can redistribute it and/or modify
   7 * it under the terms of the GNU General Public License version 2 as
   8 * published by the Free Software Foundation.
   9 */
  10
  11#ifndef __LINUX_MEDIA_BUS_FORMAT_H
  12#define __LINUX_MEDIA_BUS_FORMAT_H
  13
  14/*
  15 * These bus formats uniquely identify data formats on the data bus. Format 0
  16 * is reserved, MEDIA_BUS_FMT_FIXED shall be used by host-client pairs, where
  17 * the data format is fixed. Additionally, "2X8" means that one pixel is
  18 * transferred in two 8-bit samples, "BE" or "LE" specify in which order those
  19 * samples are transferred over the bus: "LE" means that the least significant
  20 * bits are transferred first, "BE" means that the most significant bits are
  21 * transferred first, and "PADHI" and "PADLO" define which bits - low or high,
  22 * in the incomplete high byte, are filled with padding bits.
  23 *
  24 * The bus formats are grouped by type, bus_width, bits per component, samples
  25 * per pixel and order of subsamples. Numerical values are sorted using generic
  26 * numerical sort order (8 thus comes before 10).
  27 *
  28 * As their value can't change when a new bus format is inserted in the
  29 * enumeration, the bus formats are explicitly given a numerical value. The next
  30 * free values for each category are listed below, update them when inserting
  31 * new pixel codes.
  32 */
  33
  34#define MEDIA_BUS_FMT_FIXED                     0x0001
  35
  36/* RGB - next is        0x1018 */
  37#define MEDIA_BUS_FMT_RGB444_1X12               0x1016
  38#define MEDIA_BUS_FMT_RGB444_2X8_PADHI_BE       0x1001
  39#define MEDIA_BUS_FMT_RGB444_2X8_PADHI_LE       0x1002
  40#define MEDIA_BUS_FMT_RGB555_2X8_PADHI_BE       0x1003
  41#define MEDIA_BUS_FMT_RGB555_2X8_PADHI_LE       0x1004
  42#define MEDIA_BUS_FMT_RGB565_1X16               0x1017
  43#define MEDIA_BUS_FMT_BGR565_2X8_BE             0x1005
  44#define MEDIA_BUS_FMT_BGR565_2X8_LE             0x1006
  45#define MEDIA_BUS_FMT_RGB565_2X8_BE             0x1007
  46#define MEDIA_BUS_FMT_RGB565_2X8_LE             0x1008
  47#define MEDIA_BUS_FMT_RGB666_1X18               0x1009
  48#define MEDIA_BUS_FMT_RBG888_1X24               0x100e
  49#define MEDIA_BUS_FMT_RGB666_1X24_CPADHI        0x1015
  50#define MEDIA_BUS_FMT_RGB666_1X7X3_SPWG         0x1010
  51#define MEDIA_BUS_FMT_BGR888_1X24               0x1013
  52#define MEDIA_BUS_FMT_GBR888_1X24               0x1014
  53#define MEDIA_BUS_FMT_RGB888_1X24               0x100a
  54#define MEDIA_BUS_FMT_RGB888_2X12_BE            0x100b
  55#define MEDIA_BUS_FMT_RGB888_2X12_LE            0x100c
  56#define MEDIA_BUS_FMT_RGB888_1X7X4_SPWG         0x1011
  57#define MEDIA_BUS_FMT_RGB888_1X7X4_JEIDA        0x1012
  58#define MEDIA_BUS_FMT_ARGB8888_1X32             0x100d
  59#define MEDIA_BUS_FMT_RGB888_1X32_PADHI         0x100f
  60
  61/* YUV (including grey) - next is       0x2026 */
  62#define MEDIA_BUS_FMT_Y8_1X8                    0x2001
  63#define MEDIA_BUS_FMT_UV8_1X8                   0x2015
  64#define MEDIA_BUS_FMT_UYVY8_1_5X8               0x2002
  65#define MEDIA_BUS_FMT_VYUY8_1_5X8               0x2003
  66#define MEDIA_BUS_FMT_YUYV8_1_5X8               0x2004
  67#define MEDIA_BUS_FMT_YVYU8_1_5X8               0x2005
  68#define MEDIA_BUS_FMT_UYVY8_2X8                 0x2006
  69#define MEDIA_BUS_FMT_VYUY8_2X8                 0x2007
  70#define MEDIA_BUS_FMT_YUYV8_2X8                 0x2008
  71#define MEDIA_BUS_FMT_YVYU8_2X8                 0x2009
  72#define MEDIA_BUS_FMT_Y10_1X10                  0x200a
  73#define MEDIA_BUS_FMT_UYVY10_2X10               0x2018
  74#define MEDIA_BUS_FMT_VYUY10_2X10               0x2019
  75#define MEDIA_BUS_FMT_YUYV10_2X10               0x200b
  76#define MEDIA_BUS_FMT_YVYU10_2X10               0x200c
  77#define MEDIA_BUS_FMT_Y12_1X12                  0x2013
  78#define MEDIA_BUS_FMT_UYVY12_2X12               0x201c
  79#define MEDIA_BUS_FMT_VYUY12_2X12               0x201d
  80#define MEDIA_BUS_FMT_YUYV12_2X12               0x201e
  81#define MEDIA_BUS_FMT_YVYU12_2X12               0x201f
  82#define MEDIA_BUS_FMT_UYVY8_1X16                0x200f
  83#define MEDIA_BUS_FMT_VYUY8_1X16                0x2010
  84#define MEDIA_BUS_FMT_YUYV8_1X16                0x2011
  85#define MEDIA_BUS_FMT_YVYU8_1X16                0x2012
  86#define MEDIA_BUS_FMT_YDYUYDYV8_1X16            0x2014
  87#define MEDIA_BUS_FMT_UYVY10_1X20               0x201a
  88#define MEDIA_BUS_FMT_VYUY10_1X20               0x201b
  89#define MEDIA_BUS_FMT_YUYV10_1X20               0x200d
  90#define MEDIA_BUS_FMT_YVYU10_1X20               0x200e
  91#define MEDIA_BUS_FMT_VUY8_1X24                 0x2024
  92#define MEDIA_BUS_FMT_YUV8_1X24                 0x2025
  93#define MEDIA_BUS_FMT_UYVY12_1X24               0x2020
  94#define MEDIA_BUS_FMT_VYUY12_1X24               0x2021
  95#define MEDIA_BUS_FMT_YUYV12_1X24               0x2022
  96#define MEDIA_BUS_FMT_YVYU12_1X24               0x2023
  97#define MEDIA_BUS_FMT_YUV10_1X30                0x2016
  98#define MEDIA_BUS_FMT_AYUV8_1X32                0x2017
  99
 100/* Bayer - next is      0x3019 */
 101#define MEDIA_BUS_FMT_SBGGR8_1X8                0x3001
 102#define MEDIA_BUS_FMT_SGBRG8_1X8                0x3013
 103#define MEDIA_BUS_FMT_SGRBG8_1X8                0x3002
 104#define MEDIA_BUS_FMT_SRGGB8_1X8                0x3014
 105#define MEDIA_BUS_FMT_SBGGR10_ALAW8_1X8         0x3015
 106#define MEDIA_BUS_FMT_SGBRG10_ALAW8_1X8         0x3016
 107#define MEDIA_BUS_FMT_SGRBG10_ALAW8_1X8         0x3017
 108#define MEDIA_BUS_FMT_SRGGB10_ALAW8_1X8         0x3018
 109#define MEDIA_BUS_FMT_SBGGR10_DPCM8_1X8         0x300b
 110#define MEDIA_BUS_FMT_SGBRG10_DPCM8_1X8         0x300c
 111#define MEDIA_BUS_FMT_SGRBG10_DPCM8_1X8         0x3009
 112#define MEDIA_BUS_FMT_SRGGB10_DPCM8_1X8         0x300d
 113#define MEDIA_BUS_FMT_SBGGR10_2X8_PADHI_BE      0x3003
 114#define MEDIA_BUS_FMT_SBGGR10_2X8_PADHI_LE      0x3004
 115#define MEDIA_BUS_FMT_SBGGR10_2X8_PADLO_BE      0x3005
 116#define MEDIA_BUS_FMT_SBGGR10_2X8_PADLO_LE      0x3006
 117#define MEDIA_BUS_FMT_SBGGR10_1X10              0x3007
 118#define MEDIA_BUS_FMT_SGBRG10_1X10              0x300e
 119#define MEDIA_BUS_FMT_SGRBG10_1X10              0x300a
 120#define MEDIA_BUS_FMT_SRGGB10_1X10              0x300f
 121#define MEDIA_BUS_FMT_SBGGR12_1X12              0x3008
 122#define MEDIA_BUS_FMT_SGBRG12_1X12              0x3010
 123#define MEDIA_BUS_FMT_SGRBG12_1X12              0x3011
 124#define MEDIA_BUS_FMT_SRGGB12_1X12              0x3012
 125
 126/* JPEG compressed formats - next is    0x4002 */
 127#define MEDIA_BUS_FMT_JPEG_1X8                  0x4001
 128
 129/* Vendor specific formats - next is    0x5002 */
 130
 131/* S5C73M3 sensor specific interleaved UYVY and JPEG */
 132#define MEDIA_BUS_FMT_S5C_UYVY_JPEG_1X8         0x5001
 133
 134/* HSV - next is        0x6002 */
 135#define MEDIA_BUS_FMT_AHSV8888_1X32             0x6001
 136
 137#endif /* __LINUX_MEDIA_BUS_FORMAT_H */
 138