• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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 
16 #include <common/bk_include.h>
17 #include "sbc_ll_macro_def.h"
18 #include <driver/sbc_types.h>
19 
20 
sbc_decoder_hal_sbc_config(const sbc_config_t * config)21 void sbc_decoder_hal_sbc_config(const sbc_config_t *config)
22 {
23 	sbc_ll_set_sbc_ctrl_sbc_channel(config->channel_num);
24 	sbc_ll_set_sbc_ctrl_sbc_subband(config->subbands);
25 	sbc_ll_set_sbc_ctrl_sbc_chn_comb(config->chn_comb);
26 	sbc_ll_set_sbc_ctrl_sbc_blocks(config->blocks);
27 }
28 
sbc_decoder_hal_sbc_enable(void)29 void sbc_decoder_hal_sbc_enable(void)
30 {
31 	sbc_ll_set_sbc_ctrl_sbc_en(0x1);
32 }
33 
sbc_decoder_hal_get_sbc_status_value(void)34 uint32_t sbc_decoder_hal_get_sbc_status_value(void)
35 {
36 	return sbc_ll_get_sbc_ctrl_sbc_en();
37 }
38 
sbc_decoder_hal_sbc_support_msbc(bool enable)39 void sbc_decoder_hal_sbc_support_msbc(bool enable)
40 {
41 	if(enable) {
42 		sbc_ll_set_sbc_ctrl_msbc_support(0x1);
43 	}else {
44 		sbc_ll_set_sbc_ctrl_msbc_support(0x0);
45 	}
46 }
47 
sbc_decoder_hal_get_sbc_ctrl_value(void)48 uint32_t sbc_decoder_hal_get_sbc_ctrl_value(void)
49 {
50 	return sbc_ll_get_sbc_ctrl_value();
51 }
52 
sbc_decoder_hal_sbc_clear_interrupt_status(void)53 void sbc_decoder_hal_sbc_clear_interrupt_status(void)
54 {
55 	sbc_ll_set_sbc_state_sbc_int(0x1);
56 }
57 
sbc_decoder_hal_get_sbc_interrupt_status(void)58 uint32_t sbc_decoder_hal_get_sbc_interrupt_status(void)
59 {
60 	return sbc_ll_get_sbc_state_sbc_int();
61 }
62 
sbc_decoder_hal_get_sbc_idle_status(void)63 uint32_t sbc_decoder_hal_get_sbc_idle_status(void)
64 {
65 	return sbc_ll_get_sbc_state_sbc_idle();
66 }
67 
sbc_decoder_hal_set_res_bytel_value(uint32_t bytel_value)68 void sbc_decoder_hal_set_res_bytel_value(uint32_t bytel_value)
69 {
70 	sbc_ll_set_res_bytel_value(bytel_value);
71 }
72 
sbc_decoder_hal_set_res_bytem_value(uint32_t bytem_value)73 void sbc_decoder_hal_set_res_bytem_value(uint32_t bytem_value)
74 {
75 	sbc_ll_set_res_bytem_value(bytem_value);
76 }
77 
sbc_decoder_hal_set_res_byteh_value(uint32_t byteh_value)78 void sbc_decoder_hal_set_res_byteh_value(uint32_t byteh_value)
79 {
80 	sbc_ll_set_res_bytel_value(byteh_value);
81 }
82 
sbc_decoder_hal_set_sbc_bit_num(uint32_t value)83 void sbc_decoder_hal_set_sbc_bit_num(uint32_t value)
84 {
85 	sbc_ll_set_bit_num_sbc_bitnum(value);
86 }
87 
sbc_decoder_hal_set_scale_factor(uint32_t value)88 void sbc_decoder_hal_set_scale_factor(uint32_t value)
89 {
90 	sbc_ll_set_sf_sbc_scale_factor(value);
91 }
92 
sbc_decoder_hal_set_sbc_level(uint32_t value)93 void sbc_decoder_hal_set_sbc_level(uint32_t value)
94 {
95 	sbc_ll_set_level_sbc_level(value);
96 }
97 
sbc_decoder_hal_set_sbc_res_bit(uint32_t value)98 void sbc_decoder_hal_set_sbc_res_bit(uint32_t value)
99 {
100 	sbc_ll_set_res_bit_sbc_res_bit(value);
101 }
102 
sbc_decoder_hal_decode_enable(void)103 void sbc_decoder_hal_decode_enable(void)
104 {
105 	sbc_ll_set_dec_en_value(0x1);
106 }
107 
sbc_decoder_hal_get_decode_enable_value(void)108 uint32_t sbc_decoder_hal_get_decode_enable_value(void)
109 {
110 	return sbc_ll_get_dec_en_value();
111 }
112 
sbc_decoder_hal_get_pcm_data(void)113 uint32_t sbc_decoder_hal_get_pcm_data(void)
114 {
115 	uint32_t pcm_data = 0;
116 	pcm_data = sbc_ll_get_pcm_data_value();
117 	return pcm_data;
118 }
119 
sbc_decoder_hal_mem_init(void)120 void sbc_decoder_hal_mem_init(void)
121 {
122 	uint32_t i = 0;
123 	uint32_t j = 0;
124 	uint32_t *addr_mem0 = (uint32_t *)SBC_SBC_MEM0_ADDR;
125 	uint32_t *addr_mem1 = (uint32_t *)SBC_SBC_MEM1_ADDR;
126 
127 	for(i = 0; i < 256; i++)
128 	{
129 		addr_mem0[i] = 0;
130 	}
131 
132 	for(j = 0; j < 320; j++)
133 	{
134 		addr_mem1[j] = 0;
135 	}
136 }
137 
138 
139