2022-03-11 23:18:37

by Christian Marangi

[permalink] [raw]
Subject: [PATCH] firmware: qcom_scm: Add compatible for ipq806x

Add compatible for ipq806x. Just like ipq4019, ipq806x doesn't require
Core, Iface or Bus clock.

Signed-off-by: Ansuel Smith <[email protected]>
---
drivers/firmware/qcom_scm.c | 1 +
1 file changed, 1 insertion(+)

diff --git a/drivers/firmware/qcom_scm.c b/drivers/firmware/qcom_scm.c
index 7db8066b19fd..7348c5894821 100644
--- a/drivers/firmware/qcom_scm.c
+++ b/drivers/firmware/qcom_scm.c
@@ -1338,6 +1338,7 @@ static const struct of_device_id qcom_scm_dt_match[] = {
SCM_HAS_IFACE_CLK |
SCM_HAS_BUS_CLK)
},
+ { .compatible = "qcom,scm-ipq806x" },
{ .compatible = "qcom,scm-ipq4019" },
{ .compatible = "qcom,scm-mdm9607", .data = (void *)(SCM_HAS_CORE_CLK |
SCM_HAS_IFACE_CLK |
--
2.34.1


2022-04-13 06:02:21

by Bjorn Andersson

[permalink] [raw]
Subject: Re: [PATCH] firmware: qcom_scm: Add compatible for ipq806x

On Thu 10 Mar 16:07 CST 2022, Ansuel Smith wrote:

> Add compatible for ipq806x. Just like ipq4019, ipq806x doesn't require
> Core, Iface or Bus clock.
>
> Signed-off-by: Ansuel Smith <[email protected]>
> ---
> drivers/firmware/qcom_scm.c | 1 +
> 1 file changed, 1 insertion(+)
>
> diff --git a/drivers/firmware/qcom_scm.c b/drivers/firmware/qcom_scm.c
> index 7db8066b19fd..7348c5894821 100644
> --- a/drivers/firmware/qcom_scm.c
> +++ b/drivers/firmware/qcom_scm.c
> @@ -1338,6 +1338,7 @@ static const struct of_device_id qcom_scm_dt_match[] = {
> SCM_HAS_IFACE_CLK |
> SCM_HAS_BUS_CLK)
> },
> + { .compatible = "qcom,scm-ipq806x" },

If you in your dt do:

compatible = "qcom,scm-ipq806x", "qcom,scm";

Then we don't need to update the driver for each platform, only the DT
binding.

And if we some day need to quirk something off qcom,scm-ipq806x we have
that option.

Thanks,
Bjorn

> { .compatible = "qcom,scm-ipq4019" },
> { .compatible = "qcom,scm-mdm9607", .data = (void *)(SCM_HAS_CORE_CLK |
> SCM_HAS_IFACE_CLK |
> --
> 2.34.1
>

2022-04-13 14:43:13

by Dmitry Baryshkov

[permalink] [raw]
Subject: Re: [PATCH] firmware: qcom_scm: Add compatible for ipq806x

On Wed, 13 Apr 2022 at 05:38, Bjorn Andersson
<[email protected]> wrote:
>
> On Thu 10 Mar 16:07 CST 2022, Ansuel Smith wrote:
>
> > Add compatible for ipq806x. Just like ipq4019, ipq806x doesn't require
> > Core, Iface or Bus clock.
> >
> > Signed-off-by: Ansuel Smith <[email protected]>
> > ---
> > drivers/firmware/qcom_scm.c | 1 +
> > 1 file changed, 1 insertion(+)
> >
> > diff --git a/drivers/firmware/qcom_scm.c b/drivers/firmware/qcom_scm.c
> > index 7db8066b19fd..7348c5894821 100644
> > --- a/drivers/firmware/qcom_scm.c
> > +++ b/drivers/firmware/qcom_scm.c
> > @@ -1338,6 +1338,7 @@ static const struct of_device_id qcom_scm_dt_match[] = {
> > SCM_HAS_IFACE_CLK |
> > SCM_HAS_BUS_CLK)
> > },
> > + { .compatible = "qcom,scm-ipq806x" },
>
> If you in your dt do:
>
> compatible = "qcom,scm-ipq806x", "qcom,scm";
>
> Then we don't need to update the driver for each platform, only the DT
> binding.
>
> And if we some day need to quirk something off qcom,scm-ipq806x we have
> that option.

I suppose that ipq806x might need SCM_HAS_CORE_CLK. Or, more likely,
an interconnect vote, once we have interconnect drivers for
ipq/apq8064 platforms.

>
> Thanks,
> Bjorn
>
> > { .compatible = "qcom,scm-ipq4019" },
> > { .compatible = "qcom,scm-mdm9607", .data = (void *)(SCM_HAS_CORE_CLK |
> > SCM_HAS_IFACE_CLK |
> > --
> > 2.34.1
> >



--
With best wishes
Dmitry

2022-04-18 02:43:27

by Christian Marangi

[permalink] [raw]
Subject: Re: [PATCH] firmware: qcom_scm: Add compatible for ipq806x

On Wed, Apr 13, 2022 at 10:03:59AM +0300, Dmitry Baryshkov wrote:
> On Wed, 13 Apr 2022 at 05:38, Bjorn Andersson
> <[email protected]> wrote:
> >
> > On Thu 10 Mar 16:07 CST 2022, Ansuel Smith wrote:
> >
> > > Add compatible for ipq806x. Just like ipq4019, ipq806x doesn't require
> > > Core, Iface or Bus clock.
> > >
> > > Signed-off-by: Ansuel Smith <[email protected]>
> > > ---
> > > drivers/firmware/qcom_scm.c | 1 +
> > > 1 file changed, 1 insertion(+)
> > >
> > > diff --git a/drivers/firmware/qcom_scm.c b/drivers/firmware/qcom_scm.c
> > > index 7db8066b19fd..7348c5894821 100644
> > > --- a/drivers/firmware/qcom_scm.c
> > > +++ b/drivers/firmware/qcom_scm.c
> > > @@ -1338,6 +1338,7 @@ static const struct of_device_id qcom_scm_dt_match[] = {
> > > SCM_HAS_IFACE_CLK |
> > > SCM_HAS_BUS_CLK)
> > > },
> > > + { .compatible = "qcom,scm-ipq806x" },
> >
> > If you in your dt do:
> >
> > compatible = "qcom,scm-ipq806x", "qcom,scm";
> >
> > Then we don't need to update the driver for each platform, only the DT
> > binding.
> >
> > And if we some day need to quirk something off qcom,scm-ipq806x we have
> > that option.
>
> I suppose that ipq806x might need SCM_HAS_CORE_CLK. Or, more likely,
> an interconnect vote, once we have interconnect drivers for
> ipq/apq8064 platforms.
>

From an old source I found that scm core clock comes from dfab_clk
(DAYTONA_FABRIC). I notice there is an interconnect driver for rpm (bw
is handled by rpm on ipq/apq8064) but why this should be related to scm
core clk? To handle the clock voter stuff? (I assume a voter logic is
not supported upstream)

But it does seems an interesting project adding interconnect support for
ipq8064 also considering I have a fab scaling driver present from ages
that I hane no idea how to handle.

> >
> > Thanks,
> > Bjorn
> >
> > > { .compatible = "qcom,scm-ipq4019" },
> > > { .compatible = "qcom,scm-mdm9607", .data = (void *)(SCM_HAS_CORE_CLK |
> > > SCM_HAS_IFACE_CLK |
> > > --
> > > 2.34.1
> > >
>
>
>
> --
> With best wishes
> Dmitry

--
Ansuel