root/include/media/davinci/vpbe_types.h

/* [<][>][^][v][top][bottom][index][help] */

INCLUDED FROM


   1 /* SPDX-License-Identifier: GPL-2.0-only */
   2 /*
   3  * Copyright (C) 2010 Texas Instruments Inc
   4  */
   5 #ifndef _VPBE_TYPES_H
   6 #define _VPBE_TYPES_H
   7 
   8 enum vpbe_version {
   9         VPBE_VERSION_1 = 1,
  10         VPBE_VERSION_2,
  11         VPBE_VERSION_3,
  12 };
  13 
  14 /* vpbe_timing_type - Timing types used in vpbe device */
  15 enum vpbe_enc_timings_type {
  16         VPBE_ENC_STD = 0x1,
  17         VPBE_ENC_DV_TIMINGS = 0x4,
  18         /* Used when set timings through FB device interface */
  19         VPBE_ENC_TIMINGS_INVALID = 0x8,
  20 };
  21 
  22 /*
  23  * struct vpbe_enc_mode_info
  24  * @name: ptr to name string of the standard, "NTSC", "PAL" etc
  25  * @std: standard or non-standard mode. 1 - standard, 0 - nonstandard
  26  * @interlaced: 1 - interlaced, 0 - non interlaced/progressive
  27  * @xres: x or horizontal resolution of the display
  28  * @yres: y or vertical resolution of the display
  29  * @fps: frame per second
  30  * @left_margin: left margin of the display
  31  * @right_margin: right margin of the display
  32  * @upper_margin: upper margin of the display
  33  * @lower_margin: lower margin of the display
  34  * @hsync_len: h-sync length
  35  * @vsync_len: v-sync length
  36  * @flags: bit field: bit usage is documented below
  37  *
  38  * Description:
  39  *  Structure holding timing and resolution information of a standard.
  40  * Used by vpbe_device to set required non-standard timing in the
  41  * venc when lcd controller output is connected to a external encoder.
  42  * A table of timings is maintained in vpbe device to set this in
  43  * venc when external encoder is connected to lcd controller output.
  44  * Encoder may provide a g_dv_timings() API to override these values
  45  * as needed.
  46  *
  47  *  Notes
  48  *  ------
  49  *  if_type should be used only by encoder manager and encoder.
  50  *  flags usage
  51  *     b0 (LSB) - hsync polarity, 0 - negative, 1 - positive
  52  *     b1       - vsync polarity, 0 - negative, 1 - positive
  53  *     b2       - field id polarity, 0 - negative, 1  - positive
  54  */
  55 struct vpbe_enc_mode_info {
  56         unsigned char *name;
  57         enum vpbe_enc_timings_type timings_type;
  58         v4l2_std_id std_id;
  59         struct v4l2_dv_timings dv_timings;
  60         unsigned int interlaced;
  61         unsigned int xres;
  62         unsigned int yres;
  63         struct v4l2_fract aspect;
  64         struct v4l2_fract fps;
  65         unsigned int left_margin;
  66         unsigned int right_margin;
  67         unsigned int upper_margin;
  68         unsigned int lower_margin;
  69         unsigned int hsync_len;
  70         unsigned int vsync_len;
  71         unsigned int flags;
  72 };
  73 
  74 #endif

/* [<][>][^][v][top][bottom][index][help] */