Quoting Ryan Walklin (2024-07-03 03:51:09)
quoted hunk ↗ jump to hunk
diff --git a/drivers/clk/sunxi-ng/ccu-sun8i-de2.c b/drivers/clk/sunxi-ng/ccu-sun8i-de2.c
index b0b8dba239aec..36b9eadb80bb5 100644
--- a/drivers/clk/sunxi-ng/ccu-sun8i-de2.c
+++ b/drivers/clk/sunxi-ng/ccu-sun8i-de2.c
@@ -7,6 +7,7 @@
#include <linux/clk-provider.h>
#include <linux/module.h>
#include <linux/of.h>
+#include <linux/of_address.h>
What is this include for?
quoted hunk ↗ jump to hunk
#include <linux/platform_device.h>
#include <linux/reset.h>
@@ -290,6 +301,16 @@ static int sunxi_de2_clk_probe(struct platform_device *pdev)
"Couldn't deassert reset control: %d\n", ret);
goto err_disable_mod_clk;
}
+
+ /*
+ * The DE33 requires these additional (unknown) registers set
+ * during initialisation.
+ */
+ if (of_device_is_compatible(pdev->dev.of_node,
+ "allwinner,sun50i-h616-de33-clk")) {
+ writel(0, reg + 0x24);
+ writel(0x0000A980, reg + 0x28);
Lowercase hex please. Did the downstream driver have names for these
register offsets by way of some sort of #define?
+ }
ret = devm_sunxi_ccu_probe(&pdev->dev, reg, ccu_desc);
if (ret)