blob: f61a7c491859e202ea3a1403ee615febe387b356 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
|
/*
* linux/drivers/media/video/s5p-mfc/s5p_mfc_reg.h
*
* Copyright (c) 2010 Samsung Electronics Co., Ltd.
* http://www.samsung.com/
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*/
#ifndef __S5P_MFC_REG_H_
#define __S5P_MFC_REG_H_ __FILE__
#define MFC_SYS_SW_RESET_ADDR S5P_FIMV_SW_RESET
#define MFC_SYS_SW_RESET_MASK 0x3FF
#define MFC_SYS_SW_RESET_SHFT 0x0
#define MFC_SYS_R2H_INT_ADDR S5P_FIMV_RISC_HOST_INT
#define MFC_SYS_R2H_INT_MASK 0x1
#define MFC_SYS_R2H_INT_SHFT 0x0
#define MFC_SYS_H2R_CMD_ADDR S5P_FIMV_HOST2RISC_CMD
#define MFC_SYS_H2R_ARG1_ADDR S5P_FIMV_HOST2RISC_ARG1
#define MFC_SYS_CODEC_TYPE_ADDR S5P_FIMV_HOST2RISC_ARG1
#define MFC_SYS_INST_ID_ADDR S5P_FIMV_HOST2RISC_ARG1
#define MFC_SYS_FW_MEM_SIZE_ADDR S5P_FIMV_HOST2RISC_ARG1
#define MFC_SYS_H2R_ARG2_ADDR S5P_FIMV_HOST2RISC_ARG2
#define MFC_SYS_CRC_GEN_EN_ADDR S5P_FIMV_HOST2RISC_ARG2
#define MFC_SYS_CRC_GEN_EN_MASK 0x1
#define MFC_SYS_CRC_GEN_EN_SHFT 0x1F
#define MFC_SYS_ENC_PIXEL_CACHE_ADDR S5P_FIMV_HOST2RISC_ARG2
#define MFC_SYS_ENC_PIXEL_CACHE_MASK 0x2
#define MFC_SYS_ENC_PIXEL_CACHE_SHFT 0x0
#define MFC_SYS_DEC_PIXEL_CACHE_ADDR S5P_FIMV_HOST2RISC_ARG2
#define MFC_SYS_DEC_PIXEL_CACHE_MASK 0x2
#define MFC_SYS_DEC_PIXEL_CACHE_SHFT 0x0
#define MFC_SYS_H2R_ARG3_ADDR S5P_FIMV_HOST2RISC_ARG3
#define MFC_SYS_H2R_ARG4_ADDR S5P_FIMV_HOST2RISC_ARG4
#define MFC_SYS_FW_DVX_INFO_ADDR S5P_FIMV_FW_VERSION
#define MFC_SYS_FW_DVX_INFO_MASK 0xFF
#define MFC_SYS_FW_DVX_INFO_SHFT 24
#define MFC_SYS_FW_VER_YEAR_ADDR S5P_FIMV_FW_VERSION
#define MFC_SYS_FW_VER_YEAR_MASK 0xFF
#define MFC_SYS_FW_VER_YEAR_SHFT 16
#define MFC_SYS_FW_VER_MONTH_ADDR S5P_FIMV_FW_VERSION
#define MFC_SYS_FW_VER_MONTH_MASK 0xFF
#define MFC_SYS_FW_VER_MONTH_SHFT 8
#define MFC_SYS_FW_VER_DATE_ADDR S5P_FIMV_FW_VERSION
#define MFC_SYS_FW_VER_DATE_MASK 0xFF
#define MFC_SYS_FW_VER_DATE_SHFT 0
#define MFC_SYS_FW_VER_ALL_ADDR S5P_FIMV_FW_VERSION
#define MFC_SYS_FW_VER_ALL_MASK 0xFFFFFF
#define MFC_SYS_FW_VER_ALL_SHFT 0
#define MFC_DEC_DISPLAY_Y_ADR_ADDR S5P_FIMV_SI_DISPLAY_Y_ADR
#define MFC_DEC_DISPLAY_Y_ADR_MASK 0xFFFFFFFF
#define MFC_DEC_DISPLAY_Y_ADR_SHFT S5P_FIMV_MEM_OFFSET
#define MFC_DEC_DISPLAY_C_ADR_ADDR S5P_FIMV_SI_DISPLAY_C_ADR
#define MFC_DEC_DISPLAY_C_ADR_MASK 0xFFFFFFFF
#define MFC_DEC_DISPLAY_C_ADR_SHFT S5P_FIMV_MEM_OFFSET
#define MFC_DEC_DISPLAY_STATUS_ADDR MFC_SI_DISPLAY_STATUS
#define MFC_DEC_DISPLAY_STATUS_MASK 0x7
#define MFC_DEC_DISPLAY_STATUS_SHFT 0x0
#define MFC_DEC_DISPLAY_INTERACE_ADDR MFC_SI_DISPLAY_STATUS
#define MFC_DEC_DISPLAY_INTERACE_MASK 0x1
#define MFC_DEC_DISPLAY_INTERACE_SHFT 0x3
#define MFC_DEC_DISPLAY_RES_CHG_ADDR MFC_SI_DISPLAY_STATUS
#define MFC_DEC_DISPLAY_RES_CHG_MASK 0x3
#define MFC_DEC_DISPLAY_RES_CHG_SHFT 0x4
#define MFC_DEC_DECODE_FRAME_TYPE_ADDR S5P_FIMV_DECODE_FRAME_TYPE
#define MFC_DEC_DECODE_FRAME_TYPE_MASK 0x7
#define MFC_DEC_DECODE_FRAME_TYPE_SHFT 0
#define MFC_DEC_DECODE_STATUS_ADDR MFC_SI_DECODE_STATUS
#define MFC_DEC_DECODE_STATUS_MASK 0x7
#define MFC_DEC_DECODE_STATUS_SHFT 0x0
#define MFC_DEC_DECODE_INTERACE_ADDR MFC_SI_DECODE_STATUS
#define MFC_DEC_DECODE_INTERACE_MASK 0x1
#define MFC_DEC_DECODE_INTERACE_SHFT 0x3
#define MFC_DEC_DECODE_NUM_CRC_ADDR MFC_SI_DECODE_STATUS
#define MFC_DEC_DECODE_NUM_CRC_MASK 0x1
#define MFC_DEC_DECODE_NUM_CRC_SHFT 0x4
#define MFC_DEC_DECODE_GEN_CRC_ADDR MFC_SI_DECODE_STATUS
#define MFC_DEC_DECODE_GEN_CRC_MASK 0x1
#define MFC_DEC_DECODE_GEN_CRC_SHFT 0x5
#define MFC_SYS_MFC_VER_ADDR S5P_FIMV_MFC_VERSION
#define MFC_SYS_MFC_VER_MASK 0xFFFFFFFF
#define MFC_SYS_MFC_VER_SHFT 0x0
#define MFC_ENC_LEVEL_ADDR MFC_ENC_PROFILE
#define MFC_ENC_LEVEL_MASK 0xFF
#define MFC_ENC_LEVEL_SHFT 0x8
#define MFC_ENC_PROFILE_ADDR MFC_ENC_PROFILE
#define MFC_ENC_PROFILE_MASK 0x3
#define MFC_ENC_PROFILE_SHFT 0x0
#define _MFC_SET_REG(target, val) s5p_mfc_write_reg(val, MFC_##target##_ADDR)
#define MFC_SET_REG(target, val, shadow) \
do { \
shadow = s5p_mfc_read_reg(MFC_##target##_ADDR); \
shadow &= ~(MFC_##target##_MASK << MFC_##target##_SHFT); \
shadow |= ((val & MFC_##target##_MASK) << MFC_##target##_SHFT); \
s5p_mfc_write_reg(shadow, MFC_##target##_ADDR); \
} while (0)
#define _MFC_GET_REG(target) s5p_mfc_read_reg(MFC_##target##_ADDR)
#define MFC_GET_REG(target) \
((s5p_mfc_read_reg(MFC_##target##_ADDR) >> MFC_##target##_SHFT) \
& MFC_##target##_MASK)
#define MFC_GET_ADR(target) \
(s5p_mfc_read_reg(MFC_##target##_ADR_ADDR) << MFC_##target##_ADR_SHFT)
void s5p_mfc_init_reg(void __iomem *base);
void s5p_mfc_write_reg(unsigned int data, unsigned int offset);
unsigned int s5p_mfc_read_reg(unsigned int offset);
#endif /* __S5P_MFC_REG_H_ */
|