Lines Matching refs:cmp

49 	struct ccu_mp *cmp = data;  in ccu_mp_round_rate()  local
53 if (cmp->common.features & CCU_FEATURE_FIXED_POSTDIV) in ccu_mp_round_rate()
54 rate *= cmp->fixed_post_div; in ccu_mp_round_rate()
56 max_m = cmp->m.max ?: 1 << cmp->m.width; in ccu_mp_round_rate()
57 max_p = cmp->p.max ?: 1 << ((1 << cmp->p.width) - 1); in ccu_mp_round_rate()
62 if (cmp->common.features & CCU_FEATURE_FIXED_POSTDIV) in ccu_mp_round_rate()
63 rate /= cmp->fixed_post_div; in ccu_mp_round_rate()
70 struct ccu_mp *cmp = hw_to_ccu_mp(hw); in ccu_mp_disable() local
72 return ccu_gate_helper_disable(&cmp->common, cmp->enable); in ccu_mp_disable()
77 struct ccu_mp *cmp = hw_to_ccu_mp(hw); in ccu_mp_enable() local
79 return ccu_gate_helper_enable(&cmp->common, cmp->enable); in ccu_mp_enable()
84 struct ccu_mp *cmp = hw_to_ccu_mp(hw); in ccu_mp_is_enabled() local
86 return ccu_gate_helper_is_enabled(&cmp->common, cmp->enable); in ccu_mp_is_enabled()
92 struct ccu_mp *cmp = hw_to_ccu_mp(hw); in ccu_mp_recalc_rate() local
98 parent_rate = ccu_mux_helper_apply_prediv(&cmp->common, &cmp->mux, -1, in ccu_mp_recalc_rate()
101 reg = readl(cmp->common.base + cmp->common.reg); in ccu_mp_recalc_rate()
103 m = reg >> cmp->m.shift; in ccu_mp_recalc_rate()
104 m &= (1 << cmp->m.width) - 1; in ccu_mp_recalc_rate()
105 m += cmp->m.offset; in ccu_mp_recalc_rate()
109 p = reg >> cmp->p.shift; in ccu_mp_recalc_rate()
110 p &= (1 << cmp->p.width) - 1; in ccu_mp_recalc_rate()
113 if (cmp->common.features & CCU_FEATURE_FIXED_POSTDIV) in ccu_mp_recalc_rate()
114 rate /= cmp->fixed_post_div; in ccu_mp_recalc_rate()
122 struct ccu_mp *cmp = hw_to_ccu_mp(hw); in ccu_mp_determine_rate() local
124 return ccu_mux_helper_determine_rate(&cmp->common, &cmp->mux, in ccu_mp_determine_rate()
125 req, ccu_mp_round_rate, cmp); in ccu_mp_determine_rate()
131 struct ccu_mp *cmp = hw_to_ccu_mp(hw); in ccu_mp_set_rate() local
138 parent_rate = ccu_mux_helper_apply_prediv(&cmp->common, &cmp->mux, -1, in ccu_mp_set_rate()
141 max_m = cmp->m.max ?: 1 << cmp->m.width; in ccu_mp_set_rate()
142 max_p = cmp->p.max ?: 1 << ((1 << cmp->p.width) - 1); in ccu_mp_set_rate()
145 if (cmp->common.features & CCU_FEATURE_FIXED_POSTDIV) in ccu_mp_set_rate()
146 rate = rate * cmp->fixed_post_div; in ccu_mp_set_rate()
150 spin_lock_irqsave(cmp->common.lock, flags); in ccu_mp_set_rate()
152 reg = readl(cmp->common.base + cmp->common.reg); in ccu_mp_set_rate()
153 reg &= ~GENMASK(cmp->m.width + cmp->m.shift - 1, cmp->m.shift); in ccu_mp_set_rate()
154 reg &= ~GENMASK(cmp->p.width + cmp->p.shift - 1, cmp->p.shift); in ccu_mp_set_rate()
155 reg |= (m - cmp->m.offset) << cmp->m.shift; in ccu_mp_set_rate()
156 reg |= ilog2(p) << cmp->p.shift; in ccu_mp_set_rate()
158 writel(reg, cmp->common.base + cmp->common.reg); in ccu_mp_set_rate()
160 spin_unlock_irqrestore(cmp->common.lock, flags); in ccu_mp_set_rate()
167 struct ccu_mp *cmp = hw_to_ccu_mp(hw); in ccu_mp_get_parent() local
169 return ccu_mux_helper_get_parent(&cmp->common, &cmp->mux); in ccu_mp_get_parent()
174 struct ccu_mp *cmp = hw_to_ccu_mp(hw); in ccu_mp_set_parent() local
176 return ccu_mux_helper_set_parent(&cmp->common, &cmp->mux, index); in ccu_mp_set_parent()