|
@@ -137,6 +137,13 @@ static long ccu_nkmp_round_rate(struct clk_hw *hw, unsigned long rate,
|
|
|
if (nkmp->common.features & CCU_FEATURE_FIXED_POSTDIV)
|
|
|
rate *= nkmp->fixed_post_div;
|
|
|
|
|
|
+ if (nkmp->max_rate && rate > nkmp->max_rate) {
|
|
|
+ rate = nkmp->max_rate;
|
|
|
+ if (nkmp->common.features & CCU_FEATURE_FIXED_POSTDIV)
|
|
|
+ rate /= nkmp->fixed_post_div;
|
|
|
+ return rate;
|
|
|
+ }
|
|
|
+
|
|
|
_nkmp.min_n = nkmp->n.min ?: 1;
|
|
|
_nkmp.max_n = nkmp->n.max ?: 1 << nkmp->n.width;
|
|
|
_nkmp.min_k = nkmp->k.min ?: 1;
|