@@ -285,6 +285,10 @@ static const char * const infra_mux1_parents[] = {
"armpll"
};
+static const char * const rtc_parents[] = {
+ "rtc", "clk_null", "clk_null", "rtc_32k"
+};
+
static const struct mtk_gate_regs apmixed_cg_regs = {
.set_ofs = 0x8,
.clr_ofs = 0x8,@@ -367,6 +371,7 @@ static const struct mtk_fixed_factor top_divs[] = {
FACTOR(CLK_TOP_ETH_500M, "eth_500m", "eth1pll", 1, 1),
FACTOR(CLK_TOP_TXCLK_SRC_PRE, "txclk_src_pre", "sgmiipll_d2", 1, 1),
FACTOR(CLK_TOP_RTC, "rtc", "clkxtal", 1, 1024),
+ FACTOR(CLK_TOP_RTC_32K, "rtc_32k", "clkxtal", 1, 1221),
FACTOR(CLK_TOP_PWM_QTR_26M, "pwm_qtr_26m", "clkxtal", 1, 1),
FACTOR(CLK_TOP_CPUM_TCK_IN, "cpum_tck_in", "cpum_tck", 1, 1),
FACTOR(CLK_TOP_TO_USB3_DA_TOP, "to_usb3_da_top", "clkxtal", 1, 1),@@ -458,6 +463,8 @@ static struct mtk_composite infra_muxes[] = {
};
static struct mtk_composite top_muxes[] = {
+ /* CLK_MODE */
+ MUX(CLK_TOP_RTC_SEL, "rtc_sel", rtc_parents, 0x000, 2, 2),
/* CLK_CFG_0 */
MUX_GATE(CLK_TOP_AXI_SEL, "axi_sel", axi_parents,
0x040, 0, 3, 7),