blob: 6afc127c64906c3bd6dedb3cc82f8d473186e517 (
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
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
|
#ifndef __SC8830_DMC_DFS_H
#define __SC8830_DMC_DFS_H
#define EMC_DLL_SWITCH_DISABLE_MODE 0x0
#define EMC_DLL_SWITCH_ENABLE_MODE 0x1
#define EMC_DLL_NOT_SWITCH_MODE 0x2
#define EMC_DLL_MODE_MASK (0x3)
#define EMC_CLK_DIV_OFFSET 2
#define EMC_FREQ_SWITCH_STATUS_OFFSET (4)
#define EMC_FREQ_SWITCH_COMPLETE (1)
#define EMC_FREQ_SWITCH_STATUS_MASK (0xf << EMC_FREQ_SWITCH_STATUS_OFFSET)
#define EMC_DDR_TYPE_LPDDR1 0
#define EMC_DDR_TYPE_LPDDR2 1
#define EMC_DDR_TYPE_LPDDR3 2
#define EMC_DDR_TYPE_DDR2 3
#define EMC_DDR_TYPE_DDR3 4
#define EMC_DDR_TYPE_OFFSET 8
#define EMC_DDR_TYPE_MASK (0xf << EMC_DDR_TYPE_OFFSET)
#define EMC_CLK_FREQ_OFFSET (12)
#define EMC_CLK_FREQ_MASK (0xfff << EMC_CLK_FREQ_OFFSET)
#define EMC_FREQ_NORMAL_SCENE 0x0 //normal lcd power off
#define EMC_FREQ_MP4_SENE 0x1 //play mp4 mode
#define EMC_FREQ_NORMAL_SWITCH_SENE 0x02
#define EMC_FREQ_DEEP_SLEEP_SENE 0x03
#define EMC_FREQ_RESUME_SENE 0x04
#define EMC_FREQ_SENE_OFFSET 24
#define EMC_FREQ_SENE_MASK (0xf << EMC_FREQ_SENE_OFFSET)
#define EMC_BSP_BPS_200_CLR 0x0
#define EMC_BSP_BPS_200_SET 0x1
#define EMC_BSP_BPS_200_NOT_CHANGE 0x2
#define EMC_BSP_BPS_200_OFFSET 28
#define EMC_BSP_BPS_200_MASK (0xf << EMC_BSP_BPS_200_OFFSET)
#define EMC_PARAM_IDX_OFFSET 28
#define EMC_PARAM_IDX_MASK (0XF << EMC_PARAM_IDX_OFFSET)
#define DMC_CHANGE_FREQ_WAIT_TIMEOUT 100
typedef struct
{
u32 ddr_clk;
//umctl reg
u32 umctl2_rfshtmg;
u32 umctl2_init0;
u32 umctl2_init1;
u32 umctl2_init2;
u32 umctl2_init3;
u32 umctl2_init4;
u32 umctl2_init5;
u32 umctl2_dramtmg0;
u32 umctl2_dramtmg1;
u32 umctl2_dramtmg2;
u32 umctl2_dramtmg3;
u32 umctl2_dramtmg4;
u32 umctl2_dramtmg5;
u32 umctl2_dramtmg6;
u32 umctl2_dramtmg7;
u32 umctl2_dramtmg8;
u32 umctl2_dfitmg0;
u32 umctl2_dfitmg1;
//publ reg
u32 publ_ptr0;
u32 publ_ptr1;
u32 publ_dtpr0;
u32 publ_dtpr1;
u32 publ_dtpr2;
u32 publ_mr0;
u32 publ_mr1;
u32 publ_mr2;
u32 publ_mr3;
u32 publ_dx0gcr;
u32 publ_dx1gcr;
u32 publ_dx2gcr;
u32 publ_dx3gcr;
u32 publ_dx0dqstr;
u32 publ_dx1dqstr;
u32 publ_dx2dqstr;
u32 publ_dx3dqstr;
}ddr_dfs_val_t;
typedef struct
{
u32 ddr_clk;
//umctl reg
u32 umctl_rfshtmg;
u32 umctl_dramtmg0;
u32 umctl_dramtmg1;
u32 umctl_dramtmg2;
u32 umctl_dramtmg3;
u32 umctl_dramtmg4;
u32 umctl_dramtmg5;
u32 umctl_dramtmg7;
u32 umctl_dramtmg8;
u32 umctl_dfitmg0;
u32 umctl_init3;
u32 umctl_zqctl0;
u32 umctl_zqctl1;
//publ reg
u32 publ_mr2;
u32 publ_dx0gtr;
u32 publ_dx1gtr;
u32 publ_dx2gtr;
u32 publ_dx3gtr;
u32 publ_pgcr3;
u32 publ_acmdlr;
u32 publ_dx0mdlr;
u32 publ_dx1mdlr;
u32 publ_dx2mdlr;
u32 publ_dx3mdlr;
u32 publ_aclcdlr;
u32 publ_dx0lcdlr0;
u32 publ_dx1lcdlr0;
u32 publ_dx2lcdlr0;
u32 publ_dx3lcdlr0;
u32 publ_dx0lcdlr1;
u32 publ_dx1lcdlr1;
u32 publ_dx2lcdlr1;
u32 publ_dx3lcdlr1;
u32 publ_dx0lcdlr2;
u32 publ_dx1lcdlr2;
u32 publ_dx2lcdlr2;
u32 publ_dx3lcdlr2;
u32 publ_dsgcr;
u32 publ_dtpr0;
u32 publ_dtpr1;
u32 publ_dtpr2;
u32 publ_dtpr3;
u32 resevered;
}ddr_dfs_v2_t;
typedef struct
{
u32 ddr_clk;
u32 publ_acmdlr;
u32 publ_dx0mdlr;
u32 publ_dx1mdlr;
u32 publ_dx2mdlr;
u32 publ_dx3mdlr;
u32 publ_aclcdlr;
u32 publ_dx0lcdlr0;
u32 publ_dx1lcdlr0;
u32 publ_dx2lcdlr0;
u32 publ_dx3lcdlr0;
u32 publ_dx0lcdlr1;
u32 publ_dx1lcdlr1;
u32 publ_dx2lcdlr1;
u32 publ_dx3lcdlr1;
u32 publ_dx0lcdlr2;
u32 publ_dx1lcdlr2;
u32 publ_dx2lcdlr2;
u32 publ_dx3lcdlr2;
} publ_calc_t;
#define AP_DMC_DFS_MAX_REQ 3
#define AP_UNVALID_REQ 0
struct dmc_req_array {
/*if the req[n] is 0 the req[n] is the last request from AP*/
u32 req[AP_DMC_DFS_MAX_REQ];
};
#endif //__SC8830_DMC_DFS_H
|