Re: [PATCH 08/10] clk: qcom: add the SM8650 Display Clock Controller driver

From: Neil Armstrong
Date: Thu Oct 26 2023 - 08:27:29 EST


On 25/10/2023 23:45, Stephen Boyd wrote:
Quoting Neil Armstrong (2023-10-25 00:32:45)
diff --git a/drivers/clk/qcom/Kconfig b/drivers/clk/qcom/Kconfig
index c04b6526f4f3..5bf25e8d033c 100644
--- a/drivers/clk/qcom/Kconfig
+++ b/drivers/clk/qcom/Kconfig
@@ -842,6 +842,15 @@ config SM_DISPCC_8550
Say Y if you want to support display devices and functionality such as
splash screen.
+config SM_DISPCC_8650
+ tristate "SM8650 Display Clock Controller"
+ depends on SM_GCC_8650

selects?

We use selects instead of depends so that the driver can be built-in or
modular regardless of parent clks that provide clks to this device.
Orphan clk handling resolves issues with the driver registering clks
before parents. And with fw_devlink the driver isn't even attempted to
probe before the GCC driver is probed so there's no build dependency
between these drivers.

All current DISPCC entries uses depends, but CAM_CC doesn't,
I'll switch to select and re-sync Kconfig for all 8650 entries.


+ help
+ Support for the display clock controller on Qualcomm Technologies, Inc
+ SM8650 devices.
+ Say Y if you want to support display devices and functionality such as
+ splash screen.
+
config SM_GCC_4450
tristate "SM4450 Global Clock Controller"
depends on ARM64 || COMPILE_TEST
diff --git a/drivers/clk/qcom/dispcc-sm8650.c b/drivers/clk/qcom/dispcc-sm8650.c
new file mode 100644
index 000000000000..7cb91306e895
--- /dev/null
+++ b/drivers/clk/qcom/dispcc-sm8650.c
@@ -0,0 +1,1806 @@
+// SPDX-License-Identifier: GPL-2.0-only
+/*
+ * Copyright (c) 2021, The Linux Foundation. All rights reserved.
+ * Copyright (c) 2023, Linaro Ltd.
+ */
+
+#include <linux/clk.h>

Is this include used?

+#include <linux/clk-provider.h>
+#include <linux/err.h>
+#include <linux/kernel.h>
+#include <linux/module.h>
+#include <linux/of_device.h>

Is this mod_devicetable.h?

+#include <linux/of.h>

Is this include used?

+#include <linux/regmap.h>
+#include <linux/pm_runtime.h>
+
+#include <dt-bindings/clock/qcom,sm8650-dispcc.h>
+
+#include "common.h"
+#include "clk-alpha-pll.h"
+#include "clk-branch.h"
+#include "clk-pll.h"
+#include "clk-rcg.h"
+#include "clk-regmap.h"
+#include "clk-regmap-divider.h"
+#include "clk-regmap-mux.h"

Is this include used?

+#include "reset.h"
+#include "gdsc.h"
+

Did a include cleanup aswell on all drivers.

Thanks,
Neil