Re: [PATCH 5/9] clk: qcom: Update TCSR clock driver for Kaanapali
From: Dmitry Baryshkov <hidden>
Date: 2025-10-20 11:03:44
Also in:
linux-arm-msm, linux-clk, lkml
On Wed, Sep 24, 2025 at 03:58:57PM -0700, Jingyi Wang wrote:
quoted hunk ↗ jump to hunk
From: Taniya Das <redacted> The TCSR clock controller found on Kaanapali provides refclks for PCIE, USB and UFS. Update the SM8750 driver to fix the offsets for the clocks. Signed-off-by: Taniya Das <redacted> Signed-off-by: Jingyi Wang <redacted> --- drivers/clk/qcom/tcsrcc-sm8750.c | 34 ++++++++++++++++++++++++++++++++-- 1 file changed, 32 insertions(+), 2 deletions(-)diff --git a/drivers/clk/qcom/tcsrcc-sm8750.c b/drivers/clk/qcom/tcsrcc-sm8750.c index 242e320986ef..f905f3824d7e 100644 --- a/drivers/clk/qcom/tcsrcc-sm8750.c +++ b/drivers/clk/qcom/tcsrcc-sm8750.c@@ -100,21 +100,51 @@ static const struct regmap_config tcsr_cc_sm8750_regmap_config = { .fast_io = true, }; +static const struct regmap_config tcsr_cc_kaanapali_regmap_config = { + .reg_bits = 32, + .reg_stride = 4, + .val_bits = 32, + .max_register = 0x18, + .fast_io = true, +}; + static const struct qcom_cc_desc tcsr_cc_sm8750_desc = { .config = &tcsr_cc_sm8750_regmap_config, .clks = tcsr_cc_sm8750_clocks, .num_clks = ARRAY_SIZE(tcsr_cc_sm8750_clocks), }; +static const struct qcom_cc_desc tcsr_cc_kaanapali_desc = { + .config = &tcsr_cc_kaanapali_regmap_config, + .clks = tcsr_cc_sm8750_clocks, + .num_clks = ARRAY_SIZE(tcsr_cc_sm8750_clocks), +}; + static const struct of_device_id tcsr_cc_sm8750_match_table[] = { - { .compatible = "qcom,sm8750-tcsr" }, + { .compatible = "qcom,kaanapali-tcsr", .data = &tcsr_cc_kaanapali_desc}, + { .compatible = "qcom,sm8750-tcsr", .data = &tcsr_cc_sm8750_desc}, { } }; MODULE_DEVICE_TABLE(of, tcsr_cc_sm8750_match_table); static int tcsr_cc_sm8750_probe(struct platform_device *pdev) { - return qcom_cc_probe(pdev, &tcsr_cc_sm8750_desc); + const struct qcom_cc_desc *desc; + + desc = device_get_match_data(&pdev->dev); + + if (device_is_compatible(&pdev->dev, "qcom,kaanapali-tcsr")) { + tcsr_ufs_clkref_en.halt_reg = 0x10; + tcsr_ufs_clkref_en.clkr.enable_reg = 0x10; + + tcsr_usb2_clkref_en.halt_reg = 0x18; + tcsr_usb2_clkref_en.clkr.enable_reg = 0x18; + + tcsr_usb3_clkref_en.halt_reg = 0x8; + tcsr_usb3_clkref_en.clkr.enable_reg = 0x8; + }
Granted the size of the driver, it doesn't feel like these two entries belong to the same driver. Please split it to a separate one.
+
+ return qcom_cc_probe(pdev, desc);
}
static struct platform_driver tcsr_cc_sm8750_driver = {
--
2.25.1-- With best wishes Dmitry