From: Maxime Ripard <maxime.ripard@bootlin.com>
To: Rob Herring <robh+dt@kernel.org>
Cc: "Mark Rutland" <mark.rutland@arm.com>,
"Frank Rowand" <frowand.list@gmail.com>,
"David S . Miller" <davem@davemloft.net>,
"Chen-Yu Tsai" <wens@csie.org>,
"Maxime Coquelin" <mcoquelin.stm32@gmail.com>,
"Alexandre Torgue" <alexandre.torgue@st.com>,
netdev <netdev@vger.kernel.org>,
"moderated list:ARM/FREESCALE IMX / MXC ARM ARCHITECTURE"
<linux-arm-kernel@lists.infradead.org>,
devicetree@vger.kernel.org,
linux-stm32@st-md-mailman.stormreply.com,
"Maxime Chevallier" <maxime.chevallier@bootlin.com>,
"Antoine Ténart" <antoine.tenart@bootlin.com>
Subject: Re: [PATCH 6/8] dt-bindings: net: stmmac: Convert the binding to a schemas
Date: Fri, 24 May 2019 11:05:29 +0200 [thread overview]
Message-ID: <20190524090529.bvjzapgy35pfcow5@flea> (raw)
In-Reply-To: <CAL_JsqLrE31vWVhApGgr8JU56sDc1TWWm9HiH=Z-tn5C1GwXQA@mail.gmail.com>
[-- Attachment #1: Type: text/plain, Size: 7601 bytes --]
Hi Rob,
On Thu, May 23, 2019 at 10:33:05AM -0500, Rob Herring wrote:
> On Thu, May 23, 2019 at 4:57 AM Maxime Ripard <maxime.ripard@bootlin.com> wrote:
> >
> > Switch the STMMAC / Synopsys DesignWare MAC controller binding to a YAML
> > schema to enable the DT validation.
>
> You picked an easy one. ;)
Yeah, that's what happens when you run out of trivial bindings, you
end up with only the hard ones left to work on :)
> > Signed-off-by: Maxime Ripard <maxime.ripard@bootlin.com>
> > ---
> > Documentation/devicetree/bindings/net/snps,dwmac.yaml | 344 +++++++++++-
> > Documentation/devicetree/bindings/net/stmmac.txt | 179 +------
> > 2 files changed, 345 insertions(+), 178 deletions(-)
> > create mode 100644 Documentation/devicetree/bindings/net/snps,dwmac.yaml
> >
> > diff --git a/Documentation/devicetree/bindings/net/snps,dwmac.yaml b/Documentation/devicetree/bindings/net/snps,dwmac.yaml
> > new file mode 100644
> > index 000000000000..be3ada5121e1
> > --- /dev/null
> > +++ b/Documentation/devicetree/bindings/net/snps,dwmac.yaml
> > @@ -0,0 +1,344 @@
> > +# SPDX-License-Identifier: GPL-2.0
> > +%YAML 1.2
> > +---
> > +$id: http://devicetree.org/schemas/net/snps,dwmac.yaml#
> > +$schema: http://devicetree.org/meta-schemas/core.yaml#
> > +
> > +title: Synopsys DesignWare MAC Device Tree Bindings
> > +
> > +maintainers:
> > + - Alexandre Torgue <alexandre.torgue@st.com>
> > + - Giuseppe Cavallaro <peppe.cavallaro@st.com>
> > + - Jose Abreu <joabreu@synopsys.com>
> > +
> > +properties:
> > + compatible:
> > + oneOf:
> > + - const: snps,dwmac
> > + - const: snps,dwmac-3.50a
> > + - const: snps,dwmac-3.610
> > + - const: snps,dwmac-3.70a
> > + - const: snps,dwmac-3.710
> > + - const: snps,dwmac-4.00
> > + - const: snps,dwmac-4.10a
> > + - const: snps,dwxgmac
> > + - const: snps,dwxgmac-2.10
> > + - const: st,spear600-gmac
> > + description: Deprecated
>
> Like the other, just make this an enum.
Ack.
I did this initially because the sun8i-emac bindings also have
multiple compatibles we can use, and thus I needed an items here, but
since we will move them away in separate files, we can just use an
enum (with a contains).
> Though, what to do on deprecated things? If we expect dts files to be
> updated, then we should remove or disallow in the schema (e.g. 'prop:
> false' for properties).
Oh, so that's what the false are here for. I wanted to send a PR to
the meta-schemas because *-gpio was not working, and that binding uses
one, but I guess that solves it.
For the deprecation process, I haven't made up my mind yet. We could
put in comment the deprecated properties and compatibles, but that has
two significant drawbacks:
- for the compatibles, we wouldn't have the nodes with a deprecated
compatible validated, and thus we wouldn't even have a warning
that our compatible is deprecated in the first place. And any
property we might have not used properly will be ignored as well.
- for the other properties, it's still pretty hard to disable
additionalProperties, so any deprecated property wouldn't be
validated if they were in a comment, and we wouldn't have a
warning either if additionalProperties is true, because we
tolerate them.
I guess we can workaround the first one with a custom select that has
all the supported compatibles (including the deprecated ones), but
only list the non-deprecated options in the compatible properties.
I don't really see a solution for the second one.
> The issue with updating dts files, is it may break old kernels with
> new dtbs.
While this is something that is mentionned by some people, and I can
see how it's problematic to some, it's also something we never really
committed to, so I'm fine with that.
> > + snps,axi-config:
> > + $ref: /schemas/types.yaml#definitions/phandle
> > + description:
> > + AXI BUS Mode parameters. Phandle to a node that can contain the
> > + following properties
> > + * snps,lpi_en, enable Low Power Interface
> > + * snps,xit_frm, unlock on WoL
> > + * snps,wr_osr_lmt, max write outstanding req. limit
> > + * snps,rd_osr_lmt, max read outstanding req. limit
> > + * snps,kbbe, do not cross 1KiB boundary.
> > + * snps,blen, this is a vector of supported burst length.
> > + * snps,fb, fixed-burst
> > + * snps,mb, mixed-burst
> > + * snps,rb, rebuild INCRx Burst
>
> This obviously needs its own schema, but that can come latter.
I haven't been able to describe a node that doesn't have any
particular copmatible or node name, but we just need to follow a
phandle.
How could we do this?
> > + snps,reset-gpio:
> > + description:
> > + PHY Reset GPIO
>
> maxItems: 1
>
> > +
> > + snps,reset-active-low:
> > + $ref: /schemas/types.yaml#definitions/flag
> > + description:
> > + Indicates that the PHY Reset is active low
>
> Would be nice to deprecate these 2 properties for just 'reset-gpios'.
> Though really, this should be in the phy node as this is a phy reset.
The PHYs already have such a property, so we should just deprecate
them.
> > +
> > + snps,reset-delay-us:
> > + allOf:
> > + - $ref: /schemas/types.yaml#definitions/uint32-array
> > + - minItems: 3
> > + maxItems: 3
> > + description:
> > + Triplet of delays. The 1st cell is reset pre-delay in micro
> > + seconds. The 2nd cell is reset pulse in micro seconds. The 3rd
> > + cell is reset post-delay in micro seconds.
And this one too I guess?
> > + snps,aal:
> > + $ref: /schemas/types.yaml#definitions/flag
> > + description:
> > + Use Address-Aligned Beats
> > +
> > + snps,fixed-burst:
> > + $ref: /schemas/types.yaml#definitions/flag
> > + description:
> > + Program the DMA to use the fixed burst mode
> > +
> > + snps,mixed-burst:
> > + $ref: /schemas/types.yaml#definitions/flag
> > + description:
> > + Program the DMA to use the mixed burst mode
> > +
> > + snps,force_thresh_dma_mode:
> > + $ref: /schemas/types.yaml#definitions/flag
> > + description:
> > + Force DMA to use the threshold mode for both tx and rx
> > +
> > + snps,force_sf_dma_mode:
> > + $ref: /schemas/types.yaml#definitions/flag
> > + description:
> > + Force DMA to use the Store and Forward mode for both tx and
> > + rx. This flag is ignored if force_thresh_dma_mode is set.
> > +
> > + snps,en-tx-lpi-clockgating:
> > + $ref: /schemas/types.yaml#definitions/flag
> > + description:
> > + Enable gating of the MAC TX clock during TX low-power mode
> > +
> > + snps,multicast-filter-bins:
> > + $ref: /schemas/types.yaml#definitions/uint32
> > + description:
> > + Number of multicast filter hash bins supported by this device
> > + instance
> > +
> > + snps,perfect-filter-entries:
> > + $ref: /schemas/types.yaml#definitions/uint32
> > + description:
> > + Number of perfect filter entries supported by this device
> > + instance
> > +
> > + snps,ps-speed:
> > + $ref: /schemas/types.yaml#definitions/uint32
> > + description:
> > + Port selection speed that can be passed to the core when PCS
> > + is supported. For example, this is used in case of SGMII and
> > + MAC2MAC connection.
> > +
> > + mdio:
> > + type: object
> > + description:
> > + Creates and registers an MDIO bus.
> > +
> > + properties:
> > + compatible:
> > + const: snps,dwmac-mdio
>
> required?
Yep, I'll add it.
Thanks!
Maxime
next prev parent reply other threads:[~2019-05-24 9:05 UTC|newest]
Thread overview: 26+ messages / expand[flat|nested] mbox.gz Atom feed top
2019-05-23 9:56 [PATCH 1/8] dt-bindings: net: Add YAML schemas for the generic Ethernet options Maxime Ripard
2019-05-23 9:56 ` [PATCH 2/8] dt-bindings: net: Add a YAML schemas for the generic PHY options Maxime Ripard
2019-05-23 14:37 ` Andrew Lunn
2019-05-23 20:01 ` Maxime Ripard
2019-05-23 14:44 ` Rob Herring
2019-05-24 11:06 ` Maxime Ripard
2019-05-23 18:16 ` Florian Fainelli
2019-05-24 8:10 ` Maxime Ripard
2019-05-23 9:56 ` [PATCH 3/8] dt-bindings: net: phy: The interrupt property is not mandatory Maxime Ripard
2019-05-23 9:56 ` [PATCH 4/8] dt-bindings: net: sun4i-emac: Convert the binding to a schemas Maxime Ripard
2019-05-23 9:56 ` [PATCH 5/8] dt-bindings: net: sun4i-mdio: " Maxime Ripard
2019-05-23 9:56 ` [PATCH 6/8] dt-bindings: net: stmmac: " Maxime Ripard
2019-05-23 10:11 ` Jose Abreu
2019-05-23 11:07 ` Maxime Ripard
2019-05-23 11:25 ` Jose Abreu
2019-05-23 12:45 ` Maxime Ripard
2019-05-23 15:05 ` Alexandre Torgue
2019-05-24 7:34 ` Maxime Ripard
2019-05-23 15:33 ` Rob Herring
2019-05-24 9:05 ` Maxime Ripard [this message]
2019-05-23 9:56 ` [PATCH 7/8] dt-bindings: net: sun7i-gmac: " Maxime Ripard
2019-05-23 15:55 ` Rob Herring
2019-05-23 9:56 ` [PATCH 8/8] dt-bindings: net: sun8i-emac: " Maxime Ripard
2019-05-23 13:10 ` [PATCH 1/8] dt-bindings: net: Add YAML schemas for the generic Ethernet options Rob Herring
2019-05-23 14:42 ` Andrew Lunn
2019-05-23 19:54 ` Maxime Ripard
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=20190524090529.bvjzapgy35pfcow5@flea \
--to=maxime.ripard@bootlin.com \
--cc=alexandre.torgue@st.com \
--cc=antoine.tenart@bootlin.com \
--cc=davem@davemloft.net \
--cc=devicetree@vger.kernel.org \
--cc=frowand.list@gmail.com \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=linux-stm32@st-md-mailman.stormreply.com \
--cc=mark.rutland@arm.com \
--cc=maxime.chevallier@bootlin.com \
--cc=mcoquelin.stm32@gmail.com \
--cc=netdev@vger.kernel.org \
--cc=robh+dt@kernel.org \
--cc=wens@csie.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: 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