linux/include/media/davinci/vpbe_types.h
<<
>>
Prefs
   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
   8enum 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 */
  15enum 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 */
  55struct 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
  75