1 /* SPDX-License-Identifier: GPL-2.0-only OR MIT */
3 #include <soc/mt6315.h>
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},
21 {0x1416, 0xF, 0xF, 0},
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},
81 {0x15, 0x1F, 0x1F, 0},
82 {0x22, 0x12, 0x12, 0},
85 {0x38B, 0x4, 0xFF, 0},
87 {0xA1A, 0x1F, 0x1F, 0},
88 {0x1457, 0x0, 0xFF, 0},
89 /* enable magic key protection */
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},
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},
173 {0x15, 0x1F, 0x1F, 0},
174 {0x22, 0x12, 0x12, 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 */
188 {0x1418, 0, 0xFF, 0},
189 {0x1417, 0, 0xFF, 0},
194 void mt6315_init_setting(void)
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
);
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
);