Re: [PATCH v2 01/11] dt-bindings: mmc: arasan: Update documentation for SD Card Clock

From: Ulf Hansson
Date: Thu Jul 25 2019 - 14:06:38 EST


On Tue, 23 Jul 2019 at 10:23, Manish Narani <MNARANI@xxxxxxxxxx> wrote:
>
> Hi Rob,
>
> Thanks a lot for the review!
>
>
> > -----Original Message-----
> > From: Rob Herring <robh@xxxxxxxxxx>
> > Sent: Tuesday, July 23, 2019 3:24 AM
> > To: Manish Narani <MNARANI@xxxxxxxxxx>
> > Cc: ulf.hansson@xxxxxxxxxx; mark.rutland@xxxxxxx; heiko@xxxxxxxxx; Michal
> > Simek <michals@xxxxxxxxxx>; adrian.hunter@xxxxxxxxx;
> > christoph.muellner@xxxxxxxxxxxxxxxxxxxxx; philipp.tomsich@theobroma-
> > systems.com; viresh.kumar@xxxxxxxxxx; scott.branden@xxxxxxxxxxxx;
> > ayaka@xxxxxxxxxxx; kernel@xxxxxxxx; tony.xie@xxxxxxxxxxxxxx; Rajan Vaja
> > <RAJANV@xxxxxxxxxx>; Jolly Shah <JOLLYS@xxxxxxxxxx>; Nava kishore Manne
> > <navam@xxxxxxxxxx>; mdf@xxxxxxxxxx; olof@xxxxxxxxx; linux-
> > mmc@xxxxxxxxxxxxxxx; devicetree@xxxxxxxxxxxxxxx; linux-
> > kernel@xxxxxxxxxxxxxxx; linux-arm-kernel@xxxxxxxxxxxxxxxxxxx; linux-
> > rockchip@xxxxxxxxxxxxxxxxxxx
> > Subject: Re: [PATCH v2 01/11] dt-bindings: mmc: arasan: Update
> > documentation for SD Card Clock
> >
> > On Mon, Jul 01, 2019 at 10:59:41AM +0530, Manish Narani wrote:
> > > The clock handling is to be updated in the Arasan SDHCI. As the
> > > 'devm_clk_register' is deprecated in the clock framework, this needs to
> > > specify one more clock named 'clk_sdcard' to get the clock in the driver
> > > via 'devm_clk_get()'. This clock represents the clock from controller to
> > > the card.
> >
> > Please explain why in terms of the binding, not some driver calls.
> Okay.
>
> >
> >
> > > Signed-off-by: Manish Narani <manish.narani@xxxxxxxxxx>
> > > ---
> > > Documentation/devicetree/bindings/mmc/arasan,sdhci.txt | 15 ++++++++++-
> > ----
> > > 1 file changed, 10 insertions(+), 5 deletions(-)
> > >
> > > diff --git a/Documentation/devicetree/bindings/mmc/arasan,sdhci.txt
> > b/Documentation/devicetree/bindings/mmc/arasan,sdhci.txt
> > > index 1edbb04..15c6397 100644
> > > --- a/Documentation/devicetree/bindings/mmc/arasan,sdhci.txt
> > > +++ b/Documentation/devicetree/bindings/mmc/arasan,sdhci.txt
> > > @@ -23,6 +23,10 @@ Required Properties:
> > > - reg: From mmc bindings: Register location and length.
> > > - clocks: From clock bindings: Handles to clock inputs.
> > > - clock-names: From clock bindings: Tuple including "clk_xin" and "clk_ahb"
> > > + Apart from these two there is one more optional clock which
> > > + is "clk_sdcard". This clock represents output clock from
> > > + controller and card. This must be specified when #clock-cells
> > > + is specified.
> > > - interrupts: Interrupt specifier
> > >
> > > Required Properties for "arasan,sdhci-5.1":
> > > @@ -36,9 +40,10 @@ Optional Properties:
> > > - clock-output-names: If specified, this will be the name of the card clock
> > > which will be exposed by this device. Required if #clock-cells is
> > > specified.
> > > - - #clock-cells: If specified this should be the value <0>. With this property
> > > - in place we will export a clock representing the Card Clock. This clock
> > > - is expected to be consumed by our PHY. You must also specify
> > > + - #clock-cells: If specified this should be the value <0>. With this
> > > + property in place we will export one clock representing the Card
> > > + Clock. This clock is expected to be consumed by our PHY. You must also
> > > + specify
> >
> > specify what?
> I think this line was already there, I missed to correct it, Will update in v3.
>
> >
> > The 3rd clock input I assume? This statement means any existing users
> > with 2 clock inputs and #clock-cells are in error now. Is that correct?
> Yes, this is correct. So far there was only one vendor using '#clock-cells' which is Rockchip. I have sent DT patch (02/11) for that also.
> Here this is needed as earlier implementation isn't correct as suggested by Uffe. (https://lkml.org/lkml/2019/6/20/486) .

I am not sure how big of a problem the backwards compatible thingy
with DT is, in general we must not break it. What do you say Manish?

As a workaround, would it be possible to use
of_clk_get_from_provider() somehow to address the compatibility issue?
Or maybe there is another clock API that can help.

Kind regards
Uffe