SyterKit 0.4.0.x
SyterKit is a bare-metal framework
Loading...
Searching...
No Matches
Macros | Functions | Variables
sys-clk.c File Reference
#include <io.h>
#include <stdarg.h>
#include <stdbool.h>
#include <stddef.h>
#include <stdint.h>
#include <types.h>
#include <timer.h>
#include <log.h>
#include <sys-clk.h>
Include dependency graph for sys-clk.c:

Macros

#define SUNXI_C907_CLK   (1008)
 
#define SUNXI_MODULE_PLL_CTRL_REG_PLL_EN_OFFSET   (31)
 
#define SUNXI_MODULE_PLL_CTRL_REG_PLL_LDO_EN_OFFSET   (30)
 
#define SUNXI_MODULE_PLL_CTRL_REG_PLL_LOCK_ENABLE_OFFSET   (29)
 
#define SUNXI_MODULE_PLL_CTRL_REG_PLL_LOCK_OFFSET   (29)
 

Functions

static void sunxi_set_cpux_pll (void)
 
static void sunxi_set_pll_periph0 (void)
 
static void sunxi_set_e907_sel (void)
 
static void sunxi_set_c907_sel (void)
 
static void sunxi_set_ahb_sel (void)
 
static void sunxi_set_apb_sel (void)
 
static void sunxi_set_dma_clk (void)
 
static void sunxi_reset_mbus_domain (void)
 
static void sunxi_set_module_pll (uint32_t REG_BASE)
 
void sunxi_clk_init (void)
 Initialize the global clocks.
 
void sunxi_clk_dump ()
 Dump all clock-related register values.
 
uint32_t sunxi_clk_get_peri1x_rate ()
 Get the clock rate of the PERI1X bus.
 

Variables

uint32_t current_hosc_freq
 Current frequency of the high-speed oscillator (HOSC) in MHz.
 

Macro Definition Documentation

◆ SUNXI_C907_CLK

#define SUNXI_C907_CLK   (1008)

◆ SUNXI_MODULE_PLL_CTRL_REG_PLL_EN_OFFSET

#define SUNXI_MODULE_PLL_CTRL_REG_PLL_EN_OFFSET   (31)

◆ SUNXI_MODULE_PLL_CTRL_REG_PLL_LDO_EN_OFFSET

#define SUNXI_MODULE_PLL_CTRL_REG_PLL_LDO_EN_OFFSET   (30)

◆ SUNXI_MODULE_PLL_CTRL_REG_PLL_LOCK_ENABLE_OFFSET

#define SUNXI_MODULE_PLL_CTRL_REG_PLL_LOCK_ENABLE_OFFSET   (29)

◆ SUNXI_MODULE_PLL_CTRL_REG_PLL_LOCK_OFFSET

#define SUNXI_MODULE_PLL_CTRL_REG_PLL_LOCK_OFFSET   (29)

Function Documentation

◆ sunxi_clk_dump()

void sunxi_clk_dump ( void  )

Dump all clock-related register values.

This function prints out all clock-related register values for debugging and observation.

◆ sunxi_clk_get_peri1x_rate()

uint32_t sunxi_clk_get_peri1x_rate ( )

Get the clock rate of the PERI1X bus.

Returns
The clock rate of the PERI1X bus in Hz.

◆ sunxi_clk_init()

void sunxi_clk_init ( void  )

Initialize the global clocks.

This function initializes the global clocks, including PLLs and clock dividers.

◆ sunxi_reset_mbus_domain()

static void sunxi_reset_mbus_domain ( void  )
inlinestatic

◆ sunxi_set_ahb_sel()

static void sunxi_set_ahb_sel ( void  )
inlinestatic

◆ sunxi_set_apb_sel()

static void sunxi_set_apb_sel ( void  )
inlinestatic

◆ sunxi_set_c907_sel()

static void sunxi_set_c907_sel ( void  )
inlinestatic

◆ sunxi_set_cpux_pll()

static void sunxi_set_cpux_pll ( void  )
inlinestatic

◆ sunxi_set_dma_clk()

static void sunxi_set_dma_clk ( void  )
inlinestatic

◆ sunxi_set_e907_sel()

static void sunxi_set_e907_sel ( void  )
inlinestatic

◆ sunxi_set_module_pll()

static void sunxi_set_module_pll ( uint32_t  REG_BASE)
inlinestatic

◆ sunxi_set_pll_periph0()

static void sunxi_set_pll_periph0 ( void  )
inlinestatic

Variable Documentation

◆ current_hosc_freq

uint32_t current_hosc_freq
extern

Current frequency of the high-speed oscillator (HOSC) in MHz.