huangcm
2025-07-03 571fede27a127398697e783a06a833e37b5b58c3
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
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
/*
 * Allwinner SoCs display driver.
 *
 * Copyright (C) 2016 Allwinner.
 *
 * This file is licensed under the terms of the GNU General Public
 * License version 2.  This program is licensed "as is" without any
 * warranty of any kind, whether express or implied.
 */
 
/*******************************************************************************
 *  All Winner Tech, All Right Reserved. 2014-2015 Copyright (c)
 *
 *  File name   :   de_peak_type.h
 *
 *  Description :   display engine 2.0 peak struct declaration
 *
 *  History     :   2014/03/26  vito cheng  v0.1  Initial version
 *
 ******************************************************************************/
 
#ifndef __DE_PEAK_TYPE_H__
#define __DE_PEAK_TYPE_H__
 
#include "de_rtmx.h"
 
#define PEAK_PARA_NUM 3
#define PEAK_MODE_NUM 3
 
union LP_CTRL_REG {
   unsigned int dwval;
   struct {
       unsigned int en:1;
       unsigned int res0:7;
       unsigned int win_en:1;
       unsigned int res1:23;
   } bits;
};
 
union LP_SIZE_REG {
   unsigned int dwval;
   struct {
       unsigned int width:12;
       unsigned int res0:4;
       unsigned int height:12;
       unsigned int res1:4;
   } bits;
};
 
union LP_WIN0_REG {
   unsigned int dwval;
   struct {
       unsigned int win_left:12;
       unsigned int res0:4;
       unsigned int win_top:12;
       unsigned int res1:4;
   } bits;
};
 
union LP_WIN1_REG {
   unsigned int dwval;
   struct {
       unsigned int win_right:12;
       unsigned int res0:4;
       unsigned int win_bot:12;
       unsigned int res1:4;
   } bits;
};
 
union LP_FILTER_REG {
   unsigned int dwval;
   struct {
       unsigned int bp1_ratio:6;
       unsigned int res0:2;
       unsigned int bp0_ratio:6;
       unsigned int res1:2;
       unsigned int hp_ratio:6;
       unsigned int res2:9;
       unsigned int filter_sel:1;
   } bits;
};
 
union LP_CSTM_FILTER0_REG {
   unsigned int dwval;
   struct {
       unsigned int c0:9;
       unsigned int res0:7;
       unsigned int c1:9;
       unsigned int res1:7;
   } bits;
};
 
union LP_CSTM_FILTER1_REG {
   unsigned int dwval;
   struct {
       unsigned int c2:9;
       unsigned int res0:7;
       unsigned int c3:9;
       unsigned int res1:7;
   } bits;
};
 
union LP_CSTM_FILTER2_REG {
   unsigned int dwval;
   struct {
       unsigned int c4:9;
       unsigned int res0:23;
   } bits;
};
 
union LP_GAIN_REG {
   unsigned int dwval;
   struct {
       unsigned int gain:8;
       unsigned int res0:24;
   } bits;
};
 
union LP_GAINCTRL_REG {
   unsigned int dwval;
   struct {
       unsigned int beta:5;
       unsigned int res0:11;
       unsigned int dif_up:8;
       unsigned int res1:8;
   } bits;
};
 
union LP_SHOOTCTRL_REG {
   unsigned int dwval;
   struct {
       unsigned int neg_gain:6;
       unsigned int res0:26;
   } bits;
};
 
union LP_CORING_REG {
   unsigned int dwval;
   struct {
       unsigned int corthr:8;
       unsigned int res0:24;
   } bits;
};
 
struct __peak_reg_t {
   union LP_CTRL_REG ctrl;                      /* 0x0000 */
   union LP_SIZE_REG size;                      /* 0x0004 */
   union LP_WIN0_REG win0;                      /* 0x0008 */
   union LP_WIN1_REG win1;                      /* 0x000c */
   union LP_FILTER_REG filter;                  /* 0x0010 */
   union LP_CSTM_FILTER0_REG cfilter0;          /* 0x0014 */
   union LP_CSTM_FILTER1_REG cfilter1;          /* 0x0018 */
   union LP_CSTM_FILTER2_REG cfilter2;          /* 0x001c */
   union LP_GAIN_REG gain;                      /* 0x0020 */
   union LP_GAINCTRL_REG gainctrl;              /* 0x0024 */
   union LP_SHOOTCTRL_REG shootctrl;            /* 0x0028 */
   union LP_CORING_REG coring;                  /* 0x002c */
};
 
struct __peak_config_data {
   /* peak */
   unsigned int peak_en;
   unsigned int gain;
   unsigned int hp_ratio;
   unsigned int bp0_ratio;
 
   /* window */
   unsigned int win_en;
   struct de_rect win;
 
};
 
#endif