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

From: Stephen Boyd
Date: Wed Oct 25 2023 - 17:46:04 EST


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.

> + 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"
> +