summaryrefslogtreecommitdiffstats
path: root/c/src/lib/libbsp/arm/altera-cyclone-v/hwlib/include/alt_clock_manager.h
diff options
context:
space:
mode:
Diffstat (limited to 'c/src/lib/libbsp/arm/altera-cyclone-v/hwlib/include/alt_clock_manager.h')
-rw-r--r--c/src/lib/libbsp/arm/altera-cyclone-v/hwlib/include/alt_clock_manager.h1434
1 files changed, 0 insertions, 1434 deletions
diff --git a/c/src/lib/libbsp/arm/altera-cyclone-v/hwlib/include/alt_clock_manager.h b/c/src/lib/libbsp/arm/altera-cyclone-v/hwlib/include/alt_clock_manager.h
deleted file mode 100644
index d6d96544f7..0000000000
--- a/c/src/lib/libbsp/arm/altera-cyclone-v/hwlib/include/alt_clock_manager.h
+++ /dev/null
@@ -1,1434 +0,0 @@
-/*! \file
- * Contains definitions for the Altera Hardware Libraries Clock Manager
- * Application Programming Interface
- */
-
-/******************************************************************************
-*
-* Copyright 2013 Altera Corporation. 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. The name of the author may not be used to endorse or promote products
-* derived from this software without specific prior written permission.
-*
-* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDER "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 AUTHOR 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 __ALT_CLK_MGR_H__
-#define __ALT_CLK_MGR_H__
-
-#include "hwlib.h"
-#include "alt_clock_group.h"
-
-#ifdef __cplusplus
-extern "C"
-{
-#endif /* __cplusplus */
-
-/*! \addtogroup CLK_MGR The Clock Manager API
- *
- * This module defines the Clock Manager API for accessing, configuring, and
- * controlling the HPS clock resources.
- *
- * @{
- */
-
-/******************************************************************************/
-/*!
- * This type definition is an opaque type definition for clock frequency values
- * in Hz.
- */
-typedef uint32_t alt_freq_t;
-
-/******************************************************************************/
-/*!
- * This type definition enumerates the names of the clock and PLL resources
- * managed by the Clock Manager.
- */
-typedef enum ALT_CLK_e
-{
- /* Clock Input Pins */
- ALT_CLK_IN_PIN_OSC1,
- /*!< \b OSC_CLK_1_HPS
- * External oscillator input:
- * * Input Pin
- * * Clock source to Main PLL
- * * Clock source to SDRAM PLL
- * and Peripheral PLL if selected via
- * register write
- * * Clock source for clock in safe mode
- */
-
- ALT_CLK_IN_PIN_OSC2,
- /*!< \b OSC_CLK_2_HPS
- * External Oscillator input:
- * * Input Pin
- * * Optional clock source to SDRAM PLL
- * and Peripheral PLL if selected
- * * Typically used for Ethernet
- * reference clock
- */
-
-
- /* FPGA Clock Sources External to HPS */
- ALT_CLK_F2H_PERIPH_REF,
- /*<! Alternate clock source from FPGA
- * for HPS Peripheral PLL. */
-
- ALT_CLK_F2H_SDRAM_REF,
- /*<! Alternate clock source from FPGA
- * for HPS SDRAM PLL. */
-
-
- /* Other Clock Sources External to HPS */
- ALT_CLK_IN_PIN_JTAG,
- /*!< \b JTAG_TCK_HPS
- * * Input Pin
- * * External HPS JTAG clock input.
- */
-
- ALT_CLK_IN_PIN_ULPI0,
- /*!< \b ULPI0_CLK
- * ULPI Clock provided by external USB0
- * PHY
- * * Input Pin
- */
-
- ALT_CLK_IN_PIN_ULPI1,
- /*!< \b ULPI1_CLK
- * ULPI Clock provided by external USB1
- * PHY
- * * Input Pin
- */
-
- ALT_CLK_IN_PIN_EMAC0_RX,
- /*!< \b EMAC0:RX_CLK
- * Rx Reference Clock for EMAC0
- * * Input Pin
- */
-
- ALT_CLK_IN_PIN_EMAC1_RX,
- /*!< \b EMAC1:RX_CLK
- * Rx Reference Clock for EMAC1
- * * Input Pin
- */
-
-
- /* PLLs */
- ALT_CLK_MAIN_PLL,
- /*!< \b main_pll_ref_clkin
- * Main PLL input reference clock,
- * used to designate the Main PLL in
- * PLL clock selections.
- */
-
- ALT_CLK_PERIPHERAL_PLL,
- /*!< \b periph_pll_ref_clkin
- * Peripheral PLL input reference
- * clock, used to designate the
- * Peripheral PLL in PLL clock
- * selections.
- */
-
- ALT_CLK_SDRAM_PLL,
- /*!< \b sdram_pll_ref_clkin
- * SDRAM PLL input reference clock,
- * used to designate the SDRAM PLL in
- * PLL clock selections.
- */
-
- /* OSC1 Clock Group - The OSC1 clock group contains those clocks which are derived
- * directly from the osc_clk_1_HPS pin */
- ALT_CLK_OSC1,
- /*!< \b osc1_clk
- * OSC1 Clock Group - The
- * OSC1 clock group contains
- * those clocks which are
- * derived directly from the
- * osc_clk_1_HPS pin.
- * * alias for ALT_CLK_IN_PIN_OSC1
- */
-
- /* Main Clock Group - The following clocks are derived from the Main PLL. */
- ALT_CLK_MAIN_PLL_C0,
- /*!< \b Main PLL C0 Output */
-
- ALT_CLK_MAIN_PLL_C1,
- /*!< \b Main PLL C1 Output */
-
- ALT_CLK_MAIN_PLL_C2,
- /*!< \b Main PLL C2 Output */
-
- ALT_CLK_MAIN_PLL_C3,
- /*!< \b Main PLL C3 Output */
-
- ALT_CLK_MAIN_PLL_C4,
- /*!< \b Main PLL C4 Output */
-
- ALT_CLK_MAIN_PLL_C5,
- /*!< \b Main PLL C5 Output */
-
- ALT_CLK_MPU,
- /*!< \b mpu_clk
- * Main PLL C0 Output. Clock for MPU
- * subsystem, including CPU0 and CPU1.
- * * Alias for \e ALT_CLK_MAIN_PLL_C0
- */
-
- ALT_CLK_MPU_L2_RAM,
- /*!< \b mpu_l2_ram_clk
- * Clock for MPU level 2 (L2) RAM
- */
-
- ALT_CLK_MPU_PERIPH,
- /*!< \b mpu_periph_clk
- * Clock for MPU snoop control unit
- * (SCU) peripherals, such as the
- * general interrupt controller (GIC)
- */
-
- ALT_CLK_L3_MAIN,
- /*!< \b main_clk
- * Main PLL C1 Output
- * * Alias for \e ALT_CLK_MAIN_PLL_C1
- */
-
- ALT_CLK_L3_MP,
- /*!< \b l3_mp_clk
- * Clock for L3 Master Peripheral Switch
- */
-
- ALT_CLK_L3_SP,
- /*!< \b l3_sp_clk
- * Clock for L3 Slave Peripheral Switch
- */
-
- ALT_CLK_L4_MAIN,
- /*!< \b l4_main_clk
- * Clock for L4 main bus
- * * Clock for DMA
- * * Clock for SPI masters
- */
-
- ALT_CLK_L4_MP,
- /*!< \b l4_mp_clk
- * Clock for L4 master peripherals (MP) bus
- */
-
- ALT_CLK_L4_SP,
- /*!< \b l4_sp_clk
- * Clock for L4 slave peripherals (SP) bus
- */
-
- ALT_CLK_DBG_BASE,
- /*!< \b dbg_base_clk
- * Main PLL C2 Output
- * * Alias for \e ALT_CLK_MAIN_PLL_C2
- */
-
- ALT_CLK_DBG_AT,
- /*!< \b dbg_at_clk
- * Clock for CoreSight debug Advanced
- * Microcontroller Bus Architecture
- * (AMBA) Trace Bus (ATB)
- */
-
- ALT_CLK_DBG_TRACE,
- /*!< \b dbg_trace_clk
- * Clock for CoreSight debug Trace
- * Port Interface Unit (TPIU)
- */
-
- ALT_CLK_DBG_TIMER,
- /*!< \b dbg_timer_clk
- * Clock for the trace timestamp
- * generator
- */
-
- ALT_CLK_DBG,
- /*!< \b dbg_clk
- * Clock for Debug Access Port (DAP)
- * and debug Advanced Peripheral Bus
- * (APB)
- */
-
- ALT_CLK_MAIN_QSPI,
- /*!< \b main_qspi_clk
- * Main PLL C3 Output. Quad SPI flash
- * internal logic clock.
- * * Alias for \e ALT_CLK_MAIN_PLL_C3
- */
-
- ALT_CLK_MAIN_NAND_SDMMC,
- /*!< \b main_nand_sdmmc_clk
- * Main PLL C4 Output. Input clock to
- * flash controller clocks block.
- * * Alias for \e ALT_CLK_MAIN_PLL_C4
- */
-
- ALT_CLK_CFG,
- /*!< \b cfg_clk
- * FPGA manager configuration clock.
- */
-
- ALT_CLK_H2F_USER0,
- /*!< \b h2f_user0_clock
- * Clock to FPGA fabric
- */
-
-
- /* Peripherals Clock Group - The following clocks are derived from the Peripheral PLL */
- ALT_CLK_PERIPHERAL_PLL_C0,
- /*!< \b Peripheral PLL C0 Output */
-
- ALT_CLK_PERIPHERAL_PLL_C1,
- /*!< \b Peripheral PLL C1 Output */
-
- ALT_CLK_PERIPHERAL_PLL_C2,
- /*!< \b Peripheral PLL C2 Output */
-
- ALT_CLK_PERIPHERAL_PLL_C3,
- /*!< \b Peripheral PLL C3 Output */
-
- ALT_CLK_PERIPHERAL_PLL_C4,
- /*!< \b Peripheral PLL C4 Output */
-
- ALT_CLK_PERIPHERAL_PLL_C5,
- /*!< \b Peripheral PLL C5 Output */
-
- ALT_CLK_USB_MP,
- /*!< \b usb_mp_clk
- * Clock for USB
- */
-
- ALT_CLK_SPI_M,
- /*!< \b spi_m_clk
- * Clock for L4 SPI master bus
- */
-
- ALT_CLK_QSPI,
- /*!< \b qspi_clk
- * Clock for Quad SPI
- */
-
- ALT_CLK_NAND_X,
- /*!< \b nand_x_clk
- * NAND flash controller master and
- * slave clock
- */
-
- ALT_CLK_NAND,
- /*!< \b nand_clk
- * Main clock for NAND flash
- * controller
- */
-
- ALT_CLK_SDMMC,
- /*!< \b sdmmc_clk
- * Clock for SD/MMC logic input clock
- */
-
- ALT_CLK_EMAC0,
- /*!< \b emac0_clk
- * EMAC 0 clock - Peripheral PLL C0
- * Output
- * * Alias for \e ALT_CLK_PERIPHERAL_PLL_C0
- */
-
- ALT_CLK_EMAC1,
- /*!< \b emac1_clk
- * EMAC 1 clock - Peripheral PLL C1
- * Output
- * * Alias for \e ALT_CLK_PERIPHERAL_PLL_C1
- */
-
- ALT_CLK_CAN0,
- /*!< \b can0_clk
- * Controller area network (CAN)
- * controller 0 clock
- */
-
- ALT_CLK_CAN1,
- /*!< \b can1_clk
- * Controller area network (CAN)
- * controller 1 clock
- */
-
- ALT_CLK_GPIO_DB,
- /*!< \b gpio_db_clk
- * Debounce clock for GPIO0, GPIO1,
- * and GPIO2
- */
-
- ALT_CLK_H2F_USER1,
- /*!< \b h2f_user1_clock
- * Clock to FPGA fabric - Peripheral
- * PLL C5 Output
- * * Alias for \e ALT_CLK_PERIPHERAL_PLL_C5
- */
-
-
- /* SDRAM Clock Group - The following clocks are derived from the SDRAM PLL */
- ALT_CLK_SDRAM_PLL_C0,
- /*!< \b SDRAM PLL C0 Output */
-
- ALT_CLK_SDRAM_PLL_C1,
- /*!< \b SDRAM PLL C1 Output */
-
- ALT_CLK_SDRAM_PLL_C2,
- /*!< \b SDRAM PLL C2 Output */
-
- ALT_CLK_SDRAM_PLL_C3,
- /*!< \b SDRAM PLL C3 Output */
-
- ALT_CLK_SDRAM_PLL_C4,
- /*!< \b SDRAM PLL C4 Output */
-
- ALT_CLK_SDRAM_PLL_C5,
- /*!< \b SDRAM PLL C5 Output */
-
- ALT_CLK_DDR_DQS,
- /*!< \b ddr_dqs_clk
- * Clock for MPFE, single-port
- * controller, CSR access, and PHY -
- * SDRAM PLL C0 Output
- * * Alias for \e ALT_CLK_SDRAM_PLL_C0
- */
-
- ALT_CLK_DDR_2X_DQS,
- /*!< \b ddr_2x_dqs_clk
- * Clock for PHY - SDRAM PLL C1 Output
- * * Alias for \e ALT_CLK_SDRAM_PLL_C1
- */
-
- ALT_CLK_DDR_DQ,
- /*!< \b ddr_dq_clk
- * Clock for PHY - SDRAM PLL C2 Output
- * * Alias for \e ALT_CLK_SDRAM_PLL_C2
- */
-
- ALT_CLK_H2F_USER2,
- /*!< \b h2f_user2_clock
- * Clock to FPGA fabric - SDRAM PLL C5
- * Output
- * * Alias for \e ALT_CLK_SDRAM_PLL_C5
- */
-
- /* Clock Output Pins */
- ALT_CLK_OUT_PIN_EMAC0_TX,
- /*!< \b EMAC0:TX_CLK
- * Tx Reference Clock for EMAC0
- * * Output Pin
- */
-
- ALT_CLK_OUT_PIN_EMAC1_TX,
- /*!< \b EMAC1:TX_CLK
- * Tx Reference Clock for EMAC1
- * * Output Pin
- */
-
- ALT_CLK_OUT_PIN_SDMMC,
- /*!< \b SDMMC:CLK
- * SD/MMC Card Clock
- * * Output Pin
- */
-
- ALT_CLK_OUT_PIN_I2C0_SCL,
- /*!< \b I2C0:SCL
- * I2C Clock for I2C0
- * * Output Pin
- */
-
- ALT_CLK_OUT_PIN_I2C1_SCL,
- /*!< \b I2C1:SCL
- * I2C Clock for I2C1
- * * Output Pin
- */
-
- ALT_CLK_OUT_PIN_I2C2_SCL,
- /*!< \b I2C2:SCL
- * I2C Clock for I2C2/2 wire
- * * Output Pin
- */
-
- ALT_CLK_OUT_PIN_I2C3_SCL,
- /*!< \b I2C3:SCL
- * I2C Clock for I2C1/2 wire
- * * Output Pin
- */
-
- ALT_CLK_OUT_PIN_SPIM0,
- /*!< \b SPIM0:CLK
- * SPI Clock
- * * Output Pin
- */
-
- ALT_CLK_OUT_PIN_SPIM1,
- /*!< \b SPIM1:CLK
- * SPI Clock
- * * Output Pin
- */
-
- ALT_CLK_OUT_PIN_QSPI,
- /*!< \b QSPI:CLK
- * QSPI Flash Clock
- * * Output Pin
- */
-
- ALT_CLK_UNKNOWN
-} ALT_CLK_t;
-
-/******************************************************************************/
-/*! \addtogroup CLK_MGR_STATUS Clock Manager Status
- *
- * This functional group provides status information on various aspects and
- * properties of the Clock Manager state.
- *
- * @{
- */
-/******************************************************************************/
-/*!
- * This type definition defines the lock condition status codes for each of the
- * PLLs. If the PLL lock status condition is enabled (See: alt_clk_irq_enable())
- * then it contributes to the overall \b clkmgr_IRQ signal assertion state.
- */
-typedef enum ALT_CLK_PLL_LOCK_STATUS_e
-{
- ALT_MAIN_PLL_LOCK_ACHV = 0x00000001, /*!< This condition is set if the Main
- * PLL has achieved lock at least once
- * since this condition was last
- * cleared.
- */
- ALT_PERIPH_PLL_LOCK_ACHV = 0x00000002, /*!< This condition is set if the Peripheral
- * PLL has achieved lock at least once
- * since this condition was last
- * cleared.
- */
- ALT_SDR_PLL_LOCK_ACHV = 0x00000004, /*!< This condition is set if the SDRAM
- * PLL has achieved lock at least once
- * since this condition was last
- * cleared.
- */
- ALT_MAIN_PLL_LOCK_LOST = 0x00000008, /*!< This condition is set if the Main
- * PLL has lost lock at least once
- * since this condition was last
- * cleared.
- */
- ALT_PERIPH_PLL_LOCK_LOST = 0x00000010, /*!< This condition is set if the Peripheral
- * PLL has lost lock at least once
- * since this condition was last
- * cleared.
- */
- ALT_SDR_PLL_LOCK_LOST = 0x00000020 /*!< This condition is set if the SDRAM
- * PLL has lost lock at least once
- * since this condition was last
- * cleared.
- */
-} ALT_CLK_PLL_LOCK_STATUS_t;
-
-/******************************************************************************/
-/*!
- * Clear the selected PLL lock status conditions.
- *
- * This function clears assertions of one or more of the PLL lock status
- * conditions.
- *
- * NOTE: This function is used to clear \b clkmgr_IRQ interrupt signal source
- * assertion conditions.
- *
- * \param lock_stat_mask
- * Specifies the PLL lock status conditions to clear. \e lock_stat_mask
- * is a mask of logically OR'ed \ref ALT_CLK_PLL_LOCK_STATUS_t
- * values designating the PLL lock conditions to clear.
- *
- * \retval ALT_E_SUCCESS Successful status.
- * \retval ALT_E_BAD_ARG The \e lock_stat_mask argument contains an
- * unknown condition value.
- */
-ALT_STATUS_CODE alt_clk_lock_status_clear(ALT_CLK_PLL_LOCK_STATUS_t lock_stat_mask);
-
-/******************************************************************************/
-/*!
- * Returns the PLL lock status condition values.
- *
- * This function returns the value of the PLL lock status conditions.
- *
- * \returns The current values of the PLL lock status conditions as defined by
- * the \ref ALT_CLK_PLL_LOCK_STATUS_t mask bits. If the corresponding bit is set
- * then the condition is asserted.
- */
-uint32_t alt_clk_lock_status_get(void);
-
-/******************************************************************************/
-/*!
- * Returns ALT_E_TRUE if the designated PLL is currently locked and ALT_E_FALSE
- * otherwise.
- *
- * \param pll
- * The PLL to return the lock status of.
- *
- * \retval ALT_E_TRUE The specified PLL is currently locked.
- * \retval ALT_E_FALSE The specified PLL is currently not locked.
- * \retval ALT_E_BAD_ARG The \e pll argument designates a non PLL clock
- * value.
- * \internal
- * NOTE: This function uses the
- * * \b hps::clkmgr::inter::mainplllocked
- * * \b hps::clkmgr::inter::perplllocked,
- * * \b hps::clkmgr::inter::sdrplllocked
- *
- * bits to determine if the PLL is locked or not.
- * \endinternal
- */
-ALT_STATUS_CODE alt_clk_pll_is_locked(ALT_CLK_t pll);
-
-/*! @} */
-
-/******************************************************************************/
-/*! \addtogroup CLK_MGR_SAFE_MODE Safe Mode Options
- *
- * When safe mode is enabled, clocks in the HPS are directly generated from the
- * \b osc1_clk clock. Safe mode is enabled by the assertion of a safe mode
- * request from the reset manager or by a cold reset. Assertion of the safe mode
- * request from the reset manager sets the safe mode bit in the clock manager
- * control register. No other control register bits are affected by the safe
- * mode request from the reset manager.
- *
- * While in safe mode, clock manager register settings which control clock
- * behavior are not changed. However, the output of the registers which control
- * the clock manager state are forced to the safe mode values such that the
- * following conditions occur:
- * * All PLLs are bypassed to the \b osc1_clk clock, including their counters.
- * * Clock dividers select their default reset values.
- * * The flash controllers source clock selections are set to the peripheral
- * PLL.
- * * All clocks are enabled.
- * * Safe mode is optionally applied to debug clocks.
- *
- * A write by software is the only way to clear the safe mode bit. All registers
- * and clocks need to be configured correctly and all software-managed clocks
- * need to be gated off before clearing safe mode. Software can then gate clocks
- * on as required.
- *
- * On cold reset, all clocks are put in safe mode.
- *
- * On warm reset, safe mode is optionally and independently applied to debug
- * clocks and normal (i.e.non-debug) clocks based on clock manager register
- * settings. The default response for warm reset is to put all clocks in safe
- * mode.
- *
- * The APIs in this group provide control of the Clock Manager safe mode warm
- * reset response behavior.
- * @{
- */
-
-/******************************************************************************/
-/*!
- * This type definition enumerates the safe mode clock domains under control of
- * the Clock Manager.
- */
-typedef enum ALT_CLK_SAFE_DOMAIN_e
-{
- /*!
- * This enumeration literal specifies the normal safe mode domain. The
- * normal domain consists of all clocks except debug clocks.
- */
- ALT_CLK_DOMAIN_NORMAL,
- /*!
- * This enumeration literal specifies the debug safe mode domain. The debug
- * domain consists of all debug clocks.
- */
- ALT_CLK_DOMAIN_DEBUG
-} ALT_CLK_SAFE_DOMAIN_t;
-
-/******************************************************************************/
-/*!
- * Clear the safe mode status of the Clock Manager following a reset.
- *
- * NOTE: Safe mode should only be cleared once clocks have been correctly
- * configured.
- *
- * \retval ALT_E_SUCCESS The operation was succesful.
- * \retval ALT_E_ERROR The operation failed.
- */
-ALT_STATUS_CODE alt_clk_safe_mode_clear(void);
-
-/******************************************************************************/
-/*!
- * Return whether the specified safe mode clock domain is in safe mode or not.
- *
- * \param clk_domain
- * The safe mode clock domain to check whether in safe mode or not.
- *
- * \retval TRUE The safe mode clock domain is in safe mode.
- * \retval FALSE The safe mode clock domain is not in safe mode.
- */
-bool alt_clk_is_in_safe_mode(ALT_CLK_SAFE_DOMAIN_t clk_domain);
-
-/*! @} */
-
-/******************************************************************************/
-/*! \addtogroup CLK_MGR_BYPASS PLL Bypass Control
- *
- * When a PLL is in bypass, the PLL clock logic is kept in reset. In this
- * manner, the PLL clock can be free running while it stabilizes and achieves
- * lock. The bypass logic isolates PLL configuration registers from the clock
- * while changes are made to the PLL settings.
- *
- * The bypass controls are used by software to change the source clock input
- * reference (for Peripheral and SDRAM PLLs) and is recommended when changing
- * settings that may affect the ability of the VCO to maintain lock. When a PLL
- * is taken in or out of bypass the PLL output clocks will pause momentarily
- * while the clocks are in transition, There will be no glitches or clocks
- * shorter than the either the old or the new clock period.
- *
- * In summary, the PLL bypass controls permit:
- * * Each PLL to be individually bypassed.
- * * Bypass of all PLL clock outputs to \b osc1_clk or alternatively the PLLs
- * reference clock input source reference clock selection.
- * * Isolation of a the PLL VCO frequency registers (multiplier and divider),
- phase shift registers (negative phase) , and post scale counters.
- * * Glitch free clock transitions.
- * @{
- */
-/******************************************************************************/
-/*!
- * Disable bypass mode for the specified PLL. This operation takes the PLL out
- * of bypass mode.
- *
- * \param pll
- * The PLL to take out of bypass mode.
- *
- * \retval ALT_E_SUCCESS The operation was succesful.
- * \retval ALT_E_ERROR The operation failed.
- * \retval ALT_E_BAD_ARG The \e pll argument specified a non PLL clock
- * value.
- */
-ALT_STATUS_CODE alt_clk_pll_bypass_disable(ALT_CLK_t pll);
-
-/******************************************************************************/
-/*!
- * Enable bypass mode for the specified PLL.
- *
- * \param pll
- * The PLL to put into bypass mode.
- *
- * \param use_input_mux
- * If TRUE then use the PLLs reference clock input source selection
- * to directly drive the bypass clock. If FALSE then use bypass
- * clock directly driven by the \b osc1_clk.
- *
- * \retval ALT_E_SUCCESS The operation was succesful.
- * \retval ALT_E_ERROR The operation failed.
- * \retval ALT_E_BAD_ARG The \e pll argument specified a non PLL
- * clock value.
- * \retval ALT_E_INV_OPTION TRUE is an invalid option for
- * \e use_input_mux with the \e pll selection.
- */
-ALT_STATUS_CODE alt_clk_pll_bypass_enable(ALT_CLK_t pll,
- bool use_input_mux);
-
-/******************************************************************************/
-/*!
- * Return whether the specified PLL is in bypass or not.
- *
- * \internal
- * This function must also test the \b clkmgr.ctrl.safemode bit in
- * addition to the PLLs bypass bit to tell whether the bypass mode is
- * effect or not.
- * \endinternal
- *
- * \param pll
- * The PLL to check whether in bypass mode or not.
- *
- * \retval ALT_E_TRUE The PLL is in bypass mode.
- * \retval ALT_E_FALSE The PLL is not in bypass mode.
- * \retval ALT_E_BAD_ARG The \e pll argument designates a non PLL clock
- * value.
- */
-ALT_STATUS_CODE alt_clk_pll_is_bypassed(ALT_CLK_t pll);
-
-/*! @} */
-
-/******************************************************************************/
-/*! \addtogroup CLK_MGR_GATE Clock Gating Control
- *
- * This functional group provides gating control of selected clock signals.
- *
- * When a clock is enabled, then its clock signal propogates to its respective
- * clocked IP block(s). When a clock is disabled, then its clock signal is
- * prevented from propogating to its respective clocked IP block(s).
- *
- * The following clocks may be gated:
- *
- * * Main PLL Group
- * - l4_main_clk
- * - l3_mp_clk
- * - l4_mp_clk
- * - l4_sp_clk
- * - dbg_at_clk
- * - dbg_clk
- * - dbg_trace_clk
- * - dbg_timer_clk
- * - cfg_clk
- * - s2f_user0_clk
- *
- * * SDRAM PLL Group
- * - ddr_dqs_clk
- * - ddr_2x_clk
- * - ddr_dq_clk
- * - s2f_user2_clk
- *
- * * Peripheral PLL Group
- * - emac0_clk
- * - emac1_clk
- * - usb_mp_clk
- * - spi_m_clk
- * - can0_clk
- * - can1_clk
- * - gpio_db_clk
- * - s2f_user1_clk
- * - sdmmc_clk
- * - nand_clk
- * - nand_x_clk
- * - qspi_clk
- *
- * @{
- */
-/******************************************************************************/
-/*!
- * Disable the specified clock. Once the clock is disabled, its clock signal does
- * not propogate to its clocked elements.
- *
- * \param clk
- * The clock to disable.
- *
- * \retval ALT_E_SUCCESS The operation was succesful.
- * \retval ALT_E_ERROR The operation failed.
- * \retval ALT_E_BAD_ARG The \e clk argument designates a non gated clock
- * value.
- */
-ALT_STATUS_CODE alt_clk_clock_disable(ALT_CLK_t clk);
-
-/******************************************************************************/
-/*!
- * Enable the specified clock. Once the clock is enabled, its clock signal
- * propogates to its elements.
- *
- * \param clk
- * The clock to enable.
- *
- * \retval ALT_E_SUCCESS The operation was succesful.
- * \retval ALT_E_ERROR The operation failed.
- * \retval ALT_E_BAD_ARG The \e clk argument designates a non gated clock
- * value.
- */
-ALT_STATUS_CODE alt_clk_clock_enable(ALT_CLK_t clk);
-
-/******************************************************************************/
-/*!
- * Return whether the specified clock is enabled or not.
- *
- * \param clk
- * The clock to check whether enabled or not.
- *
- * \retval ALT_E_TRUE The clock is enabled.
- * \retval ALT_E_FALSE The clock is not enabled.
- * \retval ALT_E_BAD_ARG The \e clk argument designates a non gated clock
- * value.
- */
-ALT_STATUS_CODE alt_clk_is_enabled(ALT_CLK_t clk);
-
-/*! @} */
-
-/******************************************************************************/
-/*! \addtogroup CLK_MGR_CLK_SEL Clock Source Selection
- *
- * This API group provide access and control to the input reference clock source
- * selection for a clock or PLL.
- *
- * \internal
- * These are the clocks that have software configurable input reference clock
- * source selection available. Each clock below is listed with its valid
- * input reference clock source selections.
- *
- * + Valid reference clock input selections for \b sdram_pll_ref_clkin
- * - osc_clk_1
- * - osc_clk_2
- * - f2h_sdram_ref_clk
- *
- * + Valid reference clock input selections for \b periph_pll_ref_clkin
- * - osc_clk_1
- * - osc_clk_2,
- * - f2h_periph_ref_clk
- *
- * + Valid reference clock input selections for \b l4_mp_clk
- * - periph_base_clk
- * - main_clk
- *
- * + Valid reference clock input selections for \b l4_sp_clk
- * - periph_base_clk
- * - main_clk
- *
- * + Valid reference clock input selections for \b sdmmc_clk
- * - f2h_periph_ref_clk
- * - main_nand_sdmmc_clk
- * - periph_nand_sdmmc_clk
- *
- * + Valid reference clock input selections for \b nand_clk
- * - f2h_periph_ref_clk
- * - main_nand_sdmmc_clk
- * - periph_nand_sdmmc_clk
- *
- * + Valid reference clock input selections for \b qspi_clk
- * - f2h_periph_ref_clk
- * - main_qspi_clk
- * - periph_qspi_clk
- *
- * \endinternal
- * @{
- */
-/******************************************************************************/
-/*!
- * Get the input reference clock source selection value for the specified clock
- * or PLL.
- *
- * NOTE: This function returns a clock value even though \e clk may specify a
- * clock that does not have a selectable input reference clock source. In
- * this case, the clock value returned is the static clock source for the
- * specified clock. For example calling alt_clk_source_get() with \e clk
- * set to \ref ALT_CLK_MAIN_PLL will return \ref ALT_CLK_OSC1.
- *
- * \param clk
- * The clock or PLL to retrieve the input reference clock source
- * selection value for.
- *
- * \returns The clock's currently selected input reference clock source.
- */
-ALT_CLK_t alt_clk_source_get(ALT_CLK_t clk);
-
-/******************************************************************************/
-/*!
- * Set the specified clock's input reference clock source selection.
- *
- * \param clk
- * The clock or PLL to set the input reference clock source
- * selection for.
- *
- * \param ref_clk
- * The input reference clock source selection value.
- *
- * \retval ALT_E_SUCCESS The operation was succesful.
- * \retval ALT_E_ERROR The operation failed.
- * \retval ALT_E_BAD_ARG The \e clk argument designates a clock that
- * does not have a selectable input reference
- * clock source.
- * \retval ALT_E_INV_OPTION The \e ref_clk argument designates a clock that
- * is an invalid reference clock source for the
- * specified clock.
- */
-ALT_STATUS_CODE alt_clk_source_set(ALT_CLK_t clk,
- ALT_CLK_t ref_clk);
-
-/*! @} */
-
-/******************************************************************************/
-/*! \addtogroup CLK_MGR_FREQ Clock Frequency Control
- *
- * This API group provides access and control of the output frequency of a clock
- * or PLL.
- *
- * @{
- */
-
-/******************************************************************************/
-/*!
- * Set the external clock frequency value.
- *
- * The function is used to specify the frequency of the external clock source as
- * a measure of Hz. The supplied frequency should be within the Fmin and Fmax
- * values allowed for the external clock source.
- *
- * \param clk
- * The external clock source. Valid external clocks are
- * * \e ALT_CLK_OSC1
- * * \e ALT_CLK_OSC2
- * * \e ALT_CLK_F2H_PERIPH_REF
- * * \e ALT_CLK_F2H_SDRAM_REF
- *
- * \param freq
- * The frequency of the external clock in Hz.
- *
- * \retval ALT_E_SUCCESS The operation was succesful.
- * \retval ALT_E_ERROR The operation failed.
- * \retval ALT_E_BAD_ARG A bad argument value was passed. Either the \e clk
- * argument is bad or not a valid external clock
- * source
- * \retval ALT_E_ARG_RANGE The frequency value violates the range constraints
- * for the specified clock.
-
- */
-ALT_STATUS_CODE alt_clk_ext_clk_freq_set(ALT_CLK_t clk,
- alt_freq_t freq);
-
-/******************************************************************************/
-/*!
- * Get the external clock frequency value.
- *
- * This function returns the frequency of the external clock source as
- * a measure of Hz.
- *
- * \param clk
- * The external clock source. Valid external clocks are
- * * \e ALT_CLK_OSC1
- * * \e ALT_CLK_OSC2
- * * \e ALT_CLK_F2H_PERIPH_REF
- * * \e ALT_CLK_F2H_SDRAM_REF
- *
- * \retval freq
- * The frequency of the external clock in Hz.
- *
- */
-alt_freq_t alt_clk_ext_clk_freq_get(ALT_CLK_t clk);
-
-/******************************************************************************/
-/*!
- * This type definition defines a structure to contain the generalized
- * configuration settings for a PLL.
- */
-typedef struct ALT_CLK_PLL_CFG_s
-{
- ALT_CLK_t ref_clk; /*!< PLL Reference Clock Source */
- uint32_t mult; /*!< VCO Frequency Configuration -
- * Multiplier (M) value, range 1 to 4096
- */
- uint32_t div; /*!< VCO Frequency Configuration -
- * Divider (N) value, range 1 to 64
- */
- uint32_t cntrs[6]; /*!< Post-Scale Counters (C0 - C5) -
- * range 1 to 512
- */
- uint32_t pshift[6]; /*!< Phase Shift - 1/8 (45 degrees) of
- * negative phase shift per increment,
- * range 0 to 4096
- */
-} ALT_CLK_PLL_CFG_t;
-
-/******************************************************************************/
-/*!
- * Get the current PLL configuration.
- *
- * \param pll
- * The PLL to get the configuration from.
- *
- * \param pll_cfg
- * [out] Pointer to an output parameter variable for the returned
- * PLL configuration.
- *
- * \retval ALT_E_SUCCESS The operation was succesful.
- * \retval ALT_E_ERROR The operation failed.
- */
-ALT_STATUS_CODE alt_clk_pll_cfg_get(ALT_CLK_t pll,
- ALT_CLK_PLL_CFG_t* pll_cfg);
-
-/******************************************************************************/
-/*!
- * Set the PLL configuration using the configuration parameters specified in
- * \e pll_cfg.
- *
- * \param pll
- * The PLL to set the configuration for.
- *
- * \param pll_cfg
- * Pointer to a ALT_CLK_PLL_CFG_t structure specifying the desired
- * PLL configuration.
- *
- * \retval ALT_E_SUCCESS The operation was succesful.
- * \retval ALT_E_ERROR The operation failed.
- */
-ALT_STATUS_CODE alt_clk_pll_cfg_set(ALT_CLK_t pll,
- const ALT_CLK_PLL_CFG_t* pll_cfg);
-
-/******************************************************************************/
-/*!
- * Get the current PLL VCO frequency configuration.
- *
- * \param pll
- * The PLL to get the VCO frequency configuration for.
- *
- * \param mult
- * [out] Pointer to an output variable for the returned
- * configured PLL VCO multiplier (M) value.
- *
- * \param div
- * [out] Pointer to an output variable for the returned
- * configured PLL VCO divider (N) value.
- *
- * \retval ALT_E_SUCCESS The operation was succesful.
- * \retval ALT_E_ERROR The operation failed.
- */
-ALT_STATUS_CODE alt_clk_pll_vco_cfg_get(ALT_CLK_t pll,
- uint32_t* mult,
- uint32_t* div);
-
-/******************************************************************************/
-/*!
- * Set the PLL VCO frequency configuration using the supplied multiplier and
- * divider arguments.
- *
- * \param pll
- * The PLL to set the VCO frequency configuration for.
- *
- * \param mult
- * The PLL VCO multiplier (M). Expected argument range 1 to 4096.
- *
- * \param div
- * The PLL VCO divider (N). Expected argument range 1 to 64.
- *
- * \retval ALT_E_SUCCESS The operation was succesful.
- * \retval ALT_E_ERROR The operation failed.
- */
-ALT_STATUS_CODE alt_clk_pll_vco_cfg_set(ALT_CLK_t pll,
- uint32_t mult,
- uint32_t div);
-
-/******************************************************************************/
-/*!
- * Get the VCO frequency of the specified PLL.
- *
- * \param pll
- * The PLL to retrieve the VCO frequency from.
- *
- * \param freq
- * [out] Pointer to the an output parameter variable to return the
- * PLL VCO frequency value. The frequency value is returned as a
- * measures of Hz.
- *
- * \retval ALT_E_SUCCESS The operation was succesful.
- * \retval ALT_E_ERROR The operation failed.
- * \retval ALT_E_BAD_ARG A bad argument value was passed. Either
- * the \e pll argument is invalid or a bad
- * \e freq pointer value was passed.
- */
-ALT_STATUS_CODE alt_clk_pll_vco_freq_get(ALT_CLK_t pll,
- alt_freq_t* freq);
-
-/******************************************************************************/
-/*!
- * Get the PLL frequency guard band value.
- *
- * \param pll
- * The PLL from which to return the current guard band value.
- *
- * \returns The current guard band range in effect for the PLL.
- */
-uint32_t alt_clk_pll_guard_band_get(ALT_CLK_t pll);
-
-/******************************************************************************/
-/*!
- * Set the PLL frequency guard band value.
- *
- * Once a PLL has achieved lock, any changes to the PLL VCO frequency that are
- * within a specific guard band range (default value 20%) of the reference
- * period should not cause the PLL to lose lock.
- *
- * Programmatic changes to the PLL frequency within this guard band range are
- * permitted to be made without the risk of breaking lock during the transition
- * to the new frequency.
- *
- * The clk_mgr_pll_guard_band_set() function changes the guard band from its
- * current value to permit a more lenient or stringent policy to be in effect in
- * the implementation of the functions configuring PLL VCO frequency. The
- * rationale for changing the default guard band value might be to accommodate
- * unexpected environmental conditions (noise, temperature, and other
- * instability factors) that may affect the PLLs ability to maintain lock during
- * a frequency change.
- *
- * \param pll
- * The PLL to set the guard band value for.
- *
- * \param guard_band
- * The guard band value. Value should be 0 <= \e guard_band <= 100.
- *
- * \retval ALT_E_SUCCESS The operation was succesful.
- * \retval ALT_E_ERROR The operation failed.
- * \retval ALT_E_ARG_RANGE The guard band value violates its range constraint.
- */
-ALT_STATUS_CODE alt_clk_pll_guard_band_set(ALT_CLK_t pll,
- uint32_t guard_band);
-
-/******************************************************************************/
-/*!
- * Get the configured divider value for the specified clock.
- *
- * This function is used to get the configured values of both internal and
- * external clock dividers. The internal divider (PLL counters C0-C5) values
- * are retrieved by specifying the clock name that is the divider output
- * (e.g. ALT_CLK_MPU is used to get the Main PLL C0 counter value). \n
- * It returns the actual divider value, not the encoded bitfield stored
- * in the register, due to the variety of different encodings.
- *
- * \param clk
- * The clock divider to get the value from.
- *
- * \param div
- * [out] Pointer to an output variable for the returned clock
- * divider value.
- *
- * \retval ALT_E_SUCCESS The operation was succesful.
- * \retval ALT_E_ERROR The operation failed.
- * \retval ALT_E_BAD_ARG An invalid clock argument was specified or a
- * clock that does not have a divider.
- */
-ALT_STATUS_CODE alt_clk_divider_get(ALT_CLK_t clk,
- uint32_t* div);
-
-/******************************************************************************/
-/*!
- * Set the divider value for the specified clock.
- *
- * This function is used to set the values of both internal and external clock
- * dividers. The internal divider (PLL counters C0-C5) values are set by
- * specifying the clock name that is the divider output (e.g. ALT_CLK_MPU is
- * used to set the Main PLL C0 counter value).
- *
- * \param clk
- * The clock divider to set the value for.
- *
- * \param div
- * The clock divider value. NOTE: The valid range of clock divider
- * values depends on the clock being configured. This is the
- * real divisor ratio, not how the divisor is coded into the
- * register, and is always one or greater.
- *
- * \retval ALT_E_SUCCESS The operation was succesful.
- * \retval ALT_E_ERROR The operation failed.
- * \retval ALT_E_BAD_ARG An invalid clock argument was specified or a
- * clock that does not have a divider.
- * \retval ALT_E_ARG_RANGE The divider value violates the range constraints
- * for the clock divider.
- */
-ALT_STATUS_CODE alt_clk_divider_set(ALT_CLK_t clk,
- uint32_t div);
-
-/******************************************************************************/
-/*!
- * Get the output frequency of the specified clock.
- *
- * \param clk
- * The clock to retrieve the output frequency from.
- *
- * \param freq
- * [out] Pointer to the an output parameter variable to return the
- * clock output frequency value. The frequency value is returned as
- * a measures of Hz.
- *
- * \retval ALT_E_SUCCESS The operation was succesful.
- * \retval ALT_E_ERROR The operation failed.
- * \retval ALT_E_BAD_ARG A bad argument value was passed. Either
- * the \e clk argument is invalid or a bad
- * \e freq pointer value was passed.
- */
-ALT_STATUS_CODE alt_clk_freq_get(ALT_CLK_t clk,
- alt_freq_t* freq);
-
-/*! @} */
-
-/******************************************************************************/
-/*! \addtogroup CLK_MGR_INT Clock Manager Interrupt Management
- *
- * The functions in this group provide management of interrupts originating from
- * the Clock Manager.
- *
- * The following interrupt request (IRQ) signals are sourced from the Clock
- * Manager:
- *
- * * \b clkmgr_IRQ - Clock Manager lock status interrupt output. The PLL lock
- * status interrupt is the logical \e OR of six interrupt
- * sources defining the loss or achievement of lock status for
- * each PLL. The six PLL lock status conditions are:
- * - Main PLL Achieved Lock
- * - Main PLL Lost Lock
- * - Peripheral PLL Achieved Lock
- * - Peripheral PLL Lost Lock
- * - SDRAM PLL Achieved Lock
- * - SDRAM PLL Lost Lock
- *
- * They are enumeratated by the type \ref ALT_CLK_PLL_LOCK_STATUS_t.
- *
- * Each PLL lock condition may be individually disabled/enabled
- * as a contributor to the determination of the \b clkmgr_IRQ
- * assertion status.
- *
- * The alt_clk_lock_status_clear() function is used to clear
- * the PLL lock conditions causing the \b clkmgr_IRQ
- * assertion.
- *
- * * \b mpuwakeup_IRQ - MPU wakeup interrupt output. This interrupt notifies the
- * MPU to "wake up" after a transition of the Main PLL into
- * or out of bypass mode has been safely achieved. The need
- * for the "wake up" notification is because the PLL clocks
- * pause for a short number of clock cycles during bypass
- * state transition. ARM recommeds that the CPUs are placed
- * in standby if the clocks are ever paused.
- *
- * NOTE: \b mpuwakeup_IRQ appears to be an Altera private interrupt and may not
- * be part of the public API although clearly it has important utility in
- * implementing safe changes to PLL settings and transitions into and out
- * of bypass mode.
- * @{
- */
-
-/******************************************************************************/
-/*!
- * Disable the \b clkmgr_IRQ interrupt signal source lock status condition(s).
- *
- * This function disables one or more of the lock status conditions as
- * contributors to the \b clkmgr_IRQ interrupt signal state.
- *
- * NOTE: A set bit for a PLL lock status condition in the mask value does not
- * have the effect of enabling it as a contributor to the \b clkmgr_IRQ
- * interrupt signal state. The function alt_clk_irq_enable is used to enable PLL
- * lock status source condition(s).
- *
- * \param lock_stat_mask
- * Specifies the PLL lock status conditions to disable as interrupt
- * source contributors. \e lock_stat_mask is a mask of logically
- * OR'ed ALT_CLK_PLL_LOCK_STATUS_t values that designate the PLL lock
- * conditions to disable.
- *
- * \retval ALT_E_SUCCESS Successful status.
- * \retval ALT_E_BAD_ARG The \e lock_stat_mask argument contains an
- * unknown condition value.
- */
-ALT_STATUS_CODE alt_clk_irq_disable(ALT_CLK_PLL_LOCK_STATUS_t lock_stat_mask);
-
-/******************************************************************************/
-/*!
- * Enable the \b clkmgr_IRQ interrupt signal source lock status condition(s).
- *
- * This function enables one or more of the lock status conditions as
- * contributors to the \b clkmgr_IRQ interrupt signal state.
- *
- * NOTE: A cleared bit for any PLL lock status condition in the mask value does
- * not have the effect of disabling it as a contributor to the \b clkmgr_IRQ
- * interrupt signal state. The function alt_clk_irq_disable is used to disable
- * PLL lock status source condition(s).
- *
- * \param lock_stat_mask
- * Specifies the PLL lock status conditions to enable as interrupt
- * source contributors. \e lock_stat_mask is a mask of logically
- * OR'ed ALT_CLK_PLL_LOCK_STATUS_t values that designate the PLL lock
- * conditions to enable.
- *
- * \retval ALT_E_SUCCESS Successful status.
- * \retval ALT_E_BAD_ARG The \e lock_stat_mask argument contains an
- * unknown condition value.
- */
-ALT_STATUS_CODE alt_clk_irq_enable(ALT_CLK_PLL_LOCK_STATUS_t lock_stat_mask);
-
-/*! @} */
-
-/******************************************************************************/
-/*! \addtogroup CLK_MGR_GROUP_CFG Clock Group Configuration
- *
- * This API provides the ability to safely set the configuration of a clock
- * group with a single function call.
- *
- * A clock group is defined as set of clocks and signals generated from a common
- * PLL VCO. The PLL and its derived clocks are treated as a single clock
- * group. The clocks sourced directly or indirectly from the PLL may or may not
- * have these features:
- * * Clock Gates
- * * Clock Dividers
- * * Clock Source Selection Options
- *
- * The use case for application of the Clock Group Configuration functions is the
- * ability to safely configure an entire clock group from a known good clock
- * group configuration using the run-time function alt_clk_group_cfg_raw_set().
- *
- * A known good clock group configuration may be generated by one of the
- * following methods:
- *
- * * As static design information generated by an ACDS clock configuration tool
- * and passed to embedded software for dynamic loading.
- *
- * * By calling alt_clk_group_cfg_raw_get() at run-time from an SoC FPGA that has
- * programmatically established a known good clock group configuration using
- * the clock manager API configuration functions.
- *
- * @{
- */
-
-/******************************************************************************/
-/*!
- * Get the raw configuration state of the designated clock group.
- *
- * This function is used to capture the configuration state of the specified
- * clock group in a private (raw) data structure. The raw data structure may be
- * saved and used later to restore the clock group configuration using
- * alt_clk_group_cfg_raw_get().
- *
- * \param clk_group
- * The clock group configuration to capture.
- *
- * \param clk_group_raw_cfg
- * [out] A pointer to a private (raw) data structure to store the
- * captured clock group configuration.
- *
- * \retval ALT_E_SUCCESS Successful status.
- * \retval ALT_E_ERROR Details about error status code
- */
-ALT_STATUS_CODE alt_clk_group_cfg_raw_get(ALT_CLK_GRP_t clk_group,
- ALT_CLK_GROUP_RAW_CFG_t* clk_group_raw_cfg);
-
-/******************************************************************************/
-/*!
- * Set the clock group configuration.
- *
- * This function is used to safely set the configuration state of a clock
- * group from a raw clock group configuration specification. The raw clock
- * group configuration specification may be a configuration previously
- * captured with alt_clk_group_cfg_raw_get() or a group clock configuration
- * generated by an external utility.
- *
- * \param clk_group_raw_cfg
- * A pointer to the specification to use in the configuration of
- * the clock group.
- *
- * \retval ALT_E_SUCCESS Successful status.
- * \retval ALT_E_ERROR Details about error status code
- * \retval ALT_E_BAD_VERSION The clock group configuration specification is
- * invalid for this device.
- */
-ALT_STATUS_CODE alt_clk_group_cfg_raw_set(const ALT_CLK_GROUP_RAW_CFG_t* clk_group_raw_cfg);
-
-ALT_STATUS_CODE alt_clk_clkmgr_init(void);
-
-/*! @} */
-
-/*! @} */
-#ifdef __cplusplus
-}
-
-#endif /* __cplusplus */
-#endif /* __ALT_CLK_MGR_H__ */