linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Serge Semin <fancer.lancer@gmail.com>
To: Brad Larson <brad@pensando.io>
Cc: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>,
	Linux ARM <linux-arm-kernel@lists.infradead.org>,
	Linux Kernel Mailing List <linux-kernel@vger.kernel.org>,
	linux-mmc <linux-mmc@vger.kernel.org>,
	Adrian Hunter <adrian.hunter@intel.com>,
	Al Cooper <alcooperx@gmail.com>,
	Andy Shevchenko <andy.shevchenko@gmail.com>,
	Arnd Bergmann <arnd@arndb.de>,
	blarson@amd.com, Catalin Marinas <catalin.marinas@arm.com>,
	Gabriel Somlo <gsomlo@gmail.com>,
	gerg@linux-m68k.org,
	Krzysztof Kozlowski <krzysztof.kozlowski+dt@linaro.org>,
	Lee Jones <lee.jones@linaro.org>, Mark Brown <broonie@kernel.org>,
	Masahiro Yamada <yamada.masahiro@socionext.com>,
	Philipp Zabel <p.zabel@pengutronix.de>,
	Pratyush Yadav <p.yadav@ti.com>,
	Randy Dunlap <rdunlap@infradead.org>,
	Rob Herring <robh+dt@kernel.org>,
	samuel@sholland.org, suravee.suthikulpanit@amd.com,
	Tom Lendacky <thomas.lendacky@amd.com>,
	Ulf Hansson <ulf.hansson@linaro.org>,
	Will Deacon <will@kernel.org>,
	"open list:OPEN FIRMWARE AND FLATTENED DEVICE TREE BINDINGS" 
	<devicetree@vger.kernel.org>
Subject: Re: [PATCH v5 04/15] dt-bindings: spi: dw: Add AMD Pensando Elba SoC SPI Controller bindings
Date: Mon, 4 Jul 2022 16:18:10 +0300	[thread overview]
Message-ID: <20220704131810.kabkuy6e4qmhfm3n@mobilestation> (raw)
In-Reply-To: <CAK9rFnwOq6X5-uDS+SKiU4XQbSVQYiBUe0rEDvzdHy3CO6gUHQ@mail.gmail.com>

On Sun, Jul 03, 2022 at 04:58:09PM -0700, Brad Larson wrote:
> Hi Sergey,
> 
> On Tue, Jun 21, 2022 at 3:12 AM Serge Semin <fancer.lancer@gmail.com> wrote:
> >
> > On Tue, Jun 21, 2022 at 09:00:36AM +0200, Krzysztof Kozlowski wrote:
> > > On 20/06/2022 22:04, Serge Semin wrote:
> > > > On Mon, Jun 20, 2022 at 09:46:25PM +0200, Krzysztof Kozlowski wrote:
> > > >> On 20/06/2022 21:30, Serge Semin wrote:
> > > >>> On Mon, Jun 13, 2022 at 12:56:47PM -0700, Brad Larson wrote:
> > > >>>> From: Brad Larson <blarson@amd.com>
> > > >>>>
> > > >>>> The AMD Pensando Elba SoC has integrated the DW APB SPI Controller
> > > >>>>
> > > >>>> Signed-off-by: Brad Larson <blarson@amd.com>
> > > >>>> ---
> > > >>>>  Documentation/devicetree/bindings/spi/snps,dw-apb-ssi.yaml | 2 ++
> > > >>>>  1 file changed, 2 insertions(+)
> > > >>>>
> > > >>>> diff --git a/Documentation/devicetree/bindings/spi/snps,dw-apb-ssi.yaml b/Documentation/devicetree/bindings/spi/snps,dw-apb-ssi.yaml
> > > >>>> index e25d44c218f2..2a55b947cffc 100644
> > > >>>> --- a/Documentation/devicetree/bindings/spi/snps,dw-apb-ssi.yaml
> > > >>>> +++ b/Documentation/devicetree/bindings/spi/snps,dw-apb-ssi.yaml
> > > >>>> @@ -73,6 +73,8 @@ properties:
> > > >>>>                - renesas,r9a06g032-spi # RZ/N1D
> > > >>>>                - renesas,r9a06g033-spi # RZ/N1S
> > > >>>>            - const: renesas,rzn1-spi   # RZ/N1
> > > >>>
> > > >>>> +      - description: AMD Pensando Elba SoC SPI Controller
> > > >>>> +        const: amd,pensando-elba-spi
> > > >>>
> > > >>> Not enough. The driver requires to have a phandle reference to the
> > > >>> Pensando System Controller. So the property like
> > > >>> "amd,pensando-elba-syscon" is also needed to be added to the DT schema
> > > >>> otherwise should the dt-schema tool correctly handle the
> > > >>> "unevaluatedProperties: false" setting (Rob says it isn't fully
> > > >>> supported at the moment), the dtbs_check procedure will fail on your
> > > >>> dts evaluation.
> > > >>
> > > >
> > > >> The property was here before, now removed, so I assume it was also
> > > >> removed from the driver and DTS. Isn't that the case?
> > > >
> > > > Ah, the property has been indeed removed. The driver now searches for
> > > > the system controller by the next compatible string:
> > > > "amd,pensando-elba-syscon" using the
> > > > syscon_regmap_lookup_by_compatible() method. My mistake. Sorry for the
> > > > noise.
> > > >
> >
> > > > * Though personally I'd prefer to have a property with the phandle
> > > > reference in order to signify the connection between the system controller
> > > > and the SPI-controller. Otherwise the implicit DT bindings like having
> > > > the "amd,pensando-elba-syscon"-compatible syscon gets to be
> > > > hidden behind the DT scene. But seeing we have already got the Microsemi
> > > > platform with such semantic, I can't insist on fixing this.
> > >
> > > I agree entirely, this should be explicit syscon-type property. Looking
> > > up for compatibles:
> > >  - creates hidden (not expressed via bindings) dependency between nodes,
> > >  - is not portable and several people struggled with it later and needed
> > > backward-compatible code (many examples, let's just give recent one: [1])
> > >
> > >
> > > [1]
> > > https://lore.kernel.org/all/20220619151225.209029-10-tmaimon77@gmail.com/
> >
> > Seems even more reasonable now. Thanks for providing a bright example
> > justifying the property-based approach.
> >
> > @Brad, could you get back the property with a phandle to the syscon
> > DT-node? (No need in adding the CS CSR address as the phandle argument,
> > just a phandle.)
> 
> Replying to the sequence of review inputs.  The below change to
> version 5 brings back the phandle without the earlier argument that
> complicated the binding (was the motivation for moving in this
> direction in earlier version).  Passes dtbs_check.
> 
> --- a/drivers/spi/spi-dw-mmio.c
> +++ b/drivers/spi/spi-dw-mmio.c
> @@ -285,12 +285,17 @@ static void dw_spi_elba_set_cs(struct spi_device
> *spi, bool enable)
>  static int dw_spi_elba_init(struct platform_device *pdev,
>                             struct dw_spi_mmio *dwsmmio)
>  {
> +       struct device_node *np = pdev->dev.of_node;
> +       struct device_node *node;
>         struct dw_spi_elba *dwselba;
>         struct regmap *regmap;
> 
> -       regmap = syscon_regmap_lookup_by_compatible("amd,pensando-elba-syscon");
> -       if (IS_ERR(regmap))
> -               return PTR_ERR(regmap);

> +       node = of_parse_phandle(np, "pensando,elba-syscon-spics", 0);

1. Property name must be structured with the permitted vendor-prefix. In
your case it's "amd," not "pensando,".
2. Having 'spics' in the property name doesn't make much sense since
the property is supposed to contain a phandle reference to the whole
syscon node.

So to speak the property with name like 'amd,pensando-elba-syscon'
seems more appropriate here.

> +       if (node) {
> +               regmap = syscon_node_to_regmap(node);
> +               if (IS_ERR(regmap))
> +                       return PTR_ERR(regmap);
> +       }
> 
> diff --git a/arch/arm64/boot/dts/amd/elba.dtsi
> b/arch/arm64/boot/dts/amd/elba.dtsi
> index 9739641261c3..ec48be4cfe48 100644
> --- a/arch/arm64/boot/dts/amd/elba.dtsi
> +++ b/arch/arm64/boot/dts/amd/elba.dtsi
> @@ -98,6 +98,7 @@
>                         reg = <0x0 0x2800 0x0 0x100>;
>                         #address-cells = <1>;
>                         #size-cells = <0>;

> +                       pensando,elba-syscon-spics = <&syscon>;
  +                       amd,pensando-elba-syscon = <&syscon>;

ditto

>                         clocks = <&ahb_clk>;
>                         interrupts = <GIC_SPI 9 IRQ_TYPE_LEVEL_HIGH>;
>                         num-cs = <2>;
> 
> --- a/Documentation/devicetree/bindings/spi/snps,dw-apb-ssi.yaml
> +++ b/Documentation/devicetree/bindings/spi/snps,dw-apb-ssi.yaml
> @@ -37,6 +37,15 @@ allOf:
>      else:
>        required:
>          - interrupts
> +  - if:
> +      properties:
> +        compatible:
> +          contains:
> +            enum:
> +              - amd,pensando-elba-spi
> +    then:
  +      properties:
  +        amd,pensando-elba-syscon
  +          $ref: /schemas/types.yaml#/definitions/phandle
  +          description: AMD Pensando Elba SoC system controller
> +      required:
> +        - amd,pensando-elba-syscon

Please make sure the DT-bindings check passes correctly.

-Sergey

> 
>  properties:
>    compatible:
> 
> Regards,
> Brad

  reply	other threads:[~2022-07-04 13:18 UTC|newest]

Thread overview: 63+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-06-13 19:56 [PATCH v5 00/15] Support AMD Pensando Elba SoC Brad Larson
2022-06-13 19:56 ` [PATCH v5 01/15] dt-bindings: arm: add AMD Pensando boards Brad Larson
2022-06-14 21:16   ` Rob Herring
2022-06-20 12:48   ` Krzysztof Kozlowski
2022-06-13 19:56 ` [PATCH v5 02/15] dt-bindings: mmc: cdns: Add AMD Pensando Elba SoC binding Brad Larson
2022-06-14 21:22   ` Rob Herring
2022-07-03 23:08     ` Brad Larson
2022-06-20 12:50   ` Krzysztof Kozlowski
2022-07-03 23:11     ` Brad Larson
2022-06-13 19:56 ` [PATCH v5 03/15] dt-bindings: spi: cdns: Add compatible for AMD Pensando Elba SoC Brad Larson
2022-06-14 21:23   ` Rob Herring
2022-06-20 12:51   ` Krzysztof Kozlowski
2022-06-13 19:56 ` [PATCH v5 04/15] dt-bindings: spi: dw: Add AMD Pensando Elba SoC SPI Controller bindings Brad Larson
2022-06-14 21:23   ` Rob Herring
2022-06-20 19:30   ` Serge Semin
2022-06-20 19:46     ` Krzysztof Kozlowski
2022-06-20 20:04       ` Serge Semin
2022-06-21  7:00         ` Krzysztof Kozlowski
2022-06-21 10:11           ` Serge Semin
2022-07-03 23:58             ` Brad Larson
2022-07-04 13:18               ` Serge Semin [this message]
2022-06-13 19:56 ` [PATCH v5 05/15] dt-bindings: mfd: syscon: Add amd,pensando-elba-syscon compatible Brad Larson
2022-06-14 21:24   ` Rob Herring
2022-06-13 19:56 ` [PATCH v5 06/15] dt-bindings: mfd: amd,pensando-elbasr: Add AMD Pensando Elba System Resource chip Brad Larson
2022-06-14 21:30   ` Rob Herring
2022-07-03 23:30     ` Brad Larson
2022-06-20 12:56   ` Krzysztof Kozlowski
2022-07-03 23:41     ` Brad Larson
2022-07-05  9:46       ` Krzysztof Kozlowski
2022-06-13 19:56 ` [PATCH v5 07/15] dt-bindings: reset: amd,pensando-elbasr-reset: Add AMD Pensando SR Reset Controller bindings Brad Larson
2022-06-14 21:32   ` Rob Herring
2022-07-03 23:34     ` Brad Larson
2022-06-20 13:00   ` Krzysztof Kozlowski
2022-07-03 23:50     ` Brad Larson
2022-07-04  6:41       ` Krzysztof Kozlowski
2022-07-05 18:28         ` Brad Larson
2022-07-05 18:30           ` Krzysztof Kozlowski
2022-06-13 19:56 ` [PATCH v5 08/15] MAINTAINERS: Add entry for AMD PENSANDO Brad Larson
2022-06-13 19:56 ` [PATCH v5 09/15] arm64: Add config for AMD Pensando SoC platforms Brad Larson
2022-06-13 19:56 ` [PATCH v5 10/15] arm64: dts: Add AMD Pensando Elba SoC support Brad Larson
2022-06-14 22:44   ` Krzysztof Kozlowski
2022-07-03 23:15     ` Brad Larson
2022-06-13 19:56 ` [PATCH v5 11/15] spi: cadence-quadspi: Add compatible for AMD Pensando Elba SoC Brad Larson
2022-06-14  8:48   ` Pratyush Yadav
2022-07-03 21:05     ` Brad Larson
2022-06-14 12:01   ` Mark Brown
2022-07-03 21:09     ` Brad Larson
2022-06-13 19:56 ` [PATCH v5 12/15] spi: dw: Add support " Brad Larson
2022-06-14 11:10   ` Andy Shevchenko
2022-07-03 21:14     ` Brad Larson
2022-06-13 19:56 ` [PATCH v5 13/15] mmc: sdhci-cadence: Add AMD Pensando Elba SoC support Brad Larson
2022-06-14 11:19   ` Andy Shevchenko
2022-07-03 21:42     ` Brad Larson
2022-06-13 19:56 ` [PATCH v5 14/15] mfd: pensando-elbasr: Add AMD Pensando Elba System Resource chip Brad Larson
2022-06-14 11:42   ` Andy Shevchenko
2022-07-03 21:56     ` Brad Larson
2022-06-13 19:56 ` [PATCH v5 15/15] reset: elbasr: Add AMD Pensando Elba SR Reset Controller Brad Larson
2022-06-14 11:46   ` Andy Shevchenko
2022-07-03 22:06     ` Brad Larson
2022-06-14 14:49   ` Philipp Zabel
2022-07-03 22:03     ` Brad Larson
2022-06-14 21:34   ` Rob Herring
2022-07-03 23:24     ` Brad Larson

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20220704131810.kabkuy6e4qmhfm3n@mobilestation \
    --to=fancer.lancer@gmail.com \
    --cc=adrian.hunter@intel.com \
    --cc=alcooperx@gmail.com \
    --cc=andy.shevchenko@gmail.com \
    --cc=arnd@arndb.de \
    --cc=blarson@amd.com \
    --cc=brad@pensando.io \
    --cc=broonie@kernel.org \
    --cc=catalin.marinas@arm.com \
    --cc=devicetree@vger.kernel.org \
    --cc=gerg@linux-m68k.org \
    --cc=gsomlo@gmail.com \
    --cc=krzysztof.kozlowski+dt@linaro.org \
    --cc=krzysztof.kozlowski@linaro.org \
    --cc=lee.jones@linaro.org \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-mmc@vger.kernel.org \
    --cc=p.yadav@ti.com \
    --cc=p.zabel@pengutronix.de \
    --cc=rdunlap@infradead.org \
    --cc=robh+dt@kernel.org \
    --cc=samuel@sholland.org \
    --cc=suravee.suthikulpanit@amd.com \
    --cc=thomas.lendacky@amd.com \
    --cc=ulf.hansson@linaro.org \
    --cc=will@kernel.org \
    --cc=yamada.masahiro@socionext.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).