/***************************************************************************//**
* @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 >>>