9 #include <soc/addressmap.h>
10 #include <soc/infracfg.h>
11 #include <soc/mcucfg.h>
159 #define MUX(_id, _reg, _mux_shift, _mux_width) \
161 .reg = &mtk_topckgen->_reg, \
162 .mux_shift = _mux_shift, \
163 .mux_width = _mux_width, \
166 #define MUX_UPD(_id, _reg, _mux_shift, _mux_width, _upd_reg, _upd_shift)\
168 .reg = &mtk_topckgen->_reg, \
169 .set_reg = &mtk_topckgen->_reg##_set, \
170 .clr_reg = &mtk_topckgen->_reg##_clr, \
171 .mux_shift = _mux_shift, \
172 .mux_width = _mux_width, \
173 .upd_reg = &mtk_topckgen->_upd_reg, \
174 .upd_shift = _upd_shift, \
524 static const struct pll plls[] = {
553 23, 22, mmpll_con2, 24, mmpll_con2, 0,
556 23, 22, mainpll_con2, 24, mainpll_con2, 0,
565 23, 22, univpll_con2, 24, univpll_con2, 0,
574 NO_RSTB_SHIFT, 32, hdmirx_apll_con2, 24, hdmirx_apll_con3, 0,
837 u32 output,
count, clk_dbg_cfg, clk_misc_cfg_0;
846 CLK_DBG_CFG_ABIST_CK_SEL,
id,
847 CLK_DBG_CFG_CKGEN_CK_SEL, 0,
848 CLK_DBG_CFG_METER_CK_SEL, 0,
849 CLK_DBG_CFG_CKGEN_EN, 0);
851 CLK_MISC_CFG_0_METER_DIV, 3);
854 CLK_DBG_CFG_ABIST_CK_SEL, 0,
855 CLK_DBG_CFG_CKGEN_CK_SEL,
id,
856 CLK_DBG_CFG_METER_CK_SEL, 1,
857 CLK_DBG_CFG_CKGEN_EN, 1);
859 CLK_MISC_CFG_0_METER_DIV, 0);
861 die(
"unsupported fmeter type\n");
876 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.
static struct mtk_spm_regs *const mtk_spm
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)
@ INFRACFG_AO_AXIMEM_BUS_DCM_REG0_MASK
@ INFRACFG_AO_PERI_BUS_DCM_REG0_ON
@ INFRACFG_AO_PERI_BUS_DCM_REG0_MASK
@ INFRACFG_AO_INFRA_RX_P2P_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
static struct mt8195_infracfg_ao_regs *const mt8195_infracfg_ao
static struct mt8195_infracfg_ao_bcrm_regs *const mt8195_infracfg_ao_bcrm
static const struct mux muxes[]
void edp_mux_set_sel(u32 sel)
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 struct mt8195_pericfg_ao_regs *const mt8195_pericfg_ao
static struct mt8195_scp_adsp_regs *const mt8195_scp_adsp
check_member(mt8195_infracfg_ao_bcrm_regs, vdnr_dcm_top_infra_ctrl0, 0x0034)
static const struct pll plls[]
@ TOP_SNPS_ETH_62P4M_PTP_SEL
@ TOP_SNPS_ETH_50M_RMII_SEL
@ TOP_AUDIO_LOCAL_BUS_SEL
void mt_pll_set_tvd_pll1_freq(u32 freq)
#define PLL(_id, _reg, _pwr_reg, _rstb, _pcwbits, _div_reg, _div_shift, _pcw_reg, _pcw_shift, _div_rate)
u32 vdnr_dcm_top_infra_ctrl0
u32 infra_aximem_idle_bit_en_0
u32 peri_module_sw_cg_0_set