1 // Copyright (C) 2022 Beken Corporation
2 //
3 // Licensed under the Apache License, Version 2.0 (the "License");
4 // you may not use this file except in compliance with the License.
5 // You may obtain a copy of the License at
6 //
7 // http://www.apache.org/licenses/LICENSE-2.0
8 //
9 // Unless required by applicable law or agreed to in writing, software
10 // distributed under the License is distributed on an "AS IS" BASIS,
11 // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 // See the License for the specific language governing permissions and
13 // limitations under the License.
14
15 #include "sys_hal.h"
16 #include "sys_driver.h"
17 #include "sys_driver_common.h"
18
19 /** Video Start **/
sys_drv_lcd_set(uint8_t clk_src_sel,uint8_t clk_div_l,uint8_t clk_div_h,uint8_t int_en,uint8_t clk_always_on)20 uint32_t sys_drv_lcd_set(uint8_t clk_src_sel, uint8_t clk_div_l, uint8_t clk_div_h, uint8_t int_en,uint8_t clk_always_on)
21 {
22 uint32_t int_level = rtos_disable_int();
23 uint32_t ret = SYS_DRV_FAILURE;
24 ret = sys_amp_res_acquire();
25
26 sys_hal_lcd_disp_clk_en(clk_src_sel, clk_div_l,clk_div_h, int_en, clk_always_on);
27
28 if(!ret)
29 ret = sys_amp_res_release();
30
31 rtos_enable_int(int_level);
32
33 return ret;
34 }
35
sys_drv_lcd_close(void)36 uint32_t sys_drv_lcd_close(void)
37 {
38 uint32_t int_level = rtos_disable_int();
39 uint32_t ret = SYS_DRV_FAILURE;
40 ret = sys_amp_res_acquire();
41
42 sys_hal_lcd_disp_close();
43
44 if(!ret)
45 ret = sys_amp_res_release();
46
47 rtos_enable_int(int_level);
48
49 return ret;
50 }
51
sys_drv_dma2d_set(uint8_t clk_always_on,uint8_t sys_int_en)52 uint32_t sys_drv_dma2d_set(uint8_t clk_always_on, uint8_t sys_int_en)
53 {
54 uint32_t int_level = rtos_disable_int();
55 uint32_t ret = SYS_DRV_FAILURE;
56 ret = sys_amp_res_acquire();
57
58 sys_hal_dma2d_clk_en(clk_always_on, sys_int_en);
59 if(!ret)
60 ret = sys_amp_res_release();
61
62 rtos_enable_int(int_level);
63
64 return ret;
65 }
66
sys_drv_jpeg_dec_set(uint8_t clk_always_on,uint8_t int_en)67 uint32_t sys_drv_jpeg_dec_set(uint8_t clk_always_on, uint8_t int_en)
68 {
69 uint32_t int_level = rtos_disable_int();
70 uint32_t ret = SYS_DRV_FAILURE;
71 ret = sys_amp_res_acquire();
72
73 sys_hal_jpeg_dec_ctrl(clk_always_on, int_en);
74 if(!ret)
75 ret = sys_amp_res_release();
76 rtos_enable_int(int_level);
77
78 return ret;
79 }
80
81 /** Video End **/
82
83 /** Jpeg Start **/
sys_drv_mclk_mux_set(uint32_t value)84 uint32_t sys_drv_mclk_mux_set(uint32_t value)
85 {
86 uint32_t int_level = rtos_disable_int();
87 uint32_t ret = SYS_DRV_FAILURE;
88 ret = sys_amp_res_acquire();
89
90 sys_hal_mclk_mux_set(value);
91
92 if(!ret)
93 ret = sys_amp_res_release();
94
95 rtos_enable_int(int_level);
96 return ret;
97 }
98
sys_drv_set_jpeg_clk_sel(uint32_t value)99 uint32_t sys_drv_set_jpeg_clk_sel(uint32_t value)
100 {
101 uint32_t int_level = rtos_disable_int();
102
103 sys_hal_set_jpeg_clk_sel(value);
104 rtos_enable_int(int_level);
105 return SYS_DRV_SUCCESS;
106 }
107
sys_drv_set_clk_div_mode1_clkdiv_jpeg(uint32_t value)108 uint32_t sys_drv_set_clk_div_mode1_clkdiv_jpeg(uint32_t value)
109 {
110 uint32_t int_level = rtos_disable_int();
111 uint32_t ret = SYS_DRV_FAILURE;
112 ret = sys_amp_res_acquire();
113
114 sys_hal_set_clk_div_mode1_clkdiv_jpeg(value);
115
116 if(!ret)
117 ret = sys_amp_res_release();
118
119 rtos_enable_int(int_level);
120 return ret;
121 }
122
sys_drv_set_jpeg_disckg(uint32_t value)123 uint32_t sys_drv_set_jpeg_disckg(uint32_t value)
124 {
125 uint32_t int_level = rtos_disable_int();
126 uint32_t ret = SYS_DRV_FAILURE;
127 ret = sys_amp_res_acquire();
128 sys_hal_set_jpeg_disckg(value);
129
130 if(!ret)
131 ret = sys_amp_res_release();
132 rtos_enable_int(int_level);
133 return ret;
134 }
135
sys_drv_set_cpu_clk_div_mode1_clkdiv_bus(uint32_t value)136 uint32_t sys_drv_set_cpu_clk_div_mode1_clkdiv_bus(uint32_t value)
137 {
138 uint32_t int_level = rtos_disable_int();
139 uint32_t ret = SYS_DRV_FAILURE;
140 ret = sys_amp_res_acquire();
141
142 sys_hal_set_cpu_clk_div_mode1_clkdiv_bus(value);
143
144 if(!ret)
145 ret = sys_amp_res_release();
146
147 rtos_enable_int(int_level);
148 return ret;
149 }
150
sys_drv_video_power_en(uint32_t value)151 uint32_t sys_drv_video_power_en(uint32_t value)
152 {
153 uint32_t int_level = rtos_disable_int();
154 uint32_t ret = SYS_DRV_FAILURE;
155 ret = sys_amp_res_acquire();
156
157 sys_hal_video_power_en(value);
158
159 if(!ret)
160 ret = sys_amp_res_release();
161
162
163 rtos_enable_int(int_level);
164 return ret;
165 }
166
sys_drv_set_auxs(uint32_t cksel,uint32_t ckdiv)167 uint32_t sys_drv_set_auxs(uint32_t cksel, uint32_t ckdiv)
168 {
169 uint32_t int_level = rtos_disable_int();
170 uint32_t ret = SYS_DRV_FAILURE;
171
172 sys_hal_set_auxs_clk_sel(cksel);
173 sys_hal_set_auxs_clk_div(ckdiv);
174
175 if(!ret)
176 ret = sys_amp_res_release();
177
178 rtos_enable_int(int_level);
179 return ret;
180 }
181
182 /** Jpeg End **/
183
184