coreboot
coreboot is an Open Source project aimed at replacing the proprietary BIOS found in most computers.
clock.h File Reference
#include <soc/addressmap.h>
#include <types.h>
Include dependency graph for clock.h:

Go to the source code of this file.

Macros

#define OSC_HZ   (24*MHz)
 
#define GPLL_HZ   (594*MHz)
 
#define CPLL_HZ   (384*MHz)
 
#define NPLL_HZ   (384*MHz)
 
#define PD_BUS_ACLK_HZ   (297000*KHz)
 
#define PD_BUS_HCLK_HZ   (148500*KHz)
 
#define PD_BUS_PCLK_HZ   (74250*KHz)
 
#define PERI_ACLK_HZ   (148500*KHz)
 
#define PERI_HCLK_HZ   (148500*KHz)
 
#define PERI_PCLK_HZ   (74250*KHz)
 
#define PWM_CLOCK_HZ   PD_BUS_PCLK_HZ
 

Enumerations

enum  apll_frequencies {
  APLL_1800_MHZ , APLL_1416_MHZ , APLL_600_MHZ , APLL_1512_MHZ ,
  APLL_600_MHZ
}
 

Functions

void rkclk_init (void)
 
void rkclk_configure_spi (unsigned int bus, unsigned int hz)
 
void rkclk_ddr_reset (u32 ch, u32 ctl, u32 phy)
 
void rkclk_ddr_phy_ctl_reset (u32 ch, u32 n)
 
void rkclk_configure_ddr (unsigned int hz)
 
void rkclk_configure_i2s (unsigned int hz)
 
void rkclk_configure_cpu (enum apll_frequencies apll_freq)
 
void rkclk_configure_crypto (unsigned int hz)
 
void rkclk_configure_tsadc (unsigned int hz)
 
void rkclk_configure_vop_aclk (u32 vop_id, u32 aclk_hz)
 
int rkclk_configure_vop_dclk (u32 vop_id, u32 dclk_hz)
 
void rkclk_configure_edp (void)
 
void rkclk_configure_hdmi (void)
 
int rkclk_was_watchdog_reset (void)
 
unsigned int rkclk_i2c_clock_for_bus (unsigned int bus)
 

Macro Definition Documentation

◆ CPLL_HZ

#define CPLL_HZ   (384*MHz)

Definition at line 12 of file clock.h.

◆ GPLL_HZ

#define GPLL_HZ   (594*MHz)

Definition at line 11 of file clock.h.

◆ NPLL_HZ

#define NPLL_HZ   (384*MHz)

Definition at line 13 of file clock.h.

◆ OSC_HZ

#define OSC_HZ   (24*MHz)

Definition at line 9 of file clock.h.

◆ PD_BUS_ACLK_HZ

#define PD_BUS_ACLK_HZ   (297000*KHz)

Definition at line 22 of file clock.h.

◆ PD_BUS_HCLK_HZ

#define PD_BUS_HCLK_HZ   (148500*KHz)

Definition at line 23 of file clock.h.

◆ PD_BUS_PCLK_HZ

#define PD_BUS_PCLK_HZ   (74250*KHz)

Definition at line 24 of file clock.h.

◆ PERI_ACLK_HZ

#define PERI_ACLK_HZ   (148500*KHz)

Definition at line 26 of file clock.h.

◆ PERI_HCLK_HZ

#define PERI_HCLK_HZ   (148500*KHz)

Definition at line 27 of file clock.h.

◆ PERI_PCLK_HZ

#define PERI_PCLK_HZ   (74250*KHz)

Definition at line 28 of file clock.h.

◆ PWM_CLOCK_HZ

#define PWM_CLOCK_HZ   PD_BUS_PCLK_HZ

Definition at line 30 of file clock.h.

Enumeration Type Documentation

◆ apll_frequencies

Enumerator
APLL_1800_MHZ 
APLL_1416_MHZ 
APLL_600_MHZ 
APLL_1512_MHZ 
APLL_600_MHZ 

Definition at line 15 of file clock.h.

Function Documentation

◆ rkclk_configure_cpu()

◆ rkclk_configure_crypto()

void rkclk_configure_crypto ( unsigned int  hz)

Definition at line 472 of file clock.c.

References assert, rk3288_cru_reg::cru_clksel_con, cru_ptr, MHz, PD_BUS_ACLK_HZ, RK_CLRSETBITS, and write32().

Referenced by bootblock_soc_init().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ rkclk_configure_ddr()

void rkclk_configure_ddr ( unsigned int  hz)

Definition at line 349 of file clock.c.

◆ rkclk_configure_edp()

void rkclk_configure_edp ( void  )

Definition at line 565 of file clock.c.

References rk3288_cru_reg::cru_clksel_con, cru_ptr, rk3288_cru_reg::cru_softrst_con, RK_CLRBITS, RK_SETBITS, udelay(), and write32().

Referenced by rk_display_init().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ rkclk_configure_hdmi()

void rkclk_configure_hdmi ( void  )

Definition at line 576 of file clock.c.

References rk3288_cru_reg::cru_clkgate_con, cru_ptr, rk3288_cru_reg::cru_softrst_con, RK_CLRBITS, RK_SETBITS, udelay(), and write32().

Referenced by rk_display_init().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ rkclk_configure_i2s()

void rkclk_configure_i2s ( unsigned int  hz)

clk_i2s0_sel: divider output from fraction clk_i2s0_pll_sel source clock: cpll clk_i2s0_div_con: 1 (div+1)

clk_i2sout_sel clk_i2s clk_i2s_ch_sel: clk_i2s0

Definition at line 451 of file clock.c.

◆ rkclk_configure_spi()

void rkclk_configure_spi ( unsigned int  bus,
unsigned int  hz 
)

Definition at line 414 of file clock.c.

◆ rkclk_configure_tsadc()

void rkclk_configure_tsadc ( unsigned int  hz)

Definition at line 482 of file clock.c.

◆ rkclk_configure_vop_aclk()

void rkclk_configure_vop_aclk ( u32  vop_id,
u32  aclk_hz 
)

Definition at line 587 of file clock.c.

◆ rkclk_configure_vop_dclk()

int rkclk_configure_vop_dclk ( u32  vop_id,
u32  dclk_hz 
)

Definition at line 610 of file clock.c.

◆ rkclk_ddr_phy_ctl_reset()

void rkclk_ddr_phy_ctl_reset ( u32  ch,
u32  n 
)

Definition at line 405 of file clock.c.

References ch, cru_ptr, rk3288_cru_reg::cru_softrst_con, RK_CLRSETBITS, and write32().

Referenced by sdram_init().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ rkclk_ddr_reset()

void rkclk_ddr_reset ( u32  ch,
u32  ctl,
u32  phy 
)

Definition at line 388 of file clock.c.

◆ rkclk_i2c_clock_for_bus()

unsigned int rkclk_i2c_clock_for_bus ( unsigned int  bus)

Definition at line 658 of file clock.c.

◆ rkclk_init()

void rkclk_init ( void  )

Definition at line 232 of file clock.c.

◆ rkclk_was_watchdog_reset()

int rkclk_was_watchdog_reset ( void  )

Definition at line 652 of file clock.c.