From: "Andrew Jeffery" <andrew@aj.id.au> To: "Rob Herring" <robh+dt@kernel.org> Cc: linux-mmc <linux-mmc@vger.kernel.org>, "Ulf Hansson" <ulf.hansson@linaro.org>, "Mark Rutland" <mark.rutland@arm.com>, "Joel Stanley" <joel@jms.id.au>, "Adrian Hunter" <adrian.hunter@intel.com>, devicetree@vger.kernel.org, "moderated list:ARM/FREESCALE IMX / MXC ARM ARCHITECTURE" <linux-arm-kernel@lists.infradead.org>, linux-aspeed@lists.ozlabs.org, "linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>, "Ryan Chen" <ryanchen.aspeed@gmail.com> Subject: Re: [PATCH 1/2] dt-bindings: mmc: Document Aspeed SD controller Date: Thu, 11 Jul 2019 10:26:39 +0930 [thread overview] Message-ID: <3b0788cf-eee4-48b2-901d-d2ab6716ab1b@www.fastmail.com> (raw) In-Reply-To: <CAL_JsqKrYcUbn_02z9GQO6U4rz7k=p3kB7_G0tKmv25MMZZNQg@mail.gmail.com> On Thu, 11 Jul 2019, at 01:20, Rob Herring wrote: > On Wed, Jul 10, 2019 at 8:16 AM Andrew Jeffery <andrew@aj.id.au> wrote: > > > > The ASPEED SD/SDIO/eMMC controller exposes two slots implementing the > > SDIO Host Specification v2.00, with 1 or 4 bit data buses, or an 8 bit > > data bus if only a single slot is enabled. > > > > Signed-off-by: Andrew Jeffery <andrew@aj.id.au> > > --- > > .../bindings/mmc/sdhci-of-aspeed.yaml | 91 +++++++++++++++++++ > > aspeed,sdhci.yaml Ack. Previously I had separate documents for different compatibles, wasn't sure how to tackle name one document covering multiple compatibles. > > > 1 file changed, 91 insertions(+) > > create mode 100644 Documentation/devicetree/bindings/mmc/sdhci-of-aspeed.yaml > > > > diff --git a/Documentation/devicetree/bindings/mmc/sdhci-of-aspeed.yaml b/Documentation/devicetree/bindings/mmc/sdhci-of-aspeed.yaml > > new file mode 100644 > > index 000000000000..e98a2ac4d46d > > --- /dev/null > > +++ b/Documentation/devicetree/bindings/mmc/sdhci-of-aspeed.yaml > > @@ -0,0 +1,91 @@ > > +# SPDX-License-Identifier: GPL-2.0-or-later > > The preferred license is (GPL-2.0 OR BSD-2-Clause) if that is okay with you. I should poke people internally again, I had asked, just haven't got a clear answer. What was the justification for the preference (just so I can pass that on)? > > > +%YAML 1.2 > > +--- > > +$id: http://devicetree.org/schemas/mmc/sdhci-of-aspeed.yaml# > > +$schema: http://devicetree.org/meta-schemas/core.yaml# > > + > > +title: ASPEED SD/SDIO/eMMC Controller > > + > > +maintainers: > > + - Andrew Jeffery <andrew@aj.id.au> > > + - Ryan Chen <ryanchen.aspeed@gmail.com> > > + > > +description: |+ > > + The ASPEED SD/SDIO/eMMC controller exposes two slots implementing the SDIO > > + Host Specification v2.00, with 1 or 4 bit data buses, or an 8 bit data bus if > > + only a single slot is enabled. > > + > > + The two slots are supported by a common configuration area. As the SDHCIs for > > + the slots are dependent on the common configuration area, they are described > > + as child nodes. > > + > > +properties: > > + compatible: > > + enum: [ aspeed,ast2400-sdc, aspeed,ast2500-sdc ] > > + reg: > > + description: Common configuration registers > > This should have a 'maxItems: 1'. Same for the child reg. Ack. > > > + ranges: true > > + clocks: > > + maxItems: 1 > > + description: The SD/SDIO controller clock gate > > + sdhci: > > This needs to be a pattern (under patternProperties) as these have > unit-addresses. Ah, I didn't think about that. > > > + type: object > > + properties: > > + compatible: > > + allOf: > > + - enum: [ aspeed,ast2400-sdhci, aspeed,ast2500-sdhci ] > > + - const: sdhci > > This condition can never be true. What you need is s/allOf/items/. > However, 'sdhci' is not really a useful compatible because every > implementation has quirks, so I'd drop it. Yeah, I was tossing up whether to include "sdhci". I'll drop it as you suggest. Pity the shorthand doesn't work how I expected. Might explain some of the behaviour I was seeing with the bindings make targets though. > > > + reg: > > + description: The SDHCI registers > > + clocks: > > + maxItems: 1 > > + description: The SD bus clock > > + slot: > > + allOf: > > + - $ref: /schemas/types.yaml#/definitions/uint32 > > + - enum: [0, 1] > > Is this really needed? Offset 0x100 is slot 0 and offset 0x200 is slot > 1. Does that ever change? It doesn't in the SoCs at hand, but the downstream impact (driver implementation) is that you need to derive the slot index from the address and I was trying to avoid that. The slot index influences some bit index calculations. > > > + interrupts: > > + maxItems: 1 > > + description: The SD interrupt shared between both slots > > + required: > > + - compatible > > + - reg > > + - clocks > > + - slot > > + - interrupts > > + > > +required: > > + - compatible > > + - reg > > + - ranges > > + - clocks > > #address-cells and #size-cells are required too. Ack. > > You should also add 'additionalProperties: false' here so other random > properties can't be present. Ah yes. Will fix. > > > + > > +examples: > > + - | > > + #include <dt-bindings/clock/aspeed-clock.h> > > + sdc@1e740000 { > > + compatible = "aspeed,ast2500-sdc"; > > + reg = <0x1e740000 0x100>; > > + #address-cells = <1>; > > + #size-cells = <1>; > > + ranges; > > It's preferred to limit the range here and then the child addresses > are 0x100 and 0x200. Okay. Was just trying to dodge mental arithmetic where I could, but if that's the preference then I'll fix it up. Thanks for the review! Andrew > > > + clocks = <&syscon ASPEED_CLK_GATE_SDCLK>; > > + > > + sdhci0: sdhci@1e740100 { > > + compatible = "aspeed,ast2500-sdhci", "sdhci"; > > + reg = <0x1e740100 0x100>; > > + slot = <0>; > > + interrupts = <26>; > > + sdhci,auto-cmd12; > > + clocks = <&syscon ASPEED_CLK_SDIO>; > > + }; > > + > > + sdhci1: sdhci@1e740200 { > > + compatible = "aspeed,ast2500-sdhci", "sdhci"; > > + reg = <0x1e740200 0x100>; > > + slot = <1>; > > + interrupts = <26>; > > + sdhci,auto-cmd12; > > + clocks = <&syscon ASPEED_CLK_SDIO>; > > + }; > > + }; > > -- > > 2.20.1 > > >
WARNING: multiple messages have this Message-ID (diff)
From: "Andrew Jeffery" <andrew@aj.id.au> To: "Rob Herring" <robh+dt@kernel.org> Cc: Mark Rutland <mark.rutland@arm.com>, devicetree@vger.kernel.org, Ulf Hansson <ulf.hansson@linaro.org>, linux-aspeed@lists.ozlabs.org, Ryan Chen <ryanchen.aspeed@gmail.com>, linux-mmc <linux-mmc@vger.kernel.org>, Adrian Hunter <adrian.hunter@intel.com>, "linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>, Joel Stanley <joel@jms.id.au>, "moderated list:ARM/FREESCALE IMX / MXC ARM ARCHITECTURE" <linux-arm-kernel@lists.infradead.org> Subject: Re: [PATCH 1/2] dt-bindings: mmc: Document Aspeed SD controller Date: Thu, 11 Jul 2019 10:26:39 +0930 [thread overview] Message-ID: <3b0788cf-eee4-48b2-901d-d2ab6716ab1b@www.fastmail.com> (raw) In-Reply-To: <CAL_JsqKrYcUbn_02z9GQO6U4rz7k=p3kB7_G0tKmv25MMZZNQg@mail.gmail.com> On Thu, 11 Jul 2019, at 01:20, Rob Herring wrote: > On Wed, Jul 10, 2019 at 8:16 AM Andrew Jeffery <andrew@aj.id.au> wrote: > > > > The ASPEED SD/SDIO/eMMC controller exposes two slots implementing the > > SDIO Host Specification v2.00, with 1 or 4 bit data buses, or an 8 bit > > data bus if only a single slot is enabled. > > > > Signed-off-by: Andrew Jeffery <andrew@aj.id.au> > > --- > > .../bindings/mmc/sdhci-of-aspeed.yaml | 91 +++++++++++++++++++ > > aspeed,sdhci.yaml Ack. Previously I had separate documents for different compatibles, wasn't sure how to tackle name one document covering multiple compatibles. > > > 1 file changed, 91 insertions(+) > > create mode 100644 Documentation/devicetree/bindings/mmc/sdhci-of-aspeed.yaml > > > > diff --git a/Documentation/devicetree/bindings/mmc/sdhci-of-aspeed.yaml b/Documentation/devicetree/bindings/mmc/sdhci-of-aspeed.yaml > > new file mode 100644 > > index 000000000000..e98a2ac4d46d > > --- /dev/null > > +++ b/Documentation/devicetree/bindings/mmc/sdhci-of-aspeed.yaml > > @@ -0,0 +1,91 @@ > > +# SPDX-License-Identifier: GPL-2.0-or-later > > The preferred license is (GPL-2.0 OR BSD-2-Clause) if that is okay with you. I should poke people internally again, I had asked, just haven't got a clear answer. What was the justification for the preference (just so I can pass that on)? > > > +%YAML 1.2 > > +--- > > +$id: http://devicetree.org/schemas/mmc/sdhci-of-aspeed.yaml# > > +$schema: http://devicetree.org/meta-schemas/core.yaml# > > + > > +title: ASPEED SD/SDIO/eMMC Controller > > + > > +maintainers: > > + - Andrew Jeffery <andrew@aj.id.au> > > + - Ryan Chen <ryanchen.aspeed@gmail.com> > > + > > +description: |+ > > + The ASPEED SD/SDIO/eMMC controller exposes two slots implementing the SDIO > > + Host Specification v2.00, with 1 or 4 bit data buses, or an 8 bit data bus if > > + only a single slot is enabled. > > + > > + The two slots are supported by a common configuration area. As the SDHCIs for > > + the slots are dependent on the common configuration area, they are described > > + as child nodes. > > + > > +properties: > > + compatible: > > + enum: [ aspeed,ast2400-sdc, aspeed,ast2500-sdc ] > > + reg: > > + description: Common configuration registers > > This should have a 'maxItems: 1'. Same for the child reg. Ack. > > > + ranges: true > > + clocks: > > + maxItems: 1 > > + description: The SD/SDIO controller clock gate > > + sdhci: > > This needs to be a pattern (under patternProperties) as these have > unit-addresses. Ah, I didn't think about that. > > > + type: object > > + properties: > > + compatible: > > + allOf: > > + - enum: [ aspeed,ast2400-sdhci, aspeed,ast2500-sdhci ] > > + - const: sdhci > > This condition can never be true. What you need is s/allOf/items/. > However, 'sdhci' is not really a useful compatible because every > implementation has quirks, so I'd drop it. Yeah, I was tossing up whether to include "sdhci". I'll drop it as you suggest. Pity the shorthand doesn't work how I expected. Might explain some of the behaviour I was seeing with the bindings make targets though. > > > + reg: > > + description: The SDHCI registers > > + clocks: > > + maxItems: 1 > > + description: The SD bus clock > > + slot: > > + allOf: > > + - $ref: /schemas/types.yaml#/definitions/uint32 > > + - enum: [0, 1] > > Is this really needed? Offset 0x100 is slot 0 and offset 0x200 is slot > 1. Does that ever change? It doesn't in the SoCs at hand, but the downstream impact (driver implementation) is that you need to derive the slot index from the address and I was trying to avoid that. The slot index influences some bit index calculations. > > > + interrupts: > > + maxItems: 1 > > + description: The SD interrupt shared between both slots > > + required: > > + - compatible > > + - reg > > + - clocks > > + - slot > > + - interrupts > > + > > +required: > > + - compatible > > + - reg > > + - ranges > > + - clocks > > #address-cells and #size-cells are required too. Ack. > > You should also add 'additionalProperties: false' here so other random > properties can't be present. Ah yes. Will fix. > > > + > > +examples: > > + - | > > + #include <dt-bindings/clock/aspeed-clock.h> > > + sdc@1e740000 { > > + compatible = "aspeed,ast2500-sdc"; > > + reg = <0x1e740000 0x100>; > > + #address-cells = <1>; > > + #size-cells = <1>; > > + ranges; > > It's preferred to limit the range here and then the child addresses > are 0x100 and 0x200. Okay. Was just trying to dodge mental arithmetic where I could, but if that's the preference then I'll fix it up. Thanks for the review! Andrew > > > + clocks = <&syscon ASPEED_CLK_GATE_SDCLK>; > > + > > + sdhci0: sdhci@1e740100 { > > + compatible = "aspeed,ast2500-sdhci", "sdhci"; > > + reg = <0x1e740100 0x100>; > > + slot = <0>; > > + interrupts = <26>; > > + sdhci,auto-cmd12; > > + clocks = <&syscon ASPEED_CLK_SDIO>; > > + }; > > + > > + sdhci1: sdhci@1e740200 { > > + compatible = "aspeed,ast2500-sdhci", "sdhci"; > > + reg = <0x1e740200 0x100>; > > + slot = <1>; > > + interrupts = <26>; > > + sdhci,auto-cmd12; > > + clocks = <&syscon ASPEED_CLK_SDIO>; > > + }; > > + }; > > -- > > 2.20.1 > > > _______________________________________________ linux-arm-kernel mailing list linux-arm-kernel@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
next prev parent reply other threads:[~2019-07-11 0:56 UTC|newest] Thread overview: 15+ messages / expand[flat|nested] mbox.gz Atom feed top 2019-07-10 14:16 [PATCH 0/2] mmc: Add support for the ASPEED SD controller Andrew Jeffery 2019-07-10 14:16 ` Andrew Jeffery 2019-07-10 14:16 ` [PATCH 1/2] dt-bindings: mmc: Document Aspeed " Andrew Jeffery 2019-07-10 14:16 ` Andrew Jeffery 2019-07-10 15:49 ` Rob Herring 2019-07-10 15:49 ` Rob Herring 2019-07-10 15:49 ` Rob Herring 2019-07-11 0:56 ` Andrew Jeffery [this message] 2019-07-11 0:56 ` Andrew Jeffery 2019-07-11 0:56 ` Andrew Jeffery 2019-07-11 13:44 ` Rob Herring 2019-07-11 13:44 ` Rob Herring 2019-07-11 13:44 ` Rob Herring 2019-07-10 14:16 ` [PATCH 2/2] mmc: Add support for the ASPEED " Andrew Jeffery 2019-07-10 14:16 ` Andrew Jeffery
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=3b0788cf-eee4-48b2-901d-d2ab6716ab1b@www.fastmail.com \ --to=andrew@aj.id.au \ --cc=adrian.hunter@intel.com \ --cc=devicetree@vger.kernel.org \ --cc=joel@jms.id.au \ --cc=linux-arm-kernel@lists.infradead.org \ --cc=linux-aspeed@lists.ozlabs.org \ --cc=linux-kernel@vger.kernel.org \ --cc=linux-mmc@vger.kernel.org \ --cc=mark.rutland@arm.com \ --cc=robh+dt@kernel.org \ --cc=ryanchen.aspeed@gmail.com \ --cc=ulf.hansson@linaro.org \ /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: linkBe sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.