Loading drivers/clk/qcom/clk-alpha-pll.c +61 −7 Original line number Diff line number Diff line Loading @@ -86,8 +86,10 @@ const u8 clk_alpha_pll_regs[][PLL_OFF_MAX_REGS] = { [PLL_OFF_ALPHA_VAL] = 0x08, [PLL_OFF_ALPHA_VAL_U] = 0x0c, [PLL_OFF_USER_CTL] = 0x10, [PLL_OFF_USER_CTL_U] = 0x14, [PLL_OFF_CONFIG_CTL] = 0x18, [PLL_OFF_TEST_CTL] = 0x1c, [PLL_OFF_TEST_CTL_U] = 0x20, [PLL_OFF_STATUS] = 0x24, }, [CLK_ALPHA_PLL_TYPE_FABIA] = { Loading Loading @@ -257,21 +259,42 @@ void clk_alpha_pll_configure(struct clk_alpha_pll *pll, struct regmap *regmap, val |= config->aux2_output_mask; val |= config->early_output_mask; val |= config->pre_div_val; val |= config->post_div_val; val |= config->vco_val; val |= config->alpha_en_mask; val |= config->alpha_mode_mask; mask = config->main_output_mask; mask |= config->aux_output_mask; mask |= config->aux2_output_mask; mask |= config->early_output_mask; mask |= config->pre_div_mask; mask |= config->post_div_mask; mask |= config->vco_mask; mask |= config->alpha_en_mask; regmap_update_bits(regmap, PLL_USER_CTL(pll), mask, val); if (config->post_div_mask) { mask = config->post_div_mask; val = config->post_div_val; regmap_update_bits(regmap, PLL_USER_CTL(pll), mask, val); } if (config->test_ctl_mask) { mask = config->test_ctl_mask; val = config->test_ctl_val; regmap_update_bits(regmap, PLL_TEST_CTL(pll), mask, val); } if (config->test_ctl_hi_mask) { mask = config->test_ctl_hi_mask; val = config->test_ctl_hi_val; regmap_update_bits(regmap, PLL_TEST_CTL_U(pll), mask, val); } if (pll->flags & SUPPORTS_DYNAMIC_UPDATE) regmap_update_bits(regmap, PLL_MODE(pll), PLL_UPDATE_BYPASS, PLL_UPDATE_BYPASS); if (pll->flags & SUPPORTS_FSM_MODE) qcom_pll_set_fsm_mode(regmap, PLL_MODE(pll), 6, 0); } Loading Loading @@ -446,6 +469,15 @@ alpha_pll_round_rate(unsigned long rate, unsigned long prate, u32 *l, u64 *a, u64 remainder; u64 quotient; /* * The PLLs parent rate is zero probably since the parent hasn't * registered yet. Return early with the requested rate. */ if (!prate) { pr_warn("PLLs parent rate hasn't been initialized.\n"); return rate; } quotient = rate; remainder = do_div(quotient, prate); *l = quotient; Loading Loading @@ -508,7 +540,6 @@ clk_alpha_pll_recalc_rate(struct clk_hw *hw, unsigned long parent_rate) return alpha_pll_calc_rate(prate, l, a, alpha_width); } static int __clk_alpha_pll_update_latch(struct clk_alpha_pll *pll) { int ret; Loading Loading @@ -542,6 +573,9 @@ static int __clk_alpha_pll_update_latch(struct clk_alpha_pll *pll) return ret; } if (pll->flags & SUPPORTS_DYNAMIC_UPDATE) ret = wait_for_pll_enable_lock(pll); else ret = wait_for_pll_update_ack_clear(pll); if (ret) return ret; Loading Loading @@ -570,14 +604,30 @@ static int __clk_alpha_pll_set_rate(struct clk_hw *hw, unsigned long rate, const struct pll_vco *vco; u32 l, alpha_width = pll_alpha_width(pll); u64 a; unsigned long rrate; rate = alpha_pll_round_rate(rate, prate, &l, &a, alpha_width); vco = alpha_pll_find_vco(pll, rate); rrate = alpha_pll_round_rate(rate, prate, &l, &a, alpha_width); if (rrate != rate) { pr_err("alpha_pll: Call clk_set_rate with rounded rates!\n"); return -EINVAL; } vco = alpha_pll_find_vco(pll, rrate); if (pll->vco_table && !vco) { pr_err("alpha pll not in a valid vco range\n"); return -EINVAL; } /* * For PLLs that do not support dynamic programming (dynamic_update * is not set), ensure PLL is off before changing rate. For * optimization reasons, assume no downstream clock is actively * using it. */ if (is_enabled(&pll->clkr.hw) && !(pll->flags & SUPPORTS_DYNAMIC_UPDATE)) hw->init->ops->disable(hw); regmap_write(pll->clkr.regmap, PLL_L_VAL(pll), l); if (alpha_width > ALPHA_BITWIDTH) Loading @@ -597,6 +647,10 @@ static int __clk_alpha_pll_set_rate(struct clk_hw *hw, unsigned long rate, regmap_update_bits(pll->clkr.regmap, PLL_USER_CTL(pll), PLL_ALPHA_EN, PLL_ALPHA_EN); if (is_enabled(&pll->clkr.hw) && !(pll->flags & SUPPORTS_DYNAMIC_UPDATE)) hw->init->ops->enable(hw); return clk_alpha_pll_update_latch(pll, is_enabled); } Loading drivers/clk/qcom/clk-alpha-pll.h +2 −0 Original line number Diff line number Diff line Loading @@ -112,6 +112,8 @@ struct alpha_pll_config { u32 pre_div_mask; u32 post_div_val; u32 post_div_mask; u32 test_ctl_mask; u32 test_ctl_hi_mask; u32 vco_val; u32 vco_mask; const u32 *custom_reg_offset; Loading include/dt-bindings/clock/qcom,rpmcc.h +145 −66 Original line number Diff line number Diff line Loading @@ -57,71 +57,150 @@ #define RPM_SMD_BIMC_A_CLK 7 #define RPM_SMD_QDSS_CLK 8 #define RPM_SMD_QDSS_A_CLK 9 #define RPM_SMD_BB_CLK1 10 #define RPM_SMD_BB_CLK1_A 11 #define RPM_SMD_BB_CLK2 12 #define RPM_SMD_BB_CLK2_A 13 #define RPM_SMD_RF_CLK1 14 #define RPM_SMD_RF_CLK1_A 15 #define RPM_SMD_RF_CLK2 16 #define RPM_SMD_RF_CLK2_A 17 #define RPM_SMD_BB_CLK1_PIN 18 #define RPM_SMD_BB_CLK1_A_PIN 19 #define RPM_SMD_BB_CLK2_PIN 20 #define RPM_SMD_BB_CLK2_A_PIN 21 #define RPM_SMD_RF_CLK1_PIN 22 #define RPM_SMD_RF_CLK1_A_PIN 23 #define RPM_SMD_RF_CLK2_PIN 24 #define RPM_SMD_RF_CLK2_A_PIN 25 #define RPM_SMD_PNOC_CLK 26 #define RPM_SMD_PNOC_A_CLK 27 #define RPM_SMD_CNOC_CLK 28 #define RPM_SMD_CNOC_A_CLK 29 #define RPM_SMD_MMSSNOC_AHB_CLK 30 #define RPM_SMD_MMSSNOC_AHB_A_CLK 31 #define RPM_SMD_GFX3D_CLK_SRC 32 #define RPM_SMD_GFX3D_A_CLK_SRC 33 #define RPM_SMD_OCMEMGX_CLK 34 #define RPM_SMD_OCMEMGX_A_CLK 35 #define RPM_SMD_CXO_D0 36 #define RPM_SMD_CXO_D0_A 37 #define RPM_SMD_CXO_D1 38 #define RPM_SMD_CXO_D1_A 39 #define RPM_SMD_CXO_A0 40 #define RPM_SMD_CXO_A0_A 41 #define RPM_SMD_CXO_A1 42 #define RPM_SMD_CXO_A1_A 43 #define RPM_SMD_CXO_A2 44 #define RPM_SMD_CXO_A2_A 45 #define RPM_SMD_DIV_CLK1 46 #define RPM_SMD_DIV_A_CLK1 47 #define RPM_SMD_DIV_CLK2 48 #define RPM_SMD_DIV_A_CLK2 49 #define RPM_SMD_DIFF_CLK 50 #define RPM_SMD_DIFF_A_CLK 51 #define RPM_SMD_CXO_D0_PIN 52 #define RPM_SMD_CXO_D0_A_PIN 53 #define RPM_SMD_CXO_D1_PIN 54 #define RPM_SMD_CXO_D1_A_PIN 55 #define RPM_SMD_CXO_A0_PIN 56 #define RPM_SMD_CXO_A0_A_PIN 57 #define RPM_SMD_CXO_A1_PIN 58 #define RPM_SMD_CXO_A1_A_PIN 59 #define RPM_SMD_CXO_A2_PIN 60 #define RPM_SMD_CXO_A2_A_PIN 61 #define RPM_SMD_AGGR1_NOC_CLK 62 #define RPM_SMD_AGGR1_NOC_A_CLK 63 #define RPM_SMD_AGGR2_NOC_CLK 64 #define RPM_SMD_AGGR2_NOC_A_CLK 65 #define RPM_SMD_MMAXI_CLK 66 #define RPM_SMD_MMAXI_A_CLK 67 #define RPM_SMD_IPA_CLK 68 #define RPM_SMD_IPA_A_CLK 69 #define RPM_SMD_CE1_CLK 70 #define RPM_SMD_CE1_A_CLK 71 #define RPM_SMD_DIV_CLK3 72 #define RPM_SMD_DIV_A_CLK3 73 #define RPM_SMD_LN_BB_CLK 74 #define RPM_SMD_LN_BB_A_CLK 75 #define RPM_SMD_IPA_CLK 10 #define RPM_SMD_IPA_A_CLK 11 #define RPM_SMD_QUP_CLK 12 #define RPM_SMD_QUP_A_CLK 13 #define RPM_SMD_MMRT_CLK 14 #define RPM_SMD_MMRT_A_CLK 15 #define RPM_SMD_MMNRT_CLK 16 #define RPM_SMD_MMNRT_A_CLK 17 #define RPM_SMD_SNOC_PERIPH_CLK 18 #define RPM_SMD_SNOC_PERIPH_A_CLK 19 #define RPM_SMD_SNOC_LPASS_CLK 20 #define RPM_SMD_SNOC_LPASS_A_CLK 21 #define RPM_SMD_BB_CLK1 22 #define RPM_SMD_BB_CLK1_A 23 #define RPM_SMD_BB_CLK2 24 #define RPM_SMD_BB_CLK2_A 25 #define RPM_SMD_RF_CLK1 26 #define RPM_SMD_RF_CLK1_A 27 #define RPM_SMD_RF_CLK2 28 #define RPM_SMD_RF_CLK2_A 29 #define RPM_SMD_BB_CLK1_PIN 30 #define RPM_SMD_BB_CLK1_A_PIN 31 #define RPM_SMD_BB_CLK2_PIN 32 #define RPM_SMD_BB_CLK2_A_PIN 33 #define RPM_SMD_RF_CLK1_PIN 34 #define RPM_SMD_RF_CLK1_A_PIN 35 #define RPM_SMD_RF_CLK2_PIN 36 #define RPM_SMD_RF_CLK2_A_PIN 37 #define RPM_SMD_PNOC_CLK 38 #define RPM_SMD_PNOC_A_CLK 39 #define RPM_SMD_CNOC_CLK 40 #define RPM_SMD_CNOC_A_CLK 41 #define RPM_SMD_MMSSNOC_AHB_CLK 42 #define RPM_SMD_MMSSNOC_AHB_A_CLK 43 #define RPM_SMD_GFX3D_CLK_SRC 44 #define RPM_SMD_GFX3D_A_CLK_SRC 45 #define RPM_SMD_OCMEMGX_CLK 46 #define RPM_SMD_OCMEMGX_A_CLK 47 #define RPM_SMD_CXO_D0 48 #define RPM_SMD_CXO_D0_A 49 #define RPM_SMD_CXO_D1 50 #define RPM_SMD_CXO_D1_A 51 #define RPM_SMD_CXO_A0 52 #define RPM_SMD_CXO_A0_A 53 #define RPM_SMD_CXO_A1 54 #define RPM_SMD_CXO_A1_A 55 #define RPM_SMD_CXO_A2 56 #define RPM_SMD_CXO_A2_A 57 #define RPM_SMD_DIV_CLK1 58 #define RPM_SMD_DIV_A_CLK1 59 #define RPM_SMD_DIV_CLK2 60 #define RPM_SMD_DIV_A_CLK2 61 #define RPM_SMD_DIFF_CLK 62 #define RPM_SMD_DIFF_A_CLK 63 #define RPM_SMD_CXO_D0_PIN 64 #define RPM_SMD_CXO_D0_A_PIN 65 #define RPM_SMD_CXO_D1_PIN 66 #define RPM_SMD_CXO_D1_A_PIN 67 #define RPM_SMD_CXO_A0_PIN 68 #define RPM_SMD_CXO_A0_A_PIN 69 #define RPM_SMD_CXO_A1_PIN 70 #define RPM_SMD_CXO_A1_A_PIN 71 #define RPM_SMD_CXO_A2_PIN 72 #define RPM_SMD_CXO_A2_A_PIN 73 #define RPM_SMD_QPIC_CLK 74 #define RPM_SMD_QPIC_A_CLK 75 #define RPM_SMD_CE1_CLK 76 #define RPM_SMD_CE1_A_CLK 77 #define RPM_SMD_BIMC_GPU_CLK 78 #define RPM_SMD_BIMC_GPU_A_CLK 79 #define RPM_SMD_LN_BB_CLK 80 #define RPM_SMD_LN_BB_CLK_A 81 #define RPM_SMD_LN_BB_CLK_PIN 82 #define RPM_SMD_LN_BB_CLK_A_PIN 83 #define RPM_SMD_RF_CLK3 84 #define RPM_SMD_RF_CLK3_A 85 #define RPM_SMD_RF_CLK3_PIN 86 #define RPM_SMD_RF_CLK3_A_PIN 87 #define RPM_SMD_LN_BB_CLK1 88 #define RPM_SMD_LN_BB_CLK1_A 89 #define RPM_SMD_LN_BB_CLK2 90 #define RPM_SMD_LN_BB_CLK2_A 91 #define RPM_SMD_LN_BB_CLK3 92 #define RPM_SMD_LN_BB_CLK3_A 93 #define PNOC_MSMBUS_CLK 94 #define PNOC_MSMBUS_A_CLK 95 #define PNOC_KEEPALIVE_A_CLK 96 #define SNOC_MSMBUS_CLK 97 #define SNOC_MSMBUS_A_CLK 98 #define BIMC_MSMBUS_CLK 99 #define BIMC_MSMBUS_A_CLK 100 #define PNOC_USB_CLK 101 #define PNOC_USB_A_CLK 102 #define SNOC_USB_CLK 103 #define SNOC_USB_A_CLK 104 #define BIMC_USB_CLK 105 #define BIMC_USB_A_CLK 106 #define SNOC_WCNSS_A_CLK 107 #define BIMC_WCNSS_A_CLK 108 #define MCD_CE1_CLK 109 #define QCEDEV_CE1_CLK 110 #define QCRYPTO_CE1_CLK 111 #define QSEECOM_CE1_CLK 112 #define SCM_CE1_CLK 113 #define CXO_SMD_OTG_CLK 114 #define CXO_SMD_LPM_CLK 115 #define CXO_SMD_PIL_PRONTO_CLK 116 #define CXO_SMD_PIL_MSS_CLK 117 #define CXO_SMD_WLAN_CLK 118 #define CXO_SMD_PIL_LPASS_CLK 119 #define CXO_SMD_PIL_CDSP_CLK 120 #define CNOC_MSMBUS_CLK 121 #define CNOC_MSMBUS_A_CLK 122 #define CNOC_KEEPALIVE_A_CLK 123 #define SNOC_KEEPALIVE_A_CLK 124 #define CPP_MMNRT_MSMBUS_CLK 125 #define CPP_MMNRT_MSMBUS_A_CLK 126 #define JPEG_MMNRT_MSMBUS_CLK 127 #define JPEG_MMNRT_MSMBUS_A_CLK 128 #define VENUS_MMNRT_MSMBUS_CLK 129 #define VENUS_MMNRT_MSMBUS_A_CLK 130 #define ARM9_MMNRT_MSMBUS_CLK 131 #define ARM9_MMNRT_MSMBUS_A_CLK 132 #define MDP_MMRT_MSMBUS_CLK 133 #define MDP_MMRT_MSMBUS_A_CLK 134 #define VFE_MMRT_MSMBUS_CLK 135 #define VFE_MMRT_MSMBUS_A_CLK 136 #define QUP0_MSMBUS_SNOC_PERIPH_CLK 137 #define QUP0_MSMBUS_SNOC_PERIPH_A_CLK 138 #define QUP1_MSMBUS_SNOC_PERIPH_CLK 139 #define QUP1_MSMBUS_SNOC_PERIPH_A_CLK 140 #define QUP2_MSMBUS_SNOC_PERIPH_CLK 141 #define QUP2_MSMBUS_SNOC_PERIPH_A_CLK 142 #define DAP_MSMBUS_SNOC_PERIPH_CLK 143 #define DAP_MSMBUS_SNOC_PERIPH_A_CLK 144 #define SDC1_MSMBUS_SNOC_PERIPH_CLK 145 #define SDC1_MSMBUS_SNOC_PERIPH_A_CLK 146 #define SDC2_MSMBUS_SNOC_PERIPH_CLK 147 #define SDC2_MSMBUS_SNOC_PERIPH_A_CLK 148 #define CRYPTO_MSMBUS_SNOC_PERIPH_CLK 149 #define CRYPTO_MSMBUS_SNOC_PERIPH_A_CLK 150 #define SDC1_SLV_MSMBUS_SNOC_PERIPH_CLK 151 #define SDC1_SLV_MSMBUS_SNOC_PERIPH_A_CLK 152 #define SDC2_SLV_MSMBUS_SNOC_PERIPH_CLK 153 #define SDC2_SLV_MSMBUS_SNOC_PERIPH_A_CLK 154 #endif Loading
drivers/clk/qcom/clk-alpha-pll.c +61 −7 Original line number Diff line number Diff line Loading @@ -86,8 +86,10 @@ const u8 clk_alpha_pll_regs[][PLL_OFF_MAX_REGS] = { [PLL_OFF_ALPHA_VAL] = 0x08, [PLL_OFF_ALPHA_VAL_U] = 0x0c, [PLL_OFF_USER_CTL] = 0x10, [PLL_OFF_USER_CTL_U] = 0x14, [PLL_OFF_CONFIG_CTL] = 0x18, [PLL_OFF_TEST_CTL] = 0x1c, [PLL_OFF_TEST_CTL_U] = 0x20, [PLL_OFF_STATUS] = 0x24, }, [CLK_ALPHA_PLL_TYPE_FABIA] = { Loading Loading @@ -257,21 +259,42 @@ void clk_alpha_pll_configure(struct clk_alpha_pll *pll, struct regmap *regmap, val |= config->aux2_output_mask; val |= config->early_output_mask; val |= config->pre_div_val; val |= config->post_div_val; val |= config->vco_val; val |= config->alpha_en_mask; val |= config->alpha_mode_mask; mask = config->main_output_mask; mask |= config->aux_output_mask; mask |= config->aux2_output_mask; mask |= config->early_output_mask; mask |= config->pre_div_mask; mask |= config->post_div_mask; mask |= config->vco_mask; mask |= config->alpha_en_mask; regmap_update_bits(regmap, PLL_USER_CTL(pll), mask, val); if (config->post_div_mask) { mask = config->post_div_mask; val = config->post_div_val; regmap_update_bits(regmap, PLL_USER_CTL(pll), mask, val); } if (config->test_ctl_mask) { mask = config->test_ctl_mask; val = config->test_ctl_val; regmap_update_bits(regmap, PLL_TEST_CTL(pll), mask, val); } if (config->test_ctl_hi_mask) { mask = config->test_ctl_hi_mask; val = config->test_ctl_hi_val; regmap_update_bits(regmap, PLL_TEST_CTL_U(pll), mask, val); } if (pll->flags & SUPPORTS_DYNAMIC_UPDATE) regmap_update_bits(regmap, PLL_MODE(pll), PLL_UPDATE_BYPASS, PLL_UPDATE_BYPASS); if (pll->flags & SUPPORTS_FSM_MODE) qcom_pll_set_fsm_mode(regmap, PLL_MODE(pll), 6, 0); } Loading Loading @@ -446,6 +469,15 @@ alpha_pll_round_rate(unsigned long rate, unsigned long prate, u32 *l, u64 *a, u64 remainder; u64 quotient; /* * The PLLs parent rate is zero probably since the parent hasn't * registered yet. Return early with the requested rate. */ if (!prate) { pr_warn("PLLs parent rate hasn't been initialized.\n"); return rate; } quotient = rate; remainder = do_div(quotient, prate); *l = quotient; Loading Loading @@ -508,7 +540,6 @@ clk_alpha_pll_recalc_rate(struct clk_hw *hw, unsigned long parent_rate) return alpha_pll_calc_rate(prate, l, a, alpha_width); } static int __clk_alpha_pll_update_latch(struct clk_alpha_pll *pll) { int ret; Loading Loading @@ -542,6 +573,9 @@ static int __clk_alpha_pll_update_latch(struct clk_alpha_pll *pll) return ret; } if (pll->flags & SUPPORTS_DYNAMIC_UPDATE) ret = wait_for_pll_enable_lock(pll); else ret = wait_for_pll_update_ack_clear(pll); if (ret) return ret; Loading Loading @@ -570,14 +604,30 @@ static int __clk_alpha_pll_set_rate(struct clk_hw *hw, unsigned long rate, const struct pll_vco *vco; u32 l, alpha_width = pll_alpha_width(pll); u64 a; unsigned long rrate; rate = alpha_pll_round_rate(rate, prate, &l, &a, alpha_width); vco = alpha_pll_find_vco(pll, rate); rrate = alpha_pll_round_rate(rate, prate, &l, &a, alpha_width); if (rrate != rate) { pr_err("alpha_pll: Call clk_set_rate with rounded rates!\n"); return -EINVAL; } vco = alpha_pll_find_vco(pll, rrate); if (pll->vco_table && !vco) { pr_err("alpha pll not in a valid vco range\n"); return -EINVAL; } /* * For PLLs that do not support dynamic programming (dynamic_update * is not set), ensure PLL is off before changing rate. For * optimization reasons, assume no downstream clock is actively * using it. */ if (is_enabled(&pll->clkr.hw) && !(pll->flags & SUPPORTS_DYNAMIC_UPDATE)) hw->init->ops->disable(hw); regmap_write(pll->clkr.regmap, PLL_L_VAL(pll), l); if (alpha_width > ALPHA_BITWIDTH) Loading @@ -597,6 +647,10 @@ static int __clk_alpha_pll_set_rate(struct clk_hw *hw, unsigned long rate, regmap_update_bits(pll->clkr.regmap, PLL_USER_CTL(pll), PLL_ALPHA_EN, PLL_ALPHA_EN); if (is_enabled(&pll->clkr.hw) && !(pll->flags & SUPPORTS_DYNAMIC_UPDATE)) hw->init->ops->enable(hw); return clk_alpha_pll_update_latch(pll, is_enabled); } Loading
drivers/clk/qcom/clk-alpha-pll.h +2 −0 Original line number Diff line number Diff line Loading @@ -112,6 +112,8 @@ struct alpha_pll_config { u32 pre_div_mask; u32 post_div_val; u32 post_div_mask; u32 test_ctl_mask; u32 test_ctl_hi_mask; u32 vco_val; u32 vco_mask; const u32 *custom_reg_offset; Loading
include/dt-bindings/clock/qcom,rpmcc.h +145 −66 Original line number Diff line number Diff line Loading @@ -57,71 +57,150 @@ #define RPM_SMD_BIMC_A_CLK 7 #define RPM_SMD_QDSS_CLK 8 #define RPM_SMD_QDSS_A_CLK 9 #define RPM_SMD_BB_CLK1 10 #define RPM_SMD_BB_CLK1_A 11 #define RPM_SMD_BB_CLK2 12 #define RPM_SMD_BB_CLK2_A 13 #define RPM_SMD_RF_CLK1 14 #define RPM_SMD_RF_CLK1_A 15 #define RPM_SMD_RF_CLK2 16 #define RPM_SMD_RF_CLK2_A 17 #define RPM_SMD_BB_CLK1_PIN 18 #define RPM_SMD_BB_CLK1_A_PIN 19 #define RPM_SMD_BB_CLK2_PIN 20 #define RPM_SMD_BB_CLK2_A_PIN 21 #define RPM_SMD_RF_CLK1_PIN 22 #define RPM_SMD_RF_CLK1_A_PIN 23 #define RPM_SMD_RF_CLK2_PIN 24 #define RPM_SMD_RF_CLK2_A_PIN 25 #define RPM_SMD_PNOC_CLK 26 #define RPM_SMD_PNOC_A_CLK 27 #define RPM_SMD_CNOC_CLK 28 #define RPM_SMD_CNOC_A_CLK 29 #define RPM_SMD_MMSSNOC_AHB_CLK 30 #define RPM_SMD_MMSSNOC_AHB_A_CLK 31 #define RPM_SMD_GFX3D_CLK_SRC 32 #define RPM_SMD_GFX3D_A_CLK_SRC 33 #define RPM_SMD_OCMEMGX_CLK 34 #define RPM_SMD_OCMEMGX_A_CLK 35 #define RPM_SMD_CXO_D0 36 #define RPM_SMD_CXO_D0_A 37 #define RPM_SMD_CXO_D1 38 #define RPM_SMD_CXO_D1_A 39 #define RPM_SMD_CXO_A0 40 #define RPM_SMD_CXO_A0_A 41 #define RPM_SMD_CXO_A1 42 #define RPM_SMD_CXO_A1_A 43 #define RPM_SMD_CXO_A2 44 #define RPM_SMD_CXO_A2_A 45 #define RPM_SMD_DIV_CLK1 46 #define RPM_SMD_DIV_A_CLK1 47 #define RPM_SMD_DIV_CLK2 48 #define RPM_SMD_DIV_A_CLK2 49 #define RPM_SMD_DIFF_CLK 50 #define RPM_SMD_DIFF_A_CLK 51 #define RPM_SMD_CXO_D0_PIN 52 #define RPM_SMD_CXO_D0_A_PIN 53 #define RPM_SMD_CXO_D1_PIN 54 #define RPM_SMD_CXO_D1_A_PIN 55 #define RPM_SMD_CXO_A0_PIN 56 #define RPM_SMD_CXO_A0_A_PIN 57 #define RPM_SMD_CXO_A1_PIN 58 #define RPM_SMD_CXO_A1_A_PIN 59 #define RPM_SMD_CXO_A2_PIN 60 #define RPM_SMD_CXO_A2_A_PIN 61 #define RPM_SMD_AGGR1_NOC_CLK 62 #define RPM_SMD_AGGR1_NOC_A_CLK 63 #define RPM_SMD_AGGR2_NOC_CLK 64 #define RPM_SMD_AGGR2_NOC_A_CLK 65 #define RPM_SMD_MMAXI_CLK 66 #define RPM_SMD_MMAXI_A_CLK 67 #define RPM_SMD_IPA_CLK 68 #define RPM_SMD_IPA_A_CLK 69 #define RPM_SMD_CE1_CLK 70 #define RPM_SMD_CE1_A_CLK 71 #define RPM_SMD_DIV_CLK3 72 #define RPM_SMD_DIV_A_CLK3 73 #define RPM_SMD_LN_BB_CLK 74 #define RPM_SMD_LN_BB_A_CLK 75 #define RPM_SMD_IPA_CLK 10 #define RPM_SMD_IPA_A_CLK 11 #define RPM_SMD_QUP_CLK 12 #define RPM_SMD_QUP_A_CLK 13 #define RPM_SMD_MMRT_CLK 14 #define RPM_SMD_MMRT_A_CLK 15 #define RPM_SMD_MMNRT_CLK 16 #define RPM_SMD_MMNRT_A_CLK 17 #define RPM_SMD_SNOC_PERIPH_CLK 18 #define RPM_SMD_SNOC_PERIPH_A_CLK 19 #define RPM_SMD_SNOC_LPASS_CLK 20 #define RPM_SMD_SNOC_LPASS_A_CLK 21 #define RPM_SMD_BB_CLK1 22 #define RPM_SMD_BB_CLK1_A 23 #define RPM_SMD_BB_CLK2 24 #define RPM_SMD_BB_CLK2_A 25 #define RPM_SMD_RF_CLK1 26 #define RPM_SMD_RF_CLK1_A 27 #define RPM_SMD_RF_CLK2 28 #define RPM_SMD_RF_CLK2_A 29 #define RPM_SMD_BB_CLK1_PIN 30 #define RPM_SMD_BB_CLK1_A_PIN 31 #define RPM_SMD_BB_CLK2_PIN 32 #define RPM_SMD_BB_CLK2_A_PIN 33 #define RPM_SMD_RF_CLK1_PIN 34 #define RPM_SMD_RF_CLK1_A_PIN 35 #define RPM_SMD_RF_CLK2_PIN 36 #define RPM_SMD_RF_CLK2_A_PIN 37 #define RPM_SMD_PNOC_CLK 38 #define RPM_SMD_PNOC_A_CLK 39 #define RPM_SMD_CNOC_CLK 40 #define RPM_SMD_CNOC_A_CLK 41 #define RPM_SMD_MMSSNOC_AHB_CLK 42 #define RPM_SMD_MMSSNOC_AHB_A_CLK 43 #define RPM_SMD_GFX3D_CLK_SRC 44 #define RPM_SMD_GFX3D_A_CLK_SRC 45 #define RPM_SMD_OCMEMGX_CLK 46 #define RPM_SMD_OCMEMGX_A_CLK 47 #define RPM_SMD_CXO_D0 48 #define RPM_SMD_CXO_D0_A 49 #define RPM_SMD_CXO_D1 50 #define RPM_SMD_CXO_D1_A 51 #define RPM_SMD_CXO_A0 52 #define RPM_SMD_CXO_A0_A 53 #define RPM_SMD_CXO_A1 54 #define RPM_SMD_CXO_A1_A 55 #define RPM_SMD_CXO_A2 56 #define RPM_SMD_CXO_A2_A 57 #define RPM_SMD_DIV_CLK1 58 #define RPM_SMD_DIV_A_CLK1 59 #define RPM_SMD_DIV_CLK2 60 #define RPM_SMD_DIV_A_CLK2 61 #define RPM_SMD_DIFF_CLK 62 #define RPM_SMD_DIFF_A_CLK 63 #define RPM_SMD_CXO_D0_PIN 64 #define RPM_SMD_CXO_D0_A_PIN 65 #define RPM_SMD_CXO_D1_PIN 66 #define RPM_SMD_CXO_D1_A_PIN 67 #define RPM_SMD_CXO_A0_PIN 68 #define RPM_SMD_CXO_A0_A_PIN 69 #define RPM_SMD_CXO_A1_PIN 70 #define RPM_SMD_CXO_A1_A_PIN 71 #define RPM_SMD_CXO_A2_PIN 72 #define RPM_SMD_CXO_A2_A_PIN 73 #define RPM_SMD_QPIC_CLK 74 #define RPM_SMD_QPIC_A_CLK 75 #define RPM_SMD_CE1_CLK 76 #define RPM_SMD_CE1_A_CLK 77 #define RPM_SMD_BIMC_GPU_CLK 78 #define RPM_SMD_BIMC_GPU_A_CLK 79 #define RPM_SMD_LN_BB_CLK 80 #define RPM_SMD_LN_BB_CLK_A 81 #define RPM_SMD_LN_BB_CLK_PIN 82 #define RPM_SMD_LN_BB_CLK_A_PIN 83 #define RPM_SMD_RF_CLK3 84 #define RPM_SMD_RF_CLK3_A 85 #define RPM_SMD_RF_CLK3_PIN 86 #define RPM_SMD_RF_CLK3_A_PIN 87 #define RPM_SMD_LN_BB_CLK1 88 #define RPM_SMD_LN_BB_CLK1_A 89 #define RPM_SMD_LN_BB_CLK2 90 #define RPM_SMD_LN_BB_CLK2_A 91 #define RPM_SMD_LN_BB_CLK3 92 #define RPM_SMD_LN_BB_CLK3_A 93 #define PNOC_MSMBUS_CLK 94 #define PNOC_MSMBUS_A_CLK 95 #define PNOC_KEEPALIVE_A_CLK 96 #define SNOC_MSMBUS_CLK 97 #define SNOC_MSMBUS_A_CLK 98 #define BIMC_MSMBUS_CLK 99 #define BIMC_MSMBUS_A_CLK 100 #define PNOC_USB_CLK 101 #define PNOC_USB_A_CLK 102 #define SNOC_USB_CLK 103 #define SNOC_USB_A_CLK 104 #define BIMC_USB_CLK 105 #define BIMC_USB_A_CLK 106 #define SNOC_WCNSS_A_CLK 107 #define BIMC_WCNSS_A_CLK 108 #define MCD_CE1_CLK 109 #define QCEDEV_CE1_CLK 110 #define QCRYPTO_CE1_CLK 111 #define QSEECOM_CE1_CLK 112 #define SCM_CE1_CLK 113 #define CXO_SMD_OTG_CLK 114 #define CXO_SMD_LPM_CLK 115 #define CXO_SMD_PIL_PRONTO_CLK 116 #define CXO_SMD_PIL_MSS_CLK 117 #define CXO_SMD_WLAN_CLK 118 #define CXO_SMD_PIL_LPASS_CLK 119 #define CXO_SMD_PIL_CDSP_CLK 120 #define CNOC_MSMBUS_CLK 121 #define CNOC_MSMBUS_A_CLK 122 #define CNOC_KEEPALIVE_A_CLK 123 #define SNOC_KEEPALIVE_A_CLK 124 #define CPP_MMNRT_MSMBUS_CLK 125 #define CPP_MMNRT_MSMBUS_A_CLK 126 #define JPEG_MMNRT_MSMBUS_CLK 127 #define JPEG_MMNRT_MSMBUS_A_CLK 128 #define VENUS_MMNRT_MSMBUS_CLK 129 #define VENUS_MMNRT_MSMBUS_A_CLK 130 #define ARM9_MMNRT_MSMBUS_CLK 131 #define ARM9_MMNRT_MSMBUS_A_CLK 132 #define MDP_MMRT_MSMBUS_CLK 133 #define MDP_MMRT_MSMBUS_A_CLK 134 #define VFE_MMRT_MSMBUS_CLK 135 #define VFE_MMRT_MSMBUS_A_CLK 136 #define QUP0_MSMBUS_SNOC_PERIPH_CLK 137 #define QUP0_MSMBUS_SNOC_PERIPH_A_CLK 138 #define QUP1_MSMBUS_SNOC_PERIPH_CLK 139 #define QUP1_MSMBUS_SNOC_PERIPH_A_CLK 140 #define QUP2_MSMBUS_SNOC_PERIPH_CLK 141 #define QUP2_MSMBUS_SNOC_PERIPH_A_CLK 142 #define DAP_MSMBUS_SNOC_PERIPH_CLK 143 #define DAP_MSMBUS_SNOC_PERIPH_A_CLK 144 #define SDC1_MSMBUS_SNOC_PERIPH_CLK 145 #define SDC1_MSMBUS_SNOC_PERIPH_A_CLK 146 #define SDC2_MSMBUS_SNOC_PERIPH_CLK 147 #define SDC2_MSMBUS_SNOC_PERIPH_A_CLK 148 #define CRYPTO_MSMBUS_SNOC_PERIPH_CLK 149 #define CRYPTO_MSMBUS_SNOC_PERIPH_A_CLK 150 #define SDC1_SLV_MSMBUS_SNOC_PERIPH_CLK 151 #define SDC1_SLV_MSMBUS_SNOC_PERIPH_A_CLK 152 #define SDC2_SLV_MSMBUS_SNOC_PERIPH_CLK 153 #define SDC2_SLV_MSMBUS_SNOC_PERIPH_A_CLK 154 #endif