diff options
| -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", |
