1 | /* SPDX-License-Identifier: GPL-2.0-only */ |
2 | /* |
3 | * Copyright (C) 2011 Texas Instruments Inc |
4 | */ |
5 | #ifndef _VPIF_TYPES_H |
6 | #define _VPIF_TYPES_H |
7 | |
8 | #include <linux/i2c.h> |
9 | |
10 | #define VPIF_CAPTURE_MAX_CHANNELS 2 |
11 | #define VPIF_DISPLAY_MAX_CHANNELS 2 |
12 | |
13 | enum vpif_if_type { |
14 | VPIF_IF_BT656, |
15 | VPIF_IF_BT1120, |
16 | VPIF_IF_RAW_BAYER |
17 | }; |
18 | |
19 | struct vpif_interface { |
20 | enum vpif_if_type if_type; |
21 | unsigned hd_pol:1; |
22 | unsigned vd_pol:1; |
23 | unsigned fid_pol:1; |
24 | }; |
25 | |
26 | struct vpif_subdev_info { |
27 | const char *name; |
28 | struct i2c_board_info board_info; |
29 | }; |
30 | |
31 | struct vpif_output { |
32 | struct v4l2_output output; |
33 | const char *subdev_name; |
34 | u32 input_route; |
35 | u32 output_route; |
36 | }; |
37 | |
38 | struct vpif_display_chan_config { |
39 | const struct vpif_output *outputs; |
40 | int output_count; |
41 | bool clip_en; |
42 | }; |
43 | |
44 | struct vpif_display_config { |
45 | int (*set_clock)(int, int); |
46 | struct vpif_subdev_info *subdevinfo; |
47 | int subdev_count; |
48 | int i2c_adapter_id; |
49 | struct vpif_display_chan_config chan_config[VPIF_DISPLAY_MAX_CHANNELS]; |
50 | const char *card_name; |
51 | }; |
52 | |
53 | struct vpif_input { |
54 | struct v4l2_input input; |
55 | char *subdev_name; |
56 | u32 input_route; |
57 | u32 output_route; |
58 | }; |
59 | |
60 | struct vpif_capture_chan_config { |
61 | struct vpif_interface vpif_if; |
62 | struct vpif_input *inputs; |
63 | int input_count; |
64 | }; |
65 | |
66 | struct vpif_capture_config { |
67 | int (*setup_input_channel_mode)(int); |
68 | int (*setup_input_path)(int, const char *); |
69 | struct vpif_capture_chan_config chan_config[VPIF_CAPTURE_MAX_CHANNELS]; |
70 | struct vpif_subdev_info *subdev_info; |
71 | int subdev_count; |
72 | int i2c_adapter_id; |
73 | const char *card_name; |
74 | |
75 | struct v4l2_async_connection *asd[VPIF_CAPTURE_MAX_CHANNELS]; |
76 | int asd_sizes[VPIF_CAPTURE_MAX_CHANNELS]; |
77 | }; |
78 | #endif /* _VPIF_TYPES_H */ |
79 | |