• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /* SPDX-License-Identifier: GPL-2.0-only OR MIT */
2 
3 #include <soc/mt6315.h>
4 
5 static const struct mt6315_setting init_setting_cpu[] = {
6 	/* disable magic key protection */
7 	{0x3A9, 0x63, 0xFF, 0},
8 	{0x3A8, 0x15, 0xFF, 0},
9 	{0x3A0, 0x9C, 0xFF, 0},
10 	{0x39F, 0xEA, 0xFF, 0},
11 	{0x993, 0x47, 0xFF, 0},
12 	{0x992, 0x29, 0xFF, 0},
13 	{0x1418, 0x55, 0xFF, 0},
14 	{0x1417, 0x43, 0xFF, 0},
15 	{0x3A2, 0x2A, 0xFF, 0},
16 	{0x3A1, 0x7C, 0xFF, 0},
17 	/* clear boot status */
18 	{0x12A, 0x3, 0xFF, 0},
19 	{0xD, 1, 0x1, 0},
20 	{0xD, 0, 0x1, 0},
21 	{0x1416, 0xF, 0xF, 0},
22 	/* init setting */
23 	{0x997, 0xF, 0x7F, 0},
24 	{0x999, 0xF0, 0xF0, 0},
25 	{0x9A0, 0x0, 0x1F, 0},
26 	{0x9A1, 0x0, 0x1F, 0},
27 	{0x9A2, 0x0, 0x1F, 0},
28 	{0x9A3, 0x0, 0x1F, 0},
29 	{0x1440, 0x0, 0xE, 0},
30 	{0x1487, 0x58, 0xFF, 0},
31 	{0x148B, 0x3, 0x7F, 0},
32 	{0x148C, 0x3, 0x7F, 0},
33 	{0x1507, 0x58, 0xFF, 0},
34 	{0x150B, 0x3, 0x7F, 0},
35 	{0x150C, 0x3, 0x7F, 0},
36 	{0x1587, 0x58, 0xFF, 0},
37 	{0x158B, 0x3, 0x7F, 0},
38 	{0x158C, 0x3, 0x7F, 0},
39 	{0x1607, 0x58, 0xFF, 0},
40 	{0x160B, 0x3, 0x7F, 0},
41 	{0x160C, 0x3, 0x7F, 0},
42 	{0x1687, 0x22, 0x76, 0},
43 	{0x1688, 0xF, 0x2F, 0},
44 	{0x1689, 0xA1, 0xE1, 0},
45 	{0x168A, 0x79, 0x7F, 0},
46 	{0x168B, 0x12, 0x3F, 0},
47 	{0x168D, 0xC, 0xC, 0},
48 	{0x168E, 0xD7, 0xFF, 0},
49 	{0x168F, 0x81, 0xFF, 0},
50 	{0x1690, 0x3, 0x3F, 0},
51 	{0x1691, 0x22, 0x76, 0},
52 	{0x1692, 0xF, 0x2F, 0},
53 	{0x1693, 0xA1, 0xE1, 0},
54 	{0x1694, 0x79, 0x7F, 0},
55 	{0x1695, 0x12, 0x3F, 0},
56 	{0x1697, 0xC, 0xC, 0},
57 	{0x1698, 0xD7, 0xFF, 0},
58 	{0x1699, 0x81, 0xFF, 0},
59 	{0x169A, 0x3, 0x3F, 0},
60 	{0x169B, 0x22, 0x76, 0},
61 	{0x169C, 0xF, 0x2F, 0},
62 	{0x169D, 0xA1, 0xE1, 0},
63 	{0x169E, 0x79, 0xFF, 0},
64 	{0x169F, 0x12, 0x3F, 0},
65 	{0x16A1, 0xC, 0xC, 0},
66 	{0x16A2, 0xD7, 0xFF, 0},
67 	{0x16A3, 0x81, 0xFF, 0},
68 	{0x16A4, 0x3, 0x3F, 0},
69 	{0x16A5, 0x22, 0x76, 0},
70 	{0x16A6, 0xF, 0x2F, 0},
71 	{0x16A7, 0xA1, 0xE1, 0},
72 	{0x16A8, 0x79, 0xFF, 0},
73 	{0x16A9, 0x12, 0x3F, 0},
74 	{0x16AB, 0xC, 0xC, 0},
75 	{0x16AC, 0xD7, 0xFF, 0},
76 	{0x16AD, 0x81, 0xFF, 0},
77 	{0x16AE, 0x3, 0x3F, 0},
78 	{0x16CE, 0x0, 0x8, 0},
79 
80 	{0x13, 0x2, 0x2, 0},
81 	{0x15, 0x1F, 0x1F, 0},
82 	{0x22, 0x12, 0x12, 0},
83 	{0x8A, 0x6, 0xF, 0},
84 	{0x10B, 0x3, 0x3, 0},
85 	{0x38B, 0x4, 0xFF, 0},
86 	{0xA07, 0x0, 0x1, 0},
87 	{0xA1A, 0x1F, 0x1F, 0},
88 	{0x1457, 0x0, 0xFF, 0},
89 	/* enable magic key protection */
90 	{0x3A9, 0, 0xFF, 0},
91 	{0x3A8, 0, 0xFF, 0},
92 	{0x3A0, 0, 0xFF, 0},
93 	{0x39F, 0, 0xFF, 0},
94 	{0x993, 0, 0xFF, 0},
95 	{0x992, 0, 0xFF, 0},
96 	{0x1418, 0, 0xFF, 0},
97 	{0x1417, 0, 0xFF, 0},
98 	{0x3a2, 0, 0xFF, 0},
99 	{0x3a1, 0, 0xFF, 0},
100 };
101 
102 static const struct mt6315_setting init_setting_gpu[] = {
103 	/* disable magic key protection */
104 	{0x3A9, 0x63, 0xFF, 0},
105 	{0x3A8, 0x15, 0xFF, 0},
106 	{0x3A0, 0x9C, 0xFF, 0},
107 	{0x39F, 0xEA, 0xFF, 0},
108 	{0x993, 0x47, 0xFF, 0},
109 	{0x992, 0x29, 0xFF, 0},
110 	{0x1418, 0x55, 0xFF, 0},
111 	{0x1417, 0x43, 0xFF, 0},
112 	{0x3a2, 0x2A, 0xFF, 0},
113 	{0x3a1, 0x7C, 0xFF, 0},
114 	/* init setting */
115 	{0x997, 0x7, 0x7F, 0},
116 	{0x999, 0xF0, 0xF0, 0},
117 	{0x9A0, 0x0, 0x1F, 0},
118 	{0x9A1, 0x0, 0x1F, 0},
119 	{0x9A2, 0x1F, 0x1F, 0},
120 	{0x9A3, 0x1F, 0x1F, 0},
121 	{0x1440, 0xC, 0xE, 0},
122 	{0x1487, 0x58, 0xFF, 0},
123 	{0x148B, 0x1, 0x7F, 0},
124 	{0x148C, 0x4, 0x7F, 0},
125 	{0x1507, 0x58, 0xFF, 0},
126 	{0x150B, 0x1, 0x7F, 0},
127 	{0x150C, 0x4, 0x7F, 0},
128 	{0x1587, 0x58, 0xFF, 0},
129 	{0x158B, 0x1, 0x7F, 0},
130 	{0x158C, 0x4, 0x7F, 0},
131 	{0x1607, 0x78, 0xFF, 0},
132 	{0x160B, 0x1, 0x7F, 0},
133 	{0x160C, 0x4, 0x7F, 0},
134 	{0x1687, 0x22, 0x76, 0},
135 	{0x1688, 0xE, 0x2F, 0},
136 	{0x1689, 0xA1, 0xE1, 0},
137 	{0x168A, 0x79, 0x7F, 0},
138 	{0x168B, 0x12, 0x3F, 0},
139 	{0x168D, 0x0, 0xC, 0},
140 	{0x168E, 0xD7, 0xFF, 0},
141 	{0x168F, 0x81, 0xFF, 0},
142 	{0x1690, 0x13, 0x3F, 0},
143 	{0x1691, 0x22, 0x76, 0},
144 	{0x1692, 0xE, 0x2F, 0},
145 	{0x1693, 0xA1, 0xE1, 0},
146 	{0x1694, 0x79, 0x7F, 0},
147 	{0x1695, 0x12, 0x3F, 0},
148 	{0x1697, 0x0, 0xC, 0},
149 	{0x1698, 0xD7, 0xFF, 0},
150 	{0x1699, 0x81, 0xFF, 0},
151 	{0x169A, 0x13, 0x3F, 0},
152 	{0x169B, 0x20, 0x76, 0},
153 	{0x169C, 0xE, 0x2F, 0},
154 	{0x169D, 0x80, 0xE1, 0},
155 	{0x169E, 0xFC, 0xFF, 0},
156 	{0x169F, 0x12, 0x3F, 0},
157 	{0x16A1, 0x0, 0xC, 0},
158 	{0x16A2, 0xDB, 0xFF, 0},
159 	{0x16A3, 0xA1, 0xFF, 0},
160 	{0x16A4, 0x1, 0x3F, 0},
161 	{0x16A5, 0x20, 0x76, 0},
162 	{0x16A6, 0xD, 0x2F, 0},
163 	{0x16A7, 0x81, 0xE1, 0},
164 	{0x16A8, 0xFC, 0xFF, 0},
165 	{0x16A9, 0x12, 0x3F, 0},
166 	{0x16AB, 0x0, 0xC, 0},
167 	{0x16AC, 0xDB, 0xFF, 0},
168 	{0x16AD, 0xA1, 0xFF, 0},
169 	{0x16AE, 0x3, 0x3F, 0},
170 	{0x16CE, 0x8, 0x8, 0},
171 
172 	{0x13, 0x2, 0x2, 0},
173 	{0x15, 0x1F, 0x1F, 0},
174 	{0x22, 0x12, 0x12, 0},
175 	{0x8A, 0x6, 0xF, 0},
176 	{0x10B, 0x3, 0x3, 0},
177 	{0x38B, 0x4, 0xFF, 0},
178 	{0xA07, 0x0, 0x1, 0},
179 	{0xA1A, 0x1F, 0x1F, 0},
180 	{0x1457, 0x0, 0xFF, 0},
181 	/* enable magic key protection */
182 	{0x3A9, 0, 0xFF, 0},
183 	{0x3A8, 0, 0xFF, 0},
184 	{0x3A0, 0, 0xFF, 0},
185 	{0x39F, 0, 0xFF, 0},
186 	{0x993, 0, 0xFF, 0},
187 	{0x992, 0, 0xFF, 0},
188 	{0x1418, 0, 0xFF, 0},
189 	{0x1417, 0, 0xFF, 0},
190 	{0x3a2, 0, 0xFF, 0},
191 	{0x3a1, 0, 0xFF, 0},
192 };
193 
mt6315_init_setting(void)194 void mt6315_init_setting(void)
195 {
196 	for (int i = 0; i < ARRAY_SIZE(init_setting_cpu); i++)
197 		mt6315_write_field(MT6315_CPU,
198 			init_setting_cpu[i].addr, init_setting_cpu[i].val,
199 			init_setting_cpu[i].mask, init_setting_cpu[i].shift);
200 
201 	for (int i = 0; i < ARRAY_SIZE(init_setting_gpu); i++)
202 		mt6315_write_field(MT6315_GPU,
203 			init_setting_gpu[i].addr, init_setting_gpu[i].val,
204 			init_setting_gpu[i].mask, init_setting_gpu[i].shift);
205 }
206