356 lines
7.7 KiB
C
356 lines
7.7 KiB
C
// Copyright 2020-2021 Beken
|
|
//
|
|
// Licensed under the Apache License, Version 2.0 (the "License");
|
|
// you may not use this file except in compliance with the License.
|
|
// You may obtain a copy of the License at
|
|
//
|
|
// http://www.apache.org/licenses/LICENSE-2.0
|
|
//
|
|
// Unless required by applicable law or agreed to in writing, software
|
|
// distributed under the License is distributed on an "AS IS" BASIS,
|
|
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
// See the License for the specific language governing permissions and
|
|
// limitations under the License.
|
|
|
|
#include "sys_hal.h"
|
|
#include "sys_driver.h"
|
|
#include "sys_driver_common.h"
|
|
|
|
/** Platform Start **/
|
|
//Platform
|
|
|
|
/** Platform Misc Start **/
|
|
void sys_drv_init()
|
|
{
|
|
uint32_t int_level = sys_drv_enter_critical();
|
|
|
|
sys_amp_res_init();
|
|
sys_hal_init();
|
|
|
|
sys_drv_exit_critical(int_level);
|
|
}
|
|
|
|
/** Platform Misc End **/
|
|
|
|
uint32 sys_drv_get_chip_id(void)
|
|
{
|
|
uint32 reg = 0;
|
|
uint32_t int_level = sys_drv_enter_critical();
|
|
|
|
reg = sys_hal_get_chip_id();
|
|
|
|
sys_drv_exit_critical(int_level);
|
|
|
|
return reg;
|
|
}
|
|
|
|
// Replace sddev_control(DD_DEV_TYPE_SCTRL,CMD_GET_DEVICE_ID, NULL)
|
|
uint32 sys_drv_get_device_id(void)
|
|
{
|
|
uint32 reg = 0;
|
|
uint32_t int_level = sys_drv_enter_critical();
|
|
|
|
reg = sys_hal_get_device_id();
|
|
|
|
sys_drv_exit_critical(int_level);
|
|
|
|
return reg;
|
|
}
|
|
|
|
int32 sys_drv_set_jtag_mode(uint32 param)
|
|
{
|
|
int32 ret = 0;
|
|
uint32_t int_level = sys_drv_enter_critical();
|
|
|
|
ret = sys_hal_set_jtag_mode(param);
|
|
sys_drv_exit_critical(int_level);
|
|
|
|
return ret;
|
|
}
|
|
|
|
uint32 sys_drv_get_jtag_mode(void)
|
|
{
|
|
int32 ret = 0;
|
|
uint32_t int_level = sys_drv_enter_critical();
|
|
|
|
ret = sys_hal_get_jtag_mode();
|
|
sys_drv_exit_critical(int_level);
|
|
|
|
return ret;
|
|
}
|
|
|
|
void sys_drv_en_tempdet(uint32_t value)
|
|
{
|
|
uint32_t int_level = sys_drv_enter_critical();
|
|
|
|
sys_hal_en_tempdet(value);
|
|
sys_drv_exit_critical(int_level);
|
|
}
|
|
/** Platform End **/
|
|
|
|
uint32_t sys_drv_get_cpu_storage_connect_op_select_flash_sel(void)
|
|
{
|
|
return sys_hal_get_cpu_storage_connect_op_select_flash_sel();
|
|
}
|
|
|
|
void sys_drv_set_cpu_storage_connect_op_select_flash_sel(uint32_t value)
|
|
{
|
|
sys_hal_set_cpu_storage_connect_op_select_flash_sel(value);
|
|
}
|
|
|
|
/** Misc Start **/
|
|
//Misc
|
|
/** Misc End **/
|
|
|
|
#if 1
|
|
void system_driver_set_bts_wakeup_platform_en(bool value)
|
|
{
|
|
uint32_t ret = SYS_DRV_FAILURE;
|
|
ret = sys_amp_res_acquire();
|
|
|
|
if(value)
|
|
sys_hal_set_bts_wakeup_platform_en(1);
|
|
else
|
|
sys_hal_set_bts_wakeup_platform_en(0);
|
|
|
|
if(!ret)
|
|
ret = sys_amp_res_release();
|
|
|
|
}
|
|
uint32_t system_driver_get_bts_wakeup_platform_en()
|
|
{
|
|
return sys_hal_get_bts_wakeup_platform_en();
|
|
}
|
|
|
|
void system_driver_set_bts_sleep_exit_req(bool value)
|
|
{
|
|
if(value)
|
|
sys_hal_set_bts_sleep_exit_req(1);
|
|
else
|
|
sys_hal_set_bts_sleep_exit_req(0);
|
|
}
|
|
uint32_t system_driver_get_bts_sleep_exit_req()
|
|
{
|
|
return sys_hal_get_bts_sleep_exit_req();
|
|
}
|
|
#endif
|
|
|
|
void sys_drv_set_ana_trxt_tst_enable(uint32_t value)
|
|
{
|
|
uint32_t int_level = sys_drv_enter_critical();
|
|
|
|
sys_hal_set_ana_trxt_tst_enable(value);
|
|
sys_drv_exit_critical(int_level);
|
|
}
|
|
void sys_drv_set_ana_scal_en(uint32_t value)
|
|
{
|
|
uint32_t int_level = sys_drv_enter_critical();
|
|
|
|
sys_hal_set_ana_scal_en(value);
|
|
sys_drv_exit_critical(int_level);
|
|
}
|
|
void sys_drv_set_ana_gadc_buf_ictrl(uint32_t value)
|
|
{
|
|
uint32_t int_level = sys_drv_enter_critical();
|
|
|
|
sys_hal_set_ana_gadc_buf_ictrl(value);
|
|
sys_drv_exit_critical(int_level);
|
|
}
|
|
void sys_drv_set_ana_gadc_cmp_ictrl(uint32_t value)
|
|
{
|
|
uint32_t int_level = sys_drv_enter_critical();
|
|
|
|
sys_hal_set_ana_gadc_cmp_ictrl(value);
|
|
sys_drv_exit_critical(int_level);
|
|
}
|
|
|
|
void sys_drv_set_ana_pwd_gadc_buf(uint32_t value)
|
|
{
|
|
uint32_t int_level = sys_drv_enter_critical();
|
|
|
|
sys_hal_set_ana_pwd_gadc_buf(value);
|
|
sys_drv_exit_critical(int_level);
|
|
}
|
|
void sys_drv_set_ana_vref_sel(uint32_t value)
|
|
{
|
|
uint32_t int_level = sys_drv_enter_critical();
|
|
|
|
sys_hal_set_ana_vref_sel(value);
|
|
sys_drv_exit_critical(int_level);
|
|
}
|
|
void sys_drv_set_ana_cb_cal_manu(uint32_t value)
|
|
{
|
|
uint32_t int_level = sys_drv_enter_critical();
|
|
|
|
sys_hal_set_ana_cb_cal_manu(value);
|
|
sys_drv_exit_critical(int_level);
|
|
}
|
|
void sys_drv_set_ana_cb_cal_trig(uint32_t value)
|
|
{
|
|
uint32_t int_level = sys_drv_enter_critical();
|
|
|
|
sys_hal_set_ana_cb_cal_trig(value);
|
|
sys_drv_exit_critical(int_level);
|
|
}
|
|
|
|
UINT32 sys_drv_get_ana_cb_cal_manu_val(void)
|
|
{
|
|
uint32_t cal_manu_val;
|
|
uint32_t int_level = sys_drv_enter_critical();
|
|
|
|
cal_manu_val = sys_hal_get_ana_cb_cal_manu_val();
|
|
sys_drv_exit_critical(int_level);
|
|
return cal_manu_val;
|
|
}
|
|
|
|
void sys_drv_set_ana_cb_cal_manu_val(uint32_t value)
|
|
{
|
|
uint32_t int_level = sys_drv_enter_critical();
|
|
|
|
sys_hal_set_ana_cb_cal_manu_val(value);
|
|
sys_drv_exit_critical(int_level);
|
|
}
|
|
|
|
void sys_drv_set_ana_reg11_apfms(uint32_t value)
|
|
{
|
|
uint32_t int_level = sys_drv_enter_critical();
|
|
|
|
sys_hal_set_ana_reg11_apfms(value);
|
|
sys_drv_exit_critical(int_level);
|
|
}
|
|
|
|
void sys_drv_set_ana_reg12_dpfms(uint32_t value)
|
|
{
|
|
uint32_t int_level = sys_drv_enter_critical();
|
|
|
|
sys_hal_set_ana_reg12_dpfms(value);
|
|
sys_drv_exit_critical(int_level);
|
|
}
|
|
|
|
void sys_drv_set_ana_vlsel_ldodig(uint32_t value)
|
|
{
|
|
uint32_t int_level = sys_drv_enter_critical();
|
|
sys_hal_set_ana_vlsel_ldodig(value);
|
|
sys_drv_exit_critical(int_level);
|
|
}
|
|
void sys_drv_set_ana_vhsel_ldodig(uint32_t value)
|
|
{
|
|
uint32_t int_level = sys_drv_enter_critical();
|
|
sys_hal_set_ana_vhsel_ldodig(value);
|
|
sys_drv_exit_critical(int_level);
|
|
}
|
|
|
|
void sys_drv_set_ana_vctrl_sysldo(uint32_t value)
|
|
{
|
|
uint32_t int_level = sys_drv_enter_critical();
|
|
sys_hal_set_ana_vctrl_sysldo(value);
|
|
sys_drv_exit_critical(int_level);
|
|
}
|
|
|
|
void sys_drv_set_ana_vtempsel(uint32_t value)
|
|
{
|
|
uint32_t int_level = sys_drv_enter_critical();
|
|
sys_hal_set_ana_vtempsel(value);
|
|
sys_drv_exit_critical(int_level);
|
|
}
|
|
|
|
void sys_drv_set_ana_ioldo_lp(uint32_t value)
|
|
{
|
|
uint32_t int_level = sys_drv_enter_critical();
|
|
sys_hal_set_ioldo_lp(value);
|
|
sys_drv_exit_critical(int_level);
|
|
}
|
|
|
|
void sys_drv_set_ana_com_port_enable(uint32_t value)
|
|
{
|
|
uint32_t int_level = sys_drv_enter_critical();
|
|
|
|
sys_hal_set_slcd_com_enable(value);
|
|
|
|
sys_drv_exit_critical(int_level);
|
|
}
|
|
|
|
void sys_drv_set_ana_seg_port_enable(uint32_t value)
|
|
{
|
|
uint32_t int_level = sys_drv_enter_critical();
|
|
|
|
sys_hal_set_slcd_seg_enable(value);
|
|
|
|
sys_drv_exit_critical(int_level);
|
|
}
|
|
|
|
uint32_t sys_drv_get_ana_seg_port_enable_status(void)
|
|
{
|
|
uint32_t int_level = sys_drv_enter_critical();
|
|
|
|
uint32_t status = sys_hal_get_slcd_seg_enable_status();
|
|
|
|
sys_drv_exit_critical(int_level);
|
|
|
|
return status;
|
|
}
|
|
|
|
void sys_drv_set_ana_crb(uint32_t value)
|
|
{
|
|
uint32_t int_level = sys_drv_enter_critical();
|
|
|
|
sys_hal_set_slcd_crb(value);
|
|
|
|
sys_drv_exit_critical(int_level);
|
|
}
|
|
|
|
void sys_drv_set_ana_sw_bias(uint32_t value)
|
|
{
|
|
uint32_t int_level = sys_drv_enter_critical();
|
|
|
|
sys_hal_set_slcd_sw_bias(value);
|
|
|
|
sys_drv_exit_critical(int_level);
|
|
}
|
|
|
|
void sys_drv_set_ana_lcd_enable(void)
|
|
{
|
|
uint32_t int_level = sys_drv_enter_critical();
|
|
|
|
sys_hal_set_slcd_enable(0x1);
|
|
|
|
sys_drv_exit_critical(int_level);
|
|
}
|
|
|
|
void sys_drv_set_ana_lcd_disable(void)
|
|
{
|
|
uint32_t int_level = sys_drv_enter_critical();
|
|
|
|
sys_hal_set_slcd_enable(0x0);
|
|
|
|
sys_drv_exit_critical(int_level);
|
|
}
|
|
|
|
void sys_drv_early_init(void)
|
|
{
|
|
sys_hal_early_init();
|
|
}
|
|
|
|
__IRAM_SEC void sys_drv_set_sys2flsh_2wire(uint32_t value)
|
|
{
|
|
sys_hal_set_sys2flsh_2wire(value);
|
|
}
|
|
|
|
|
|
void sys_drv_set_cpu0_rxevt_sel(uint32 value) {
|
|
#if CONFIG_SOC_BK7236XX
|
|
sys_hal_set_cpu0_rxevt_sel(value);
|
|
#endif
|
|
}
|
|
|
|
void sys_drv_set_cpu1_rxevt_sel(uint32 value) {
|
|
#if CONFIG_SOC_BK7236XX
|
|
sys_hal_set_cpu1_rxevt_sel(value);
|
|
#endif
|
|
}
|
|
|
|
void sys_drv_set_cpu2_rxevt_sel(uint32 value) {
|
|
#if CONFIG_SOC_BK7236XX
|
|
sys_hal_set_cpu2_rxevt_sel(value);
|
|
#endif
|
|
} |