Re: [PATCH v5 2/5] dt-bindings: arm: msm: Convert kpss-acc driver Documentation to yaml

From: Christian Marangi
Date: Sat Sep 17 2022 - 15:03:28 EST


On Sat, Sep 17, 2022 at 04:45:21PM +0300, Dmitry Baryshkov wrote:
> On Sat, 17 Sept 2022 at 00:54, Christian Marangi <ansuelsmth@xxxxxxxxx> wrote:
> >
> > On Fri, Sep 16, 2022 at 11:31:49PM +0300, Dmitry Baryshkov wrote:
> > > On Fri, 16 Sept 2022 at 23:27, Christian Marangi <ansuelsmth@xxxxxxxxx> wrote:
> > > >
> > > > On Fri, Sep 16, 2022 at 11:22:17PM +0300, Dmitry Baryshkov wrote:
> > > > > On Fri, 16 Sept 2022 at 23:13, Christian Marangi <ansuelsmth@xxxxxxxxx> wrote:
> > > > > >
> > > > > > On Fri, Sep 16, 2022 at 11:06:35PM +0300, Dmitry Baryshkov wrote:
> > > > > > > On Fri, 16 Sept 2022 at 22:43, Christian Marangi <ansuelsmth@xxxxxxxxx> wrote:
> > > > > > > >
> > > > > > > > On Fri, Sep 16, 2022 at 02:17:15PM -0500, Rob Herring wrote:
> > > > > > > > > On Wed, Sep 14, 2022 at 04:22:53PM +0200, Christian Marangi wrote:
> > > > > > > > > > Convert kpss-acc driver Documentation to yaml.
> > > > > > > > > > The original Documentation was wrong all along. Fix it while we are
> > > > > > > > > > converting it.
> > > > > > > > > > The example was wrong as kpss-acc-v2 should only expose the regs but we
> > > > > > > > > > don't have any driver that expose additional clocks. The kpss-acc driver
> > > > > > > > > > is only specific to v1. For this exact reason, limit all the additional
> > > > > > > > > > bindings (clocks, clock-names, clock-output-names and #clock-cells) to
> > > > > > > > > > v1 and also flag that these bindings should NOT be used for v2.
> > > > > > > > >
> > > > > > > > > Odd that a clock controller has no clocks, but okay.
> > > > > > > > >
> > > > > > > >
> > > > > > > > As said in the commit v2 is only used for regs. v2 it's only used in
> > > > > > > > arch/arm/mach-qcom/platsmp.c to setup stuff cpu hotplug and bringup.
> > > > > > > >
> > > > > > > > Should we split the 2 driver? To me the acc naming seems to be just
> > > > > > > > recycled for v2 and it's not really a clk controller.
> > > > > > > >
> > > > > > > > So keeping v2 in arm/msm/qcom,kpss-acc-v2.yaml and v1 moved to clock?
> > > > > > >
> > > > > > > I suspect that qcom,kpss-acc-v2 is misnamed as the "clock-controller".
> > > > > > > According to msm-3.10, these regions are used by the Krait core
> > > > > > > regulators.
> > > > > > >
> > > > > >
> > > > > > Well we need to understand how to handle this... change the compatible
> > > > > > it's a nono for sure. In platsmp.c they are used for cpu power control
> > > > > > so could be that they are actually used to regulators. I would honestly
> > > > > > move v1 to clock and leave v2 to arm/msm but I'm not cetain on what name
> > > > > > to assign to the 2 yaml.
> > > > > >
> > > > > > What do you think?
> > > > >
> > > > > This is fine for me. If somebody gets better understanding of
> > > > > underlying hardware and works on actually using these blocks, he will
> > > > > update the bindings.
> > > > >
> > > > > My only suggestion would be to rename kpss-acc-v2 nodes to
> > > > > 'power-controller@address' and document them so.
> > > > >
> > > >
> > > > Ok so something like this?
> > > >
> > > > power-controller@f9088000 {
> > > > compatible = "qcom,kpss-acc-v2";
> > > > reg = <0xf9088000 0x1000>,
> > > > <0xf9008000 0x1000>;
> > > > };
> > > >
> > > > (and I will have to fix dtbs warning as they will be unmatched I think.)
> > > > Yaml naming:
> > > > qcom,kpss-acc-v1.yaml
> > > > qcom,kpss-acc-v2.yaml
> > > > Right?
> > >
> > > Sounds good to me.
> > >
> > > I'd even say clock/qcom,kpss-acc-v1.yaml and
> > > arm/msm/qcom,kpss-acc-v2.yaml or maybe power/qcom,kpss-acc-v2.yaml
> > >
> >
> > Wonder if the gcc driver should have the same tretement? It's also a
> > clock-controller driver that doesn't use clock at all... Do you have
> > some info about it?
>
> As far as I understand, the kpss-gcc is a normal clock controller,
> isn't it? It provides clocks to other devices.
>

Hi again... Having acc-v2 as power-controller would require to set
#power-domain-cells = <0>;

Would that be acceptable? Considering it wouldn't expose any PM domain?

About kpss-gcc we have some device that for some reason doesn't have the
required clocks defined in the dts. I checked the related gcc and no PXO
defined and no pll8_vote clock defined. (the affected dts are all listed
in the related Documentation)

No idea how they currently work with the kpss-gcc driver as these
parents are missing. Guess the driver just fails to probe?
So this was the question if you had more info about it... since to me it
seems just another gcc v2 that doesn't expose clocks but it's just a
power-controller just like acc-v2.

--
Ansuel