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
/*
 * 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_gsu_type.h
 *
 *    Description :       display engine 2.0 gsu struct declaration
 *
 *    History     :       2014/03/20  vito cheng  v0.1  Initial version
 *
 */
 
#ifndef __DE_GSU_TYPE_H__
#define __DE_GSU_TYPE_H__
 
/*
 * __gsu_reg_t
 */
union GSU_CTRL_REG {
   unsigned int dwval;
   struct {
       unsigned int en:1;
       unsigned int res0:3;
       unsigned int coef_switch_rdy:1;
       unsigned int res1:25;
       unsigned int reset:1;
       unsigned int res2:1;
   } bits;
};
 
union GSU_STATUS_REG {
   unsigned int dwval;
   struct {
       unsigned int res0:4;
       unsigned int busy:1;
       unsigned int res1:11;
       unsigned int line_cnt:12;
       unsigned int res2:4;
   } bits;
};
 
union GSU_FIELD_CTRL_REG {
   unsigned int dwval;
   struct {
       unsigned int vphase_sel_en:1;
       unsigned int res0:31;
   } bits;
};
 
union GSU_BIST_REG {
   unsigned int dwval;
   struct {
       unsigned int bist_en:1;
       unsigned int res0:15;
       unsigned int bist_sel:5;
       unsigned int res1:11;
   } bits;
};
 
union GSU_OUTSIZE_REG {
   unsigned int dwval;
   struct {
       unsigned int width:13;
       unsigned int res0:3;
       unsigned int height:13;
       unsigned int res1:3;
   } bits;
};
 
union GSU_INSIZE_REG {
   unsigned int dwval;
   struct {
       unsigned int width:13;
       unsigned int res0:3;
       unsigned int height:13;
       unsigned int res1:3;
   } bits;
};
 
union GSU_HSTEP_REG {
   unsigned int dwval;
   struct {
       unsigned int res0:2;
       unsigned int frac:18;
       unsigned int integer:5;
       unsigned int res1:7;
   } bits;
};
 
union GSU_VSTEP_REG {
   unsigned int dwval;
   struct {
       unsigned int res0:2;
       unsigned int frac:18;
       unsigned int integer:5;
       unsigned int res1:7;
   } bits;
};
 
union GSU_HPHASE_REG {
   unsigned int dwval;
   struct {
       unsigned int res0:2;
       unsigned int frac:18;
       unsigned int integer:5;
       unsigned int res1:7;
   } bits;
};
 
union GSU_VPHASE0_REG {
   unsigned int dwval;
   struct {
       unsigned int res0:2;
       unsigned int frac:18;
       unsigned int integer:5;
       unsigned int res1:7;
   } bits;
};
 
union GSU_VPHASE1_REG {
   unsigned int dwval;
   struct {
       unsigned int res0:2;
       unsigned int frac:18;
       unsigned int integer:4;
       unsigned int res1:8;
   } bits;
};
 
union GSU_HCOEFF_REG {
   unsigned int dwval;
   struct {
       unsigned int coef0:8;
       unsigned int coef1:8;
       unsigned int coef2:8;
       unsigned int coef3:8;
   } bits;
};
 
struct __gsu_reg_t {
   union GSU_CTRL_REG ctrl;        /* 0x0000 */
   unsigned int res0;        /* 0x0004 */
   union GSU_STATUS_REG status;        /* 0x0008 */
   union GSU_FIELD_CTRL_REG field;    /* 0x000c */
   union GSU_BIST_REG bist;        /* 0x0010 */
   unsigned int res1[11];        /* 0x0014-3c */
   union GSU_OUTSIZE_REG outsize;    /* 0x0040 */
   unsigned int res5[15];        /* 0x0044-0x07c */
   union GSU_INSIZE_REG insize;        /* 0x0080 */
   unsigned int res2;        /* 0x0084 */
   union GSU_HSTEP_REG hstep;        /* 0x0088 */
   union GSU_VSTEP_REG vstep;        /* 0x008C */
   union GSU_HPHASE_REG hphase;        /* 0x0090 */
   unsigned int res3;        /* 0x0094 */
   union GSU_VPHASE0_REG vphase0;    /* 0x0098 */
   union GSU_VPHASE1_REG vphase1;    /* 0x009c */
   unsigned int res4[88];        /* 0x00a0-1fc */
   union GSU_HCOEFF_REG hcoeff[16];    /* 0x0200-0x23c */
};
 
#endif