| From 3d7ef57594eafaacb5c30839c5b7600dcbb719ee Mon Sep 17 00:00:00 2001 |
| From: Sasha Levin <sashal@kernel.org> |
| Date: Thu, 25 Mar 2021 13:26:39 -0600 |
| Subject: clk: si5341: Update initialization magic |
| |
| From: Robert Hancock <robert.hancock@calian.com> |
| |
| [ Upstream commit 3c9b49b0031aefb81adfdba5ab0ddf3ca3a2cdc9 ] |
| |
| Update the default register settings to include the VCO_RESET_CALCODE |
| settings (set by the SiLabs ClockBuilder software but not described in |
| the datasheet). Also update part of the initialization sequence to match |
| ClockBuilder and the datasheet. |
| |
| Fixes: 3044a860fd ("clk: Add Si5341/Si5340 driver") |
| Signed-off-by: Robert Hancock <robert.hancock@calian.com> |
| Link: https://lore.kernel.org/r/20210325192643.2190069-6-robert.hancock@calian.com |
| Signed-off-by: Stephen Boyd <sboyd@kernel.org> |
| Signed-off-by: Sasha Levin <sashal@kernel.org> |
| --- |
| drivers/clk/clk-si5341.c | 4 +++- |
| 1 file changed, 3 insertions(+), 1 deletion(-) |
| |
| diff --git a/drivers/clk/clk-si5341.c b/drivers/clk/clk-si5341.c |
| index da40b90c2aa8..eb22f4fdbc6b 100644 |
| --- a/drivers/clk/clk-si5341.c |
| +++ b/drivers/clk/clk-si5341.c |
| @@ -350,6 +350,8 @@ static const struct si5341_reg_default si5341_reg_defaults[] = { |
| { 0x094A, 0x00 }, /* INx_TO_PFD_EN (disabled) */ |
| { 0x0A02, 0x00 }, /* Not in datasheet */ |
| { 0x0B44, 0x0F }, /* PDIV_ENB (datasheet does not mention what it is) */ |
| + { 0x0B57, 0x10 }, /* VCO_RESET_CALCODE (not described in datasheet) */ |
| + { 0x0B58, 0x05 }, /* VCO_RESET_CALCODE (not described in datasheet) */ |
| }; |
| |
| /* Read and interpret a 44-bit followed by a 32-bit value in the regmap */ |
| @@ -1104,7 +1106,7 @@ static const struct si5341_reg_default si5341_preamble[] = { |
| { 0x0B25, 0x00 }, |
| { 0x0502, 0x01 }, |
| { 0x0505, 0x03 }, |
| - { 0x0957, 0x1F }, |
| + { 0x0957, 0x17 }, |
| { 0x0B4E, 0x1A }, |
| }; |
| |
| -- |
| 2.30.2 |
| |