From: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
To: Luo Jie <quic_luoj@quicinc.com>,
andersson@kernel.org, agross@kernel.org,
konrad.dybcio@linaro.org, mturquette@baylibre.com,
sboyd@kernel.org, robh+dt@kernel.org,
krzysztof.kozlowski+dt@linaro.org, conor+dt@kernel.org,
catalin.marinas@arm.com, will@kernel.org, p.zabel@pengutronix.de
Cc: linux-arm-msm@vger.kernel.org, linux-clk@vger.kernel.org,
devicetree@vger.kernel.org, linux-kernel@vger.kernel.org,
quic_srichara@quicinc.com
Subject: Re: [PATCH v1 3/4] clk: qcom: add clock controller driver for qca8386/qca8084
Date: Wed, 9 Aug 2023 17:38:36 +0200 [thread overview]
Message-ID: <18d2241a-98ab-6a57-1c4f-d961a4b37c6b@linaro.org> (raw)
In-Reply-To: <20230809080047.19877-4-quic_luoj@quicinc.com>
On 09/08/2023 10:00, Luo Jie wrote:
> Add clock & reset controller driver for qca8386/qca8084.
>
> Signed-off-by: Luo Jie <quic_luoj@quicinc.com>
> ---
> drivers/clk/qcom/Kconfig | 8 +
> drivers/clk/qcom/Makefile | 1 +
> drivers/clk/qcom/nsscc-qca8k.c | 2195 ++++++++++++++++++++++++++++++++
> 3 files changed, 2204 insertions(+)
> create mode 100644 drivers/clk/qcom/nsscc-qca8k.c
>
> diff --git a/drivers/clk/qcom/Kconfig b/drivers/clk/qcom/Kconfig
> index 263e55d75e3f..d84705ff920d 100644
> --- a/drivers/clk/qcom/Kconfig
> +++ b/drivers/clk/qcom/Kconfig
> @@ -195,6 +195,14 @@ config IPQ_GCC_9574
> i2c, USB, SD/eMMC, etc. Select this for the root clock
> of ipq9574.
>
> +config IPQ_NSSCC_QCA8K
> + tristate "QCA8K(QCA8386 or QCA8084) NSS Clock Controller"
Is it specific to some arch? We keep ARM or ARM64 for most of the entries.
> + help
> + Support for NSS(Network SubSystem) clock controller on
> + qca8386/qca8084 chip.
> + Say Y if you want to use network features of switch or PHY
> + device. Select this for the root clock of qca8k.
> +
> config MSM_GCC_8660
> tristate "MSM8660 Global Clock Controller"
> depends on ARM || COMPILE_TEST
...
> +static int nss_cc_qca8k_probe(struct mdio_device *mdiodev)
> +{
> + struct device *dev = &mdiodev->dev;
> + struct regmap *regmap;
> + struct qcom_reset_controller *reset;
> + struct qcom_cc_desc desc = nss_cc_qca8k_desc;
> + size_t num_clks = desc.num_clks;
> + struct clk_regmap **rclks = desc.clks;
> + struct qcom_cc *cc;
> + int ret, i;
> +
> + cc = devm_kzalloc(dev, sizeof(*cc), GFP_KERNEL);
> + if (!cc)
> + return -ENOMEM;
> +
> + cc->rclks = rclks;
> + cc->num_rclks = num_clks;
> + reset = &cc->reset;
> +
> + regmap = devm_regmap_init(dev, NULL, mdiodev->bus, desc.config);
> +
Drop blank line.
> + if (IS_ERR(regmap)) {
> + dev_err(dev, "Failed to init MDIO regmap\n");
All of error returns could be converted return dev_err_probe(), just to
have smaller code. Not a requirement, though.
> + return PTR_ERR(regmap);
> + }
> +
> + reset->rcdev.of_node = dev->of_node;
> + reset->rcdev.dev = dev;
> + reset->rcdev.ops = &qcom_reset_ops;
> + reset->rcdev.owner = dev->driver->owner;
> + reset->rcdev.nr_resets = desc.num_resets;
> + reset->regmap = regmap;
> + reset->reset_map = desc.resets;
> +
> + ret = devm_reset_controller_register(dev, &reset->rcdev);
> + if (ret) {
> + dev_err(dev, "Failed to register QCA8K reset controller: %d\n", ret);
> + return ret;
> + }
> +
> + for (i = 0; i < num_clks; i++) {
> + if (!rclks[i])
> + continue;
> +
> + ret = devm_clk_register_regmap(dev, rclks[i]);
> + if (ret) {
> + dev_err(dev, "Failed to regmap register for QCA8K clock: %d\n", ret);
> + return ret;
> + }
> + }
> +
> + ret = devm_of_clk_add_hw_provider(dev, qcom_qca8k_clk_hw_get, cc);
> + if (ret) {
> + dev_err(dev, "Failed to register provider for QCA8K clock: %d\n", ret);
> + return ret;
> + }
> +
> + dev_info(dev, "Registered NSSCC QCA8K clocks\n");
Drop the simple info for probe status. Kernel has other ways to do this.
> + return ret;
> +}
> +
> +static const struct of_device_id nss_cc_qca8k_match_table[] = {
> + { .compatible = "qcom,qca8085-nsscc" },
> + { .compatible = "qcom,qca8084-nsscc" },
> + { .compatible = "qcom,qca8082-nsscc" },
> + { .compatible = "qcom,qca8386-nsscc" },
> + { .compatible = "qcom,qca8385-nsscc" },
> + { .compatible = "qcom,qca8384-nsscc" },
You only need qca8084 here. Drop all other entries.
> + { }
> +};
Best regards,
Krzysztof
next prev parent reply other threads:[~2023-08-09 15:39 UTC|newest]
Thread overview: 17+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-08-09 8:00 [PATCH v1 0/4] add clock controller of qca8386/qca8084 Luo Jie
2023-08-09 8:00 ` [PATCH v1 1/4] clk: qcom: branch: Add clk_branch2_qca8k_ops Luo Jie
2023-08-09 16:56 ` Konrad Dybcio
2023-08-10 3:46 ` Jie Luo
2023-08-09 8:00 ` [PATCH v1 2/4] dt-bindings: clock: add qca8386/qca8084 clock and reset definitions Luo Jie
2023-08-09 15:34 ` Krzysztof Kozlowski
2023-08-10 3:51 ` Jie Luo
2023-08-09 8:00 ` [PATCH v1 3/4] clk: qcom: add clock controller driver for qca8386/qca8084 Luo Jie
2023-08-09 15:38 ` Krzysztof Kozlowski [this message]
2023-08-10 4:44 ` Jie Luo
2023-08-09 16:57 ` Konrad Dybcio
2023-08-10 4:48 ` Jie Luo
2023-08-09 8:00 ` [PATCH v1 4/4] arm64: defconfig: Enable qca8k nss clock controller Luo Jie
2023-08-09 15:40 ` Krzysztof Kozlowski
2023-08-10 4:50 ` Jie Luo
2023-08-09 15:32 ` [PATCH v1 0/4] add clock controller of qca8386/qca8084 Krzysztof Kozlowski
2023-08-10 4:51 ` Jie Luo
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=18d2241a-98ab-6a57-1c4f-d961a4b37c6b@linaro.org \
--to=krzysztof.kozlowski@linaro.org \
--cc=agross@kernel.org \
--cc=andersson@kernel.org \
--cc=catalin.marinas@arm.com \
--cc=conor+dt@kernel.org \
--cc=devicetree@vger.kernel.org \
--cc=konrad.dybcio@linaro.org \
--cc=krzysztof.kozlowski+dt@linaro.org \
--cc=linux-arm-msm@vger.kernel.org \
--cc=linux-clk@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=mturquette@baylibre.com \
--cc=p.zabel@pengutronix.de \
--cc=quic_luoj@quicinc.com \
--cc=quic_srichara@quicinc.com \
--cc=robh+dt@kernel.org \
--cc=sboyd@kernel.org \
--cc=will@kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).