mirror of
https://github.com/RIOT-OS/RIOT.git
synced 2024-12-29 04:50:03 +01:00
951a99dba3
This function trims the necessary registers for the device to operate normally. Signed-off-by: Jean Pierre Dudey <jeandudey@hotmail.com>
122 lines
3.5 KiB
C
122 lines
3.5 KiB
C
/*
|
|
* Copyright (C) 2020 Locha Inc
|
|
*
|
|
* This file is subject to the terms and conditions of the GNU Lesser
|
|
* General Public License v2.1. See the file LICENSE in the top level
|
|
* directory for more details.
|
|
*/
|
|
|
|
/**
|
|
* @ingroup cpu_cc26x2_cc13x2
|
|
* @{
|
|
*
|
|
* @file
|
|
* @brief CC26x2/CC13x2 Device setup functions
|
|
*/
|
|
|
|
#ifndef CC26X2_CC13X2_SETUP_H
|
|
#define CC26X2_CC13X2_SETUP_H
|
|
|
|
#include <cc26xx_cc13xx.h>
|
|
|
|
#ifdef __cplusplus
|
|
extern "C" {
|
|
#endif
|
|
|
|
/**
|
|
* @brief Setup API address
|
|
*/
|
|
#define ROM_API_SETUP ((uint32_t *) (ROM_API_TABLE[28]))
|
|
|
|
/**
|
|
* @brief Setup API ROM functions
|
|
* @{
|
|
*/
|
|
#define rom_setup_after_cold_reset_wakeup_from_shutdown_cfg1 \
|
|
((void (*)(uint32_t mode_conf))ROM_API_SETUP[0])
|
|
|
|
#define rom_setup_after_cold_reset_wakeup_from_shutdown_cfg2 \
|
|
((void (*)(uint32_t rev, uint32_t mode_conf))ROM_API_SETUP[1])
|
|
|
|
#define rom_setup_after_cold_reset_wakeup_from_shutdown_cfg3 \
|
|
((void (*)(uint32_t mode_conf))ROM_API_SETUP[2])
|
|
|
|
#define rom_setup_get_trim_for_adc_sh_mode_en \
|
|
((uint32_t (*)(uint32_t rev))ROM_API_SETUP[3])
|
|
|
|
#define rom_setup_get_trim_for_adc_sh_vbuf_en \
|
|
((uint32_t (*)(uint32_t rev))ROM_API_SETUP[4])
|
|
|
|
#define rom_setup_get_trim_for_ampcomp_ctrl \
|
|
((uint32_t (*)(uint32_t rev))ROM_API_SETUP[5])
|
|
|
|
#define rom_setup_get_trim_for_ampcomp_th1 \
|
|
((uint32_t (*)(void))ROM_API_SETUP[6])
|
|
|
|
#define rom_setup_get_trim_for_ampcomp_th2 \
|
|
((uint32_t (*)(void))ROM_API_SETUP[7])
|
|
|
|
#define rom_setup_get_trim_for_anabypass_value1 \
|
|
((uint32_t (*)(uint32_t mode_conf))ROM_API_SETUP[8])
|
|
|
|
#define rom_setup_get_trim_for_dblr_loop_filter_reset_voltage \
|
|
((uint32_t (*)(uint32_t rev))ROM_API_SETUP[9])
|
|
|
|
#define rom_setup_get_trim_for_radc_ext_cfg \
|
|
((uint32_t (*)(uint32_t rev))ROM_API_SETUP[10])
|
|
|
|
#define rom_setup_get_trim_for_rc_osc_lf_ibias_trim \
|
|
((uint32_t (*)(uint32_t rev))ROM_API_SETUP[11])
|
|
|
|
#define rom_setup_get_trim_for_rc_osc_lf_rtune_ctune_trim \
|
|
((uint32_t (*)(void))ROM_API_SETUP[12])
|
|
|
|
#define rom_setup_get_trim_for_xosc_hf_ctl \
|
|
((uint32_t (*)(uint32_t rev))ROM_API_SETUP[13])
|
|
|
|
#define rom_setup_get_trim_for_xosc_hf_fast_start \
|
|
((uint32_t (*)(void))ROM_API_SETUP[14])
|
|
|
|
#define rom_setup_get_trim_for_xosc_hf_ibiastherm \
|
|
((uint32_t (*)(void))ROM_API_SETUP[15])
|
|
|
|
#define rom_setup_get_trim_for_xosc_lf_regulator_and_cmirrwr_ratio \
|
|
((uint32_t (*)(uint32_t rev))ROM_API_SETUP[16])
|
|
|
|
#define rom_setup_set_aon_rtc_sub_sec_inc \
|
|
((void (*)(uint32_t subsecinc))ROM_API_SETUP[17])
|
|
|
|
#define rom_setup_set_cache_mode_according_to_ccfg_setting \
|
|
((void (*)(void))ROM_API_SETUP[18])
|
|
|
|
#define rom_setup_step_vddr_trim_to \
|
|
((void (*)(uint32_t tocode))ROM_API_SETUP[19])
|
|
/** @} */
|
|
|
|
/**
|
|
* @brief Performs the necessary trim of the device which is not done in ROM
|
|
* boot code.
|
|
*
|
|
* The following is handled by this function:
|
|
*
|
|
* - Checks if the driverlib variant used by the application is supported by the
|
|
* device. Execution is halted in case of unsupported driverlib variant.
|
|
* - Configures VIMS cache mode based on setting in CCFG.
|
|
* - Configures functionalities like DCDC and XOSC dependent on startup modes
|
|
* like cold reset, wakeup from shutdown and wakeup from from powerdown.
|
|
* - Configures VIMS power domain control.
|
|
* - Configures optimal wait time for flash FSM in cases where flash pump wakes
|
|
* up from sleep.
|
|
*
|
|
* @note It does no damage to execute this function again. It only consumes
|
|
* time.
|
|
*/
|
|
void setup_trim_device(void);
|
|
|
|
#ifdef __cplusplus
|
|
} /* end extern "C" */
|
|
#endif
|
|
|
|
#endif /* CC26X2_CC13X2_SETUP_H */
|
|
/** @} */
|