/***************************************************************************//** * @file * @brief Clock Manager - Clock Tree configuration file. ******************************************************************************* * # License * Copyright 2024 Silicon Laboratories Inc. www.silabs.com ******************************************************************************* * * SPDX-License-Identifier: Zlib * * The licensor of this software is Silicon Laboratories Inc. * * This software is provided 'as-is', without any express or implied * warranty. In no event will the authors be held liable for any damages * arising from the use of this software. * * Permission is granted to anyone to use this software for any purpose, * including commercial applications, and to alter it and redistribute it * freely, subject to the following restrictions: * * 1. The origin of this software must not be misrepresented; you must not * claim that you wrote the original software. If you use this software * in a product, an acknowledgment in the product documentation would be * appreciated but is not required. * 2. Altered source versions must be plainly marked as such, and must not be * misrepresented as being the original software. * 3. This notice may not be removed or altered from any source distribution. * ******************************************************************************/ #ifndef SL_CLOCK_MANAGER_TREE_CONFIG_H #define SL_CLOCK_MANAGER_TREE_CONFIG_H #if defined(SL_COMPONENT_CATALOG_PRESENT) #include "sl_component_catalog.h" #endif // Internal Defines: DO NOT MODIFY // Those defines are used internally to help converting the DEFAULT_HF_CLOCK_SOURCE and DEFAULT_LF_CLOCK_SOURCE // selection of each clock branch to the right HW register value. #define SL_CLOCK_MANAGER_DEFAULT_HF_CLOCK_SOURCE_HFRCODPLL 0xFF #define SL_CLOCK_MANAGER_DEFAULT_HF_CLOCK_SOURCE_HFXO 0xFE #define SL_CLOCK_MANAGER_DEFAULT_HF_CLOCK_SOURCE_FSRCO 0xFD #define SL_CLOCK_MANAGER_DEFAULT_LF_CLOCK_SOURCE_LFRCO 0xFC #define SL_CLOCK_MANAGER_DEFAULT_LF_CLOCK_SOURCE_LFXO 0xFB #define SL_CLOCK_MANAGER_DEFAULT_LF_CLOCK_SOURCE_ULFRCO 0xFA #if defined(SL_CATALOG_RAIL_LIB_PRESENT) #define SL_CLOCK_MANAGER_DEFAULT_HF_CLOCK_SOURCE_AUTO SL_CLOCK_MANAGER_DEFAULT_HF_CLOCK_SOURCE_HFXO #else #define SL_CLOCK_MANAGER_DEFAULT_HF_CLOCK_SOURCE_AUTO SL_CLOCK_MANAGER_DEFAULT_HF_CLOCK_SOURCE_HFRCODPLL #endif // <<< Use Configuration Wizard in Context Menu >>> // Clock Tree Settings // Default Clock Source Selection for HF clock branches // AUTO // HFRCODPLL // HFXO // FSRCO // Selection of the high frequency clock source. HF clock branches can select this value by chosing the DEFAULT_HF value. // AUTO uses HFXO if a radio is used and HFRCODPLL otherwise // SL_CLOCK_MANAGER_DEFAULT_HF_CLOCK_SOURCE_AUTO #ifndef SL_CLOCK_MANAGER_DEFAULT_HF_CLOCK_SOURCE #define SL_CLOCK_MANAGER_DEFAULT_HF_CLOCK_SOURCE SL_CLOCK_MANAGER_DEFAULT_HF_CLOCK_SOURCE_HFXO #endif // Default Clock Source Selection for LF clock branches // LFRCO // LFXO // ULFRCO // Selection of the low frequency clock source. LF clock branches can select this value by chosing the DEFAULT_HF value. // SL_CLOCK_MANAGER_DEFAULT_LF_CLOCK_SOURCE_LFRCO #ifndef SL_CLOCK_MANAGER_DEFAULT_LF_CLOCK_SOURCE #define SL_CLOCK_MANAGER_DEFAULT_LF_CLOCK_SOURCE SL_CLOCK_MANAGER_DEFAULT_LF_CLOCK_SOURCE_LFXO #endif // System Clock Branch Settings // Clock Source Selection for SYSCLK branch // DEFAULT_HF // FSRCO // HFRCODPLL // HFXO // CLKIN0 // Selection of the Clock source for SYSCLK // SL_CLOCK_MANAGER_DEFAULT_HF_CLOCK_SOURCE #ifndef SL_CLOCK_MANAGER_SYSCLK_SOURCE #define SL_CLOCK_MANAGER_SYSCLK_SOURCE SL_CLOCK_MANAGER_DEFAULT_HF_CLOCK_SOURCE #endif // HCLK branch divider // DIV1 // DIV2 // DIV4 // DIV8 // DIV16 // HCLK branch is derived from SYSCLK. This clock drives the AHB bus interface. // CMU_SYSCLKCTRL_HCLKPRESC_DIV1 #ifndef SL_CLOCK_MANAGER_HCLK_DIVIDER #define SL_CLOCK_MANAGER_HCLK_DIVIDER CMU_SYSCLKCTRL_HCLKPRESC_DIV1 #endif // PCLK branch divider // DIV1 // DIV2 // PCLK branch is derived from HCLK. This clock drives the APB bus interface. // CMU_SYSCLKCTRL_PCLKPRESC_DIV1 #ifndef SL_CLOCK_MANAGER_PCLK_DIVIDER #define SL_CLOCK_MANAGER_PCLK_DIVIDER CMU_SYSCLKCTRL_PCLKPRESC_DIV1 #endif // // Trace Clock Branches Settings // Clock Source Selection for TRACECLK branch // DISABLE // SYSCLK // HFRCOEM23 // HFRCODPLLRT // Selection of the Clock source for TRACECLK // CMU_TRACECLKCTRL_CLKSEL_SYSCLK #ifndef SL_CLOCK_MANAGER_TRACECLK_SOURCE #define SL_CLOCK_MANAGER_TRACECLK_SOURCE CMU_TRACECLKCTRL_CLKSEL_SYSCLK #endif // TRACECLK branch Divider // DIV1 // DIV2 // DIV3 // DIV4 // Selection of the divider value for TRACECLK branch // CMU_TRACECLKCTRL_PRESC_DIV1 #ifndef SL_CLOCK_MANAGER_TRACECLK_DIVIDER #define SL_CLOCK_MANAGER_TRACECLK_DIVIDER CMU_TRACECLKCTRL_PRESC_DIV1 #endif // // High Frequency Clock Branches Settings // Each HF Clock Tree branch can be customized, else the same clock source as for SYSCLK will be used when possible // EM01GRPACLK clock the Timer peripherals // Clock Source Selection for EM01GRPACLK branch // DEFAULT_HF // HFRCODPLL // HFXO // FSRCO // HFRCOEM23 // HFRCODPLLRT // HFXORT // Selection of the Clock source for EM01GRPACLK // SL_CLOCK_MANAGER_DEFAULT_HF_CLOCK_SOURCE #ifndef SL_CLOCK_MANAGER_EM01GRPACLK_SOURCE #define SL_CLOCK_MANAGER_EM01GRPACLK_SOURCE SL_CLOCK_MANAGER_DEFAULT_HF_CLOCK_SOURCE #endif // Clock Source Selection for EM01GRPCCLK branch // DEFAULT_HF // HFRCODPLL // HFXO // FSRCO // HFRCOEM23 // HFRCODPLLRT // HFXORT // Selection of the Clock source for EM01GRPCCLK // SL_CLOCK_MANAGER_DEFAULT_HF_CLOCK_SOURCE #ifndef SL_CLOCK_MANAGER_EM01GRPCCLK_SOURCE #define SL_CLOCK_MANAGER_EM01GRPCCLK_SOURCE SL_CLOCK_MANAGER_DEFAULT_HF_CLOCK_SOURCE #endif // Clock Source Selection for IADCCLK branch // EM01GRPACLK // FSRCO // HFRCOEM23 // Selection of the Clock source for IADCCLK // CMU_IADCCLKCTRL_CLKSEL_EM01GRPACLK #ifndef SL_CLOCK_MANAGER_IADCCLK_SOURCE #define SL_CLOCK_MANAGER_IADCCLK_SOURCE CMU_IADCCLKCTRL_CLKSEL_EM01GRPACLK #endif // // Low Frequency Clock Branches Settings // Clock Source Selection for EM23GRPACLK branch // DEFAULT_LF // LFRCO // LFXO // ULFRCO // Selection of the Clock source for EM23GRPACLK // SL_CLOCK_MANAGER_DEFAULT_LF_CLOCK_SOURCE #ifndef SL_CLOCK_MANAGER_EM23GRPACLK_SOURCE #define SL_CLOCK_MANAGER_EM23GRPACLK_SOURCE SL_CLOCK_MANAGER_DEFAULT_LF_CLOCK_SOURCE #endif // Clock Source Selection for EM4GRPACLK branch // DEFAULT_LF // LFRCO // LFXO // ULFRCO // Selection of the Clock source for EM4GRPACLK // SL_CLOCK_MANAGER_DEFAULT_LF_CLOCK_SOURCE #ifndef SL_CLOCK_MANAGER_EM4GRPACLK_SOURCE #define SL_CLOCK_MANAGER_EM4GRPACLK_SOURCE SL_CLOCK_MANAGER_DEFAULT_LF_CLOCK_SOURCE #endif // Clock Source Selection for SYSRTCCLK branch // DEFAULT_LF // LFRCO // LFXO // ULFRCO // Selection of the Clock source for SYSRTCCLK // SL_CLOCK_MANAGER_DEFAULT_LF_CLOCK_SOURCE #ifndef SL_CLOCK_MANAGER_SYSRTCCLK_SOURCE #define SL_CLOCK_MANAGER_SYSRTCCLK_SOURCE SL_CLOCK_MANAGER_DEFAULT_LF_CLOCK_SOURCE #endif // Clock Source Selection for WDOG0CLK branch // DEFAULT_LF // LFRCO // LFXO // ULFRCO // HCLKDIV1024 // Selection of the Clock source for WDOG0CLK // SL_CLOCK_MANAGER_DEFAULT_LF_CLOCK_SOURCE #ifndef SL_CLOCK_MANAGER_WDOG0CLK_SOURCE #define SL_CLOCK_MANAGER_WDOG0CLK_SOURCE SL_CLOCK_MANAGER_DEFAULT_LF_CLOCK_SOURCE #endif // Clock Source Selection for WDOG1CLK branch // DEFAULT_LF // LFRCO // LFXO // ULFRCO // HCLKDIV1024 // Selection of the Clock source for WDOG1CLK // SL_CLOCK_MANAGER_DEFAULT_LF_CLOCK_SOURCE #ifndef SL_CLOCK_MANAGER_WDOG1CLK_SOURCE #define SL_CLOCK_MANAGER_WDOG1CLK_SOURCE SL_CLOCK_MANAGER_DEFAULT_LF_CLOCK_SOURCE #endif // Clock Source Selection for PCNT0CLK branch // DISABLED // EM23GRPACLK // PCNTS0 // Selection of the Clock source for PCNT0CLK // CMU_PCNT0CLKCTRL_CLKSEL_EM23GRPACLK #ifndef SL_CLOCK_MANAGER_PCNT0CLK_SOURCE #define SL_CLOCK_MANAGER_PCNT0CLK_SOURCE CMU_PCNT0CLKCTRL_CLKSEL_EM23GRPACLK #endif // // Mixed Frequency Clock Branch Settings // Clock Source Selection for EUSART0CLK branch // DISABLED // EM01GRPCCLK // HFRCOEM23 // LFRCO // LFXO // Selection of the Clock source for EUSART0CLK // CMU_EUSART0CLKCTRL_CLKSEL_EM01GRPCCLK #ifndef SL_CLOCK_MANAGER_EUSART0CLK_SOURCE #define SL_CLOCK_MANAGER_EUSART0CLK_SOURCE CMU_EUSART0CLKCTRL_CLKSEL_EM01GRPCCLK #endif // Clock Source Selection for SYSTICKCLK branch // <0=> HCLK // <1=> EM23GRPACLK // Selection of the Clock source for SYSTICKCLK // 0 #ifndef SL_CLOCK_MANAGER_SYSTICKCLK_SOURCE #define SL_CLOCK_MANAGER_SYSTICKCLK_SOURCE 0 #endif // Clock Source Selection for VDAC0CLK branch // DISABLED // EM01GRPACLK // EM23GRPACLK // FSRCO // HFRCOEM23 // Selection of the Clock source for VDAC0CLK // CMU_VDAC0CLKCTRL_CLKSEL_EM01GRPACLK #ifndef SL_CLOCK_MANAGER_VDAC0CLK_SOURCE #define SL_CLOCK_MANAGER_VDAC0CLK_SOURCE CMU_VDAC0CLKCTRL_CLKSEL_EM01GRPACLK #endif // Clock Source Selection for VDAC1CLK branch // DISABLED // EM01GRPACLK // EM23GRPACLK // FSRCO // HFRCOEM23 // Selection of the Clock source for VDAC1CLK // CMU_VDAC1CLKCTRL_CLKSEL_EM01GRPACLK #ifndef SL_CLOCK_MANAGER_VDAC1CLK_SOURCE #define SL_CLOCK_MANAGER_VDAC1CLK_SOURCE CMU_VDAC1CLKCTRL_CLKSEL_EM01GRPACLK #endif // // #endif /* SL_CLOCK_MANAGER_TREE_CONFIG_H */ // <<< end of configuration section >>>