diff options
author | Stephen Boyd <sboyd@codeaurora.org> | 2017-08-02 12:09:42 -0400 |
---|---|---|
committer | Stephen Boyd <sboyd@codeaurora.org> | 2017-08-02 12:09:42 -0400 |
commit | b48d7c5b896277fdb1462aae3a4c13858132764b (patch) | |
tree | 0f68913faf8b45ca2ea9168a63e99202f73c53ba | |
parent | 5b30850bd6bda5188eedec60d364256617a87343 (diff) | |
parent | 1f737ffa13efd3da2c703d45894ea234e9290c89 (diff) |
Merge tag 'meson-clk-fixes-for-4.13-rc4-v2' of git://github.com/baylibre/clk-meson into clk-fixes
Pull one Meson clock fix from Neil Armstrong
* tag 'meson-clk-fixes-for-4.13-rc4-v2' of git://github.com/baylibre/clk-meson:
clk: meson: mpll: fix mpll0 fractional part ignored
-rw-r--r-- | drivers/clk/meson/clk-mpll.c | 7 | ||||
-rw-r--r-- | drivers/clk/meson/clkc.h | 1 | ||||
-rw-r--r-- | drivers/clk/meson/gxbb.c | 5 | ||||
-rw-r--r-- | drivers/clk/meson/meson8b.c | 5 |
4 files changed, 18 insertions, 0 deletions
diff --git a/drivers/clk/meson/clk-mpll.c b/drivers/clk/meson/clk-mpll.c index 39eab69fe51a..44a5a535ca63 100644 --- a/drivers/clk/meson/clk-mpll.c +++ b/drivers/clk/meson/clk-mpll.c | |||
@@ -161,6 +161,13 @@ static int mpll_set_rate(struct clk_hw *hw, | |||
161 | reg = PARM_SET(p->width, p->shift, reg, 1); | 161 | reg = PARM_SET(p->width, p->shift, reg, 1); |
162 | writel(reg, mpll->base + p->reg_off); | 162 | writel(reg, mpll->base + p->reg_off); |
163 | 163 | ||
164 | p = &mpll->ssen; | ||
165 | if (p->width != 0) { | ||
166 | reg = readl(mpll->base + p->reg_off); | ||
167 | reg = PARM_SET(p->width, p->shift, reg, 1); | ||
168 | writel(reg, mpll->base + p->reg_off); | ||
169 | } | ||
170 | |||
164 | p = &mpll->n2; | 171 | p = &mpll->n2; |
165 | reg = readl(mpll->base + p->reg_off); | 172 | reg = readl(mpll->base + p->reg_off); |
166 | reg = PARM_SET(p->width, p->shift, reg, n2); | 173 | reg = PARM_SET(p->width, p->shift, reg, n2); |
diff --git a/drivers/clk/meson/clkc.h b/drivers/clk/meson/clkc.h index d6feafe8bd6c..1629da9b4141 100644 --- a/drivers/clk/meson/clkc.h +++ b/drivers/clk/meson/clkc.h | |||
@@ -118,6 +118,7 @@ struct meson_clk_mpll { | |||
118 | struct parm sdm_en; | 118 | struct parm sdm_en; |
119 | struct parm n2; | 119 | struct parm n2; |
120 | struct parm en; | 120 | struct parm en; |
121 | struct parm ssen; | ||
121 | spinlock_t *lock; | 122 | spinlock_t *lock; |
122 | }; | 123 | }; |
123 | 124 | ||
diff --git a/drivers/clk/meson/gxbb.c b/drivers/clk/meson/gxbb.c index a897ea45327c..a7ea5f3da89d 100644 --- a/drivers/clk/meson/gxbb.c +++ b/drivers/clk/meson/gxbb.c | |||
@@ -528,6 +528,11 @@ static struct meson_clk_mpll gxbb_mpll0 = { | |||
528 | .shift = 14, | 528 | .shift = 14, |
529 | .width = 1, | 529 | .width = 1, |
530 | }, | 530 | }, |
531 | .ssen = { | ||
532 | .reg_off = HHI_MPLL_CNTL, | ||
533 | .shift = 25, | ||
534 | .width = 1, | ||
535 | }, | ||
531 | .lock = &clk_lock, | 536 | .lock = &clk_lock, |
532 | .hw.init = &(struct clk_init_data){ | 537 | .hw.init = &(struct clk_init_data){ |
533 | .name = "mpll0", | 538 | .name = "mpll0", |
diff --git a/drivers/clk/meson/meson8b.c b/drivers/clk/meson/meson8b.c index bb3f1de876b1..6ec512ad2598 100644 --- a/drivers/clk/meson/meson8b.c +++ b/drivers/clk/meson/meson8b.c | |||
@@ -267,6 +267,11 @@ static struct meson_clk_mpll meson8b_mpll0 = { | |||
267 | .shift = 14, | 267 | .shift = 14, |
268 | .width = 1, | 268 | .width = 1, |
269 | }, | 269 | }, |
270 | .ssen = { | ||
271 | .reg_off = HHI_MPLL_CNTL, | ||
272 | .shift = 25, | ||
273 | .width = 1, | ||
274 | }, | ||
270 | .lock = &clk_lock, | 275 | .lock = &clk_lock, |
271 | .hw.init = &(struct clk_init_data){ | 276 | .hw.init = &(struct clk_init_data){ |
272 | .name = "mpll0", | 277 | .name = "mpll0", |