123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309 |
- /*
- * Copyright (c) 2013 Texas Instruments Inc.
- *
- * David Griego, <dagriego@biglakesoftware.com>
- * Dale Farnsworth, <dale@farnsworth.org>
- * Archit Taneja, <archit@ti.com>
- *
- * This program is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License version 2 as published by
- * the Free Software Foundation.
- */
- #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 (1 << 0)
- #define VPE_INT0_LIST0_NOTIFY (1 << 1)
- #define VPE_INT0_LIST1_COMPLETE (1 << 2)
- #define VPE_INT0_LIST1_NOTIFY (1 << 3)
- #define VPE_INT0_LIST2_COMPLETE (1 << 4)
- #define VPE_INT0_LIST2_NOTIFY (1 << 5)
- #define VPE_INT0_LIST3_COMPLETE (1 << 6)
- #define VPE_INT0_LIST3_NOTIFY (1 << 7)
- #define VPE_INT0_LIST4_COMPLETE (1 << 8)
- #define VPE_INT0_LIST4_NOTIFY (1 << 9)
- #define VPE_INT0_LIST5_COMPLETE (1 << 10)
- #define VPE_INT0_LIST5_NOTIFY (1 << 11)
- #define VPE_INT0_LIST6_COMPLETE (1 << 12)
- #define VPE_INT0_LIST6_NOTIFY (1 << 13)
- #define VPE_INT0_LIST7_COMPLETE (1 << 14)
- #define VPE_INT0_LIST7_NOTIFY (1 << 15)
- #define VPE_INT0_DESCRIPTOR (1 << 16)
- #define VPE_DEI_FMD_INT (1 << 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 (1 << 0)
- #define VPE_INT0_CHANNEL_GROUP1 (1 << 1)
- #define VPE_INT0_CHANNEL_GROUP2 (1 << 2)
- #define VPE_INT0_CHANNEL_GROUP3 (1 << 3)
- #define VPE_INT0_CHANNEL_GROUP4 (1 << 4)
- #define VPE_INT0_CHANNEL_GROUP5 (1 << 5)
- #define VPE_INT0_CLIENT (1 << 7)
- #define VPE_DEI_ERROR_INT (1 << 16)
- #define VPE_DS1_UV_ERROR_INT (1 << 22)
- #define VPE_INTC_EOI 0x00a0
- #define VPE_CLK_ENABLE 0x0100
- #define VPE_VPEDMA_CLK_ENABLE (1 << 0)
- #define VPE_DATA_PATH_CLK_ENABLE (1 << 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 (1 << 8)
- #define VPE_DS_SRC_SELECT_MASK 0x07
- #define VPE_DS_SRC_SELECT_SHIFT 9
- #define VPE_DS_BYPASS (1 << 16)
- #define VPE_COLOR_SEPARATE_422 (1 << 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 (1 << 6)
- #define VPE_RANGE_REDUCTION_ON (1 << 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 (1 << 29)
- #define VPE_DEI_FIELD_FLUSH (1 << 30)
- #define VPE_DEI_PROGRESSIVE (1 << 31)
- #define VPE_MDT_BYPASS 0x0604
- #define VPE_MDT_TEMPMAX_BYPASS (1 << 0)
- #define VPE_MDT_SPATMAX_BYPASS (1 << 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 (1 << 2)
- #define VPE_EDI_ENABLE_CHROMA_3D (1 << 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 (1 << 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 (1 << 0)
- #define VPE_FMD_LOCK (1 << 1)
- #define VPE_FMD_JAM_DIR (1 << 2)
- #define VPE_FMD_BED_ENABLE (1 << 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 (1 << 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
|