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#ifndef _VPIF_TYPES_H
  14#define _VPIF_TYPES_H
  15
  16#include <linux/i2c.h>
  17
  18#define VPIF_CAPTURE_MAX_CHANNELS       2
  19#define VPIF_DISPLAY_MAX_CHANNELS       2
  20
  21enum vpif_if_type {
  22        VPIF_IF_BT656,
  23        VPIF_IF_BT1120,
  24        VPIF_IF_RAW_BAYER
  25};
  26
  27struct vpif_interface {
  28        enum vpif_if_type if_type;
  29        unsigned hd_pol:1;
  30        unsigned vd_pol:1;
  31        unsigned fid_pol:1;
  32};
  33
  34struct vpif_subdev_info {
  35        const char *name;
  36        struct i2c_board_info board_info;
  37};
  38
  39struct vpif_output {
  40        struct v4l2_output output;
  41        const char *subdev_name;
  42        u32 input_route;
  43        u32 output_route;
  44};
  45
  46struct vpif_display_chan_config {
  47        const struct vpif_output *outputs;
  48        int output_count;
  49        bool clip_en;
  50};
  51
  52struct vpif_display_config {
  53        int (*set_clock)(int, int);
  54        struct vpif_subdev_info *subdevinfo;
  55        int subdev_count;
  56        int i2c_adapter_id;
  57        struct vpif_display_chan_config chan_config[VPIF_DISPLAY_MAX_CHANNELS];
  58        const char *card_name;
  59        struct v4l2_async_subdev **asd; /* Flat array, arranged in groups */
  60        int *asd_sizes;         /* 0-terminated array of asd group sizes */
  61};
  62
  63struct vpif_input {
  64        struct v4l2_input input;
  65        char *subdev_name;
  66        u32 input_route;
  67        u32 output_route;
  68};
  69
  70struct vpif_capture_chan_config {
  71        struct vpif_interface vpif_if;
  72        struct vpif_input *inputs;
  73        int input_count;
  74};
  75
  76struct vpif_capture_config {
  77        int (*setup_input_channel_mode)(int);
  78        int (*setup_input_path)(int, const char *);
  79        struct vpif_capture_chan_config chan_config[VPIF_CAPTURE_MAX_CHANNELS];
  80        struct vpif_subdev_info *subdev_info;
  81        int subdev_count;
  82        int i2c_adapter_id;
  83        const char *card_name;
  84
  85        struct v4l2_async_subdev *asd[VPIF_CAPTURE_MAX_CHANNELS];
  86        int asd_sizes[VPIF_CAPTURE_MAX_CHANNELS];
  87};
  88#endif /* _VPIF_TYPES_H */
  89