diff options
Diffstat (limited to 'drivers/media/video/davinci/vpif.c')
| -rw-r--r-- | drivers/media/video/davinci/vpif.c | 177 |
1 files changed, 177 insertions, 0 deletions
diff --git a/drivers/media/video/davinci/vpif.c b/drivers/media/video/davinci/vpif.c index 1f532e31cd49..9f3bfc1eb240 100644 --- a/drivers/media/video/davinci/vpif.c +++ b/drivers/media/video/davinci/vpif.c | |||
| @@ -41,6 +41,183 @@ spinlock_t vpif_lock; | |||
| 41 | 41 | ||
| 42 | void __iomem *vpif_base; | 42 | void __iomem *vpif_base; |
| 43 | 43 | ||
| 44 | /** | ||
| 45 | * ch_params: video standard configuration parameters for vpif | ||
| 46 | * The table must include all presets from supported subdevices. | ||
| 47 | */ | ||
| 48 | const struct vpif_channel_config_params ch_params[] = { | ||
| 49 | /* HDTV formats */ | ||
| 50 | { | ||
| 51 | .name = "480p59_94", | ||
| 52 | .width = 720, | ||
| 53 | .height = 480, | ||
| 54 | .frm_fmt = 1, | ||
| 55 | .ycmux_mode = 0, | ||
| 56 | .eav2sav = 138-8, | ||
| 57 | .sav2eav = 720, | ||
| 58 | .l1 = 1, | ||
| 59 | .l3 = 43, | ||
| 60 | .l5 = 523, | ||
| 61 | .vsize = 525, | ||
| 62 | .capture_format = 0, | ||
| 63 | .vbi_supported = 0, | ||
| 64 | .hd_sd = 1, | ||
| 65 | .dv_preset = V4L2_DV_480P59_94, | ||
| 66 | }, | ||
| 67 | { | ||
| 68 | .name = "576p50", | ||
| 69 | .width = 720, | ||
| 70 | .height = 576, | ||
| 71 | .frm_fmt = 1, | ||
| 72 | .ycmux_mode = 0, | ||
| 73 | .eav2sav = 144-8, | ||
| 74 | .sav2eav = 720, | ||
| 75 | .l1 = 1, | ||
| 76 | .l3 = 45, | ||
| 77 | .l5 = 621, | ||
| 78 | .vsize = 625, | ||
| 79 | .capture_format = 0, | ||
| 80 | .vbi_supported = 0, | ||
| 81 | .hd_sd = 1, | ||
| 82 | .dv_preset = V4L2_DV_576P50, | ||
| 83 | }, | ||
| 84 | { | ||
| 85 | .name = "720p50", | ||
| 86 | .width = 1280, | ||
| 87 | .height = 720, | ||
| 88 | .frm_fmt = 1, | ||
| 89 | .ycmux_mode = 0, | ||
| 90 | .eav2sav = 700-8, | ||
| 91 | .sav2eav = 1280, | ||
| 92 | .l1 = 1, | ||
| 93 | .l3 = 26, | ||
| 94 | .l5 = 746, | ||
| 95 | .vsize = 750, | ||
| 96 | .capture_format = 0, | ||
| 97 | .vbi_supported = 0, | ||
| 98 | .hd_sd = 1, | ||
| 99 | .dv_preset = V4L2_DV_720P50, | ||
| 100 | }, | ||
| 101 | { | ||
| 102 | .name = "720p60", | ||
| 103 | .width = 1280, | ||
| 104 | .height = 720, | ||
| 105 | .frm_fmt = 1, | ||
| 106 | .ycmux_mode = 0, | ||
| 107 | .eav2sav = 370 - 8, | ||
| 108 | .sav2eav = 1280, | ||
| 109 | .l1 = 1, | ||
| 110 | .l3 = 26, | ||
| 111 | .l5 = 746, | ||
| 112 | .vsize = 750, | ||
| 113 | .capture_format = 0, | ||
| 114 | .vbi_supported = 0, | ||
| 115 | .hd_sd = 1, | ||
| 116 | .dv_preset = V4L2_DV_720P60, | ||
| 117 | }, | ||
| 118 | { | ||
| 119 | .name = "1080I50", | ||
| 120 | .width = 1920, | ||
| 121 | .height = 1080, | ||
| 122 | .frm_fmt = 0, | ||
| 123 | .ycmux_mode = 0, | ||
| 124 | .eav2sav = 720 - 8, | ||
| 125 | .sav2eav = 1920, | ||
| 126 | .l1 = 1, | ||
| 127 | .l3 = 21, | ||
| 128 | .l5 = 561, | ||
| 129 | .l7 = 563, | ||
| 130 | .l9 = 584, | ||
| 131 | .l11 = 1124, | ||
| 132 | .vsize = 1125, | ||
| 133 | .capture_format = 0, | ||
| 134 | .vbi_supported = 0, | ||
| 135 | .hd_sd = 1, | ||
| 136 | .dv_preset = V4L2_DV_1080I50, | ||
| 137 | }, | ||
| 138 | { | ||
| 139 | .name = "1080I60", | ||
| 140 | .width = 1920, | ||
| 141 | .height = 1080, | ||
| 142 | .frm_fmt = 0, | ||
| 143 | .ycmux_mode = 0, | ||
| 144 | .eav2sav = 280 - 8, | ||
| 145 | .sav2eav = 1920, | ||
| 146 | .l1 = 1, | ||
| 147 | .l3 = 21, | ||
| 148 | .l5 = 561, | ||
| 149 | .l7 = 563, | ||
| 150 | .l9 = 584, | ||
| 151 | .l11 = 1124, | ||
| 152 | .vsize = 1125, | ||
| 153 | .capture_format = 0, | ||
| 154 | .vbi_supported = 0, | ||
| 155 | .hd_sd = 1, | ||
| 156 | .dv_preset = V4L2_DV_1080I60, | ||
| 157 | }, | ||
| 158 | { | ||
| 159 | .name = "1080p60", | ||
| 160 | .width = 1920, | ||
| 161 | .height = 1080, | ||
| 162 | .frm_fmt = 1, | ||
| 163 | .ycmux_mode = 0, | ||
| 164 | .eav2sav = 280 - 8, | ||
| 165 | .sav2eav = 1920, | ||
| 166 | .l1 = 1, | ||
| 167 | .l3 = 42, | ||
| 168 | .l5 = 1122, | ||
| 169 | .vsize = 1125, | ||
| 170 | .capture_format = 0, | ||
| 171 | .vbi_supported = 0, | ||
| 172 | .hd_sd = 1, | ||
| 173 | .dv_preset = V4L2_DV_1080P60, | ||
| 174 | }, | ||
| 175 | |||
| 176 | /* SDTV formats */ | ||
| 177 | { | ||
| 178 | .name = "NTSC_M", | ||
| 179 | .width = 720, | ||
| 180 | .height = 480, | ||
| 181 | .frm_fmt = 0, | ||
| 182 | .ycmux_mode = 1, | ||
| 183 | .eav2sav = 268, | ||
| 184 | .sav2eav = 1440, | ||
| 185 | .l1 = 1, | ||
| 186 | .l3 = 23, | ||
| 187 | .l5 = 263, | ||
| 188 | .l7 = 266, | ||
| 189 | .l9 = 286, | ||
| 190 | .l11 = 525, | ||
| 191 | .vsize = 525, | ||
| 192 | .capture_format = 0, | ||
| 193 | .vbi_supported = 1, | ||
| 194 | .hd_sd = 0, | ||
| 195 | .stdid = V4L2_STD_525_60, | ||
| 196 | }, | ||
| 197 | { | ||
| 198 | .name = "PAL_BDGHIK", | ||
| 199 | .width = 720, | ||
| 200 | .height = 576, | ||
| 201 | .frm_fmt = 0, | ||
| 202 | .ycmux_mode = 1, | ||
| 203 | .eav2sav = 280, | ||
| 204 | .sav2eav = 1440, | ||
| 205 | .l1 = 1, | ||
| 206 | .l3 = 23, | ||
| 207 | .l5 = 311, | ||
| 208 | .l7 = 313, | ||
| 209 | .l9 = 336, | ||
| 210 | .l11 = 624, | ||
| 211 | .vsize = 625, | ||
| 212 | .capture_format = 0, | ||
| 213 | .vbi_supported = 1, | ||
| 214 | .hd_sd = 0, | ||
| 215 | .stdid = V4L2_STD_625_50, | ||
| 216 | }, | ||
| 217 | }; | ||
| 218 | |||
| 219 | const unsigned int vpif_ch_params_count = ARRAY_SIZE(ch_params); | ||
| 220 | |||
| 44 | static inline void vpif_wr_bit(u32 reg, u32 bit, u32 val) | 221 | static inline void vpif_wr_bit(u32 reg, u32 bit, u32 val) |
| 45 | { | 222 | { |
| 46 | if (val) | 223 | if (val) |
