From 9c4d2eb582078788a3f115fef91824d9213e237d Mon Sep 17 00:00:00 2001 From: Vasily Khoruzhick Date: Tue, 24 Jul 2018 10:17:55 -0700 Subject: [PATCH 074/146] a64: ccu: enable LDOs for pll-mipi and add min/max rate for it --- drivers/clk/sunxi-ng/ccu-sun50i-a64.c | 2 ++ drivers/clk/sunxi-ng/ccu_nkm.c | 5 +++++ drivers/clk/sunxi-ng/ccu_nkm.h | 3 +++ 3 files changed, 10 insertions(+) diff --git a/drivers/clk/sunxi-ng/ccu-sun50i-a64.c b/drivers/clk/sunxi-ng/ccu-sun50i-a64.c index 1fe3c3fbc9bc..7c645f2c017a 100644 --- a/drivers/clk/sunxi-ng/ccu-sun50i-a64.c +++ b/drivers/clk/sunxi-ng/ccu-sun50i-a64.c @@ -163,6 +163,8 @@ static struct ccu_nkm pll_mipi_clk = { .n = _SUNXI_CCU_MULT(8, 4), .k = _SUNXI_CCU_MULT_MIN(4, 2, 2), .m = _SUNXI_CCU_DIV(0, 4), + .min_rate = 300000000, + .max_rate = 1400000000, .common = { .reg = 0x040, .hw.init = CLK_HW_INIT("pll-mipi", "pll-video0", diff --git a/drivers/clk/sunxi-ng/ccu_nkm.c b/drivers/clk/sunxi-ng/ccu_nkm.c index 841840e35e61..01e6df4c1232 100644 --- a/drivers/clk/sunxi-ng/ccu_nkm.c +++ b/drivers/clk/sunxi-ng/ccu_nkm.c @@ -122,6 +122,11 @@ static unsigned long ccu_nkm_round_rate(struct ccu_mux_internal *mux, _nkm.min_m = 1; _nkm.max_m = nkm->m.max ?: 1 << nkm->m.width; + if (rate < nkm->min_rate) + rate = nkm->min_rate; + if (nkm->max_rate && (rate > nkm->max_rate)) + rate = nkm->max_rate; + if (nkm->common.features & CCU_FEATURE_FIXED_POSTDIV) rate *= nkm->fixed_post_div; diff --git a/drivers/clk/sunxi-ng/ccu_nkm.h b/drivers/clk/sunxi-ng/ccu_nkm.h index cc6efb70a102..6e01836ef122 100644 --- a/drivers/clk/sunxi-ng/ccu_nkm.h +++ b/drivers/clk/sunxi-ng/ccu_nkm.h @@ -36,6 +36,9 @@ struct ccu_nkm { unsigned int fixed_post_div; + unsigned int min_rate; + unsigned int max_rate; + struct ccu_common common; }; -- 2.17.1