[PATCH 3/7] mmc: msm_sdhci: handle bulk clock initialization error

Jorge Ramirez jorge.ramirez at oss.qualcomm.com
Mon Apr 7 12:36:18 CEST 2025


On 07/04/25 11:53:06, Neil Armstrong wrote:
> On 07/04/2025 11:38, Jorge Ramirez wrote:
> > On 07/04/25 11:10:45, Neil Armstrong wrote:
> > > On 07/04/2025 11:02, neil.armstrong at linaro.org wrote:
> > > > On 07/04/2025 10:19, Jorge Ramirez-Ortiz wrote:
> > > > > Some boards do not require all clocks to be available (i.e:
> > > > > dragonboard820c).
> > > > 
> > > > Can you specify which clock isn't available ? Because we have clk-stub for that
> > 
> > right, either GCC_SDCC2_AHB_CLK or RPM_SMD_XO_CLK_SRC (we have
> > GCC_SDCC2_APPS_CLK which is the one I needed to initialize and work with
> > MMC).
> > 
> > > 
> > > Enable:
> > > CONFIG_CLK_STUB=y

ok, taking this into the db820 defconfig

> > > 
> > > and change this:
> > > diff --git a/drivers/clk/clk-stub.c b/drivers/clk/clk-stub.c
> > > index 343fa5cd3fe..c14f5b6e1a6 100644
> > > --- a/drivers/clk/clk-stub.c
> > > +++ b/drivers/clk/clk-stub.c
> > > @@ -14,7 +14,7 @@
> > >   static const struct udevice_id nop_parent_ids[] = {
> > >          { .compatible = "qcom,rpm-proc" },
> > >          { .compatible = "qcom,glink-rpm" },
> > > -       { .compatible = "qcom,rpm-sm6115" },
> > > +       { .compatible = "qcom,glink-smd-rpm" },
> > >          { }
> > >   };


so do we need this change to be persistent? are you commiting it?

> > > 
> > > And clk_get_bulk() should work!
> > 
> > ah cool. yes  that did work but something else popped up
> > is it worth looking further into this?
> 
> Yeah look at clk_init_sdc(), it sets SDCC2_AHB & SDCC2_APPS, so you can change next patch to:

perfect. all good now.


> 
> diff --git a/drivers/clk/qcom/clock-apq8096.c b/drivers/clk/qcom/clock-apq8096.c
> index c77d69128b0..832cda332dc 100644
> --- a/drivers/clk/qcom/clock-apq8096.c
> +++ b/drivers/clk/qcom/clock-apq8096.c
> @@ -83,7 +83,7 @@ static ulong apq8096_clk_set_rate(struct clk *clk, ulong rate)
>         struct msm_clk_priv *priv = dev_get_priv(clk->dev);
> 
>         switch (clk->id) {
> -       case GCC_SDCC1_APPS_CLK: /* SDC1 */
> +       case GCC_SDCC2_AHB_CLK: /* SDC2 */
>                 return clk_init_sdc(priv, rate);
>                 break;
>         case GCC_BLSP2_UART2_APPS_CLK: /*UART2*/
> 
> 
> Neil
> 


More information about the U-Boot mailing list