Message ID | 20220426143736.3.Idf10564d4e488df57f60640bbe1f8a43e200b56f@changeid |
---|---|
State | Accepted |
Delegated to: | Patrick Delaunay |
Headers | show |
Series | stm32mp: handle ck_usbo_48m clock provided by USBPHYC | expand |
Hi Patrick On 4/26/22 14:37, Patrick Delaunay wrote: > Handle the input clock of RCC USB_PHY_48, provided by USBPHYC > and named "ck_usbo_48m". > > Signed-off-by: Patrick Delaunay <patrick.delaunay@foss.st.com> > --- > > drivers/clk/clk_stm32mp1.c | 35 ++++++++++++++++++++--------------- > 1 file changed, 20 insertions(+), 15 deletions(-) > > diff --git a/drivers/clk/clk_stm32mp1.c b/drivers/clk/clk_stm32mp1.c > index 83ab6b728e..a02921c43a 100644 > --- a/drivers/clk/clk_stm32mp1.c > +++ b/drivers/clk/clk_stm32mp1.c > @@ -962,6 +962,24 @@ static ulong stm32mp1_read_pll_freq(struct stm32mp1_clk_priv *priv, > return dfout; > } > > +static ulong stm32mp1_clk_get_by_name(const char *name) > +{ > + struct clk clk; > + struct udevice *dev = NULL; > + ulong clock = 0; > + > + if (!uclass_get_device_by_name(UCLASS_CLK, name, &dev)) { > + if (clk_request(dev, &clk)) { > + log_err("%s request", name); > + } else { > + clk.id = 0; > + clock = clk_get_rate(&clk); > + } > + } > + > + return clock; > +} > + > static ulong stm32mp1_clk_get(struct stm32mp1_clk_priv *priv, int p) > { > u32 reg; > @@ -1127,24 +1145,11 @@ static ulong stm32mp1_clk_get(struct stm32mp1_clk_priv *priv, int p) > break; > /* other */ > case _USB_PHY_48: > - clock = 48000000; > + clock = stm32mp1_clk_get_by_name("ck_usbo_48m"); > break; > case _DSI_PHY: > - { > - struct clk clk; > - struct udevice *dev = NULL; > - > - if (!uclass_get_device_by_name(UCLASS_CLK, "ck_dsi_phy", > - &dev)) { > - if (clk_request(dev, &clk)) { > - log_err("ck_dsi_phy request"); > - } else { > - clk.id = 0; > - clock = clk_get_rate(&clk); > - } > - } > + clock = stm32mp1_clk_get_by_name("ck_dsi_phy"); > break; > - } > default: > break; > } Reviewed-by: Patrice Chotard <patrice.chotard@foss.st.com> Thanks Patrice
On 5/6/22 16:26, Patrice CHOTARD wrote: > Hi Patrick > > On 4/26/22 14:37, Patrick Delaunay wrote: >> Handle the input clock of RCC USB_PHY_48, provided by USBPHYC >> and named "ck_usbo_48m". >> >> Signed-off-by: Patrick Delaunay <patrick.delaunay@foss.st.com> >> --- >> >> drivers/clk/clk_stm32mp1.c | 35 ++++++++++++++++++++--------------- >> 1 file changed, 20 insertions(+), 15 deletions(-) >> >> diff --git a/drivers/clk/clk_stm32mp1.c b/drivers/clk/clk_stm32mp1.c >> index 83ab6b728e..a02921c43a 100644 >> --- a/drivers/clk/clk_stm32mp1.c >> +++ b/drivers/clk/clk_stm32mp1.c >> @@ -962,6 +962,24 @@ static ulong stm32mp1_read_pll_freq(struct stm32mp1_clk_priv *priv, >> return dfout; >> } >> >> +static ulong stm32mp1_clk_get_by_name(const char *name) >> +{ >> + struct clk clk; >> + struct udevice *dev = NULL; >> + ulong clock = 0; >> + >> + if (!uclass_get_device_by_name(UCLASS_CLK, name, &dev)) { >> + if (clk_request(dev, &clk)) { >> + log_err("%s request", name); >> + } else { >> + clk.id = 0; >> + clock = clk_get_rate(&clk); >> + } >> + } >> + >> + return clock; >> +} >> + >> static ulong stm32mp1_clk_get(struct stm32mp1_clk_priv *priv, int p) >> { >> u32 reg; >> @@ -1127,24 +1145,11 @@ static ulong stm32mp1_clk_get(struct stm32mp1_clk_priv *priv, int p) >> break; >> /* other */ >> case _USB_PHY_48: >> - clock = 48000000; >> + clock = stm32mp1_clk_get_by_name("ck_usbo_48m"); >> break; >> case _DSI_PHY: >> - { >> - struct clk clk; >> - struct udevice *dev = NULL; >> - >> - if (!uclass_get_device_by_name(UCLASS_CLK, "ck_dsi_phy", >> - &dev)) { >> - if (clk_request(dev, &clk)) { >> - log_err("ck_dsi_phy request"); >> - } else { >> - clk.id = 0; >> - clock = clk_get_rate(&clk); >> - } >> - } >> + clock = stm32mp1_clk_get_by_name("ck_dsi_phy"); >> break; >> - } >> default: >> break; >> } > Reviewed-by: Patrice Chotard <patrice.chotard@foss.st.com> > > Thanks > Patrice > _______________________________________________ > Uboot-stm32 mailing list > Uboot-stm32@st-md-mailman.stormreply.com > https://st-md-mailman.stormreply.com/mailman/listinfo/uboot-stm32 Applied to u-boot-stm32 Thanks Patrice
Hi, On 4/26/22 14:37, Patrick Delaunay wrote: > Handle the input clock of RCC USB_PHY_48, provided by USBPHYC > and named "ck_usbo_48m". > > Signed-off-by: Patrick Delaunay <patrick.delaunay@foss.st.com> > --- > > drivers/clk/clk_stm32mp1.c | 35 ++++++++++++++++++++--------------- > 1 file changed, 20 insertions(+), 15 deletions(-) > Applied to u-boot-stm/master, thanks! Regards Patrick
diff --git a/drivers/clk/clk_stm32mp1.c b/drivers/clk/clk_stm32mp1.c index 83ab6b728e..a02921c43a 100644 --- a/drivers/clk/clk_stm32mp1.c +++ b/drivers/clk/clk_stm32mp1.c @@ -962,6 +962,24 @@ static ulong stm32mp1_read_pll_freq(struct stm32mp1_clk_priv *priv, return dfout; } +static ulong stm32mp1_clk_get_by_name(const char *name) +{ + struct clk clk; + struct udevice *dev = NULL; + ulong clock = 0; + + if (!uclass_get_device_by_name(UCLASS_CLK, name, &dev)) { + if (clk_request(dev, &clk)) { + log_err("%s request", name); + } else { + clk.id = 0; + clock = clk_get_rate(&clk); + } + } + + return clock; +} + static ulong stm32mp1_clk_get(struct stm32mp1_clk_priv *priv, int p) { u32 reg; @@ -1127,24 +1145,11 @@ static ulong stm32mp1_clk_get(struct stm32mp1_clk_priv *priv, int p) break; /* other */ case _USB_PHY_48: - clock = 48000000; + clock = stm32mp1_clk_get_by_name("ck_usbo_48m"); break; case _DSI_PHY: - { - struct clk clk; - struct udevice *dev = NULL; - - if (!uclass_get_device_by_name(UCLASS_CLK, "ck_dsi_phy", - &dev)) { - if (clk_request(dev, &clk)) { - log_err("ck_dsi_phy request"); - } else { - clk.id = 0; - clock = clk_get_rate(&clk); - } - } + clock = stm32mp1_clk_get_by_name("ck_dsi_phy"); break; - } default: break; }
Handle the input clock of RCC USB_PHY_48, provided by USBPHYC and named "ck_usbo_48m". Signed-off-by: Patrick Delaunay <patrick.delaunay@foss.st.com> --- drivers/clk/clk_stm32mp1.c | 35 ++++++++++++++++++++--------------- 1 file changed, 20 insertions(+), 15 deletions(-)