[PATCH v2] clk: si521xx: correct the SI52147 OF output enable map

From: Pengpeng Hou

Date: Thu Aug 13 2026 - 11:43:19 EST


The SI52147 data sheet assigns DIFF0 through DIFF3 output-enable bits to
0x17 in control register 1. The OF match data uses 0x15, leaving the
DIFF2 bit out of the map, while the I2C ID table already uses the
documented value.

Use 0x17 for the SI52147 OF entry so both enumeration paths expose the
documented outputs.

Fixes: edc12763a3a29 ("clk: si521xx: Clock driver for Skyworks Si521xx I2C PCIe clock generators")

Assisted-by: Codex:gpt-5
Signed-off-by: Pengpeng Hou <pengpeng@xxxxxxxxxxx>
---
Changes since the RFC: https://lore.kernel.org/all/20260624055810.49310-1-pengpeng@xxxxxxxxxxx/
- replace the table-consistency assumption with the SI52147 data sheet
- send as a normal patch now that the register value is documented
- disclose the use of Codex

Data sheet: https://www.skyworksinc.com/Application-Pages/-/media/SkyWorks/SL/documents/public/data-sheets/Si52147.pdf

The change was reviewed against the data sheet and source. It was not
tested on SI52147 hardware.

drivers/clk/clk-si521xx.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/clk/clk-si521xx.c b/drivers/clk/clk-si521xx.c
index ceadc07bcb6d..d5be08e12685 100644
--- a/drivers/clk/clk-si521xx.c
+++ b/drivers/clk/clk-si521xx.c
@@ -374,7 +374,7 @@ MODULE_DEVICE_TABLE(i2c, si521xx_id);
static const struct of_device_id clk_si521xx_of_match[] = {
{ .compatible = "skyworks,si52144", .data = (void *)SI521XX_OE_MAP(0x5, 0xc0) },
{ .compatible = "skyworks,si52146", .data = (void *)SI521XX_OE_MAP(0x15, 0xe0) },
- { .compatible = "skyworks,si52147", .data = (void *)SI521XX_OE_MAP(0x15, 0xf8) },
+ { .compatible = "skyworks,si52147", .data = (void *)SI521XX_OE_MAP(0x17, 0xf8) },
{ }
};
MODULE_DEVICE_TABLE(of, clk_si521xx_of_match);
--
2.50.1 (Apple Git-155)