• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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