| /** |
| * \addtogroup BSP |
| * \{ |
| * \addtogroup SYSTEM |
| * \{ |
| * \addtogroup TCS_HANDLER |
| * |
| * \brief TCS Handler |
| * |
| * \{ |
| */ |
| |
| /** |
| **************************************************************************************** |
| * |
| * @file sys_tcs.h |
| * |
| * @brief TCS Handler header file. |
| * |
| * Copyright (c) 2016, Dialog Semiconductor |
| * All rights reserved. |
| * Redistribution and use in source and binary forms, with or without modification, |
| * are permitted provided that the following conditions are met: |
| * 1. Redistributions of source code must retain the above copyright notice, |
| * this list of conditions and the following disclaimer. |
| * 2. Redistributions in binary form must reproduce the above copyright notice, |
| * this list of conditions and the following disclaimer in the documentation |
| * and/or other materials provided with the distribution. |
| * 3. Neither the name of the copyright holder nor the names of its contributors |
| * may be used to endorse or promote products derived from this software without |
| * specific prior written permission. |
| * |
| * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" |
| * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED |
| * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. |
| * IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, |
| * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, |
| * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, |
| * OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, |
| * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) |
| * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED |
| * OF THE POSSIBILITY OF SUCH DAMAGE. |
| * |
| * |
| **************************************************************************************** |
| */ |
| |
| #ifndef SYS_TCS_H_ |
| #define SYS_TCS_H_ |
| |
| #include <stdint.h> |
| #include "sdk_defs.h" |
| |
| typedef enum sys_tcs_area_type { |
| #ifdef CONFIG_USE_BLE |
| tcs_ble, |
| #endif |
| #ifdef CONFIG_USE_FTDF |
| tcs_ftdf, |
| #endif |
| tcs_radio, |
| tcs_charger, |
| tcs_audio, |
| tcs_system, /* Last area. Add any missing areas above this! */ |
| } sys_tcs_area_t; |
| |
| /** |
| * \brief Flag to check whether the TCS is written or not. |
| * \details true, the TCS is written (the BANDGAP_REG value exists in the TCS) |
| * false, the TCS is empty |
| */ |
| extern bool sys_tcs_is_calibrated_chip; |
| |
| /** |
| * \brief The XTAL16M settling time (in TCS). |
| * \details XTAL32K, the settling time is expressed in clock cycles |
| * RCX, not applicable; the SDK hard-coded value is used |
| * If it is zero, the hard-coded value (dg_configXTAL16_SETTLE_TIME) is applied. |
| */ |
| extern uint16_t sys_tcs_xtal16m_settling_time; |
| |
| /** |
| * \brief Initialize the variables used from the TCS handling module. |
| * |
| */ |
| void sys_tcs_init(void); |
| |
| /** |
| * \brief Store TCS <address, value> pair in the Global TCS array if it points to a register |
| * that is not in the AON power dowmain or is not retained, else it applies the vaule to |
| * the register. |
| * |
| * \param [in] address the address of the register |
| * \param [in] value the value for this register |
| * |
| * \return true if the chip is calibrated (the BANDGAP setting has been applied), else false. |
| * |
| * \warning When this function is called, the RC16 must have been set as the system clock! |
| * |
| */ |
| bool sys_tcs_store_pair(uint32_t address, uint32_t value); |
| |
| /** |
| * \brief Sort the registers of the registers in the Memory Map of the chip to a different "classes" |
| * in the TCS array. |
| * |
| */ |
| void sys_tcs_sort_array(void); |
| |
| /** |
| * \brief Apply the <address, value> pairs located in a "class" of the TCS array. This is done only |
| * for calibrated chips! |
| * |
| */ |
| void sys_tcs_apply(sys_tcs_area_t area); |
| |
| #endif /* SYS_TCS_H_ */ |
| |
| /** |
| \} |
| \} |
| \} |
| */ |