![]() |
coreboot
coreboot is an Open Source project aimed at replacing the proprietary BIOS found in most computers.
|
#include <console/console.h>
#include <delay.h>
#include <soc/addressmap.h>
#include <soc/pmif.h>
#include <soc/srclken_rc.h>
Go to the source code of this file.
Macros | |
#define | RCTAG "[SRCLKEN_RC]" |
#define | rc_info(fmt, arg ...) |
#define | SRCLKEN_DBG 1 |
#define | SUB_CTRL_CON(_dcxo_prd, _xo_prd, _bypass_cmd, _dcxo_settle_blk_en) |
Functions | |
static void | pmic_read (u32 addr, u32 *rdata) |
static void | rc_dump_reg_info (void) |
static void | __rc_ctrl_mode_switch (enum chn_id id, enum rc_ctrl_m mode) |
static void | __rc_ctrl_fpm_switch (enum chn_id id, unsigned int mode) |
static void | __rc_ctrl_bblpm_switch (enum chn_id id, unsigned int mode) |
static void | rc_init_subsys_hw_mode (void) |
static void | rc_init_subsys_lpm (void) |
static void | rc_ctrl_mode_switch_init (enum chn_id id) |
static enum rc_support | srclken_rc_chk_init_cfg (void) |
int | srclken_rc_init (void) |
Variables | |
static struct mtk_rc_regs * | rc_regs = (struct mtk_rc_regs *)RC_BASE |
static struct mtk_rc_status_regs * | rc_sta_regs = (struct mtk_rc_status_regs *)RC_STATUS_BASE |
static struct subsys_rc_con | rc_ctrl [MAX_CHN_NUM] |
#define rc_info | ( | fmt, | |
arg ... | |||
) |
Definition at line 10 of file srclken_rc.c.
#define RCTAG "[SRCLKEN_RC]" |
Definition at line 9 of file srclken_rc.c.
#define SRCLKEN_DBG 1 |
Definition at line 13 of file srclken_rc.c.
#define SUB_CTRL_CON | ( | _dcxo_prd, | |
_xo_prd, | |||
_bypass_cmd, | |||
_dcxo_settle_blk_en | |||
) |
Definition at line 83 of file srclken_rc.c.
anonymous enum |
Enumerator | |
---|---|
FULL_SET_HW_MODE | |
VCORE_SETTLE_TIME | |
ULPOSC_SETTLE_TIME | |
XO_SETTLE_TIME | |
DCXO_SETTLE_TIME | |
CENTROL_CNT_STEP | |
DCXO_STABLE_TIME | |
XO_STABLE_TIME | |
KEEP_RC_SPI_ACTIVE_VAL | |
SRCLKEN_RC_EN_SEL_VAL |
Definition at line 16 of file srclken_rc.c.
anonymous enum |
Enumerator | |
---|---|
INIT_SUBSYS_FPM_TO_LPM | |
INIT_SUBSYS_FPM_TO_BBLPM | |
INIT_SUBSYS_TO_HW |
Definition at line 29 of file srclken_rc.c.
anonymous enum |
Enumerator | |
---|---|
RC_CENTRAL_ENABLE | |
RC_CENTRAL_DISABLE | |
SPI_TRIG_MODE | |
IS_SPI_DONE_RELEASE | |
IS_SPI2PMIC_SET_CLR | |
SRCLKENO_0_CTRL_M | |
VREQ_CTRL_M | |
ULPOSC_CTRL_M_VAL | |
PWRAP_CTRL_M | |
SPI_CLK_SRC |
Definition at line 39 of file srclken_rc.c.
anonymous enum |
Enumerator | |
---|---|
DCXO_FPM_CTRL_MODE | |
PWRAP_TMOUT_VAL | |
FPM_MSK_B | |
MD0_SRCLKENO_0_MASK_B |
Definition at line 53 of file srclken_rc.c.
anonymous enum |
Enumerator | |
---|---|
SUB_BBLPM_SET | |
SUB_FPM_SET |
Definition at line 60 of file srclken_rc.c.
anonymous enum |
Enumerator | |
---|---|
SW_FPM_LOW | |
SW_FPM_HIGH |
Definition at line 68 of file srclken_rc.c.
anonymous enum |
Enumerator | |
---|---|
SW_BBLPM_LOW | |
SW_BBLPM_HIGH |
Definition at line 73 of file srclken_rc.c.
anonymous enum |
Enumerator | |
---|---|
DXCO_SETTLE_BLK_DIS | |
DXCO_SETTLE_BLK_EN |
Definition at line 78 of file srclken_rc.c.
Definition at line 189 of file srclken_rc.c.
References rc_ctrl, rc_info, mtk_rc_regs::rc_mxx_srclken_cfg, rc_regs, read32(), SET32_BITFIELDS, and subsys_rc_con::sw_bblpm.
Referenced by rc_init_subsys_lpm().
Definition at line 182 of file srclken_rc.c.
References rc_ctrl, rc_info, mtk_rc_regs::rc_mxx_srclken_cfg, rc_regs, read32(), SET32_BITFIELDS, and subsys_rc_con::sw_fpm.
Referenced by rc_init_subsys_lpm().
Definition at line 150 of file srclken_rc.c.
References subsys_rc_con::bypass_cmd, subsys_rc_con::cnt_step, subsys_rc_con::dcxo_prd, subsys_rc_con::dcxo_settle_blk_en, die(), HW_MODE, INIT_MODE, rc_ctrl, rc_info, mtk_rc_regs::rc_mxx_srclken_cfg, rc_regs, read32(), subsys_rc_con::req_ack_imd_en, SET32_BITFIELDS, subsys_rc_con::sw_bblpm, subsys_rc_con::sw_fpm, SW_MODE, subsys_rc_con::sw_rc, subsys_rc_con::track_en, subsys_rc_con::xo_prd, and subsys_rc_con::xo_soc_link_en.
Referenced by rc_ctrl_mode_switch_init(), and rc_init_subsys_hw_mode().
Definition at line 117 of file srclken_rc.c.
References addr, get_pmif_controller(), NULL, pmif_arb, PMIF_SPI, and pmif::read.
Referenced by srclken_rc_init().
Definition at line 220 of file srclken_rc.c.
References __rc_ctrl_mode_switch(), and INIT_MODE.
Referenced by srclken_rc_init().
Definition at line 127 of file srclken_rc.c.
References MAX_CHN_NUM, mtk_rc_regs::rc_central_cfg1, mtk_rc_regs::rc_central_cfg2, mtk_rc_regs::rc_central_cfg3, mtk_rc_regs::rc_central_cfg4, mtk_rc_regs::rc_dcxo_fpm_cfg, rc_info, mtk_rc_regs::rc_mxx_srclken_cfg, mtk_rc_status_regs::rc_pi_po_sta_0, rc_regs, mtk_rc_status_regs::rc_spi_sta_0, rc_sta_regs, mtk_rc_regs::rc_subsys_intf_cfg, read32(), SRCLKEN_DBG, and mtk_rc_regs::srclken_rc_cfg.
Referenced by srclken_rc_init().
Definition at line 196 of file srclken_rc.c.
References __rc_ctrl_mode_switch(), HW_MODE, INIT_SUBSYS_TO_HW, and MAX_CHN_NUM.
Referenced by srclken_rc_init().
Definition at line 206 of file srclken_rc.c.
References __rc_ctrl_bblpm_switch(), __rc_ctrl_fpm_switch(), INIT_SUBSYS_FPM_TO_BBLPM, INIT_SUBSYS_FPM_TO_LPM, MAX_CHN_NUM, SW_BBLPM_HIGH, and SW_FPM_LOW.
Referenced by srclken_rc_init().
|
static |
Definition at line 220 of file srclken_rc.c.
Referenced by srclken_rc_init().
int srclken_rc_init | ( | void | ) |
Definition at line 240 of file srclken_rc.c.
References _BF_VALUE, DCXO_FPM_CTRL_MODE, DCXO_SETTLE_TIME, FPM_MSK_B, IS_SPI2PMIC_SET_CLR, IS_SPI_DONE_RELEASE, KEEP_RC_SPI_ACTIVE_VAL, MAX_CHN_NUM, MD0_SRCLKENO_0_MASK_B, PMIC_PMRC_CON0, PMIC_PMRC_CON0_CLR, PMIC_PMRC_CON0_SET, pmic_read(), PWRAP_CTRL_M, mtk_rc_regs::rc_central_cfg1, mtk_rc_regs::rc_central_cfg2, mtk_rc_regs::rc_central_cfg3, mtk_rc_regs::rc_central_cfg4, RC_CENTRAL_DISABLE, RC_CENTRAL_ENABLE, mtk_rc_regs::rc_cmd_arb_cfg, rc_ctrl, rc_ctrl_mode_switch_init(), mtk_rc_regs::rc_dcxo_fpm_cfg, rc_dump_reg_info(), rc_info, rc_init_subsys_hw_mode(), rc_init_subsys_lpm(), mtk_rc_status_regs::rc_mxx_req_sta_0, mtk_rc_regs::rc_mxx_srclken_cfg, mtk_rc_regs::rc_pmic_rcen_addr, mtk_rc_regs::rc_pmic_rcen_set_clr_addr, rc_regs, rc_sta_regs, mtk_rc_regs::rc_subsys_intf_cfg, read32(), retry, SET32_BITFIELDS, SPI_CLK_SRC, SPI_TRIG_MODE, mtk_rc_regs::srclken_rc_cfg, srclken_rc_chk_init_cfg(), SRCLKEN_RC_EN_SEL_VAL, SRCLKEN_RC_ENABLE, SRCLKENO_0_CTRL_M, SUB_BBLPM_SET, SUB_FPM_SET, subsys_rc_con::sw_fpm, SW_SRCLKEN_BBLPM_MSK, SW_SRCLKEN_FPM_MSK, udelay(), ULPOSC_CTRL_M_VAL, ULPOSC_SETTLE_TIME, VCORE_SETTLE_TIME, VREQ_CTRL_M, write32(), and XO_SETTLE_TIME.
Referenced by platform_romstage_main().
|
static |
Definition at line 98 of file srclken_rc.c.
Referenced by __rc_ctrl_bblpm_switch(), __rc_ctrl_fpm_switch(), __rc_ctrl_mode_switch(), and srclken_rc_init().
|
static |
Definition at line 97 of file srclken_rc.c.
Referenced by __rc_ctrl_bblpm_switch(), __rc_ctrl_fpm_switch(), __rc_ctrl_mode_switch(), rc_dump_reg_info(), and srclken_rc_init().
|
static |
Definition at line 98 of file srclken_rc.c.
Referenced by rc_dump_reg_info(), and srclken_rc_init().