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)21void 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)29void 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)34uint32_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)39void 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)48uint32_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)53void 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)58uint32_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)63uint32_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)68void 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)73void 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)78void 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)83void 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)88void 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)93void 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)98void 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)103void 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)108uint32_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)113uint32_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)120void 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