| /* SPDX-License-Identifier: GPL-2.0-only */ |
| /* |
| * Copyright (c) 2013 Texas Instruments Inc. |
| * |
| * David Griego, <dagriego@biglakesoftware.com> |
| * Dale Farnsworth, <dale@farnsworth.org> |
| * Archit Taneja, <archit@ti.com> |
| */ |
| |
| #ifndef __TI_VPE_REGS_H |
| #define __TI_VPE_REGS_H |
| |
| /* VPE register offsets and field selectors */ |
| |
| /* VPE top level regs */ |
| #define VPE_PID 0x0000 |
| #define VPE_PID_MINOR_MASK 0x3f |
| #define VPE_PID_MINOR_SHIFT 0 |
| #define VPE_PID_CUSTOM_MASK 0x03 |
| #define VPE_PID_CUSTOM_SHIFT 6 |
| #define VPE_PID_MAJOR_MASK 0x07 |
| #define VPE_PID_MAJOR_SHIFT 8 |
| #define VPE_PID_RTL_MASK 0x1f |
| #define VPE_PID_RTL_SHIFT 11 |
| #define VPE_PID_FUNC_MASK 0xfff |
| #define VPE_PID_FUNC_SHIFT 16 |
| #define VPE_PID_SCHEME_MASK 0x03 |
| #define VPE_PID_SCHEME_SHIFT 30 |
| |
| #define VPE_SYSCONFIG 0x0010 |
| #define VPE_SYSCONFIG_IDLE_MASK 0x03 |
| #define VPE_SYSCONFIG_IDLE_SHIFT 2 |
| #define VPE_SYSCONFIG_STANDBY_MASK 0x03 |
| #define VPE_SYSCONFIG_STANDBY_SHIFT 4 |
| #define VPE_FORCE_IDLE_MODE 0 |
| #define VPE_NO_IDLE_MODE 1 |
| #define VPE_SMART_IDLE_MODE 2 |
| #define VPE_SMART_IDLE_WAKEUP_MODE 3 |
| #define VPE_FORCE_STANDBY_MODE 0 |
| #define VPE_NO_STANDBY_MODE 1 |
| #define VPE_SMART_STANDBY_MODE 2 |
| #define VPE_SMART_STANDBY_WAKEUP_MODE 3 |
| |
| #define VPE_INT0_STATUS0_RAW_SET 0x0020 |
| #define VPE_INT0_STATUS0_RAW VPE_INT0_STATUS0_RAW_SET |
| #define VPE_INT0_STATUS0_CLR 0x0028 |
| #define VPE_INT0_STATUS0 VPE_INT0_STATUS0_CLR |
| #define VPE_INT0_ENABLE0_SET 0x0030 |
| #define VPE_INT0_ENABLE0 VPE_INT0_ENABLE0_SET |
| #define VPE_INT0_ENABLE0_CLR 0x0038 |
| #define VPE_INT0_LIST0_COMPLETE BIT(0) |
| #define VPE_INT0_LIST0_NOTIFY BIT(1) |
| #define VPE_INT0_LIST1_COMPLETE BIT(2) |
| #define VPE_INT0_LIST1_NOTIFY BIT(3) |
| #define VPE_INT0_LIST2_COMPLETE BIT(4) |
| #define VPE_INT0_LIST2_NOTIFY BIT(5) |
| #define VPE_INT0_LIST3_COMPLETE BIT(6) |
| #define VPE_INT0_LIST3_NOTIFY BIT(7) |
| #define VPE_INT0_LIST4_COMPLETE BIT(8) |
| #define VPE_INT0_LIST4_NOTIFY BIT(9) |
| #define VPE_INT0_LIST5_COMPLETE BIT(10) |
| #define VPE_INT0_LIST5_NOTIFY BIT(11) |
| #define VPE_INT0_LIST6_COMPLETE BIT(12) |
| #define VPE_INT0_LIST6_NOTIFY BIT(13) |
| #define VPE_INT0_LIST7_COMPLETE BIT(14) |
| #define VPE_INT0_LIST7_NOTIFY BIT(15) |
| #define VPE_INT0_DESCRIPTOR BIT(16) |
| #define VPE_DEI_FMD_INT BIT(18) |
| |
| #define VPE_INT0_STATUS1_RAW_SET 0x0024 |
| #define VPE_INT0_STATUS1_RAW VPE_INT0_STATUS1_RAW_SET |
| #define VPE_INT0_STATUS1_CLR 0x002c |
| #define VPE_INT0_STATUS1 VPE_INT0_STATUS1_CLR |
| #define VPE_INT0_ENABLE1_SET 0x0034 |
| #define VPE_INT0_ENABLE1 VPE_INT0_ENABLE1_SET |
| #define VPE_INT0_ENABLE1_CLR 0x003c |
| #define VPE_INT0_CHANNEL_GROUP0 BIT(0) |
| #define VPE_INT0_CHANNEL_GROUP1 BIT(1) |
| #define VPE_INT0_CHANNEL_GROUP2 BIT(2) |
| #define VPE_INT0_CHANNEL_GROUP3 BIT(3) |
| #define VPE_INT0_CHANNEL_GROUP4 BIT(4) |
| #define VPE_INT0_CHANNEL_GROUP5 BIT(5) |
| #define VPE_INT0_CLIENT BIT(7) |
| #define VPE_DEI_ERROR_INT BIT(16) |
| #define VPE_DS1_UV_ERROR_INT BIT(22) |
| |
| #define VPE_INTC_EOI 0x00a0 |
| |
| #define VPE_CLK_ENABLE 0x0100 |
| #define VPE_VPEDMA_CLK_ENABLE BIT(0) |
| #define VPE_DATA_PATH_CLK_ENABLE BIT(1) |
| |
| #define VPE_CLK_RESET 0x0104 |
| #define VPE_VPDMA_CLK_RESET_MASK 0x1 |
| #define VPE_VPDMA_CLK_RESET_SHIFT 0 |
| #define VPE_DATA_PATH_CLK_RESET_MASK 0x1 |
| #define VPE_DATA_PATH_CLK_RESET_SHIFT 1 |
| #define VPE_MAIN_RESET_MASK 0x1 |
| #define VPE_MAIN_RESET_SHIFT 31 |
| |
| #define VPE_CLK_FORMAT_SELECT 0x010c |
| #define VPE_CSC_SRC_SELECT_MASK 0x03 |
| #define VPE_CSC_SRC_SELECT_SHIFT 0 |
| #define VPE_RGB_OUT_SELECT BIT(8) |
| #define VPE_DS_SRC_SELECT_MASK 0x07 |
| #define VPE_DS_SRC_SELECT_SHIFT 9 |
| #define VPE_DS_BYPASS BIT(16) |
| #define VPE_COLOR_SEPARATE_422 BIT(18) |
| |
| #define VPE_DS_SRC_DEI_SCALER (5 << VPE_DS_SRC_SELECT_SHIFT) |
| #define VPE_CSC_SRC_DEI_SCALER (3 << VPE_CSC_SRC_SELECT_SHIFT) |
| |
| #define VPE_CLK_RANGE_MAP 0x011c |
| #define VPE_RANGE_RANGE_MAP_Y_MASK 0x07 |
| #define VPE_RANGE_RANGE_MAP_Y_SHIFT 0 |
| #define VPE_RANGE_RANGE_MAP_UV_MASK 0x07 |
| #define VPE_RANGE_RANGE_MAP_UV_SHIFT 3 |
| #define VPE_RANGE_MAP_ON BIT(6) |
| #define VPE_RANGE_REDUCTION_ON BIT(28) |
| |
| /* VPE chrominance upsampler regs */ |
| #define VPE_US1_R0 0x0304 |
| #define VPE_US2_R0 0x0404 |
| #define VPE_US3_R0 0x0504 |
| #define VPE_US_C1_MASK 0x3fff |
| #define VPE_US_C1_SHIFT 2 |
| #define VPE_US_C0_MASK 0x3fff |
| #define VPE_US_C0_SHIFT 18 |
| #define VPE_US_MODE_MASK 0x03 |
| #define VPE_US_MODE_SHIFT 16 |
| #define VPE_ANCHOR_FID0_C1_MASK 0x3fff |
| #define VPE_ANCHOR_FID0_C1_SHIFT 2 |
| #define VPE_ANCHOR_FID0_C0_MASK 0x3fff |
| #define VPE_ANCHOR_FID0_C0_SHIFT 18 |
| |
| #define VPE_US1_R1 0x0308 |
| #define VPE_US2_R1 0x0408 |
| #define VPE_US3_R1 0x0508 |
| #define VPE_ANCHOR_FID0_C3_MASK 0x3fff |
| #define VPE_ANCHOR_FID0_C3_SHIFT 2 |
| #define VPE_ANCHOR_FID0_C2_MASK 0x3fff |
| #define VPE_ANCHOR_FID0_C2_SHIFT 18 |
| |
| #define VPE_US1_R2 0x030c |
| #define VPE_US2_R2 0x040c |
| #define VPE_US3_R2 0x050c |
| #define VPE_INTERP_FID0_C1_MASK 0x3fff |
| #define VPE_INTERP_FID0_C1_SHIFT 2 |
| #define VPE_INTERP_FID0_C0_MASK 0x3fff |
| #define VPE_INTERP_FID0_C0_SHIFT 18 |
| |
| #define VPE_US1_R3 0x0310 |
| #define VPE_US2_R3 0x0410 |
| #define VPE_US3_R3 0x0510 |
| #define VPE_INTERP_FID0_C3_MASK 0x3fff |
| #define VPE_INTERP_FID0_C3_SHIFT 2 |
| #define VPE_INTERP_FID0_C2_MASK 0x3fff |
| #define VPE_INTERP_FID0_C2_SHIFT 18 |
| |
| #define VPE_US1_R4 0x0314 |
| #define VPE_US2_R4 0x0414 |
| #define VPE_US3_R4 0x0514 |
| #define VPE_ANCHOR_FID1_C1_MASK 0x3fff |
| #define VPE_ANCHOR_FID1_C1_SHIFT 2 |
| #define VPE_ANCHOR_FID1_C0_MASK 0x3fff |
| #define VPE_ANCHOR_FID1_C0_SHIFT 18 |
| |
| #define VPE_US1_R5 0x0318 |
| #define VPE_US2_R5 0x0418 |
| #define VPE_US3_R5 0x0518 |
| #define VPE_ANCHOR_FID1_C3_MASK 0x3fff |
| #define VPE_ANCHOR_FID1_C3_SHIFT 2 |
| #define VPE_ANCHOR_FID1_C2_MASK 0x3fff |
| #define VPE_ANCHOR_FID1_C2_SHIFT 18 |
| |
| #define VPE_US1_R6 0x031c |
| #define VPE_US2_R6 0x041c |
| #define VPE_US3_R6 0x051c |
| #define VPE_INTERP_FID1_C1_MASK 0x3fff |
| #define VPE_INTERP_FID1_C1_SHIFT 2 |
| #define VPE_INTERP_FID1_C0_MASK 0x3fff |
| #define VPE_INTERP_FID1_C0_SHIFT 18 |
| |
| #define VPE_US1_R7 0x0320 |
| #define VPE_US2_R7 0x0420 |
| #define VPE_US3_R7 0x0520 |
| #define VPE_INTERP_FID0_C3_MASK 0x3fff |
| #define VPE_INTERP_FID0_C3_SHIFT 2 |
| #define VPE_INTERP_FID0_C2_MASK 0x3fff |
| #define VPE_INTERP_FID0_C2_SHIFT 18 |
| |
| /* VPE de-interlacer regs */ |
| #define VPE_DEI_FRAME_SIZE 0x0600 |
| #define VPE_DEI_WIDTH_MASK 0x07ff |
| #define VPE_DEI_WIDTH_SHIFT 0 |
| #define VPE_DEI_HEIGHT_MASK 0x07ff |
| #define VPE_DEI_HEIGHT_SHIFT 16 |
| #define VPE_DEI_INTERLACE_BYPASS BIT(29) |
| #define VPE_DEI_FIELD_FLUSH BIT(30) |
| #define VPE_DEI_PROGRESSIVE BIT(31) |
| |
| #define VPE_MDT_BYPASS 0x0604 |
| #define VPE_MDT_TEMPMAX_BYPASS BIT(0) |
| #define VPE_MDT_SPATMAX_BYPASS BIT(1) |
| |
| #define VPE_MDT_SF_THRESHOLD 0x0608 |
| #define VPE_MDT_SF_SC_THR1_MASK 0xff |
| #define VPE_MDT_SF_SC_THR1_SHIFT 0 |
| #define VPE_MDT_SF_SC_THR2_MASK 0xff |
| #define VPE_MDT_SF_SC_THR2_SHIFT 0 |
| #define VPE_MDT_SF_SC_THR3_MASK 0xff |
| #define VPE_MDT_SF_SC_THR3_SHIFT 0 |
| |
| #define VPE_EDI_CONFIG 0x060c |
| #define VPE_EDI_INP_MODE_MASK 0x03 |
| #define VPE_EDI_INP_MODE_SHIFT 0 |
| #define VPE_EDI_ENABLE_3D BIT(2) |
| #define VPE_EDI_ENABLE_CHROMA_3D BIT(3) |
| #define VPE_EDI_CHROMA3D_COR_THR_MASK 0xff |
| #define VPE_EDI_CHROMA3D_COR_THR_SHIFT 8 |
| #define VPE_EDI_DIR_COR_LOWER_THR_MASK 0xff |
| #define VPE_EDI_DIR_COR_LOWER_THR_SHIFT 16 |
| #define VPE_EDI_COR_SCALE_FACTOR_MASK 0xff |
| #define VPE_EDI_COR_SCALE_FACTOR_SHIFT 23 |
| |
| #define VPE_DEI_EDI_LUT_R0 0x0610 |
| #define VPE_EDI_LUT0_MASK 0x1f |
| #define VPE_EDI_LUT0_SHIFT 0 |
| #define VPE_EDI_LUT1_MASK 0x1f |
| #define VPE_EDI_LUT1_SHIFT 8 |
| #define VPE_EDI_LUT2_MASK 0x1f |
| #define VPE_EDI_LUT2_SHIFT 16 |
| #define VPE_EDI_LUT3_MASK 0x1f |
| #define VPE_EDI_LUT3_SHIFT 24 |
| |
| #define VPE_DEI_EDI_LUT_R1 0x0614 |
| #define VPE_EDI_LUT0_MASK 0x1f |
| #define VPE_EDI_LUT0_SHIFT 0 |
| #define VPE_EDI_LUT1_MASK 0x1f |
| #define VPE_EDI_LUT1_SHIFT 8 |
| #define VPE_EDI_LUT2_MASK 0x1f |
| #define VPE_EDI_LUT2_SHIFT 16 |
| #define VPE_EDI_LUT3_MASK 0x1f |
| #define VPE_EDI_LUT3_SHIFT 24 |
| |
| #define VPE_DEI_EDI_LUT_R2 0x0618 |
| #define VPE_EDI_LUT4_MASK 0x1f |
| #define VPE_EDI_LUT4_SHIFT 0 |
| #define VPE_EDI_LUT5_MASK 0x1f |
| #define VPE_EDI_LUT5_SHIFT 8 |
| #define VPE_EDI_LUT6_MASK 0x1f |
| #define VPE_EDI_LUT6_SHIFT 16 |
| #define VPE_EDI_LUT7_MASK 0x1f |
| #define VPE_EDI_LUT7_SHIFT 24 |
| |
| #define VPE_DEI_EDI_LUT_R3 0x061c |
| #define VPE_EDI_LUT8_MASK 0x1f |
| #define VPE_EDI_LUT8_SHIFT 0 |
| #define VPE_EDI_LUT9_MASK 0x1f |
| #define VPE_EDI_LUT9_SHIFT 8 |
| #define VPE_EDI_LUT10_MASK 0x1f |
| #define VPE_EDI_LUT10_SHIFT 16 |
| #define VPE_EDI_LUT11_MASK 0x1f |
| #define VPE_EDI_LUT11_SHIFT 24 |
| |
| #define VPE_DEI_FMD_WINDOW_R0 0x0620 |
| #define VPE_FMD_WINDOW_MINX_MASK 0x07ff |
| #define VPE_FMD_WINDOW_MINX_SHIFT 0 |
| #define VPE_FMD_WINDOW_MAXX_MASK 0x07ff |
| #define VPE_FMD_WINDOW_MAXX_SHIFT 16 |
| #define VPE_FMD_WINDOW_ENABLE BIT(31) |
| |
| #define VPE_DEI_FMD_WINDOW_R1 0x0624 |
| #define VPE_FMD_WINDOW_MINY_MASK 0x07ff |
| #define VPE_FMD_WINDOW_MINY_SHIFT 0 |
| #define VPE_FMD_WINDOW_MAXY_MASK 0x07ff |
| #define VPE_FMD_WINDOW_MAXY_SHIFT 16 |
| |
| #define VPE_DEI_FMD_CONTROL_R0 0x0628 |
| #define VPE_FMD_ENABLE BIT(0) |
| #define VPE_FMD_LOCK BIT(1) |
| #define VPE_FMD_JAM_DIR BIT(2) |
| #define VPE_FMD_BED_ENABLE BIT(3) |
| #define VPE_FMD_CAF_FIELD_THR_MASK 0xff |
| #define VPE_FMD_CAF_FIELD_THR_SHIFT 16 |
| #define VPE_FMD_CAF_LINE_THR_MASK 0xff |
| #define VPE_FMD_CAF_LINE_THR_SHIFT 24 |
| |
| #define VPE_DEI_FMD_CONTROL_R1 0x062c |
| #define VPE_FMD_CAF_THR_MASK 0x000fffff |
| #define VPE_FMD_CAF_THR_SHIFT 0 |
| |
| #define VPE_DEI_FMD_STATUS_R0 0x0630 |
| #define VPE_FMD_CAF_MASK 0x000fffff |
| #define VPE_FMD_CAF_SHIFT 0 |
| #define VPE_FMD_RESET BIT(24) |
| |
| #define VPE_DEI_FMD_STATUS_R1 0x0634 |
| #define VPE_FMD_FIELD_DIFF_MASK 0x0fffffff |
| #define VPE_FMD_FIELD_DIFF_SHIFT 0 |
| |
| #define VPE_DEI_FMD_STATUS_R2 0x0638 |
| #define VPE_FMD_FRAME_DIFF_MASK 0x000fffff |
| #define VPE_FMD_FRAME_DIFF_SHIFT 0 |
| |
| #endif |