9 #include <soc/addressmap.h>
10 #include <soc/infracfg.h>
11 #include <soc/mcucfg.h>
82 #define MUX(_id, _reg, _mux_shift, _mux_width) \
84 .reg = &mtk_topckgen->_reg, \
85 .set_reg = &mtk_topckgen->_reg##_set, \
86 .clr_reg = &mtk_topckgen->_reg##_clr, \
87 .mux_shift = _mux_shift, \
88 .mux_width = _mux_width, \
93 #define MUX_UPD(_id, _reg, _mux_shift, _mux_width, _upd_reg, _upd_shift)\
95 .reg = &mtk_topckgen->_reg, \
96 .set_reg = &mtk_topckgen->_reg##_set, \
97 .clr_reg = &mtk_topckgen->_reg##_clr, \
98 .mux_shift = _mux_shift, \
99 .mux_width = _mux_width, \
100 .upd_reg = &mtk_topckgen->_upd_reg, \
101 .upd_shift = _upd_shift, \
301 static const struct pll plls[] = {
312 23, 22, mainpll_con1, 24, mainpll_con1, 0,
315 23, 22, univpll_con1, 24, univpll_con1, 0,
324 23, 22, mmpll_con1, 24, mmpll_con1, 0,
474 WDT_SWSYSRST_KEY, 0x88,
475 WDT_SWSYSRST_CONN_MCU, 0x1);
505 u32 output,
count, clk_dbg_cfg, clk_misc_cfg_0;
514 CLK_DBG_CFG_ABIST_CK_SEL,
id,
515 CLK_DBG_CFG_CKGEN_CK_SEL, 0,
516 CLK_DBG_CFG_METER_CK_SEL, 0);
518 CLK_MISC_CFG_0_METER_DIV, 1);
521 CLK_DBG_CFG_ABIST_CK_SEL, 0,
522 CLK_DBG_CFG_CKGEN_CK_SEL,
id,
523 CLK_DBG_CFG_METER_CK_SEL, 1);
525 CLK_MISC_CFG_0_METER_DIV, 0);
527 die(
"unsupported fmeter type\n");
542 output = (
count * 26000) / 1024;
static void write32(void *addr, uint32_t val)
static uint32_t read32(const void *addr)
void mux_set_sel(const struct mux *mux, u32 sel)
int pll_set_rate(const struct pll *pll, u32 rate)
#define printk(level,...)
void __noreturn die(const char *fmt,...)
#define setbits32(addr, set)
#define SET32_BITFIELDS(addr,...)
#define READ32_BITFIELD(addr, name)
#define clrsetbits32(addr, clear, set)
#define clrbits32(addr, clear)
#define wait_us(timeout_us, condition)
#define BIOS_WARNING
BIOS_WARNING - Bad configuration.
void mt_pll_raise_little_cpu_freq(u32 freq)
void pll_set_pcw_change(const struct pll *pll)
static struct mt8186_mcucfg_regs *const mtk_mcucfg
u32 mt_fmeter_get_freq_khz(enum fmeter_type type, u32 id)
void mt_pll_raise_cci_freq(u32 freq)
static struct mt8192_infracfg_regs *const mt8192_infracfg
@ INFRACFG_AO_AXIMEM_BUS_DCM_REG0_MASK
@ INFRACFG_AO_PERI_BUS_DCM_REG0_ON
@ INFRACFG_AO_INFRA_CONN_BUS_DCM_REG1_MASK
@ INFRACFG_AO_PERI_BUS_DCM_REG0_MASK
@ INFRACFG_AO_INFRA_RX_P2P_DCM_REG0_ON
@ INFRACFG_AO_INFRA_CONN_BUS_DCM_REG0_MASK
@ INFRACFG_AO_INFRA_CONN_BUS_DCM_REG0_ON
@ INFRACFG_AO_INFRA_BUS_DCM_REG0_MASK
@ INFRACFG_AO_INFRA_RX_P2P_DCM_REG0_MASK
@ INFRACFG_AO_PERI_MODULE_DCM_REG0_MASK
@ INFRACFG_AO_AXIMEM_BUS_DCM_REG0_ON
@ INFRACFG_AO_INFRA_BUS_DCM_REG0_ON
@ INFRACFG_AO_PERI_MODULE_DCM_REG0_ON
@ INFRACFG_AO_INFRA_CONN_BUS_DCM_REG1_ON
static const struct mux muxes[]
static const struct rate rates[]
#define MUX_UPD(_id, _reg, _mux_shift, _mux_width, _upd_reg, _upd_shift)
#define MUX(_id, _reg, _mux_shift, _mux_width)
static const struct mux_sel mux_sels[]
static const struct pll plls[]
#define PLL(_id, _reg, _pwr_reg, _rstb, _pcwbits, _div_reg, _div_shift, _pcw_reg, _pcw_shift, _div_rate)
u32 infra_aximem_idle_bit_en_0
static struct mtk_wdt_regs *const mtk_wdt