| From f13d2cd6d2ed907bb80bbbcd772e3183721a25e9 Mon Sep 17 00:00:00 2001 |
| From: Eugen Hristev <eugen.hristev@microchip.com> |
| Date: Tue, 10 Dec 2019 11:25:19 +0000 |
| Subject: [PATCH] clk: at91: sam9x60: fix programmable clock prescaler |
| |
| commit 66d9f5214c9ba1c151478f99520b6817302d50dc upstream. |
| |
| The prescaler works as parent rate divided by (PRES + 1) (is_pres_direct == 1) |
| It does not work in the way of parent rate shifted to the right by (PRES + 1), |
| which means division by 2^(PRES + 1) (is_pres_direct == 0) |
| Thus is_pres_direct must be enabled for this SoC, to make the right computation. |
| This field was added in |
| commit 45b06682113b ("clk: at91: fix programmable clock for sama5d2") |
| SAM9X60 has the same field as SAMA5D2 in the PCK |
| |
| Fixes: 01e2113de9a5 ("clk: at91: add sam9x60 pmc driver") |
| Signed-off-by: Eugen Hristev <eugen.hristev@microchip.com> |
| Link: https://lkml.kernel.org/r/1575977088-16781-1-git-send-email-eugen.hristev@microchip.com |
| Signed-off-by: Stephen Boyd <sboyd@kernel.org> |
| Signed-off-by: Paul Gortmaker <paul.gortmaker@windriver.com> |
| |
| diff --git a/drivers/clk/at91/sam9x60.c b/drivers/clk/at91/sam9x60.c |
| index 86238d5ecb4d..77398aefeb6d 100644 |
| --- a/drivers/clk/at91/sam9x60.c |
| +++ b/drivers/clk/at91/sam9x60.c |
| @@ -47,6 +47,7 @@ static const struct clk_programmable_layout sam9x60_programmable_layout = { |
| .pres_shift = 8, |
| .css_mask = 0x1f, |
| .have_slck_mck = 0, |
| + .is_pres_direct = 1, |
| }; |
| |
| static const struct clk_pcr_layout sam9x60_pcr_layout = { |
| -- |
| 2.7.4 |
| |