vpe_regs.h (9549B)
1/* SPDX-License-Identifier: GPL-2.0-only */ 2/* 3 * Copyright (c) 2013 Texas Instruments Inc. 4 * 5 * David Griego, <dagriego@biglakesoftware.com> 6 * Dale Farnsworth, <dale@farnsworth.org> 7 * Archit Taneja, <archit@ti.com> 8 */ 9 10#ifndef __TI_VPE_REGS_H 11#define __TI_VPE_REGS_H 12 13/* VPE register offsets and field selectors */ 14 15/* VPE top level regs */ 16#define VPE_PID 0x0000 17#define VPE_PID_MINOR_MASK 0x3f 18#define VPE_PID_MINOR_SHIFT 0 19#define VPE_PID_CUSTOM_MASK 0x03 20#define VPE_PID_CUSTOM_SHIFT 6 21#define VPE_PID_MAJOR_MASK 0x07 22#define VPE_PID_MAJOR_SHIFT 8 23#define VPE_PID_RTL_MASK 0x1f 24#define VPE_PID_RTL_SHIFT 11 25#define VPE_PID_FUNC_MASK 0xfff 26#define VPE_PID_FUNC_SHIFT 16 27#define VPE_PID_SCHEME_MASK 0x03 28#define VPE_PID_SCHEME_SHIFT 30 29 30#define VPE_SYSCONFIG 0x0010 31#define VPE_SYSCONFIG_IDLE_MASK 0x03 32#define VPE_SYSCONFIG_IDLE_SHIFT 2 33#define VPE_SYSCONFIG_STANDBY_MASK 0x03 34#define VPE_SYSCONFIG_STANDBY_SHIFT 4 35#define VPE_FORCE_IDLE_MODE 0 36#define VPE_NO_IDLE_MODE 1 37#define VPE_SMART_IDLE_MODE 2 38#define VPE_SMART_IDLE_WAKEUP_MODE 3 39#define VPE_FORCE_STANDBY_MODE 0 40#define VPE_NO_STANDBY_MODE 1 41#define VPE_SMART_STANDBY_MODE 2 42#define VPE_SMART_STANDBY_WAKEUP_MODE 3 43 44#define VPE_INT0_STATUS0_RAW_SET 0x0020 45#define VPE_INT0_STATUS0_RAW VPE_INT0_STATUS0_RAW_SET 46#define VPE_INT0_STATUS0_CLR 0x0028 47#define VPE_INT0_STATUS0 VPE_INT0_STATUS0_CLR 48#define VPE_INT0_ENABLE0_SET 0x0030 49#define VPE_INT0_ENABLE0 VPE_INT0_ENABLE0_SET 50#define VPE_INT0_ENABLE0_CLR 0x0038 51#define VPE_INT0_LIST0_COMPLETE BIT(0) 52#define VPE_INT0_LIST0_NOTIFY BIT(1) 53#define VPE_INT0_LIST1_COMPLETE BIT(2) 54#define VPE_INT0_LIST1_NOTIFY BIT(3) 55#define VPE_INT0_LIST2_COMPLETE BIT(4) 56#define VPE_INT0_LIST2_NOTIFY BIT(5) 57#define VPE_INT0_LIST3_COMPLETE BIT(6) 58#define VPE_INT0_LIST3_NOTIFY BIT(7) 59#define VPE_INT0_LIST4_COMPLETE BIT(8) 60#define VPE_INT0_LIST4_NOTIFY BIT(9) 61#define VPE_INT0_LIST5_COMPLETE BIT(10) 62#define VPE_INT0_LIST5_NOTIFY BIT(11) 63#define VPE_INT0_LIST6_COMPLETE BIT(12) 64#define VPE_INT0_LIST6_NOTIFY BIT(13) 65#define VPE_INT0_LIST7_COMPLETE BIT(14) 66#define VPE_INT0_LIST7_NOTIFY BIT(15) 67#define VPE_INT0_DESCRIPTOR BIT(16) 68#define VPE_DEI_FMD_INT BIT(18) 69 70#define VPE_INT0_STATUS1_RAW_SET 0x0024 71#define VPE_INT0_STATUS1_RAW VPE_INT0_STATUS1_RAW_SET 72#define VPE_INT0_STATUS1_CLR 0x002c 73#define VPE_INT0_STATUS1 VPE_INT0_STATUS1_CLR 74#define VPE_INT0_ENABLE1_SET 0x0034 75#define VPE_INT0_ENABLE1 VPE_INT0_ENABLE1_SET 76#define VPE_INT0_ENABLE1_CLR 0x003c 77#define VPE_INT0_CHANNEL_GROUP0 BIT(0) 78#define VPE_INT0_CHANNEL_GROUP1 BIT(1) 79#define VPE_INT0_CHANNEL_GROUP2 BIT(2) 80#define VPE_INT0_CHANNEL_GROUP3 BIT(3) 81#define VPE_INT0_CHANNEL_GROUP4 BIT(4) 82#define VPE_INT0_CHANNEL_GROUP5 BIT(5) 83#define VPE_INT0_CLIENT BIT(7) 84#define VPE_DEI_ERROR_INT BIT(16) 85#define VPE_DS1_UV_ERROR_INT BIT(22) 86 87#define VPE_INTC_EOI 0x00a0 88 89#define VPE_CLK_ENABLE 0x0100 90#define VPE_VPEDMA_CLK_ENABLE BIT(0) 91#define VPE_DATA_PATH_CLK_ENABLE BIT(1) 92 93#define VPE_CLK_RESET 0x0104 94#define VPE_VPDMA_CLK_RESET_MASK 0x1 95#define VPE_VPDMA_CLK_RESET_SHIFT 0 96#define VPE_DATA_PATH_CLK_RESET_MASK 0x1 97#define VPE_DATA_PATH_CLK_RESET_SHIFT 1 98#define VPE_MAIN_RESET_MASK 0x1 99#define VPE_MAIN_RESET_SHIFT 31 100 101#define VPE_CLK_FORMAT_SELECT 0x010c 102#define VPE_CSC_SRC_SELECT_MASK 0x03 103#define VPE_CSC_SRC_SELECT_SHIFT 0 104#define VPE_RGB_OUT_SELECT BIT(8) 105#define VPE_DS_SRC_SELECT_MASK 0x07 106#define VPE_DS_SRC_SELECT_SHIFT 9 107#define VPE_DS_BYPASS BIT(16) 108#define VPE_COLOR_SEPARATE_422 BIT(18) 109 110#define VPE_DS_SRC_DEI_SCALER (5 << VPE_DS_SRC_SELECT_SHIFT) 111#define VPE_CSC_SRC_DEI_SCALER (3 << VPE_CSC_SRC_SELECT_SHIFT) 112 113#define VPE_CLK_RANGE_MAP 0x011c 114#define VPE_RANGE_RANGE_MAP_Y_MASK 0x07 115#define VPE_RANGE_RANGE_MAP_Y_SHIFT 0 116#define VPE_RANGE_RANGE_MAP_UV_MASK 0x07 117#define VPE_RANGE_RANGE_MAP_UV_SHIFT 3 118#define VPE_RANGE_MAP_ON BIT(6) 119#define VPE_RANGE_REDUCTION_ON BIT(28) 120 121/* VPE chrominance upsampler regs */ 122#define VPE_US1_R0 0x0304 123#define VPE_US2_R0 0x0404 124#define VPE_US3_R0 0x0504 125#define VPE_US_C1_MASK 0x3fff 126#define VPE_US_C1_SHIFT 2 127#define VPE_US_C0_MASK 0x3fff 128#define VPE_US_C0_SHIFT 18 129#define VPE_US_MODE_MASK 0x03 130#define VPE_US_MODE_SHIFT 16 131#define VPE_ANCHOR_FID0_C1_MASK 0x3fff 132#define VPE_ANCHOR_FID0_C1_SHIFT 2 133#define VPE_ANCHOR_FID0_C0_MASK 0x3fff 134#define VPE_ANCHOR_FID0_C0_SHIFT 18 135 136#define VPE_US1_R1 0x0308 137#define VPE_US2_R1 0x0408 138#define VPE_US3_R1 0x0508 139#define VPE_ANCHOR_FID0_C3_MASK 0x3fff 140#define VPE_ANCHOR_FID0_C3_SHIFT 2 141#define VPE_ANCHOR_FID0_C2_MASK 0x3fff 142#define VPE_ANCHOR_FID0_C2_SHIFT 18 143 144#define VPE_US1_R2 0x030c 145#define VPE_US2_R2 0x040c 146#define VPE_US3_R2 0x050c 147#define VPE_INTERP_FID0_C1_MASK 0x3fff 148#define VPE_INTERP_FID0_C1_SHIFT 2 149#define VPE_INTERP_FID0_C0_MASK 0x3fff 150#define VPE_INTERP_FID0_C0_SHIFT 18 151 152#define VPE_US1_R3 0x0310 153#define VPE_US2_R3 0x0410 154#define VPE_US3_R3 0x0510 155#define VPE_INTERP_FID0_C3_MASK 0x3fff 156#define VPE_INTERP_FID0_C3_SHIFT 2 157#define VPE_INTERP_FID0_C2_MASK 0x3fff 158#define VPE_INTERP_FID0_C2_SHIFT 18 159 160#define VPE_US1_R4 0x0314 161#define VPE_US2_R4 0x0414 162#define VPE_US3_R4 0x0514 163#define VPE_ANCHOR_FID1_C1_MASK 0x3fff 164#define VPE_ANCHOR_FID1_C1_SHIFT 2 165#define VPE_ANCHOR_FID1_C0_MASK 0x3fff 166#define VPE_ANCHOR_FID1_C0_SHIFT 18 167 168#define VPE_US1_R5 0x0318 169#define VPE_US2_R5 0x0418 170#define VPE_US3_R5 0x0518 171#define VPE_ANCHOR_FID1_C3_MASK 0x3fff 172#define VPE_ANCHOR_FID1_C3_SHIFT 2 173#define VPE_ANCHOR_FID1_C2_MASK 0x3fff 174#define VPE_ANCHOR_FID1_C2_SHIFT 18 175 176#define VPE_US1_R6 0x031c 177#define VPE_US2_R6 0x041c 178#define VPE_US3_R6 0x051c 179#define VPE_INTERP_FID1_C1_MASK 0x3fff 180#define VPE_INTERP_FID1_C1_SHIFT 2 181#define VPE_INTERP_FID1_C0_MASK 0x3fff 182#define VPE_INTERP_FID1_C0_SHIFT 18 183 184#define VPE_US1_R7 0x0320 185#define VPE_US2_R7 0x0420 186#define VPE_US3_R7 0x0520 187#define VPE_INTERP_FID0_C3_MASK 0x3fff 188#define VPE_INTERP_FID0_C3_SHIFT 2 189#define VPE_INTERP_FID0_C2_MASK 0x3fff 190#define VPE_INTERP_FID0_C2_SHIFT 18 191 192/* VPE de-interlacer regs */ 193#define VPE_DEI_FRAME_SIZE 0x0600 194#define VPE_DEI_WIDTH_MASK 0x07ff 195#define VPE_DEI_WIDTH_SHIFT 0 196#define VPE_DEI_HEIGHT_MASK 0x07ff 197#define VPE_DEI_HEIGHT_SHIFT 16 198#define VPE_DEI_INTERLACE_BYPASS BIT(29) 199#define VPE_DEI_FIELD_FLUSH BIT(30) 200#define VPE_DEI_PROGRESSIVE BIT(31) 201 202#define VPE_MDT_BYPASS 0x0604 203#define VPE_MDT_TEMPMAX_BYPASS BIT(0) 204#define VPE_MDT_SPATMAX_BYPASS BIT(1) 205 206#define VPE_MDT_SF_THRESHOLD 0x0608 207#define VPE_MDT_SF_SC_THR1_MASK 0xff 208#define VPE_MDT_SF_SC_THR1_SHIFT 0 209#define VPE_MDT_SF_SC_THR2_MASK 0xff 210#define VPE_MDT_SF_SC_THR2_SHIFT 0 211#define VPE_MDT_SF_SC_THR3_MASK 0xff 212#define VPE_MDT_SF_SC_THR3_SHIFT 0 213 214#define VPE_EDI_CONFIG 0x060c 215#define VPE_EDI_INP_MODE_MASK 0x03 216#define VPE_EDI_INP_MODE_SHIFT 0 217#define VPE_EDI_ENABLE_3D BIT(2) 218#define VPE_EDI_ENABLE_CHROMA_3D BIT(3) 219#define VPE_EDI_CHROMA3D_COR_THR_MASK 0xff 220#define VPE_EDI_CHROMA3D_COR_THR_SHIFT 8 221#define VPE_EDI_DIR_COR_LOWER_THR_MASK 0xff 222#define VPE_EDI_DIR_COR_LOWER_THR_SHIFT 16 223#define VPE_EDI_COR_SCALE_FACTOR_MASK 0xff 224#define VPE_EDI_COR_SCALE_FACTOR_SHIFT 23 225 226#define VPE_DEI_EDI_LUT_R0 0x0610 227#define VPE_EDI_LUT0_MASK 0x1f 228#define VPE_EDI_LUT0_SHIFT 0 229#define VPE_EDI_LUT1_MASK 0x1f 230#define VPE_EDI_LUT1_SHIFT 8 231#define VPE_EDI_LUT2_MASK 0x1f 232#define VPE_EDI_LUT2_SHIFT 16 233#define VPE_EDI_LUT3_MASK 0x1f 234#define VPE_EDI_LUT3_SHIFT 24 235 236#define VPE_DEI_EDI_LUT_R1 0x0614 237#define VPE_EDI_LUT0_MASK 0x1f 238#define VPE_EDI_LUT0_SHIFT 0 239#define VPE_EDI_LUT1_MASK 0x1f 240#define VPE_EDI_LUT1_SHIFT 8 241#define VPE_EDI_LUT2_MASK 0x1f 242#define VPE_EDI_LUT2_SHIFT 16 243#define VPE_EDI_LUT3_MASK 0x1f 244#define VPE_EDI_LUT3_SHIFT 24 245 246#define VPE_DEI_EDI_LUT_R2 0x0618 247#define VPE_EDI_LUT4_MASK 0x1f 248#define VPE_EDI_LUT4_SHIFT 0 249#define VPE_EDI_LUT5_MASK 0x1f 250#define VPE_EDI_LUT5_SHIFT 8 251#define VPE_EDI_LUT6_MASK 0x1f 252#define VPE_EDI_LUT6_SHIFT 16 253#define VPE_EDI_LUT7_MASK 0x1f 254#define VPE_EDI_LUT7_SHIFT 24 255 256#define VPE_DEI_EDI_LUT_R3 0x061c 257#define VPE_EDI_LUT8_MASK 0x1f 258#define VPE_EDI_LUT8_SHIFT 0 259#define VPE_EDI_LUT9_MASK 0x1f 260#define VPE_EDI_LUT9_SHIFT 8 261#define VPE_EDI_LUT10_MASK 0x1f 262#define VPE_EDI_LUT10_SHIFT 16 263#define VPE_EDI_LUT11_MASK 0x1f 264#define VPE_EDI_LUT11_SHIFT 24 265 266#define VPE_DEI_FMD_WINDOW_R0 0x0620 267#define VPE_FMD_WINDOW_MINX_MASK 0x07ff 268#define VPE_FMD_WINDOW_MINX_SHIFT 0 269#define VPE_FMD_WINDOW_MAXX_MASK 0x07ff 270#define VPE_FMD_WINDOW_MAXX_SHIFT 16 271#define VPE_FMD_WINDOW_ENABLE BIT(31) 272 273#define VPE_DEI_FMD_WINDOW_R1 0x0624 274#define VPE_FMD_WINDOW_MINY_MASK 0x07ff 275#define VPE_FMD_WINDOW_MINY_SHIFT 0 276#define VPE_FMD_WINDOW_MAXY_MASK 0x07ff 277#define VPE_FMD_WINDOW_MAXY_SHIFT 16 278 279#define VPE_DEI_FMD_CONTROL_R0 0x0628 280#define VPE_FMD_ENABLE BIT(0) 281#define VPE_FMD_LOCK BIT(1) 282#define VPE_FMD_JAM_DIR BIT(2) 283#define VPE_FMD_BED_ENABLE BIT(3) 284#define VPE_FMD_CAF_FIELD_THR_MASK 0xff 285#define VPE_FMD_CAF_FIELD_THR_SHIFT 16 286#define VPE_FMD_CAF_LINE_THR_MASK 0xff 287#define VPE_FMD_CAF_LINE_THR_SHIFT 24 288 289#define VPE_DEI_FMD_CONTROL_R1 0x062c 290#define VPE_FMD_CAF_THR_MASK 0x000fffff 291#define VPE_FMD_CAF_THR_SHIFT 0 292 293#define VPE_DEI_FMD_STATUS_R0 0x0630 294#define VPE_FMD_CAF_MASK 0x000fffff 295#define VPE_FMD_CAF_SHIFT 0 296#define VPE_FMD_RESET BIT(24) 297 298#define VPE_DEI_FMD_STATUS_R1 0x0634 299#define VPE_FMD_FIELD_DIFF_MASK 0x0fffffff 300#define VPE_FMD_FIELD_DIFF_SHIFT 0 301 302#define VPE_DEI_FMD_STATUS_R2 0x0638 303#define VPE_FMD_FRAME_DIFF_MASK 0x000fffff 304#define VPE_FMD_FRAME_DIFF_SHIFT 0 305 306#endif