5 #include <soc/addressmap.h>
9 #define RCTAG "[SRCLKEN_RC]"
10 #define rc_info(fmt, arg ...) printk(BIOS_INFO, RCTAG "%s,%d: " fmt, \
11 __func__, __LINE__, ## arg)
83 #define SUB_CTRL_CON(_dcxo_prd, _xo_prd, _bypass_cmd, _dcxo_settle_blk_en) { \
84 .dcxo_prd = _dcxo_prd, \
86 .cnt_step = CENTROL_CNT_STEP, \
88 .req_ack_imd_en = 0x1, \
89 .xo_soc_link_en = 0x0, \
90 .sw_bblpm = SW_BBLPM_LOW, \
91 .sw_fpm = SW_FPM_HIGH, \
93 .bypass_cmd = _bypass_cmd, \
94 .dcxo_settle_blk_en = _dcxo_settle_blk_en, \
174 die(
"Can't support rc_mode %d\n", mode);
228 if (!
CONFIG(SRCLKEN_RC_SUPPORT)) {
229 rc_info(
"Bring-UP : skip srclken_rc init\n");
353 unsigned int chk_sta, shift_chn_n = 0;
365 != chk_sta &&
retry-- > 0)
369 rc_info(
"polling M%02d failed.(R:%#x)(C:%#x)(PMRC:%#x)\n",
static void write32(void *addr, uint32_t val)
static uint32_t read32(const void *addr)
#define retry(attempts, condition,...)
static struct pmif * pmif_arb
void __noreturn die(const char *fmt,...)
#define SET32_BITFIELDS(addr,...)
#define _BF_VALUE(name, value)
void pmwrap_interface_init(void)
struct pmif * get_pmif_controller(int inf, int mstid)
@ INIT_SUBSYS_FPM_TO_BBLPM
static void __rc_ctrl_fpm_switch(enum chn_id id, unsigned int mode)
static void __rc_ctrl_mode_switch(enum chn_id id, enum rc_ctrl_m mode)
static struct mtk_rc_regs * rc_regs
static void __rc_ctrl_bblpm_switch(enum chn_id id, unsigned int mode)
#define SUB_CTRL_CON(_dcxo_prd, _xo_prd, _bypass_cmd, _dcxo_settle_blk_en)
static struct mtk_rc_status_regs * rc_sta_regs
static void rc_init_subsys_lpm(void)
static void pmic_read(u32 addr, u32 *rdata)
static struct subsys_rc_con rc_ctrl[MAX_CHN_NUM]
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)
static void rc_dump_reg_info(void)
#define rc_info(fmt, arg ...)
static void rc_init_subsys_hw_mode(void)
u32 rc_mxx_srclken_cfg[13]
u32 rc_pmic_rcen_set_clr_addr
void(* read)(struct pmif *arb, u32 slvid, u32 reg, u32 *data)
unsigned int xo_soc_link_en
unsigned int req_ack_imd_en
unsigned int dcxo_settle_blk_en