1 /*
2 * Copyright (C) 2021 HiSilicon (Shanghai) Technologies CO., LIMITED.
3 *
4 * This program is free software; you can redistribute it and/or
5 * modify it under the terms of the GNU General Public License
6 * as published by the Free Software Foundation; either version 2
7 * of the License, or (at your option) any later version.
8 *
9 * This program is distributed in the hope that it will be useful,
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of
11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 * GNU General Public License for more details.
13 *
14 * You should have received a copy of the GNU General Public License
15 * along with this program; if not, write to the Free Software
16 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
17 */
18 #include "hdmi_reg_dphy.h"
19 #include "hdmi_product_define.h"
20
21 static volatile hdmi2tx_dphy_reg_type *g_hdmi2tx_dphy_regs = NULL;
22
hdmi_reg_tx_phy_init(hi_char * addr)23 hi_s32 hdmi_reg_tx_phy_init(hi_char *addr)
24 {
25 g_hdmi2tx_dphy_regs = (hdmi2tx_dphy_reg_type *)(addr);
26 return HI_SUCCESS;
27 }
28
hdmi_reg_tx_phy_deinit(hi_void)29 hi_s32 hdmi_reg_tx_phy_deinit(hi_void)
30 {
31 if (g_hdmi2tx_dphy_regs != HI_NULL) {
32 g_hdmi2tx_dphy_regs = HI_NULL;
33 }
34 return HI_SUCCESS;
35 }
36
hdmi_reg_sscin_bypass_en_set(hi_u32 reg_sscin_bypass_en)37 hi_s32 hdmi_reg_sscin_bypass_en_set(hi_u32 reg_sscin_bypass_en)
38 {
39 hi_u32 *reg_addr = NULL;
40 hdmitx_inssc_set hdmitx_inssc;
41
42 reg_addr = (hi_u32 *)&(g_hdmi2tx_dphy_regs->ssc_in_set.u32);
43 hdmitx_inssc.u32 = hdmi_tx_reg_read(reg_addr);
44 hdmitx_inssc.bits.reg_sscin_bypass_en = reg_sscin_bypass_en;
45 hdmi_tx_reg_write(reg_addr, hdmitx_inssc.u32);
46
47 return HI_SUCCESS;
48 }
49
hdmi_reg_pllfbmash111_en_set(hi_u32 reg_pllfbmash111_en)50 hi_s32 hdmi_reg_pllfbmash111_en_set(hi_u32 reg_pllfbmash111_en)
51 {
52 hi_u32 *reg_addr = NULL;
53 hdmitx_inssc_set hdmitx_inssc;
54
55 reg_addr = (hi_u32 *)&(g_hdmi2tx_dphy_regs->ssc_in_set.u32);
56 hdmitx_inssc.u32 = hdmi_tx_reg_read(reg_addr);
57 hdmitx_inssc.bits.reg_pllfbmash111_en = reg_pllfbmash111_en;
58 hdmi_tx_reg_write(reg_addr, hdmitx_inssc.u32);
59
60 return HI_SUCCESS;
61 }
62
hdmi_reg_dphy_rst_set(hi_u32 reg_rst)63 hi_s32 hdmi_reg_dphy_rst_set(hi_u32 reg_rst)
64 {
65 hi_u32 *reg_addr = NULL;
66 hdmitx_dphy_rst hdmitx_dphy;
67
68 reg_addr = (hi_u32 *)&(g_hdmi2tx_dphy_regs->dphy_rst.u32);
69 hdmitx_dphy.u32 = hdmi_tx_reg_read(reg_addr);
70 hdmitx_dphy.bits.reg_dphy_srst_req = reg_rst;
71 hdmi_tx_reg_write(reg_addr, hdmitx_dphy.u32);
72
73 return HI_SUCCESS;
74 }
75
hdmi_reg_aphy_data_clk_height_set(hi_u32 reg_aphy_data_clk_h)76 hi_s32 hdmi_reg_aphy_data_clk_height_set(hi_u32 reg_aphy_data_clk_h)
77 {
78 hi_u32 *reg_addr = NULL;
79 hdmitx_afifo_data_sel data_sel;
80
81 reg_addr = (hi_u32 *)&(g_hdmi2tx_dphy_regs->afifo_data_sel.u32);
82 data_sel.u32 = hdmi_tx_reg_read(reg_addr);
83 data_sel.bits.reg_aphy_data_clk_h = reg_aphy_data_clk_h;
84 hdmi_tx_reg_write(reg_addr, data_sel.u32);
85
86 return HI_SUCCESS;
87 }
88
hdmi_reg_aphy_data_clk_low_set(hi_u32 reg_aphy_data_clk_l)89 hi_s32 hdmi_reg_aphy_data_clk_low_set(hi_u32 reg_aphy_data_clk_l)
90 {
91 hi_u32 *reg_addr = NULL;
92 hdmitx_afifo_clk afifo_clk;
93
94 reg_addr = (hi_u32 *)&(g_hdmi2tx_dphy_regs->afifo_data_clk.u32);
95 afifo_clk.u32 = hdmi_tx_reg_read(reg_addr);
96 afifo_clk.bits.reg_aphy_data_clk_l = reg_aphy_data_clk_l;
97 hdmi_tx_reg_write(reg_addr, afifo_clk.u32);
98
99 return HI_SUCCESS;
100 }
101
hdmi_reg_divsel_set(hi_u32 reg_divsel)102 hi_s32 hdmi_reg_divsel_set(hi_u32 reg_divsel)
103 {
104 hi_u32 *reg_addr = NULL;
105 aphy_top_pd top_pd;
106
107 reg_addr = (hi_u32 *)&(g_hdmi2tx_dphy_regs->aphy_top_misc_ctrl.u32);
108 top_pd.u32 = hdmi_tx_reg_read(reg_addr);
109 top_pd.bits.reg_divsel = reg_divsel;
110 hdmi_tx_reg_write(reg_addr, top_pd.u32);
111
112 return HI_SUCCESS;
113 }
114
hdmi_reg_gc_txpll_pd_set(hi_u32 reg_gc_txpll_pd)115 hi_s32 hdmi_reg_gc_txpll_pd_set(hi_u32 reg_gc_txpll_pd)
116 {
117 hi_u32 *reg_addr = NULL;
118 aphy_top_pd top_pd;
119
120 reg_addr = (hi_u32 *)&(g_hdmi2tx_dphy_regs->aphy_top_misc_ctrl.u32);
121 top_pd.u32 = hdmi_tx_reg_read(reg_addr);
122 top_pd.bits.reg_gc_txpll_pd = reg_gc_txpll_pd;
123 hdmi_tx_reg_write(reg_addr, top_pd.u32);
124
125 return HI_SUCCESS;
126 }
127
hdmi_reg_gc_txpll_pd_get(hi_void)128 hi_u32 hdmi_reg_gc_txpll_pd_get(hi_void)
129 {
130 hi_u32 *reg_addr = NULL;
131 aphy_top_pd top_pd;
132
133 reg_addr = (hi_u32 *)&(g_hdmi2tx_dphy_regs->aphy_top_misc_ctrl.u32);
134 top_pd.u32 = hdmi_tx_reg_read(reg_addr);
135 return top_pd.bits.reg_gc_txpll_pd;
136 }
137
hdmi_reg_gc_pd_rxsense_set(hi_u32 reg_gc_pd_rxsense)138 hi_s32 hdmi_reg_gc_pd_rxsense_set(hi_u32 reg_gc_pd_rxsense)
139 {
140 hi_u32 *reg_addr = NULL;
141 aphy_top_pd top_pd;
142
143 reg_addr = (hi_u32 *)&(g_hdmi2tx_dphy_regs->aphy_top_misc_ctrl.u32);
144 top_pd.u32 = hdmi_tx_reg_read(reg_addr);
145 top_pd.bits.reg_gc_pd_rxsense = reg_gc_pd_rxsense;
146 hdmi_tx_reg_write(reg_addr, top_pd.u32);
147
148 return HI_SUCCESS;
149 }
150
hdmi_reg_gc_pd_rxsense_get(hi_void)151 hi_u32 hdmi_reg_gc_pd_rxsense_get(hi_void)
152 {
153 hi_u32 *reg_addr = NULL;
154 aphy_top_pd top_pd;
155
156 reg_addr = (hi_u32 *)&(g_hdmi2tx_dphy_regs->aphy_top_misc_ctrl.u32);
157 top_pd.u32 = hdmi_tx_reg_read(reg_addr);
158 return top_pd.bits.reg_gc_pd_rxsense;
159 }
160
hdmi_reg_gc_pd_rterm_get(hi_void)161 hi_u32 hdmi_reg_gc_pd_rterm_get(hi_void)
162 {
163 hi_u32 *reg_addr = NULL;
164 aphy_top_pd top_pd;
165
166 reg_addr = (hi_u32 *)&(g_hdmi2tx_dphy_regs->aphy_top_misc_ctrl.u32);
167 top_pd.u32 = hdmi_reg_read(reg_addr);
168 return top_pd.bits.reg_gc_pd_rterm;
169 }
170
hdmi_reg_gc_pd_rterm_set(hi_u32 reg_gc_pd_rterm)171 hi_s32 hdmi_reg_gc_pd_rterm_set(hi_u32 reg_gc_pd_rterm)
172 {
173 hi_u32 *reg_addr = NULL;
174 aphy_top_pd top_pd;
175
176 reg_addr = (hi_u32 *)&(g_hdmi2tx_dphy_regs->aphy_top_misc_ctrl.u32);
177 top_pd.u32 = hdmi_tx_reg_read(reg_addr);
178 top_pd.bits.reg_gc_pd_rterm = reg_gc_pd_rterm;
179 hdmi_tx_reg_write(reg_addr, top_pd.u32);
180
181 return HI_SUCCESS;
182 }
183
hdmi_reg_gc_pd_ldo_set(hi_u32 reg_gc_pd_ldo)184 hi_s32 hdmi_reg_gc_pd_ldo_set(hi_u32 reg_gc_pd_ldo)
185 {
186 hi_u32 *reg_addr = NULL;
187 aphy_top_pd top_pd;
188
189 reg_addr = (hi_u32 *)&(g_hdmi2tx_dphy_regs->aphy_top_misc_ctrl.u32);
190 top_pd.u32 = hdmi_tx_reg_read(reg_addr);
191 top_pd.bits.reg_gc_pd_ldo = reg_gc_pd_ldo;
192 hdmi_tx_reg_write(reg_addr, top_pd.u32);
193
194 return HI_SUCCESS;
195 }
196
hdmi_reg_gc_pd_ldo_get(hi_void)197 hi_u32 hdmi_reg_gc_pd_ldo_get(hi_void)
198 {
199 hi_u32 *reg_addr = NULL;
200 aphy_top_pd top_pd;
201
202 reg_addr = (hi_u32 *)&(g_hdmi2tx_dphy_regs->aphy_top_misc_ctrl.u32);
203 top_pd.u32 = hdmi_tx_reg_read(reg_addr);
204 return top_pd.bits.reg_gc_pd_ldo;
205 }
206
hdmi_reg_gc_pd_de_set(hi_u32 reg_gc_pd_de)207 hi_s32 hdmi_reg_gc_pd_de_set(hi_u32 reg_gc_pd_de)
208 {
209 hi_u32 *reg_addr = NULL;
210 aphy_top_pd top_pd;
211
212 reg_addr = (hi_u32 *)&(g_hdmi2tx_dphy_regs->aphy_top_misc_ctrl.u32);
213 top_pd.u32 = hdmi_tx_reg_read(reg_addr);
214 top_pd.bits.reg_gc_pd_de = reg_gc_pd_de;
215 hdmi_tx_reg_write(reg_addr, top_pd.u32);
216
217 return HI_SUCCESS;
218 }
219
hdmi_reg_gc_pd_de_get(hi_void)220 hi_u32 hdmi_reg_gc_pd_de_get(hi_void)
221 {
222 hi_u32 *reg_addr = NULL;
223 aphy_top_pd top_pd;
224
225 reg_addr = (hi_u32 *)&(g_hdmi2tx_dphy_regs->aphy_top_misc_ctrl.u32);
226 top_pd.u32 = hdmi_tx_reg_read(reg_addr);
227 return top_pd.bits.reg_gc_pd_de;
228 }
229
hdmi_reg_gc_pd_bist_set(hi_u32 reg_gc_pd_bist)230 hi_s32 hdmi_reg_gc_pd_bist_set(hi_u32 reg_gc_pd_bist)
231 {
232 hi_u32 *reg_addr = NULL;
233 aphy_top_pd top_pd;
234
235 reg_addr = (hi_u32 *)&(g_hdmi2tx_dphy_regs->aphy_top_misc_ctrl.u32);
236 top_pd.u32 = hdmi_tx_reg_read(reg_addr);
237 top_pd.bits.reg_gc_pd_bist = reg_gc_pd_bist;
238 hdmi_tx_reg_write(reg_addr, top_pd.u32);
239
240 return HI_SUCCESS;
241 }
242
hdmi_reg_gc_pd_bist_get(hi_void)243 hi_u32 hdmi_reg_gc_pd_bist_get(hi_void)
244 {
245 hi_u32 *reg_addr = NULL;
246 aphy_top_pd top_pd;
247
248 reg_addr = (hi_u32 *)&(g_hdmi2tx_dphy_regs->aphy_top_misc_ctrl.u32);
249 top_pd.u32 = hdmi_tx_reg_read(reg_addr);
250
251 return top_pd.bits.reg_gc_pd_bist;
252 }
253
hdmi_reg_gc_pd_set(hi_u32 reg_gc_pd)254 hi_s32 hdmi_reg_gc_pd_set(hi_u32 reg_gc_pd)
255 {
256 hi_u32 *reg_addr = NULL;
257 aphy_top_pd top_pd;
258
259 reg_addr = (hi_u32 *)&(g_hdmi2tx_dphy_regs->aphy_top_misc_ctrl.u32);
260 top_pd.u32 = hdmi_tx_reg_read(reg_addr);
261 top_pd.bits.reg_gc_pd = reg_gc_pd;
262 hdmi_tx_reg_write(reg_addr, top_pd.u32);
263
264 return HI_SUCCESS;
265 }
266
hdmi_reg_gc_pd_get(hi_void)267 hi_u32 hdmi_reg_gc_pd_get(hi_void)
268 {
269 hi_u32 *reg_addr = NULL;
270 aphy_top_pd top_pd;
271
272 reg_addr = (hi_u32 *)&(g_hdmi2tx_dphy_regs->aphy_top_misc_ctrl.u32);
273 top_pd.u32 = hdmi_tx_reg_read(reg_addr);
274 return top_pd.bits.reg_gc_pd;
275 }
276
hdmi_reg_isel_main_de_clk_set(hi_u32 reg_isel_main_de_clk)277 hi_s32 hdmi_reg_isel_main_de_clk_set(hi_u32 reg_isel_main_de_clk)
278 {
279 hi_u32 *reg_addr = NULL;
280 aphy_driver_imain driver_imain;
281
282 reg_addr = (hi_u32 *)&(g_hdmi2tx_dphy_regs->aphy_imain.u32);
283 driver_imain.u32 = hdmi_tx_reg_read(reg_addr);
284 driver_imain.bits.reg_isel_main_de_clk = reg_isel_main_de_clk;
285 hdmi_tx_reg_write(reg_addr, driver_imain.u32);
286
287 return HI_SUCCESS;
288 }
289
hdmi_reg_isel_main_de_clk_get(hi_void)290 hi_u32 hdmi_reg_isel_main_de_clk_get(hi_void)
291 {
292 hi_u32 *reg_addr = NULL;
293 aphy_driver_imain driver_imain;
294
295 reg_addr = (hi_u32 *)&(g_hdmi2tx_dphy_regs->aphy_imain.u32);
296 driver_imain.u32 = hdmi_tx_reg_read(reg_addr);
297 return driver_imain.bits.reg_isel_main_de_clk;
298 }
299
hdmi_reg_isel_main_d2_set(hi_u32 reg_isel_main_d2)300 hi_s32 hdmi_reg_isel_main_d2_set(hi_u32 reg_isel_main_d2)
301 {
302 hi_u32 *reg_addr = NULL;
303 aphy_driver_imain driver_imain;
304
305 reg_addr = (hi_u32 *)&(g_hdmi2tx_dphy_regs->aphy_imain.u32);
306 driver_imain.u32 = hdmi_tx_reg_read(reg_addr);
307 driver_imain.bits.reg_isel_main_d2 = reg_isel_main_d2;
308 hdmi_tx_reg_write(reg_addr, driver_imain.u32);
309
310 return HI_SUCCESS;
311 }
312
hdmi_reg_isel_main_d1_set(hi_u32 reg_isel_main_d1)313 hi_s32 hdmi_reg_isel_main_d1_set(hi_u32 reg_isel_main_d1)
314 {
315 hi_u32 *reg_addr = NULL;
316 aphy_driver_imain driver_imain;
317
318 reg_addr = (hi_u32 *)&(g_hdmi2tx_dphy_regs->aphy_imain.u32);
319 driver_imain.u32 = hdmi_tx_reg_read(reg_addr);
320 driver_imain.bits.reg_isel_main_d1 = reg_isel_main_d1;
321 hdmi_tx_reg_write(reg_addr, driver_imain.u32);
322
323 return HI_SUCCESS;
324 }
325
hdmi_reg_isel_main_d0_set(hi_u32 reg_isel_main_d0)326 hi_s32 hdmi_reg_isel_main_d0_set(hi_u32 reg_isel_main_d0)
327 {
328 hi_u32 *reg_addr = NULL;
329 aphy_driver_imain driver_imain;
330
331 reg_addr = (hi_u32 *)&(g_hdmi2tx_dphy_regs->aphy_imain.u32);
332 driver_imain.u32 = hdmi_tx_reg_read(reg_addr);
333 driver_imain.bits.reg_isel_main_d0 = reg_isel_main_d0;
334 hdmi_tx_reg_write(reg_addr, driver_imain.u32);
335
336 return HI_SUCCESS;
337 }
338
hdmi_reg_isel_main_clk_set(hi_u32 reg_isel_main_clk)339 hi_s32 hdmi_reg_isel_main_clk_set(hi_u32 reg_isel_main_clk)
340 {
341 hi_u32 *reg_addr = NULL;
342 aphy_driver_imain driver_imain;
343
344 reg_addr = (hi_u32 *)&(g_hdmi2tx_dphy_regs->aphy_imain.u32);
345 driver_imain.u32 = hdmi_tx_reg_read(reg_addr);
346 driver_imain.bits.reg_isel_main_clk = reg_isel_main_clk;
347 hdmi_tx_reg_write(reg_addr, driver_imain.u32);
348
349 return HI_SUCCESS;
350 }
351
hdmi_reg_isel_pre_d0_set(hi_u32 reg_isel_pre_d0)352 hi_s32 hdmi_reg_isel_pre_d0_set(hi_u32 reg_isel_pre_d0)
353 {
354 hi_u32 *reg_addr = NULL;
355 aphy_driver_ipre driver_ipre;
356
357 reg_addr = (hi_u32 *)&(g_hdmi2tx_dphy_regs->aphy_ipre.u32);
358 driver_ipre.u32 = hdmi_tx_reg_read(reg_addr);
359 driver_ipre.bits.reg_isel_pre_d0 = reg_isel_pre_d0;
360 hdmi_tx_reg_write(reg_addr, driver_ipre.u32);
361
362 return HI_SUCCESS;
363 }
364
hdmi_reg_isel_pre_clk_set(hi_u32 reg_isel_pre_clk)365 hi_s32 hdmi_reg_isel_pre_clk_set(hi_u32 reg_isel_pre_clk)
366 {
367 hi_u32 *reg_addr = NULL;
368 aphy_driver_ipre driver_ipre;
369
370 reg_addr = (hi_u32 *)&(g_hdmi2tx_dphy_regs->aphy_ipre.u32);
371 driver_ipre.u32 = hdmi_tx_reg_read(reg_addr);
372 driver_ipre.bits.reg_isel_pre_clk = reg_isel_pre_clk;
373 hdmi_tx_reg_write(reg_addr, driver_ipre.u32);
374
375 return HI_SUCCESS;
376 }
377
hdmi_reg_isel_main_de_d2_set(hi_u32 reg_isel_main_de_d2)378 hi_s32 hdmi_reg_isel_main_de_d2_set(hi_u32 reg_isel_main_de_d2)
379 {
380 hi_u32 *reg_addr = NULL;
381 aphy_driver_ipre driver_ipre;
382
383 reg_addr = (hi_u32 *)&(g_hdmi2tx_dphy_regs->aphy_ipre.u32);
384 driver_ipre.u32 = hdmi_tx_reg_read(reg_addr);
385 driver_ipre.bits.reg_isel_main_de_d2 = reg_isel_main_de_d2;
386 hdmi_tx_reg_write(reg_addr, driver_ipre.u32);
387
388 return HI_SUCCESS;
389 }
390
hdmi_reg_isel_main_de_d2_get(hi_void)391 hi_u32 hdmi_reg_isel_main_de_d2_get(hi_void)
392 {
393 hi_u32 *reg_addr = NULL;
394 aphy_driver_ipre driver_ipre;
395
396 reg_addr = (hi_u32 *)&(g_hdmi2tx_dphy_regs->aphy_ipre.u32);
397 driver_ipre.u32 = hdmi_tx_reg_read(reg_addr);
398
399 return driver_ipre.bits.reg_isel_main_de_d2;
400 }
401
hdmi_reg_isel_main_de_d1_set(hi_u32 reg_isel_main_de_d1)402 hi_s32 hdmi_reg_isel_main_de_d1_set(hi_u32 reg_isel_main_de_d1)
403 {
404 hi_u32 *reg_addr = NULL;
405 aphy_driver_ipre driver_ipre;
406
407 reg_addr = (hi_u32 *)&(g_hdmi2tx_dphy_regs->aphy_ipre.u32);
408 driver_ipre.u32 = hdmi_tx_reg_read(reg_addr);
409 driver_ipre.bits.reg_isel_main_de_d1 = reg_isel_main_de_d1;
410 hdmi_tx_reg_write(reg_addr, driver_ipre.u32);
411
412 return HI_SUCCESS;
413 }
414
hdmi_reg_isel_main_de_d1_get(hi_void)415 hi_u32 hdmi_reg_isel_main_de_d1_get(hi_void)
416 {
417 hi_u32 *reg_addr = NULL;
418 aphy_driver_ipre driver_ipre;
419
420 reg_addr = (hi_u32 *)&(g_hdmi2tx_dphy_regs->aphy_ipre.u32);
421 driver_ipre.u32 = hdmi_tx_reg_read(reg_addr);
422
423 return driver_ipre.bits.reg_isel_main_de_d1;
424 }
425
hdmi_reg_isel_main_de_d0_set(hi_u32 reg_isel_main_de_d0)426 hi_s32 hdmi_reg_isel_main_de_d0_set(hi_u32 reg_isel_main_de_d0)
427 {
428 hi_u32 *reg_addr = NULL;
429 aphy_driver_ipre driver_ipre;
430
431 reg_addr = (hi_u32 *)&(g_hdmi2tx_dphy_regs->aphy_ipre.u32);
432 driver_ipre.u32 = hdmi_tx_reg_read(reg_addr);
433 driver_ipre.bits.reg_isel_main_de_d0 = reg_isel_main_de_d0;
434 hdmi_tx_reg_write(reg_addr, driver_ipre.u32);
435
436 return HI_SUCCESS;
437 }
438
hdmi_reg_isel_main_de_d0_get(hi_void)439 hi_u32 hdmi_reg_isel_main_de_d0_get(hi_void)
440 {
441 hi_u32 *reg_addr = NULL;
442 aphy_driver_ipre driver_ipre;
443
444 reg_addr = (hi_u32 *)&(g_hdmi2tx_dphy_regs->aphy_ipre.u32);
445 driver_ipre.u32 = hdmi_tx_reg_read(reg_addr);
446
447 return driver_ipre.bits.reg_isel_main_de_d0;
448 }
449
hdmi_reg_isel_main_clk_get(hi_void)450 hi_u32 hdmi_reg_isel_main_clk_get(hi_void)
451 {
452 hi_u32 *reg_addr = NULL;
453 aphy_driver_imain driver_imain;
454
455 reg_addr = (hi_u32 *)&(g_hdmi2tx_dphy_regs->aphy_imain.u32);
456 driver_imain.u32 = hdmi_tx_reg_read(reg_addr);
457
458 return driver_imain.bits.reg_isel_main_clk;
459 }
460
hdmi_reg_isel_main_d0_get(hi_void)461 hi_u32 hdmi_reg_isel_main_d0_get(hi_void)
462 {
463 hi_u32 *reg_addr = NULL;
464 aphy_driver_imain driver_imain;
465
466 reg_addr = (hi_u32 *)&(g_hdmi2tx_dphy_regs->aphy_imain.u32);
467 driver_imain.u32 = hdmi_tx_reg_read(reg_addr);
468
469 return driver_imain.bits.reg_isel_main_d0;
470 }
471
hdmi_reg_isel_pre_de_d1_set(hi_u32 reg_isel_pre_de_d1)472 hi_s32 hdmi_reg_isel_pre_de_d1_set(hi_u32 reg_isel_pre_de_d1)
473 {
474 hi_u32 *reg_addr = NULL;
475 aphy_driver_iprede driver_iprede;
476
477 reg_addr = (hi_u32 *)&(g_hdmi2tx_dphy_regs->aphy_iprede.u32);
478 driver_iprede.u32 = hdmi_tx_reg_read(reg_addr);
479 driver_iprede.bits.reg_isel_pre_de_d1 = reg_isel_pre_de_d1;
480 hdmi_tx_reg_write(reg_addr, driver_iprede.u32);
481
482 return HI_SUCCESS;
483 }
484
hdmi_reg_isel_pre_de_d0_set(hi_u32 reg_isel_pre_de_d0)485 hi_s32 hdmi_reg_isel_pre_de_d0_set(hi_u32 reg_isel_pre_de_d0)
486 {
487 hi_u32 *reg_addr = NULL;
488 aphy_driver_iprede driver_iprede;
489
490 reg_addr = (hi_u32 *)&(g_hdmi2tx_dphy_regs->aphy_iprede.u32);
491 driver_iprede.u32 = hdmi_tx_reg_read(reg_addr);
492 driver_iprede.bits.reg_isel_pre_de_d0 = reg_isel_pre_de_d0;
493 hdmi_tx_reg_write(reg_addr, driver_iprede.u32);
494
495 return HI_SUCCESS;
496 }
497
hdmi_reg_isel_pre_de_clk_set(hi_u32 reg_isel_pre_de_clk)498 hi_s32 hdmi_reg_isel_pre_de_clk_set(hi_u32 reg_isel_pre_de_clk)
499 {
500 hi_u32 *reg_addr = NULL;
501 aphy_driver_iprede driver_iprede;
502
503 reg_addr = (hi_u32 *)&(g_hdmi2tx_dphy_regs->aphy_iprede.u32);
504 driver_iprede.u32 = hdmi_tx_reg_read(reg_addr);
505 driver_iprede.bits.reg_isel_pre_de_clk = reg_isel_pre_de_clk;
506 hdmi_tx_reg_write(reg_addr, driver_iprede.u32);
507
508 return HI_SUCCESS;
509 }
510
hdmi_reg_isel_pre_d2_set(hi_u32 reg_isel_pre_d2)511 hi_s32 hdmi_reg_isel_pre_d2_set(hi_u32 reg_isel_pre_d2)
512 {
513 hi_u32 *reg_addr = NULL;
514 aphy_driver_iprede driver_iprede;
515
516 reg_addr = (hi_u32 *)&(g_hdmi2tx_dphy_regs->aphy_iprede.u32);
517 driver_iprede.u32 = hdmi_tx_reg_read(reg_addr);
518 driver_iprede.bits.reg_isel_pre_d2 = reg_isel_pre_d2;
519 hdmi_tx_reg_write(reg_addr, driver_iprede.u32);
520
521 return HI_SUCCESS;
522 }
523
hdmi_reg_isel_pre_d1_set(hi_u32 reg_isel_pre_d1)524 hi_s32 hdmi_reg_isel_pre_d1_set(hi_u32 reg_isel_pre_d1)
525 {
526 hi_u32 *reg_addr = NULL;
527 aphy_driver_iprede driver_iprede;
528
529 reg_addr = (hi_u32 *)&(g_hdmi2tx_dphy_regs->aphy_iprede.u32);
530 driver_iprede.u32 = hdmi_tx_reg_read(reg_addr);
531 driver_iprede.bits.reg_isel_pre_d1 = reg_isel_pre_d1;
532 hdmi_tx_reg_write(reg_addr, driver_iprede.u32);
533
534 return HI_SUCCESS;
535 }
536
hdmi_reg_rsel_pre_de_d2_set(hi_u32 reg_rsel_pre_de_d2)537 hi_s32 hdmi_reg_rsel_pre_de_d2_set(hi_u32 reg_rsel_pre_de_d2)
538 {
539 hi_u32 *reg_addr = NULL;
540 aphy_driver_rpre driver_rpre;
541
542 reg_addr = (hi_u32 *)&(g_hdmi2tx_dphy_regs->aphy_rpre.u32);
543 driver_rpre.u32 = hdmi_tx_reg_read(reg_addr);
544 driver_rpre.bits.reg_rsel_pre_de_d2 = reg_rsel_pre_de_d2;
545 hdmi_tx_reg_write(reg_addr, driver_rpre.u32);
546
547 return HI_SUCCESS;
548 }
549
hdmi_reg_rsel_pre_de_d1_set(hi_u32 reg_rsel_pre_de_d1)550 hi_s32 hdmi_reg_rsel_pre_de_d1_set(hi_u32 reg_rsel_pre_de_d1)
551 {
552 hi_u32 *reg_addr = NULL;
553 aphy_driver_rpre driver_rpre;
554
555 reg_addr = (hi_u32 *)&(g_hdmi2tx_dphy_regs->aphy_rpre.u32);
556 driver_rpre.u32 = hdmi_tx_reg_read(reg_addr);
557 driver_rpre.bits.reg_rsel_pre_de_d1 = reg_rsel_pre_de_d1;
558 hdmi_tx_reg_write(reg_addr, driver_rpre.u32);
559
560 return HI_SUCCESS;
561 }
562
hdmi_reg_rsel_pre_de_d0_set(hi_u32 reg_rsel_pre_de_d0)563 hi_s32 hdmi_reg_rsel_pre_de_d0_set(hi_u32 reg_rsel_pre_de_d0)
564 {
565 hi_u32 *reg_addr = NULL;
566 aphy_driver_rpre driver_rpre;
567
568 reg_addr = (hi_u32 *)&(g_hdmi2tx_dphy_regs->aphy_rpre.u32);
569 driver_rpre.u32 = hdmi_tx_reg_read(reg_addr);
570 driver_rpre.bits.reg_rsel_pre_de_d0 = reg_rsel_pre_de_d0;
571 hdmi_tx_reg_write(reg_addr, driver_rpre.u32);
572
573 return HI_SUCCESS;
574 }
575
hdmi_reg_rsel_pre_de_clk_set(hi_u32 reg_rsel_pre_de_clk)576 hi_s32 hdmi_reg_rsel_pre_de_clk_set(hi_u32 reg_rsel_pre_de_clk)
577 {
578 hi_u32 *reg_addr = NULL;
579 aphy_driver_rpre driver_rpre;
580
581 reg_addr = (hi_u32 *)&(g_hdmi2tx_dphy_regs->aphy_rpre.u32);
582 driver_rpre.u32 = hdmi_tx_reg_read(reg_addr);
583 driver_rpre.bits.reg_rsel_pre_de_clk = reg_rsel_pre_de_clk;
584 hdmi_tx_reg_write(reg_addr, driver_rpre.u32);
585
586 return HI_SUCCESS;
587 }
588
hdmi_reg_rsel_pre_d2_set(hi_u32 reg_rsel_pre_d2)589 hi_s32 hdmi_reg_rsel_pre_d2_set(hi_u32 reg_rsel_pre_d2)
590 {
591 hi_u32 *reg_addr = NULL;
592 aphy_driver_rpre driver_rpre;
593
594 reg_addr = (hi_u32 *)&(g_hdmi2tx_dphy_regs->aphy_rpre.u32);
595 driver_rpre.u32 = hdmi_tx_reg_read(reg_addr);
596 driver_rpre.bits.reg_rsel_pre_d2 = reg_rsel_pre_d2;
597 hdmi_tx_reg_write(reg_addr, driver_rpre.u32);
598
599 return HI_SUCCESS;
600 }
601
hdmi_reg_rsel_pre_d1_set(hi_u32 reg_rsel_pre_d1)602 hi_s32 hdmi_reg_rsel_pre_d1_set(hi_u32 reg_rsel_pre_d1)
603 {
604 hi_u32 *reg_addr = NULL;
605 aphy_driver_rpre driver_rpre;
606
607 reg_addr = (hi_u32 *)&(g_hdmi2tx_dphy_regs->aphy_rpre.u32);
608 driver_rpre.u32 = hdmi_tx_reg_read(reg_addr);
609 driver_rpre.bits.reg_rsel_pre_d1 = reg_rsel_pre_d1;
610 hdmi_tx_reg_write(reg_addr, driver_rpre.u32);
611
612 return HI_SUCCESS;
613 }
614
hdmi_reg_rsel_pre_d0_set(hi_u32 reg_rsel_pre_d0)615 hi_s32 hdmi_reg_rsel_pre_d0_set(hi_u32 reg_rsel_pre_d0)
616 {
617 hi_u32 *reg_addr = NULL;
618 aphy_driver_rpre driver_rpre;
619
620 reg_addr = (hi_u32 *)&(g_hdmi2tx_dphy_regs->aphy_rpre.u32);
621 driver_rpre.u32 = hdmi_tx_reg_read(reg_addr);
622 driver_rpre.bits.reg_rsel_pre_d0 = reg_rsel_pre_d0;
623 hdmi_tx_reg_write(reg_addr, driver_rpre.u32);
624
625 return HI_SUCCESS;
626 }
627
hdmi_reg_rsel_pre_clk_set(hi_u32 reg_rsel_pre_clk)628 hi_s32 hdmi_reg_rsel_pre_clk_set(hi_u32 reg_rsel_pre_clk)
629 {
630 hi_u32 *reg_addr = NULL;
631 aphy_driver_rpre driver_rpre;
632
633 reg_addr = (hi_u32 *)&(g_hdmi2tx_dphy_regs->aphy_rpre.u32);
634 driver_rpre.u32 = hdmi_tx_reg_read(reg_addr);
635 driver_rpre.bits.reg_rsel_pre_clk = reg_rsel_pre_clk;
636 hdmi_tx_reg_write(reg_addr, driver_rpre.u32);
637
638 return HI_SUCCESS;
639 }
640
hdmi_reg_rsel_pre_clk_get(hi_void)641 hi_u32 hdmi_reg_rsel_pre_clk_get(hi_void)
642 {
643 hi_u32 *reg_addr = NULL;
644 aphy_driver_rpre driver_rpre;
645
646 reg_addr = (hi_u32 *)&(g_hdmi2tx_dphy_regs->aphy_rpre.u32);
647 driver_rpre.u32 = hdmi_tx_reg_read(reg_addr);
648
649 return (driver_rpre.bits.reg_rsel_pre_clk);
650 }
651
hdmi_reg_rsel_pre_d0_get(hi_void)652 hi_u32 hdmi_reg_rsel_pre_d0_get(hi_void)
653 {
654 hi_u32 *reg_addr = NULL;
655 aphy_driver_rpre driver_rpre;
656
657 reg_addr = (hi_u32 *)&(g_hdmi2tx_dphy_regs->aphy_rpre.u32);
658 driver_rpre.u32 = hdmi_tx_reg_read(reg_addr);
659
660 return (driver_rpre.bits.reg_rsel_pre_d0);
661 }
662
hdmi_reg_isel_pre_de_d2_set(hi_u32 reg_isel_pre_de_d2)663 hi_s32 hdmi_reg_isel_pre_de_d2_set(hi_u32 reg_isel_pre_de_d2)
664 {
665 hi_u32 *reg_addr = NULL;
666 aphy_driver_rpre driver_rpre;
667
668 reg_addr = (hi_u32 *)&(g_hdmi2tx_dphy_regs->aphy_rpre.u32);
669 driver_rpre.u32 = hdmi_tx_reg_read(reg_addr);
670 driver_rpre.bits.reg_isel_pre_de_d2 = reg_isel_pre_de_d2;
671 hdmi_tx_reg_write(reg_addr, driver_rpre.u32);
672
673 return HI_SUCCESS;
674 }
675
hdmi_reg_rt_d2_set(hi_u32 reg_rt_d2)676 hi_s32 hdmi_reg_rt_d2_set(hi_u32 reg_rt_d2)
677 {
678 hi_u32 *reg_addr = NULL;
679 aphy_rterm_ctrl rterm_ctrl;
680
681 reg_addr = (hi_u32 *)&(g_hdmi2tx_dphy_regs->rterm_ctrl.u32);
682 rterm_ctrl.u32 = hdmi_tx_reg_read(reg_addr);
683 rterm_ctrl.bits.reg_rt_d2 = reg_rt_d2;
684 hdmi_tx_reg_write(reg_addr, rterm_ctrl.u32);
685
686 return HI_SUCCESS;
687 }
688
hdmi_reg_test_set(hi_u32 reg_test)689 hi_s32 hdmi_reg_test_set(hi_u32 reg_test)
690 {
691 hi_u32 *reg_addr = NULL;
692 aphy_test_ctrl test_ctrl;
693
694 reg_addr = (hi_u32 *)&(g_hdmi2tx_dphy_regs->test_ctrl_aphy.u32);
695 test_ctrl.u32 = hdmi_tx_reg_read(reg_addr);
696 test_ctrl.bits.reg_test = reg_test;
697 hdmi_tx_reg_write(reg_addr, test_ctrl.u32);
698
699 return HI_SUCCESS;
700 }
701
hdmi_reg_rt_d1_set(hi_u32 reg_rt_d1)702 hi_s32 hdmi_reg_rt_d1_set(hi_u32 reg_rt_d1)
703 {
704 hi_u32 *reg_addr = NULL;
705 aphy_rterm_ctrl rterm_ctrl;
706
707 reg_addr = (hi_u32 *)&(g_hdmi2tx_dphy_regs->rterm_ctrl.u32);
708 rterm_ctrl.u32 = hdmi_tx_reg_read(reg_addr);
709 rterm_ctrl.bits.reg_rt_d1 = reg_rt_d1;
710 hdmi_tx_reg_write(reg_addr, rterm_ctrl.u32);
711
712 return HI_SUCCESS;
713 }
714
hdmi_reg_rt_d0_set(hi_u32 reg_rt_d0)715 hi_s32 hdmi_reg_rt_d0_set(hi_u32 reg_rt_d0)
716 {
717 hi_u32 *reg_addr = NULL;
718 aphy_rterm_ctrl rterm_ctrl;
719
720 reg_addr = (hi_u32 *)&(g_hdmi2tx_dphy_regs->rterm_ctrl.u32);
721 rterm_ctrl.u32 = hdmi_tx_reg_read(reg_addr);
722 rterm_ctrl.bits.reg_rt_d0 = reg_rt_d0;
723 hdmi_tx_reg_write(reg_addr, rterm_ctrl.u32);
724
725 return HI_SUCCESS;
726 }
727
hdmi_reg_rt_clk_set(hi_u32 reg_rt_clk)728 hi_s32 hdmi_reg_rt_clk_set(hi_u32 reg_rt_clk)
729 {
730 hi_u32 *reg_addr = NULL;
731 aphy_rterm_ctrl rterm_ctrl;
732
733 reg_addr = (hi_u32 *)&(g_hdmi2tx_dphy_regs->rterm_ctrl.u32);
734 rterm_ctrl.u32 = hdmi_tx_reg_read(reg_addr);
735 rterm_ctrl.bits.reg_rt_clk = reg_rt_clk;
736 hdmi_tx_reg_write(reg_addr, rterm_ctrl.u32);
737
738 return HI_SUCCESS;
739 }
740
hdmi_reg_gc_txpll_en_sscdiv_set(hi_u32 reg_gc_txpll_en_sscdiv)741 hi_s32 hdmi_reg_gc_txpll_en_sscdiv_set(hi_u32 reg_gc_txpll_en_sscdiv)
742 {
743 hi_u32 *reg_addr = NULL;
744 aphy_txpll_ctrl txpll_ctrl;
745
746 reg_addr = (hi_u32 *)&(g_hdmi2tx_dphy_regs->txpll_ctrl.u32);
747 txpll_ctrl.u32 = hdmi_tx_reg_read(reg_addr);
748 txpll_ctrl.bits.reg_gc_txpll_en_sscdiv = reg_gc_txpll_en_sscdiv;
749 hdmi_tx_reg_write(reg_addr, txpll_ctrl.u32);
750
751 return HI_SUCCESS;
752 }
753
hdmi_reg_txpll_icp_ictrl_set(hi_u32 reg_txpll_icp_ictrl)754 hi_s32 hdmi_reg_txpll_icp_ictrl_set(hi_u32 reg_txpll_icp_ictrl)
755 {
756 hi_u32 *reg_addr = NULL;
757 aphy_txpll_ctrl txpll_ctrl;
758
759 reg_addr = (hi_u32 *)&(g_hdmi2tx_dphy_regs->txpll_ctrl.u32);
760 txpll_ctrl.u32 = hdmi_tx_reg_read(reg_addr);
761 txpll_ctrl.bits.reg_txpll_icp_ictrl = reg_txpll_icp_ictrl;
762 hdmi_tx_reg_write(reg_addr, txpll_ctrl.u32);
763
764 return HI_SUCCESS;
765 }
766
hdmi_reg_txpll_divsel_loop_set(hi_u32 reg_txpll_divsel_loop)767 hi_s32 hdmi_reg_txpll_divsel_loop_set(hi_u32 reg_txpll_divsel_loop)
768 {
769 hi_u32 *reg_addr = NULL;
770 aphy_txpll_ctrl txpll_ctrl;
771
772 reg_addr = (hi_u32 *)&(g_hdmi2tx_dphy_regs->txpll_ctrl.u32);
773 txpll_ctrl.u32 = hdmi_tx_reg_read(reg_addr);
774 txpll_ctrl.bits.reg_txpll_divsel_loop = reg_txpll_divsel_loop;
775 hdmi_tx_reg_write(reg_addr, txpll_ctrl.u32);
776
777 return HI_SUCCESS;
778 }
779
hdmi_reg_gc_txpll_test_set(hi_u32 reg_txpll_test)780 hi_s32 hdmi_reg_gc_txpll_test_set(hi_u32 reg_txpll_test)
781 {
782 hi_u32 *reg_addr = NULL;
783 aphy_txpll_test txpll_test;
784
785 reg_addr = (hi_u32 *)&(g_hdmi2tx_dphy_regs->txpll_test.u32);
786 txpll_test.u32 = hdmi_tx_reg_read(reg_addr);
787 txpll_test.bits.reg_txpll_test = reg_txpll_test;
788 hdmi_tx_reg_write(reg_addr, txpll_test.u32);
789
790 return HI_SUCCESS;
791 }
792
hdmi_reg_ssc_mode_fb_set(hi_u32 reg_ssc_mode_fb)793 hi_s32 hdmi_reg_ssc_mode_fb_set(hi_u32 reg_ssc_mode_fb)
794 {
795 hi_u32 *reg_addr = NULL;
796 hdmitx_fbssc_set hdmitx_fbssc;
797
798 reg_addr = (hi_u32 *)&(g_hdmi2tx_dphy_regs->fb_ssc_set.u32);
799 hdmitx_fbssc.u32 = hdmi_tx_reg_read(reg_addr);
800 hdmitx_fbssc.bits.reg_ssc_mode_fb = reg_ssc_mode_fb;
801 hdmi_tx_reg_write(reg_addr, hdmitx_fbssc.u32);
802
803 return HI_SUCCESS;
804 }
805
hdmi_reg_load_fb_set(hi_u32 reg_set_load_fb)806 hi_s32 hdmi_reg_load_fb_set(hi_u32 reg_set_load_fb)
807 {
808 hi_u32 *reg_addr = NULL;
809 hdmitx_fbssc_set hdmitx_fbssc;
810
811 reg_addr = (hi_u32 *)&(g_hdmi2tx_dphy_regs->fb_ssc_set.u32);
812 hdmitx_fbssc.u32 = hdmi_tx_reg_read(reg_addr);
813 hdmitx_fbssc.bits.reg_set_load_fb = reg_set_load_fb;
814 hdmi_tx_reg_write(reg_addr, hdmitx_fbssc.u32);
815
816 return HI_SUCCESS;
817 }
818
hdmi_reg_fb_set(hi_u32 reg_set_fb)819 hi_s32 hdmi_reg_fb_set(hi_u32 reg_set_fb)
820 {
821 hi_u32 *reg_addr = NULL;
822 hdmitx_fbssc_set hdmitx_fbssc;
823
824 reg_addr = (hi_u32 *)&(g_hdmi2tx_dphy_regs->fb_ssc_set.u32);
825 hdmitx_fbssc.u32 = hdmi_tx_reg_read(reg_addr);
826 hdmitx_fbssc.bits.reg_set_fb = reg_set_fb;
827 hdmi_tx_reg_write(reg_addr, hdmitx_fbssc.u32);
828
829 return HI_SUCCESS;
830 }
831
hdmi_reg_span_fb_set(hi_u32 reg_span_fb)832 hi_s32 hdmi_reg_span_fb_set(hi_u32 reg_span_fb)
833 {
834 hi_u32 *reg_addr = NULL;
835 hdmitx_fbssc_step fbssc_step;
836
837 reg_addr = (hi_u32 *)&(g_hdmi2tx_dphy_regs->fb_ssc_step.u32);
838 fbssc_step.u32 = hdmi_tx_reg_read(reg_addr);
839 fbssc_step.bits.reg_span_fb = reg_span_fb;
840 hdmi_tx_reg_write(reg_addr, fbssc_step.u32);
841
842 return HI_SUCCESS;
843 }
844
hdmi_reg_span_fb_get(hi_void)845 hi_u32 hdmi_reg_span_fb_get(hi_void)
846 {
847 hi_u32 *reg_addr = NULL;
848 hdmitx_fbssc_step fbssc_step;
849
850 reg_addr = (hi_u32 *)&(g_hdmi2tx_dphy_regs->fb_ssc_step.u32);
851 fbssc_step.u32 = hdmi_tx_reg_read(reg_addr);
852 return fbssc_step.bits.reg_span_fb;
853 }
854
hdmi_reg_step_fb_set(hi_u32 reg_step_fb)855 hi_s32 hdmi_reg_step_fb_set(hi_u32 reg_step_fb)
856 {
857 hi_u32 *reg_addr = NULL;
858 hdmitx_fbssc_step fbssc_step;
859
860 reg_addr = (hi_u32 *)&(g_hdmi2tx_dphy_regs->fb_ssc_step.u32);
861 fbssc_step.u32 = hdmi_tx_reg_read(reg_addr);
862 fbssc_step.bits.reg_step_fb = reg_step_fb;
863 hdmi_tx_reg_write(reg_addr, fbssc_step.u32);
864
865 return HI_SUCCESS;
866 }
867
hdmi_reg_step_fb_get(hi_void)868 hi_u32 hdmi_reg_step_fb_get(hi_void)
869 {
870 hi_u32 *reg_addr = NULL;
871 hdmitx_fbssc_step fbssc_step;
872
873 reg_addr = (hi_u32 *)&(g_hdmi2tx_dphy_regs->fb_ssc_step.u32);
874 fbssc_step.u32 = hdmi_tx_reg_read(reg_addr);
875 return fbssc_step.bits.reg_step_fb;
876 }
877
878