linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
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:18:56 +0000	[thread overview]
Message-ID: <0c67af76-df5e-1684-820c-f28aa6f50fe1@alliedtelesis.co.nz> (raw)
In-Reply-To: <20220516181639.GB2997786-robh@kernel.org>

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.

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
>>
>>

  reply	other threads:[~2022-05-16 22:19 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 [this message]
2022-05-16 22:27     ` Chris Packham
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=0c67af76-df5e-1684-820c-f28aa6f50fe1@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).