ParseTree* Parser::COMP() { ParseTree* retTree = new ParseTree(); if(!((*parser).get().token == LEFT_BRACKET)) { ThrowParserError(); } if(!(*parser).Advance()) ThrowParserError(); (*retTree).SetLeaf1(FACTOR()->getLeaf()); (*retTree).SetLeaf2(COMP_OP()->getLeaf()); (*retTree).SetLeaf3(FACTOR()->getLeaf()); if(!((*parser).get().token == RIGHT_BRACKET)) { ThrowParserError(); } if(!(*parser).Advance()) ThrowParserError(); return retTree; }
static void term(Pu *L, __pu_value *&temp) { PuType tp = TOKEN.type; OperatorType nv = TOKEN.optype; while (tp == OP) // */% { switch (nv) { case OPT_MUL: { NEXT_TOKEN; __pu_value *t = NULL; FACTOR(L,t); CHECK_EXP(t); __pu_value *r = NULL; MAKE_TEMP_VALUE(r); //r->SetType(NUM); *r = *temp * *t; temp = r; } break; case OPT_DIV: { NEXT_TOKEN; __pu_value *t = NULL; FACTOR(L,t); CHECK_EXP(t); __pu_value *r = NULL; MAKE_TEMP_VALUE(r); *r = *temp / *t; temp = r; } break; case OPT_MOD: { NEXT_TOKEN; __pu_value *t = NULL; FACTOR(L, t); CHECK_EXP(t); __pu_value *r = NULL; MAKE_TEMP_VALUE(r); *r = *temp % *t; temp = r; } break; default: return; } tp = TOKEN.type; nv = TOKEN.optype; } }
static void procop(Pu *L) { __pu_value *temp = NULL; PuType tp = TOKEN.type; OperatorType nv = TOKEN.optype; if (tp == OP && nv == OPT_LB) //( { FACTOR(L, temp); } else if (tp == OP && (nv == OPT_SUB || nv == OPT_ADD))// - + { MAKE_TEMP_VALUE(temp); temp->SetType(NUM); temp->numVal() = 0; add(L,temp); CHECK_EXP(temp); } else if (tp == OP && nv == OPT_NOT)// ! { MAKE_TEMP_VALUE(temp); get_value(L,temp); CHECK_EXP(temp); } else { error(L, 29); } }
void TERM(void){ /*term ::= factor term_tail*/ switch(l){ case CONST_INT: case CONST_FLOAT: case CONST_BOOLEAN: case '(': case ID: FACTOR(); TERM_TAIL(); return; default: StdError(__func__); } }
/******************************************************************************* *** FUNCTION TERM() ******************************************************************************* *** DESCRIPTION : Processes TERM grammar rule. *** *** TERM -> FACTOR MOREFACTOR *** ******************************************************************************/ void RecursiveParser::TERM(TableEntry & tplace) { TableEntry fplace; FACTOR(fplace); MOREFACTOR(fplace); tplace = fplace; }
void TERM() { FACTOR(); while(TOKEN == multsym || TOKEN == slashsym) { if(TOKEN == multsym) { GETTOKEN(); FACTOR(); //OPR 0 4 printToFile(2,0,4); lines++; } else if(TOKEN == slashsym) { GETTOKEN(); FACTOR(); //OPR 0 5 printToFile(2,0,5); lines++; } } }
ParseTree* Parser::TERM() { ParseTree* retTree = new ParseTree(); (*retTree).SetLeaf1(FACTOR()->getLeaf()); if((*parser).get().token == MULTIPLY) { (*retTree).setAlt(2); if(!(*parser).Advance()) ThrowParserError(); (*retTree).SetLeaf2(TERM()->getLeaf()); } else { (*retTree).setAlt(1); } return retTree; }
ParseTree* Parser::FACTOR() { ParseTree* retTree = new ParseTree(); if((*parser).get().token == CONST) { (*retTree).setAlt(1); (*retTree).SetLeaf1(CONST_TERMINAL()->getLeaf()); } else if((*parser).get().token == ID) { (*retTree).setAlt(2); if(!isin((*parser).get().string)) { ThrowParserError(); } (*retTree).SetLeaf1(ID_TERMINAL()->getLeaf()); } else if((*parser).get().token == MINUS) { (*retTree).setAlt(3); if(!(*parser).Advance()) ThrowParserError(); (*retTree).SetLeaf1(FACTOR()->getLeaf()); } else if(!(*parser).get().token == LEFT_PAREN) { (*retTree).setAlt(4); if(!(*parser).Advance()) ThrowParserError(); (*retTree).SetLeaf1(EXPR()->getLeaf()); if(!((*parser).get().token == RIGHT_PAREN)) { ThrowParserError(); } if(!(*parser).Advance()) ThrowParserError(); } else { ThrowParserError(); } return retTree; }
*/ #define DUMMY_RATE 0 static DEFINE_SPINLOCK(mt8173_clk_lock); static const struct mtk_fixed_clk fixed_clks[] __initconst = { FIXED_CLK(CLK_TOP_CLKPH_MCK_O, "clkph_mck_o", "clk26m", DUMMY_RATE), FIXED_CLK(CLK_TOP_USB_SYSPLL_125M, "usb_syspll_125m", "clk26m", 125 * MHZ), FIXED_CLK(CLK_TOP_DSI0_DIG, "dsi0_dig", "clk26m", DUMMY_RATE), FIXED_CLK(CLK_TOP_DSI1_DIG, "dsi1_dig", "clk26m", DUMMY_RATE), FIXED_CLK(CLK_TOP_LVDS_PXL, "lvds_pxl", "lvdspll", DUMMY_RATE), FIXED_CLK(CLK_TOP_LVDS_CTS, "lvds_cts", "lvdspll", DUMMY_RATE), }; static const struct mtk_fixed_factor top_divs[] __initconst = { FACTOR(CLK_TOP_ARMCA7PLL_754M, "armca7pll_754m", "armca7pll", 1, 2), FACTOR(CLK_TOP_ARMCA7PLL_502M, "armca7pll_502m", "armca7pll", 1, 3), FACTOR(CLK_TOP_MAIN_H546M, "main_h546m", "mainpll", 1, 2), FACTOR(CLK_TOP_MAIN_H364M, "main_h364m", "mainpll", 1, 3), FACTOR(CLK_TOP_MAIN_H218P4M, "main_h218p4m", "mainpll", 1, 5), FACTOR(CLK_TOP_MAIN_H156M, "main_h156m", "mainpll", 1, 7), FACTOR(CLK_TOP_TVDPLL_445P5M, "tvdpll_445p5m", "tvdpll", 1, 4), FACTOR(CLK_TOP_TVDPLL_594M, "tvdpll_594m", "tvdpll", 1, 3), FACTOR(CLK_TOP_UNIV_624M, "univ_624m", "univpll", 1, 2), FACTOR(CLK_TOP_UNIV_416M, "univ_416m", "univpll", 1, 3), FACTOR(CLK_TOP_UNIV_249P6M, "univ_249p6m", "univpll", 1, 5), FACTOR(CLK_TOP_UNIV_178P3M, "univ_178p3m", "univpll", 1, 7), FACTOR(CLK_TOP_UNIV_48M, "univ_48m", "univpll", 1, 26),
*/ #include <linux/clk.h> #include <linux/of.h> #include <linux/of_address.h> #include <linux/slab.h> #include <linux/mfd/syscon.h> #include <dt-bindings/clock/mt8135-clk.h> #include "clk-mtk.h" #include "clk-gate.h" static DEFINE_SPINLOCK(mt8135_clk_lock); static const struct mtk_fixed_factor root_clk_alias[] __initconst = { FACTOR(CLK_TOP_DSI0_LNTC_DSICLK, "dsi0_lntc_dsiclk", "clk_null", 1, 1), FACTOR(CLK_TOP_HDMITX_CLKDIG_CTS, "hdmitx_clkdig_cts", "clk_null", 1, 1), FACTOR(CLK_TOP_CLKPH_MCK, "clkph_mck", "clk_null", 1, 1), FACTOR(CLK_TOP_CPUM_TCK_IN, "cpum_tck_in", "clk_null", 1, 1), }; static const struct mtk_fixed_factor top_divs[] __initconst = { FACTOR(CLK_TOP_MAINPLL_806M, "mainpll_806m", "mainpll", 1, 2), FACTOR(CLK_TOP_MAINPLL_537P3M, "mainpll_537p3m", "mainpll", 1, 3), FACTOR(CLK_TOP_MAINPLL_322P4M, "mainpll_322p4m", "mainpll", 1, 5), FACTOR(CLK_TOP_MAINPLL_230P3M, "mainpll_230p3m", "mainpll", 1, 7), FACTOR(CLK_TOP_UNIVPLL_624M, "univpll_624m", "univpll", 1, 2), FACTOR(CLK_TOP_UNIVPLL_416M, "univpll_416m", "univpll", 1, 3), FACTOR(CLK_TOP_UNIVPLL_249P6M, "univpll_249p6m", "univpll", 1, 5), FACTOR(CLK_TOP_UNIVPLL_178P3M, "univpll_178p3m", "univpll", 1, 7),
FIXED_CLK(CLK_TOP_SSUSB_TX250M, "ssusb_tx250m", "clkxtal", 250000000), FIXED_CLK(CLK_TOP_SSUSB_EQ_RX250M, "ssusb_eq_rx250m", "clkxtal", 250000000), FIXED_CLK(CLK_TOP_SSUSB_CDR_REF, "ssusb_cdr_ref", "clkxtal", 33333333), FIXED_CLK(CLK_TOP_SSUSB_CDR_FB, "ssusb_cdr_fb", "clkxtal", 50000000), FIXED_CLK(CLK_TOP_SATA_ASIC, "sata_asic", "clkxtal", 50000000), FIXED_CLK(CLK_TOP_SATA_RBC, "sata_rbc", "clkxtal", 50000000), }; static const struct mtk_fixed_factor top_divs[] = { FACTOR(CLK_TOP_TO_USB3_SYS, "to_usb3_sys", "eth1pll", 1, 4), FACTOR(CLK_TOP_P1_1MHZ, "p1_1mhz", "eth1pll", 1, 500), FACTOR(CLK_TOP_4MHZ, "free_run_4mhz", "eth1pll", 1, 125), FACTOR(CLK_TOP_P0_1MHZ, "p0_1mhz", "eth1pll", 1, 500), 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_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), FACTOR(CLK_TOP_MEMPLL, "mempll", "clkxtal", 32, 1), FACTOR(CLK_TOP_DMPLL, "dmpll_ck", "mempll", 1, 1), FACTOR(CLK_TOP_DMPLL_D4, "dmpll_d4", "mempll", 1, 4), FACTOR(CLK_TOP_DMPLL_D8, "dmpll_d8", "mempll", 1, 8), FACTOR(CLK_TOP_SYSPLL_D2, "syspll_d2", "mainpll", 1, 2), FACTOR(CLK_TOP_SYSPLL1_D2, "syspll1_d2", "mainpll", 1, 4),
/******************************************************************************* *** FUNCTION MOREFACTOR() ******************************************************************************* *** DESCRIPTION : Processes MOREFACTOR grammar rule. *** *** MOREFACTOR -> MULOP FACTOR MOREFACTOR *** ******************************************************************************/ void RecursiveParser::MOREFACTOR(TableEntry & rplace) { TableEntry tplace; string code; if (global->Token == Global::mulopt || global->Token == Global::relopt || global->Token == Global::idt || global->Token == Global::numt || global->Token == Global::lparent) { TableEntry temp = tempVar(); if (temp.depth <= 1) code += temp.Lexeme; else { code += "[bp-"; code += NumberToString(temp.var.Offset); code += "]"; } code += " = "; if (isSign) { code += sign; isSign = false; } if (rplace.TypeOfEntry == constEntry) { if (rplace.constant.TypeOfConstant == floatType) code += NumberToString(rplace.constant.ValueR); else code += NumberToString(rplace.constant.Value); } else { if (rplace.depth <= 1) code += rplace.Lexeme; else { code += "[bp"; if (rplace.isParam) code += "+"; else code += "-"; code += NumberToString(rplace.var.Offset); code += "]"; } } code += " " + global->Lexeme + " "; MULOP(); FACTOR(tplace); if (tplace.TypeOfEntry == constEntry) { if (tplace.constant.TypeOfConstant == floatType) code += NumberToString(tplace.constant.ValueR); else code += NumberToString(tplace.constant.Value); } else { if (tplace.depth <= 1) code += tplace.Lexeme; else { code += "[bp"; if (tplace.isParam) code += "+"; else code += "-"; code += NumberToString(tplace.var.Offset); code += "]"; } } rplace = temp; emit(code); MOREFACTOR(rplace); } }
FIXED_CLK(CLK_TOP_SSUSB_TX250M, "ssusb_tx250m", "clkxtal", 250000000), FIXED_CLK(CLK_TOP_SSUSB_EQ_RX250M, "ssusb_eq_rx250m", "clkxtal", 250000000), FIXED_CLK(CLK_TOP_SSUSB_CDR_REF, "ssusb_cdr_ref", "clkxtal", 33333333), FIXED_CLK(CLK_TOP_SSUSB_CDR_FB, "ssusb_cdr_fb", "clkxtal", 50000000), FIXED_CLK(CLK_TOP_SATA_ASIC, "sata_asic", "clkxtal", 50000000), FIXED_CLK(CLK_TOP_SATA_RBC, "sata_rbc", "clkxtal", 50000000), }; static const struct mtk_fixed_factor top_divs[] = { FACTOR(CLK_TOP_TO_USB3_SYS, "to_usb3_sys", "eth1pll", 1, 4), FACTOR(CLK_TOP_P1_1MHZ, "p1_1mhz", "eth1pll", 1, 500), FACTOR(CLK_TOP_4MHZ, "free_run_4mhz", "eth1pll", 1, 125), FACTOR(CLK_TOP_P0_1MHZ, "p0_1mhz", "eth1pll", 1, 500), FACTOR(CLK_TOP_TXCLK_SRC_PRE, "txclk_src_pre", "sgmiipll_d2", 1, 1), FACTOR(CLK_TOP_RTC, "rtc", "clkxtal", 1, 1024), FACTOR(CLK_TOP_MEMPLL, "mempll", "clkxtal", 32, 1), FACTOR(CLK_TOP_DMPLL, "dmpll_ck", "mempll", 1, 1), FACTOR(CLK_TOP_SYSPLL_D2, "syspll_d2", "mainpll", 1, 2), FACTOR(CLK_TOP_SYSPLL1_D2, "syspll1_d2", "mainpll", 1, 4), FACTOR(CLK_TOP_SYSPLL1_D4, "syspll1_d4", "mainpll", 1, 8), FACTOR(CLK_TOP_SYSPLL1_D8, "syspll1_d8", "mainpll", 1, 16), FACTOR(CLK_TOP_SYSPLL2_D4, "syspll2_d4", "mainpll", 1, 12), FACTOR(CLK_TOP_SYSPLL2_D8, "syspll2_d8", "mainpll", 1, 24), FACTOR(CLK_TOP_SYSPLL_D5, "syspll_d5", "mainpll", 1, 5), FACTOR(CLK_TOP_SYSPLL3_D2, "syspll3_d2", "mainpll", 1, 10),
MUX(0, "i2s_pre", mux_i2s_pre_p, CLK_SET_RATE_PARENT, RK2928_CLKSEL_CON(3), 8, 2, MFLAGS); static struct rockchip_clk_branch rk3036_spdif_fracmux __initdata = MUX(SCLK_SPDIF, "sclk_spdif", mux_spdif_p, 0, RK2928_CLKSEL_CON(5), 8, 2, MFLAGS); static struct rockchip_clk_branch rk3036_clk_branches[] __initdata = { /* * Clock-Architecture Diagram 1 */ GATE(0, "gpll_armclk", "gpll", CLK_IGNORE_UNUSED, RK2928_CLKGATE_CON(0), 6, GFLAGS), FACTOR(0, "xin12m", "xin24m", 0, 1, 2), /* * Clock-Architecture Diagram 2 */ GATE(0, "dpll_ddr", "dpll", CLK_IGNORE_UNUSED, RK2928_CLKGATE_CON(0), 2, GFLAGS), GATE(0, "gpll_ddr", "gpll", CLK_IGNORE_UNUSED, RK2928_CLKGATE_CON(0), 8, GFLAGS), COMPOSITE_NOGATE(0, "ddrphy2x", mux_ddrphy_p, CLK_IGNORE_UNUSED, RK2928_CLKSEL_CON(26), 8, 1, MFLAGS, 0, 2, DFLAGS | CLK_DIVIDER_POWER_OF_TWO), FACTOR(0, "ddrphy", "ddrphy2x", 0, 1, 2), COMPOSITE_NOMUX(0, "pclk_dbg", "armclk", CLK_IGNORE_UNUSED, RK2928_CLKSEL_CON(1), 0, 4, DFLAGS | CLK_DIVIDER_READ_ONLY,
RV1108_CLKGATE_CON(18), 2, GFLAGS), GATE(HCLK_IEP, "hclk_iep", "hclk_vio_pre", 0, RV1108_CLKGATE_CON(18), 3, GFLAGS), GATE(ACLK_RGA, "aclk_rga", "aclk_vio1_pre", 0, RV1108_CLKGATE_CON(18), 4, GFLAGS), GATE(HCLK_RGA, "hclk_rga", "hclk_vio_pre", 0, RV1108_CLKGATE_CON(18), 5, GFLAGS), COMPOSITE(SCLK_RGA, "sclk_rga", mux_pll_src_4plls_p, 0, RV1108_CLKSEL_CON(33), 6, 2, MFLAGS, 0, 5, DFLAGS, RV1108_CLKGATE_CON(6), 6, GFLAGS), COMPOSITE(SCLK_CVBS_HOST, "sclk_cvbs_host", mux_cvbs_src_p, 0, RV1108_CLKSEL_CON(33), 13, 2, MFLAGS, 8, 5, DFLAGS, RV1108_CLKGATE_CON(6), 7, GFLAGS), FACTOR(0, "sclk_cvbs_27m", "sclk_cvbs_host", 0, 1, 2), GATE(SCLK_HDMI_SFR, "sclk_hdmi_sfr", "xin24m", 0, RV1108_CLKGATE_CON(6), 8, GFLAGS), COMPOSITE(SCLK_HDMI_CEC, "sclk_hdmi_cec", mux_hdmi_cec_src_p, 0, RV1108_CLKSEL_CON(34), 14, 2, MFLAGS, 0, 14, DFLAGS, RV1108_CLKGATE_CON(6), 9, GFLAGS), GATE(PCLK_MIPI_DSI, "pclk_mipi_dsi", "pclk_vio_pre", 0, RV1108_CLKGATE_CON(18), 8, GFLAGS), GATE(PCLK_HDMI_CTRL, "pclk_hdmi_ctrl", "pclk_vio_pre", 0, RV1108_CLKGATE_CON(18), 9, GFLAGS), GATE(ACLK_ISP, "aclk_isp", "aclk_vio1_pre", 0, RV1108_CLKGATE_CON(18), 12, GFLAGS), GATE(HCLK_ISP, "hclk_isp", "hclk_vio_pre", 0,
FIXED_CLK(CLK_TOP_WBG_DIG_416M, "wbg_dig_ck_416m", "clk26m", 416 * MHZ), FIXED_CLK(CLK_TOP_DSI0_LNTC_DSI, "dsi0_lntc_dsi", "clk26m", 143 * MHZ), FIXED_CLK(CLK_TOP_HDMI_SCL_RX, "hdmi_scl_rx", "clk26m", 27 * MHZ), FIXED_CLK(CLK_TOP_AUD_EXT1, "aud_ext1", "clk26m", DUMMY_RATE), FIXED_CLK(CLK_TOP_AUD_EXT2, "aud_ext2", "clk26m", DUMMY_RATE), FIXED_CLK(CLK_TOP_NFI1X_PAD, "nfi1x_pad", "clk26m", DUMMY_RATE), }; static const struct mtk_fixed_factor top_fixed_divs[] = { FACTOR(CLK_TOP_SYSPLL, "syspll_ck", "mainpll", 1, 1), FACTOR(CLK_TOP_SYSPLL_D2, "syspll_d2", "mainpll", 1, 2), FACTOR(CLK_TOP_SYSPLL_D3, "syspll_d3", "mainpll", 1, 3), FACTOR(CLK_TOP_SYSPLL_D5, "syspll_d5", "mainpll", 1, 5), FACTOR(CLK_TOP_SYSPLL_D7, "syspll_d7", "mainpll", 1, 7), FACTOR(CLK_TOP_SYSPLL1_D2, "syspll1_d2", "syspll_d2", 1, 2), FACTOR(CLK_TOP_SYSPLL1_D4, "syspll1_d4", "syspll_d2", 1, 4), FACTOR(CLK_TOP_SYSPLL1_D8, "syspll1_d8", "syspll_d2", 1, 8), FACTOR(CLK_TOP_SYSPLL1_D16, "syspll1_d16", "syspll_d2", 1, 16), FACTOR(CLK_TOP_SYSPLL2_D2, "syspll2_d2", "syspll_d3", 1, 2), FACTOR(CLK_TOP_SYSPLL2_D4, "syspll2_d4", "syspll_d3", 1, 4), FACTOR(CLK_TOP_SYSPLL2_D8, "syspll2_d8", "syspll_d3", 1, 8), FACTOR(CLK_TOP_SYSPLL3_D2, "syspll3_d2", "syspll_d5", 1, 2), FACTOR(CLK_TOP_SYSPLL3_D4, "syspll3_d4", "syspll_d5", 1, 4), FACTOR(CLK_TOP_SYSPLL4_D2, "syspll4_d2", "syspll_d7", 1, 2), FACTOR(CLK_TOP_SYSPLL4_D4, "syspll4_d4", "syspll_d7", 1, 4),
GATE(0, "pclk_isp_pre", "pclk_vip", CLK_IGNORE_UNUSED, RK1108_CLKGATE_CON(7), 6, GFLAGS), GATE(0, "pclk_isp", "pclk_isp_pre", CLK_IGNORE_UNUSED, RK1108_CLKGATE_CON(18), 10, GFLAGS), GATE(0, "dclk_hdmiphy_src_gpll", "gpll", CLK_IGNORE_UNUSED, RK1108_CLKGATE_CON(6), 5, GFLAGS), GATE(0, "dclk_hdmiphy_src_dpll", "dpll", CLK_IGNORE_UNUSED, RK1108_CLKGATE_CON(6), 4, GFLAGS), COMPOSITE_NOGATE(0, "dclk_hdmiphy", mux_dclk_hdmiphy_pre_p, 0, RK1108_CLKSEL_CON(32), 6, 2, MFLAGS, 8, 6, DFLAGS), /* * Clock-Architecture Diagram 5 */ FACTOR(0, "xin12m", "xin24m", 0, 1, 2), COMPOSITE(0, "i2s0_src", mux_pll_src_2plls_p, 0, RK1108_CLKSEL_CON(5), 8, 1, MFLAGS, 0, 7, DFLAGS, RK1108_CLKGATE_CON(2), 0, GFLAGS), COMPOSITE_FRACMUX(0, "i2s1_frac", "i2s1_src", CLK_SET_RATE_PARENT, RK1108_CLKSEL_CON(8), 0, RK1108_CLKGATE_CON(2), 1, GFLAGS, &rk1108_i2s0_fracmux), GATE(SCLK_I2S0, "sclk_i2s0", "i2s0_pre", CLK_SET_RATE_PARENT, RK1108_CLKGATE_CON(2), 2, GFLAGS), COMPOSITE_NODIV(0, "i2s_out", mux_i2s_out_p, 0, RK1108_CLKSEL_CON(5), 15, 1, MFLAGS, RK1108_CLKGATE_CON(2), 3, GFLAGS), COMPOSITE(0, "i2s1_src", mux_pll_src_2plls_p, 0,
if (IS_ERR(clk)) { pr_err("Failed to register clk %s: %ld\n", ff->name, PTR_ERR(clk)); continue; } if (clk_data) clk_data->clks[ff->id] = clk; pr_debug("factor %3d: %s\n", i, ff->name); } } static struct mtk_fixed_factor root_clk_alias[] __initdata = { FACTOR(TOP_CLKPH_MCK_O, clkph_mck_o, clk_null, 1, 1), FACTOR(TOP_DPI_CK, dpi_ck, clk_null, 1, 1), }; static void __init init_clk_root_alias(struct clk_onecell_data *clk_data) { init_factors(root_clk_alias, ARRAY_SIZE(root_clk_alias), clk_data); } static struct mtk_fixed_factor top_divs[] __initdata = { FACTOR(TOP_UNIVPLL_D2, univpll_d2, univpll, 1, 1), FACTOR(TOP_UNIVPLL_D3, univpll_d3, univpll, 1, 1), FACTOR(TOP_UNIVPLL1_D2, univpll1_d2, univpll, 1, 1), FACTOR(TOP_AD_APLL1_CK, ad_apll1_ck, apll1, 1, 1), FACTOR(TOP_AD_SYS_26M_CK, ad_sys_26m_ck, clk26m, 1, 1), FACTOR(TOP_AD_SYS_26M_D2, ad_sys_26m_d2, clk26m, 1, 1),