58 lines
1.8 KiB
Diff
58 lines
1.8 KiB
Diff
From 0c9e2f71295e75f4c9cbce6749d118628ede121e Mon Sep 17 00:00:00 2001
|
|
From: Vasily Khoruzhick <anarsoul@gmail.com>
|
|
Date: Tue, 24 Jul 2018 10:17:55 -0700
|
|
Subject: [PATCH 029/153] drv:clk:sunxi-ng: ccu: add min/max rate sun50i-a64
|
|
|
|
---
|
|
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 761d50597..9833ab1a1 100644
|
|
--- a/drivers/clk/sunxi-ng/ccu-sun50i-a64.c
|
|
+++ b/drivers/clk/sunxi-ng/ccu-sun50i-a64.c
|
|
@@ -196,6 +196,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 67da2c189..83d969db0 100644
|
|
--- a/drivers/clk/sunxi-ng/ccu_nkm.c
|
|
+++ b/drivers/clk/sunxi-ng/ccu_nkm.c
|
|
@@ -119,6 +119,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 6601defb3..57aa8087c 100644
|
|
--- a/drivers/clk/sunxi-ng/ccu_nkm.h
|
|
+++ b/drivers/clk/sunxi-ng/ccu_nkm.h
|
|
@@ -28,6 +28,9 @@ struct ccu_nkm {
|
|
|
|
unsigned int fixed_post_div;
|
|
|
|
+ unsigned int min_rate;
|
|
+ unsigned int max_rate;
|
|
+
|
|
struct ccu_common common;
|
|
};
|
|
|
|
--
|
|
2.35.3
|
|
|