linux/include/media/davinci/vpif_types.h
<<
>>
Prefs
   1/*
   2 * Copyright (C) 2011 Texas Instruments Inc
   3 *
   4 * This program is free software; you can redistribute it and/or modify
   5 * it under the terms of the GNU General Public License as published by
   6 * the Free Software Foundation version 2.
   7 *
   8 * This program is distributed in the hope that it will be useful,
   9 * but WITHOUT ANY WARRANTY; without even the implied warranty of
  10 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
  11 * GNU General Public License for more details.
  12 *
  13 * You should have received a copy of the GNU General Public License
  14 * along with this program; if not, write to the Free Software
  15 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
  16 */
  17#ifndef _VPIF_TYPES_H
  18#define _VPIF_TYPES_H
  19
  20#include <linux/i2c.h>
  21
  22#define VPIF_CAPTURE_MAX_CHANNELS       2
  23#define VPIF_DISPLAY_MAX_CHANNELS       2
  24
  25enum vpif_if_type {
  26        VPIF_IF_BT656,
  27        VPIF_IF_BT1120,
  28        VPIF_IF_RAW_BAYER
  29};
  30
  31struct vpif_interface {
  32        enum vpif_if_type if_type;
  33        unsigned hd_pol:1;
  34        unsigned vd_pol:1;
  35        unsigned fid_pol:1;
  36};
  37
  38struct vpif_subdev_info {
  39        const char *name;
  40        struct i2c_board_info board_info;
  41};
  42
  43struct vpif_output {
  44        struct v4l2_output output;
  45        const char *subdev_name;
  46        u32 input_route;
  47        u32 output_route;
  48};
  49
  50struct vpif_display_chan_config {
  51        const struct vpif_output *outputs;
  52        int output_count;
  53        bool clip_en;
  54};
  55
  56struct vpif_display_config {
  57        int (*set_clock)(int, int);
  58        struct vpif_subdev_info *subdevinfo;
  59        int subdev_count;
  60        struct vpif_display_chan_config chan_config[VPIF_DISPLAY_MAX_CHANNELS];
  61        const char *card_name;
  62};
  63
  64struct vpif_input {
  65        struct v4l2_input input;
  66        const char *subdev_name;
  67        u32 input_route;
  68        u32 output_route;
  69};
  70
  71struct vpif_capture_chan_config {
  72        struct vpif_interface vpif_if;
  73        const struct vpif_input *inputs;
  74        int input_count;
  75};
  76
  77struct vpif_capture_config {
  78        int (*setup_input_channel_mode)(int);
  79        int (*setup_input_path)(int, const char *);
  80        struct vpif_capture_chan_config chan_config[VPIF_CAPTURE_MAX_CHANNELS];
  81        struct vpif_subdev_info *subdev_info;
  82        int subdev_count;
  83        const char *card_name;
  84};
  85#endif /* _VPIF_TYPES_H */
  86