From: Chris Packham <Chris.Packham@alliedtelesis.co.nz>
To: Rob Herring <robh@kernel.org>
Cc: "davem@davemloft.net" <davem@davemloft.net>,
"edumazet@google.com" <edumazet@google.com>,
"kuba@kernel.org" <kuba@kernel.org>,
"pabeni@redhat.com" <pabeni@redhat.com>,
"krzysztof.kozlowski+dt@linaro.org"
<krzysztof.kozlowski+dt@linaro.org>,
"andrew@lunn.ch" <andrew@lunn.ch>,
"netdev@vger.kernel.org" <netdev@vger.kernel.org>,
"devicetree@vger.kernel.org" <devicetree@vger.kernel.org>,
"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
"Marek Behún" <kabel@kernel.org>
Subject: Re: [PATCH v2] dt-bindings: net: orion-mdio: Convert to JSON schema
Date: Mon, 16 May 2022 22:27:42 +0000 [thread overview]
Message-ID: <cf956c25-f505-6ec0-260c-496c7d1322a1@alliedtelesis.co.nz> (raw)
In-Reply-To: <0c67af76-df5e-1684-820c-f28aa6f50fe1@alliedtelesis.co.nz>
On 17/05/22 10:18, Chris Packham wrote:
> Hi Rob,
>
> On 17/05/22 06:16, Rob Herring wrote:
>> On Fri, May 06, 2022 at 09:06:20AM +1200, Chris Packham wrote:
>>> Convert the marvell,orion-mdio binding to JSON schema.
>>>
>>> Signed-off-by: Chris Packham <chris.packham@alliedtelesis.co.nz>
>>> ---
>>>
>>> Notes:
>>> This does throw up the following dtbs_check warnings for
>>> turris-mox:
>>> arch/arm64/boot/dts/marvell/armada-3720-turris-mox.dtb: mdio@32004:
>>> switch0@10:reg: [[16], [0]] is too long
>>> From schema:
>>> Documentation/devicetree/bindings/net/marvell,orion-mdio.yaml
>>> arch/arm64/boot/dts/marvell/armada-3720-turris-mox.dtb:
>>> mdio@32004: switch0@2:reg: [[2], [0]] is too long
>>> From schema:
>>> Documentation/devicetree/bindings/net/marvell,orion-mdio.yaml
>>> arch/arm64/boot/dts/marvell/armada-3720-turris-mox.dtb:
>>> mdio@32004: switch1@11:reg: [[17], [0]] is too long
>>> From schema:
>>> Documentation/devicetree/bindings/net/marvell,orion-mdio.yaml
>>> arch/arm64/boot/dts/marvell/armada-3720-turris-mox.dtb:
>>> mdio@32004: switch1@2:reg: [[2], [0]] is too long
>>> From schema:
>>> Documentation/devicetree/bindings/net/marvell,orion-mdio.yaml
>>> arch/arm64/boot/dts/marvell/armada-3720-turris-mox.dtb:
>>> mdio@32004: switch2@12:reg: [[18], [0]] is too long
>>> From schema:
>>> Documentation/devicetree/bindings/net/marvell,orion-mdio.yaml
>>> arch/arm64/boot/dts/marvell/armada-3720-turris-mox.dtb:
>>> mdio@32004: switch2@2:reg: [[2], [0]] is too long
>>> From schema:
>>> Documentation/devicetree/bindings/net/marvell,orion-mdio.yaml
>>> I think they're all genuine but I'm hesitant to leap in
>>> and fix them
>>> without being able to test them.
>>> I also need to set unevaluatedProperties: true to cater
>>> for the L2
>>> switch on turris-mox (and probably others). That might be
>>> better tackled
>>> in the core mdio.yaml schema but I wasn't planning on touching
>>> that.
>>> Changes in v2:
>>> - Add Andrew as maintainer (thanks for volunteering)
>>>
>>> .../bindings/net/marvell,orion-mdio.yaml | 60
>>> +++++++++++++++++++
>>> .../bindings/net/marvell-orion-mdio.txt | 54 -----------------
>>> 2 files changed, 60 insertions(+), 54 deletions(-)
>>> create mode 100644
>>> Documentation/devicetree/bindings/net/marvell,orion-mdio.yaml
>>> delete mode 100644
>>> Documentation/devicetree/bindings/net/marvell-orion-mdio.txt
>>>
>>> diff --git
>>> a/Documentation/devicetree/bindings/net/marvell,orion-mdio.yaml
>>> b/Documentation/devicetree/bindings/net/marvell,orion-mdio.yaml
>>> new file mode 100644
>>> index 000000000000..fe3a3412f093
>>> --- /dev/null
>>> +++ b/Documentation/devicetree/bindings/net/marvell,orion-mdio.yaml
>>> @@ -0,0 +1,60 @@
>>> +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
>>> +%YAML 1.2
>>> +---
>>> +$id:
>>> http://scanmail.trustwave.com/?c=20988&d=j5WC4r_pZnDMILajH1kaKLL9oC7kQjgv_bkDWJOhEQ&u=http%3a%2f%2fdevicetree%2eorg%2fschemas%2fnet%2fmarvell%2corion-mdio%2eyaml%23
>>> +$schema:
>>> http://scanmail.trustwave.com/?c=20988&d=j5WC4r_pZnDMILajH1kaKLL9oC7kQjgv_e4CDcetEw&u=http%3a%2f%2fdevicetree%2eorg%2fmeta-schemas%2fcore%2eyaml%23
>>> +
>>> +title: Marvell MDIO Ethernet Controller interface
>>> +
>>> +maintainers:
>>> + - Andrew Lunn <andrew@lunn.ch>
>>> +
>>> +description: |
>>> + The Ethernet controllers of the Marvel Kirkwood, Dove, Orion5x,
>>> MV78xx0,
>>> + Armada 370, Armada XP, Armada 7k and Armada 8k have an identical
>>> unit that
>>> + provides an interface with the MDIO bus. Additionally, Armada 7k
>>> and Armada
>>> + 8k has a second unit which provides an interface with the xMDIO
>>> bus. This
>>> + driver handles these interfaces.
>>> +
>>> +allOf:
>>> + - $ref: "mdio.yaml#"
>>> +
>>> +properties:
>>> + compatible:
>>> + enum:
>>> + - marvell,orion-mdio
>>> + - marvell,xmdio
>>> +
>>> + reg:
>>> + maxItems: 1
>>> +
>>> + interrupts:
>>> + maxItems: 1
>>> +
>>> + clocks:
>>> + minItems: 1
>>> + maxItems: 4
>> Really this should be better defined, but the original was not.
>>
>>> +
>>> +required:
>>> + - compatible
>>> + - reg
>>> +
>>> +unevaluatedProperties: true
>> This must be false.
>
> Right now there is no way (that I have found) of dealing with non-PHY
> devices like the dsa switches so setting this to false generates
> warnings on turris-mox:
>
> arch/arm64/boot/dts/marvell/armada-3720-turris-mox.dtb: mdio@32004:
> Unevaluated properties are not allowed ('#address-cells',
> '#size-cells', 'ethernet-phy@1', 'switch0@10', 'switch0@2',
> 'switch1@11', 'switch1@2', 'switch2@12', 'switch2@2' were unexpected)
> From schema:
> /home/chrisp/src/linux/Documentation/devicetree/bindings/net/marvell,orion-mdio.yaml
>
> There are also warnings about the size of the reg property but these
> seem to be genuine problems that Marek is looking at.
Actually it looks if I fix the reg problem the need for
unevaluatedProperties goes away. I'll whip up a small patch series on
top of net-next.
>
> This change has already been picked up for net-next but if you have
> suggestions for improvement I'm happy to submit them as additional
> changes on-top of that.
>
>>
>>> +
>>> +examples:
>>> + - |
>>> + mdio@d0072004 {
>>> + compatible = "marvell,orion-mdio";
>>> + reg = <0xd0072004 0x4>;
>>> + #address-cells = <1>;
>>> + #size-cells = <0>;
>>> + interrupts = <30>;
>>> +
>>> + phy0: ethernet-phy@0 {
>>> + reg = <0>;
>>> + };
>>> +
>>> + phy1: ethernet-phy@1 {
>>> + reg = <1>;
>>> + };
>>> + };
>>> diff --git
>>> a/Documentation/devicetree/bindings/net/marvell-orion-mdio.txt
>>> b/Documentation/devicetree/bindings/net/marvell-orion-mdio.txt
>>> deleted file mode 100644
>>> index 3f3cfc1d8d4d..000000000000
>>> --- a/Documentation/devicetree/bindings/net/marvell-orion-mdio.txt
>>> +++ /dev/null
>>> @@ -1,54 +0,0 @@
>>> -* Marvell MDIO Ethernet Controller interface
>>> -
>>> -The Ethernet controllers of the Marvel Kirkwood, Dove, Orion5x,
>>> -MV78xx0, Armada 370, Armada XP, Armada 7k and Armada 8k have an
>>> -identical unit that provides an interface with the MDIO bus.
>>> -Additionally, Armada 7k and Armada 8k has a second unit which
>>> -provides an interface with the xMDIO bus. This driver handles
>>> -these interfaces.
>>> -
>>> -Required properties:
>>> -- compatible: "marvell,orion-mdio" or "marvell,xmdio"
>>> -- reg: address and length of the MDIO registers. When an interrupt is
>>> - not present, the length is the size of the SMI register (4 bytes)
>>> - otherwise it must be 0x84 bytes to cover the interrupt control
>>> - registers.
>>> -
>>> -Optional properties:
>>> -- interrupts: interrupt line number for the SMI error/done interrupt
>>> -- clocks: phandle for up to four required clocks for the MDIO instance
>>> -
>>> -The child nodes of the MDIO driver are the individual PHY devices
>>> -connected to this MDIO bus. They must have a "reg" property given the
>>> -PHY address on the MDIO bus.
>>> -
>>> -Example at the SoC level without an interrupt property:
>>> -
>>> -mdio {
>>> - #address-cells = <1>;
>>> - #size-cells = <0>;
>>> - compatible = "marvell,orion-mdio";
>>> - reg = <0xd0072004 0x4>;
>>> -};
>>> -
>>> -Example with an interrupt property:
>>> -
>>> -mdio {
>>> - #address-cells = <1>;
>>> - #size-cells = <0>;
>>> - compatible = "marvell,orion-mdio";
>>> - reg = <0xd0072004 0x84>;
>>> - interrupts = <30>;
>>> -};
>>> -
>>> -And at the board level:
>>> -
>>> -mdio {
>>> - phy0: ethernet-phy@0 {
>>> - reg = <0>;
>>> - };
>>> -
>>> - phy1: ethernet-phy@1 {
>>> - reg = <1>;
>>> - };
>>> -}
>>> --
>>> 2.36.0
>>>
>>>
next prev parent reply other threads:[~2022-05-16 22:27 UTC|newest]
Thread overview: 12+ messages / expand[flat|nested] mbox.gz Atom feed top
2022-05-05 21:06 [PATCH v2] dt-bindings: net: orion-mdio: Convert to JSON schema Chris Packham
2022-05-10 0:28 ` Jakub Kicinski
2022-05-10 0:41 ` Andrew Lunn
2022-05-10 0:43 ` Jakub Kicinski
2022-05-16 18:14 ` Rob Herring
2022-05-10 0:47 ` Chris Packham
2022-05-10 23:12 ` Andrew Lunn
2022-05-11 2:20 ` patchwork-bot+netdevbpf
2022-05-16 18:16 ` Rob Herring
2022-05-16 22:18 ` Chris Packham
2022-05-16 22:27 ` Chris Packham [this message]
2022-05-18 16:18 ` Rob Herring
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=cf956c25-f505-6ec0-260c-496c7d1322a1@alliedtelesis.co.nz \
--to=chris.packham@alliedtelesis.co.nz \
--cc=andrew@lunn.ch \
--cc=davem@davemloft.net \
--cc=devicetree@vger.kernel.org \
--cc=edumazet@google.com \
--cc=kabel@kernel.org \
--cc=krzysztof.kozlowski+dt@linaro.org \
--cc=kuba@kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=netdev@vger.kernel.org \
--cc=pabeni@redhat.com \
--cc=robh@kernel.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;
as well as URLs for NNTP newsgroup(s).