Re: [PATCH v4 3/7] clk: qcom: tcsrcc-glymur: Migrate tcsr_pcie_N_clkref_en to clk_ref common helper
From: Qiang Yu
Date: Mon Jun 15 2026 - 04:50:22 EST
On Tue, Jun 09, 2026 at 03:02:27PM +0200, Konrad Dybcio wrote:
> On 5/28/26 4:29 AM, Qiang Yu wrote:
> > Replace local clk_branch-based clkref definitions with descriptor-based
> > registration via qcom_clk_ref_probe().
> >
> > This keeps the glymur driver focused on clock metadata and reuses common
> > runtime logic for regulator handling, enable/disable sequencing, and OF
> > provider wiring.
> >
> > Signed-off-by: Qiang Yu <qiang.yu@xxxxxxxxxxxxxxxx>
> > ---
>
> You can remove the of.h include. Apart from that:
>
> Reviewed-by: Konrad Dybcio <konrad.dybcio@xxxxxxxxxxxxxxxx>
>
> Also, attaching a diff to complete the regulator map. I'm fairly sure
> these are correct, but it never hurts to triple-check.
>
> You can add:
>
> Co-developed-by: Konrad Dybcio <konrad.dybcio@xxxxxxxxxxxxxxxx>
> Signed-off-by: Konrad Dybcio <konrad.dybcio@xxxxxxxxxxxxxxxx>
>
> if you squash them together. FYI e.g. the tertiary USB QMPPHY would
> only start every 20 boots or so without this, running on pure luck..
>
Okay, will sqash them and add above tags in next version.
- Qiang Yu
> Konrad
>
> diff --git a/drivers/clk/qcom/tcsrcc-glymur.c b/drivers/clk/qcom/tcsrcc-glymur.c
> index e317003398d1..eb4ee8ec9ad7 100644
> --- a/drivers/clk/qcom/tcsrcc-glymur.c
> +++ b/drivers/clk/qcom/tcsrcc-glymur.c
> @@ -21,6 +21,14 @@ static const char * const glymur_tcsr_tx0_rx5_regulators[] = {
> "vdda-qreftx0-1p2",
> };
>
> +static const char * const glymur_tcsr_tx1_rpt0_rx0_regulators[] = {
> + "vdda-refgen4-0p9",
> + "vdda-refgen4-1p2",
> + "vdda-qreftx1-0p9",
> + "vdda-qrefrpt0-0p9",
> + "vdda-qrefrx0-0p9",
> +};
> +
> static const char * const glymur_tcsr_tx1_rpt01_rx1_regulators[] = {
> "vdda-refgen4-0p9",
> "vdda-refgen4-1p2",
> @@ -40,6 +48,15 @@ static const char * const glymur_tcsr_tx1_rpt012_rx2_regulators[] = {
> "vdda-qrefrx2-0p9",
> };
>
> +static const char * const glymur_tcsr_tx1_rpt34_rx4_regulators[] = {
> + "vdda-refgen2-0p9",
> + "vdda-refgen2-1p2",
> + "vdda-qreftx1-0p9",
> + "vdda-qrefrpt3-0p9",
> + "vdda-qrefrpt4-0p9",
> + "vdda-qrefrx4-0p9",
> +};
> +
> static const struct regmap_config tcsr_cc_glymur_regmap_config = {
> .reg_bits = 32,
> .reg_stride = 4,
> @@ -52,6 +69,8 @@ static const struct qcom_clk_ref_desc tcsr_cc_glymur_clk_descs[] = {
> [TCSR_EDP_CLKREF_EN] = {
> .name = "tcsr_edp_clkref_en",
> .offset = 0x60,
> + .regulator_names = glymur_tcsr_tx1_rpt0_rx0_regulators,
> + .num_regulators = ARRAY_SIZE(glymur_tcsr_tx1_rpt0_rx0_regulators),
> },
> [TCSR_PCIE_1_CLKREF_EN] = {
> .name = "tcsr_pcie_1_clkref_en",
> @@ -80,34 +99,50 @@ static const struct qcom_clk_ref_desc tcsr_cc_glymur_clk_descs[] = {
> [TCSR_USB2_1_CLKREF_EN] = {
> .name = "tcsr_usb2_1_clkref_en",
> .offset = 0x6c,
> + .regulator_names = glymur_tcsr_tx1_rpt34_rx4_regulators,
> + .num_regulators = ARRAY_SIZE(glymur_tcsr_tx1_rpt34_rx4_regulators),
> },
> [TCSR_USB2_2_CLKREF_EN] = {
> .name = "tcsr_usb2_2_clkref_en",
> .offset = 0x70,
> + .regulator_names = glymur_tcsr_tx1_rpt01_rx1_regulators,
> + .num_regulators = ARRAY_SIZE(glymur_tcsr_tx1_rpt01_rx1_regulators),
> },
> [TCSR_USB2_3_CLKREF_EN] = {
> .name = "tcsr_usb2_3_clkref_en",
> .offset = 0x74,
> + .regulator_names = glymur_tcsr_tx1_rpt34_rx4_regulators,
> + .num_regulators = ARRAY_SIZE(glymur_tcsr_tx1_rpt34_rx4_regulators),
> },
> [TCSR_USB2_4_CLKREF_EN] = {
> .name = "tcsr_usb2_4_clkref_en",
> .offset = 0x88,
> + .regulator_names = glymur_tcsr_tx1_rpt34_rx4_regulators,
> + .num_regulators = ARRAY_SIZE(glymur_tcsr_tx1_rpt34_rx4_regulators),
> },
> [TCSR_USB3_0_CLKREF_EN] = {
> .name = "tcsr_usb3_0_clkref_en",
> .offset = 0x64,
> + .regulator_names = glymur_tcsr_tx1_rpt34_rx4_regulators,
> + .num_regulators = ARRAY_SIZE(glymur_tcsr_tx1_rpt34_rx4_regulators),
> },
> [TCSR_USB3_1_CLKREF_EN] = {
> .name = "tcsr_usb3_1_clkref_en",
> .offset = 0x68,
> + .regulator_names = glymur_tcsr_tx1_rpt34_rx4_regulators,
> + .num_regulators = ARRAY_SIZE(glymur_tcsr_tx1_rpt34_rx4_regulators),
> },
> [TCSR_USB4_1_CLKREF_EN] = {
> .name = "tcsr_usb4_1_clkref_en",
> .offset = 0x44,
> + .regulator_names = glymur_tcsr_tx0_rx5_regulators,
> + .num_regulators = ARRAY_SIZE(glymur_tcsr_tx0_rx5_regulators),
> },
> [TCSR_USB4_2_CLKREF_EN] = {
> .name = "tcsr_usb4_2_clkref_en",
> .offset = 0x5c,
> + .regulator_names = glymur_tcsr_tx1_rpt01_rx1_regulators,
> + .num_regulators = ARRAY_SIZE(glymur_tcsr_tx1_rpt01_rx1_regulators),
> },
> };
>