linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH v5 net-next 00/10] dt-binding preparation for ocelot switches
@ 2022-12-10  3:30 Colin Foster
  2022-12-10  3:30 ` [PATCH v5 net-next 01/10] dt-bindings: dsa: sync with maintainers Colin Foster
                   ` (10 more replies)
  0 siblings, 11 replies; 33+ messages in thread
From: Colin Foster @ 2022-12-10  3:30 UTC (permalink / raw)
  To: linux-renesas-soc, linux-mediatek, linux-arm-kernel,
	linux-kernel, devicetree, netdev
  Cc: John Crispin, Alexandre Belloni, Claudiu Manoil, Marek Vasut,
	Sean Wang, DENG Qingfang, Landen Chao, nç ÜNAL,
	Vivien Didelot, Clément Léger, Alvin Šipraga,
	Linus Walleij, UNGLinuxDriver, Woojung Huh, Matthias Brugger,
	Kurt Kanzenbach, Krzysztof Kozlowski, Rob Herring, Paolo Abeni,
	Jakub Kicinski, Eric Dumazet, David S. Miller, Vladimir Oltean,
	Florian Fainelli, Andrew Lunn, George McCollister

Ocelot switches have the abilitiy to be used internally via
memory-mapped IO or externally via SPI or PCIe. This brings up issues
for documentation, where the same chip might be accessed internally in a
switchdev manner, or externally in a DSA configuration. This patch set
is perparation to bring DSA functionality to the VSC7512, utilizing as
much as possible with an almost identical VSC7514 chip.

This patch set changed quite a bit from v2, so I'll omit the background
of how those sets came to be. Rob offered a lot of very useful guidance.
My thanks.

At the end of the day, with this patch set, there should be a framework
to document Ocelot switches (and any switch) in scenarios where they can
be controlled internally (ethernet-switch) or externally (dsa-switch).

---

v4 -> v5
  * Sync DSA maintainers with MAINTAINERS file (new patch 1)
  * Undo move of port description of mediatek,mt7530.yaml (patch 4)
  * Move removal of "^(ethernet-)?switch(@.*)?$" in dsa.yaml from patch 4
    to patch 8
  * Add more consistent capitalization in title lines and better Ethernet
    switch port description. (patch 8)

v3 -> v4
  * Renamed "base" to "ethernet-ports" to avoid confusion with the concept
    of a base class.
  * Squash ("dt-bindings: net: dsa: mediatek,mt7530: fix port description location")
    patch into ("dt-bindings: net: dsa: utilize base definitions for standard dsa
    switches")
  * Corrections to fix confusion about additonalProperties vs unevaluatedProperties.
    See specific patches for details.

v2 -> v3
  * Restructured everything to use a "base" iref for devices that don't
    have additional properties, and simply a "ref" for devices that do.
  * New patches to fix up brcm,sf2, qca8k, and mt7530
  * Fix unevaluatedProperties errors from previous sets (see specific
    patches for more detail)
  * Removed redundant "Device Tree Binding" from titles, where applicable.

v1 -> v2
  * Two MFD patches were brought into the MFD tree, so are dropped
  * Add first patch 1/6 to allow DSA devices to add ports and port
    properties
  * Test qca8k against new dt-bindings and fix warnings. (patch 2/6)
  * Add tags (patch 3/6)
  * Fix vsc7514 refs and properties

---
Colin Foster (10):
  dt-bindings: dsa: sync with maintainers
  dt-bindings: net: dsa: sf2: fix brcm,use-bcm-hdr documentation
  dt-bindings: net: dsa: qca8k: remove address-cells and size-cells from
    switch node
  dt-bindings: net: dsa: utilize base definitions for standard dsa
    switches
  dt-bindings: net: dsa: allow additional ethernet-port properties
  dt-bindings: net: dsa: qca8k: utilize shared dsa.yaml
  dt-bindings: net: dsa: mediatek,mt7530: remove unnecessary dsa-port
    reference
  dt-bindings: net: add generic ethernet-switch
  dt-bindings: net: add generic ethernet-switch-port binding
  dt-bindings: net: mscc,vsc7514-switch: utilize generic
    ethernet-switch.yaml

 .../bindings/net/dsa/arrow,xrs700x.yaml       |  2 +-
 .../devicetree/bindings/net/dsa/brcm,b53.yaml |  2 +-
 .../devicetree/bindings/net/dsa/brcm,sf2.yaml | 15 +++--
 .../devicetree/bindings/net/dsa/dsa-port.yaml | 29 ++-------
 .../devicetree/bindings/net/dsa/dsa.yaml      | 49 +++++++--------
 .../net/dsa/hirschmann,hellcreek.yaml         |  2 +-
 .../bindings/net/dsa/mediatek,mt7530.yaml     |  6 +-
 .../bindings/net/dsa/microchip,ksz.yaml       |  2 +-
 .../bindings/net/dsa/microchip,lan937x.yaml   |  2 +-
 .../bindings/net/dsa/mscc,ocelot.yaml         |  2 +-
 .../bindings/net/dsa/nxp,sja1105.yaml         |  2 +-
 .../devicetree/bindings/net/dsa/qca8k.yaml    | 14 +----
 .../devicetree/bindings/net/dsa/realtek.yaml  |  2 +-
 .../bindings/net/dsa/renesas,rzn1-a5psw.yaml  |  2 +-
 .../bindings/net/ethernet-switch-port.yaml    | 25 ++++++++
 .../bindings/net/ethernet-switch.yaml         | 62 +++++++++++++++++++
 .../bindings/net/mscc,vsc7514-switch.yaml     | 31 +---------
 MAINTAINERS                                   |  2 +
 18 files changed, 143 insertions(+), 108 deletions(-)
 create mode 100644 Documentation/devicetree/bindings/net/ethernet-switch-port.yaml
 create mode 100644 Documentation/devicetree/bindings/net/ethernet-switch.yaml

-- 
2.25.1


^ permalink raw reply	[flat|nested] 33+ messages in thread

* [PATCH v5 net-next 01/10] dt-bindings: dsa: sync with maintainers
  2022-12-10  3:30 [PATCH v5 net-next 00/10] dt-binding preparation for ocelot switches Colin Foster
@ 2022-12-10  3:30 ` Colin Foster
  2022-12-10 10:18   ` Kurt Kanzenbach
                     ` (2 more replies)
  2022-12-10  3:30 ` [PATCH v5 net-next 02/10] dt-bindings: net: dsa: sf2: fix brcm,use-bcm-hdr documentation Colin Foster
                   ` (9 subsequent siblings)
  10 siblings, 3 replies; 33+ messages in thread
From: Colin Foster @ 2022-12-10  3:30 UTC (permalink / raw)
  To: linux-renesas-soc, linux-mediatek, linux-arm-kernel,
	linux-kernel, devicetree, netdev
  Cc: John Crispin, Alexandre Belloni, Claudiu Manoil, Marek Vasut,
	Sean Wang, DENG Qingfang, Landen Chao, nç ÜNAL,
	Vivien Didelot, Clément Léger, Alvin Šipraga,
	Linus Walleij, UNGLinuxDriver, Woojung Huh, Matthias Brugger,
	Kurt Kanzenbach, Krzysztof Kozlowski, Rob Herring, Paolo Abeni,
	Jakub Kicinski, Eric Dumazet, David S. Miller, Vladimir Oltean,
	Florian Fainelli, Andrew Lunn, George McCollister

The MAINTAINERS file has Andrew Lunn, Florian Fainelli, and Vladimir Oltean
listed as the maintainers for generic dsa bindings. Update dsa.yaml and
dsa-port.yaml accordingly.

Signed-off-by: Colin Foster <colin.foster@in-advantage.com>
Suggested-by: Vladimir Oltean <olteanv@gmail.com>

---

v5
  * New patch

---
 Documentation/devicetree/bindings/net/dsa/dsa-port.yaml | 2 +-
 Documentation/devicetree/bindings/net/dsa/dsa.yaml      | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/Documentation/devicetree/bindings/net/dsa/dsa-port.yaml b/Documentation/devicetree/bindings/net/dsa/dsa-port.yaml
index 9abb8eba5fad..2b8317911bef 100644
--- a/Documentation/devicetree/bindings/net/dsa/dsa-port.yaml
+++ b/Documentation/devicetree/bindings/net/dsa/dsa-port.yaml
@@ -9,7 +9,7 @@ title: Ethernet Switch port Device Tree Bindings
 maintainers:
   - Andrew Lunn <andrew@lunn.ch>
   - Florian Fainelli <f.fainelli@gmail.com>
-  - Vivien Didelot <vivien.didelot@gmail.com>
+  - Vladimir Oltean <olteanv@gmail.com>
 
 description:
   Ethernet switch port Description
diff --git a/Documentation/devicetree/bindings/net/dsa/dsa.yaml b/Documentation/devicetree/bindings/net/dsa/dsa.yaml
index b9d48e357e77..5efc0ee8edcb 100644
--- a/Documentation/devicetree/bindings/net/dsa/dsa.yaml
+++ b/Documentation/devicetree/bindings/net/dsa/dsa.yaml
@@ -9,7 +9,7 @@ title: Ethernet Switch Device Tree Bindings
 maintainers:
   - Andrew Lunn <andrew@lunn.ch>
   - Florian Fainelli <f.fainelli@gmail.com>
-  - Vivien Didelot <vivien.didelot@gmail.com>
+  - Vladimir Oltean <olteanv@gmail.com>
 
 description:
   This binding represents Ethernet Switches which have a dedicated CPU
-- 
2.25.1


^ permalink raw reply related	[flat|nested] 33+ messages in thread

* [PATCH v5 net-next 02/10] dt-bindings: net: dsa: sf2: fix brcm,use-bcm-hdr documentation
  2022-12-10  3:30 [PATCH v5 net-next 00/10] dt-binding preparation for ocelot switches Colin Foster
  2022-12-10  3:30 ` [PATCH v5 net-next 01/10] dt-bindings: dsa: sync with maintainers Colin Foster
@ 2022-12-10  3:30 ` Colin Foster
  2022-12-12 18:46   ` Vladimir Oltean
  2022-12-10  3:30 ` [PATCH v5 net-next 03/10] dt-bindings: net: dsa: qca8k: remove address-cells and size-cells from switch node Colin Foster
                   ` (8 subsequent siblings)
  10 siblings, 1 reply; 33+ messages in thread
From: Colin Foster @ 2022-12-10  3:30 UTC (permalink / raw)
  To: linux-renesas-soc, linux-mediatek, linux-arm-kernel,
	linux-kernel, devicetree, netdev
  Cc: John Crispin, Alexandre Belloni, Claudiu Manoil, Marek Vasut,
	Sean Wang, DENG Qingfang, Landen Chao, nç ÜNAL,
	Vivien Didelot, Clément Léger, Alvin Šipraga,
	Linus Walleij, UNGLinuxDriver, Woojung Huh, Matthias Brugger,
	Kurt Kanzenbach, Krzysztof Kozlowski, Rob Herring, Paolo Abeni,
	Jakub Kicinski, Eric Dumazet, David S. Miller, Vladimir Oltean,
	Florian Fainelli, Andrew Lunn, George McCollister, Rob Herring

The property use-bcm-hdr was documented as an entry under the ports node
for the bcm_sf2 DSA switch. This property is actually evaluated for each
port. Correct the documentation to match the actual behavior and properly
reference dsa-port.yaml for additional properties of the node.

Suggested-by: Rob Herring <robh@kernel.org>
Signed-off-by: Colin Foster <colin.foster@in-advantage.com>
Acked-by: Florian Fainelli <f.fainelli@gmail.com>
Reviewed-by: Rob Herring <robh@kernel.org>
---

v4 -> v5
  * No change

v3 -> v4
  * Add Acked and Reviewed tags

v3
  * New patch

---
 .../devicetree/bindings/net/dsa/brcm,sf2.yaml     | 15 ++++++++++-----
 1 file changed, 10 insertions(+), 5 deletions(-)

diff --git a/Documentation/devicetree/bindings/net/dsa/brcm,sf2.yaml b/Documentation/devicetree/bindings/net/dsa/brcm,sf2.yaml
index d159ac78cec1..eed16e216fb6 100644
--- a/Documentation/devicetree/bindings/net/dsa/brcm,sf2.yaml
+++ b/Documentation/devicetree/bindings/net/dsa/brcm,sf2.yaml
@@ -85,11 +85,16 @@ properties:
   ports:
     type: object
 
-    properties:
-      brcm,use-bcm-hdr:
-        description: if present, indicates that the switch port has Broadcom
-          tags enabled (per-packet metadata)
-        type: boolean
+    patternProperties:
+      '^port@[0-9a-f]$':
+        $ref: dsa-port.yaml#
+        unevaluatedProperties: false
+
+        properties:
+          brcm,use-bcm-hdr:
+            description: if present, indicates that the switch port has Broadcom
+              tags enabled (per-packet metadata)
+            type: boolean
 
 required:
   - reg
-- 
2.25.1


^ permalink raw reply related	[flat|nested] 33+ messages in thread

* [PATCH v5 net-next 03/10] dt-bindings: net: dsa: qca8k: remove address-cells and size-cells from switch node
  2022-12-10  3:30 [PATCH v5 net-next 00/10] dt-binding preparation for ocelot switches Colin Foster
  2022-12-10  3:30 ` [PATCH v5 net-next 01/10] dt-bindings: dsa: sync with maintainers Colin Foster
  2022-12-10  3:30 ` [PATCH v5 net-next 02/10] dt-bindings: net: dsa: sf2: fix brcm,use-bcm-hdr documentation Colin Foster
@ 2022-12-10  3:30 ` Colin Foster
  2022-12-12 18:46   ` Vladimir Oltean
  2022-12-10  3:30 ` [PATCH v5 net-next 04/10] dt-bindings: net: dsa: utilize base definitions for standard dsa switches Colin Foster
                   ` (7 subsequent siblings)
  10 siblings, 1 reply; 33+ messages in thread
From: Colin Foster @ 2022-12-10  3:30 UTC (permalink / raw)
  To: linux-renesas-soc, linux-mediatek, linux-arm-kernel,
	linux-kernel, devicetree, netdev
  Cc: John Crispin, Alexandre Belloni, Claudiu Manoil, Marek Vasut,
	Sean Wang, DENG Qingfang, Landen Chao, nç ÜNAL,
	Vivien Didelot, Clément Léger, Alvin Šipraga,
	Linus Walleij, UNGLinuxDriver, Woojung Huh, Matthias Brugger,
	Kurt Kanzenbach, Krzysztof Kozlowski, Rob Herring, Paolo Abeni,
	Jakub Kicinski, Eric Dumazet, David S. Miller, Vladimir Oltean,
	Florian Fainelli, Andrew Lunn, George McCollister, Rob Herring

The children of the switch node don't have a unit address, and therefore
should not need the #address-cells or #size-cells entries. Fix the example
schemas accordingly.

Suggested-by: Vladimir Oltean <olteanv@gmail.com>
Signed-off-by: Colin Foster <colin.foster@in-advantage.com>
Reviewed-by: Florian Fainelli <f.fainelli@gmail.com>
Reviewed-by: Rob Herring <robh@kernel.org>
---

v4 -> v5
  * No change

v3 -> v4
  * Add Reviewed tags

v3
  * New patch

---
 Documentation/devicetree/bindings/net/dsa/qca8k.yaml | 4 ----
 1 file changed, 4 deletions(-)

diff --git a/Documentation/devicetree/bindings/net/dsa/qca8k.yaml b/Documentation/devicetree/bindings/net/dsa/qca8k.yaml
index 978162df51f7..6fc9bc985726 100644
--- a/Documentation/devicetree/bindings/net/dsa/qca8k.yaml
+++ b/Documentation/devicetree/bindings/net/dsa/qca8k.yaml
@@ -148,8 +148,6 @@ examples:
 
         switch@10 {
             compatible = "qca,qca8337";
-            #address-cells = <1>;
-            #size-cells = <0>;
             reset-gpios = <&gpio 42 GPIO_ACTIVE_LOW>;
             reg = <0x10>;
 
@@ -209,8 +207,6 @@ examples:
 
         switch@10 {
             compatible = "qca,qca8337";
-            #address-cells = <1>;
-            #size-cells = <0>;
             reset-gpios = <&gpio 42 GPIO_ACTIVE_LOW>;
             reg = <0x10>;
 
-- 
2.25.1


^ permalink raw reply related	[flat|nested] 33+ messages in thread

* [PATCH v5 net-next 04/10] dt-bindings: net: dsa: utilize base definitions for standard dsa switches
  2022-12-10  3:30 [PATCH v5 net-next 00/10] dt-binding preparation for ocelot switches Colin Foster
                   ` (2 preceding siblings ...)
  2022-12-10  3:30 ` [PATCH v5 net-next 03/10] dt-bindings: net: dsa: qca8k: remove address-cells and size-cells from switch node Colin Foster
@ 2022-12-10  3:30 ` Colin Foster
  2022-12-10 16:24   ` Arınç ÜNAL
  2022-12-12 18:48   ` Vladimir Oltean
  2022-12-10  3:30 ` [PATCH v5 net-next 05/10] dt-bindings: net: dsa: allow additional ethernet-port properties Colin Foster
                   ` (6 subsequent siblings)
  10 siblings, 2 replies; 33+ messages in thread
From: Colin Foster @ 2022-12-10  3:30 UTC (permalink / raw)
  To: linux-renesas-soc, linux-mediatek, linux-arm-kernel,
	linux-kernel, devicetree, netdev
  Cc: John Crispin, Alexandre Belloni, Claudiu Manoil, Marek Vasut,
	Sean Wang, DENG Qingfang, Landen Chao, nç ÜNAL,
	Vivien Didelot, Clément Léger, Alvin Šipraga,
	Linus Walleij, UNGLinuxDriver, Woojung Huh, Matthias Brugger,
	Kurt Kanzenbach, Krzysztof Kozlowski, Rob Herring, Paolo Abeni,
	Jakub Kicinski, Eric Dumazet, David S. Miller, Vladimir Oltean,
	Florian Fainelli, Andrew Lunn, George McCollister, Rob Herring

DSA switches can fall into one of two categories: switches where all ports
follow standard '(ethernet-)?port' properties, and switches that have
additional properties for the ports.

The scenario where DSA ports are all standardized can be handled by
switches with a reference to the new 'dsa.yaml#/$defs/ethernet-ports'.

The scenario where DSA ports require additional properties can reference
'$dsa.yaml#' directly. This will allow switches to reference these standard
definitions of the DSA switch, but add additional properties under the port
nodes.

Suggested-by: Rob Herring <robh@kernel.org>
Signed-off-by: Colin Foster <colin.foster@in-advantage.com>
Reviewed-by: Linus Walleij <linus.walleij@linaro.org>
Reviewed-by: Florian Fainelli <f.fainelli@gmail.com>
Reviewed-by: Rob Herring <robh@kernel.org>
Acked-by: Alvin Šipraga <alsi@bang-olufsen.dk> # realtek
Acked-by: Arınç ÜNAL <arinc.unal@arinc9.com>
---

v4 -> v5
  * Add Rob Reviewed, Arınç Acked
  * Defer the removal of "^(ethernet-)?switch(@.*)?$" in dsa.yaml until a
    later patch
  * Undo the move of ethernet switch ports description in mediatek,mt7530.yaml
  * Fix typos in commit message

v3 -> v4
  * Rename "$defs/base" to "$defs/ethernet-ports" to avoid implication of a
    "base class" and fix commit message accordingly
  * Add the following to the common etherent-ports node:
      "additionalProperties: false"
      "#address-cells" property
      "#size-cells" property
  * Fix "etherenet-ports@[0-9]+" to correctly be "ethernet-port@[0-9]+"
  * Remove unnecessary newline
  * Apply changes to mediatek,mt7530.yaml that were previously in a separate patch
  * Add Reviewed and Acked tags

v3
  * New patch

---
 .../bindings/net/dsa/arrow,xrs700x.yaml       |  2 +-
 .../devicetree/bindings/net/dsa/brcm,b53.yaml |  2 +-
 .../devicetree/bindings/net/dsa/dsa.yaml      | 22 +++++++++++++++++++
 .../net/dsa/hirschmann,hellcreek.yaml         |  2 +-
 .../bindings/net/dsa/mediatek,mt7530.yaml     |  5 +----
 .../bindings/net/dsa/microchip,ksz.yaml       |  2 +-
 .../bindings/net/dsa/microchip,lan937x.yaml   |  2 +-
 .../bindings/net/dsa/mscc,ocelot.yaml         |  2 +-
 .../bindings/net/dsa/nxp,sja1105.yaml         |  2 +-
 .../devicetree/bindings/net/dsa/realtek.yaml  |  2 +-
 .../bindings/net/dsa/renesas,rzn1-a5psw.yaml  |  2 +-
 11 files changed, 32 insertions(+), 13 deletions(-)

diff --git a/Documentation/devicetree/bindings/net/dsa/arrow,xrs700x.yaml b/Documentation/devicetree/bindings/net/dsa/arrow,xrs700x.yaml
index 259a0c6547f3..5888e3a0169a 100644
--- a/Documentation/devicetree/bindings/net/dsa/arrow,xrs700x.yaml
+++ b/Documentation/devicetree/bindings/net/dsa/arrow,xrs700x.yaml
@@ -7,7 +7,7 @@ $schema: http://devicetree.org/meta-schemas/core.yaml#
 title: Arrow SpeedChips XRS7000 Series Switch Device Tree Bindings
 
 allOf:
-  - $ref: dsa.yaml#
+  - $ref: dsa.yaml#/$defs/ethernet-ports
 
 maintainers:
   - George McCollister <george.mccollister@gmail.com>
diff --git a/Documentation/devicetree/bindings/net/dsa/brcm,b53.yaml b/Documentation/devicetree/bindings/net/dsa/brcm,b53.yaml
index 1219b830b1a4..5bef4128d175 100644
--- a/Documentation/devicetree/bindings/net/dsa/brcm,b53.yaml
+++ b/Documentation/devicetree/bindings/net/dsa/brcm,b53.yaml
@@ -66,7 +66,7 @@ required:
   - reg
 
 allOf:
-  - $ref: dsa.yaml#
+  - $ref: dsa.yaml#/$defs/ethernet-ports
   - if:
       properties:
         compatible:
diff --git a/Documentation/devicetree/bindings/net/dsa/dsa.yaml b/Documentation/devicetree/bindings/net/dsa/dsa.yaml
index 5efc0ee8edcb..9375cdcfbf96 100644
--- a/Documentation/devicetree/bindings/net/dsa/dsa.yaml
+++ b/Documentation/devicetree/bindings/net/dsa/dsa.yaml
@@ -58,4 +58,26 @@ oneOf:
 
 additionalProperties: true
 
+$defs:
+  ethernet-ports:
+    description: A DSA switch without any extra port properties
+    $ref: '#/'
+
+    patternProperties:
+      "^(ethernet-)?ports$":
+        type: object
+        additionalProperties: false
+
+        properties:
+          '#address-cells':
+            const: 1
+          '#size-cells':
+            const: 0
+
+        patternProperties:
+          "^(ethernet-)?port@[0-9]+$":
+            description: Ethernet switch ports
+            $ref: dsa-port.yaml#
+            unevaluatedProperties: false
+
 ...
diff --git a/Documentation/devicetree/bindings/net/dsa/hirschmann,hellcreek.yaml b/Documentation/devicetree/bindings/net/dsa/hirschmann,hellcreek.yaml
index 73b774eadd0b..748ef9983ce2 100644
--- a/Documentation/devicetree/bindings/net/dsa/hirschmann,hellcreek.yaml
+++ b/Documentation/devicetree/bindings/net/dsa/hirschmann,hellcreek.yaml
@@ -7,7 +7,7 @@ $schema: http://devicetree.org/meta-schemas/core.yaml#
 title: Hirschmann Hellcreek TSN Switch Device Tree Bindings
 
 allOf:
-  - $ref: dsa.yaml#
+  - $ref: dsa.yaml#/$defs/ethernet-ports
 
 maintainers:
   - Andrew Lunn <andrew@lunn.ch>
diff --git a/Documentation/devicetree/bindings/net/dsa/mediatek,mt7530.yaml b/Documentation/devicetree/bindings/net/dsa/mediatek,mt7530.yaml
index f2e9ff3f580b..20312f5d1944 100644
--- a/Documentation/devicetree/bindings/net/dsa/mediatek,mt7530.yaml
+++ b/Documentation/devicetree/bindings/net/dsa/mediatek,mt7530.yaml
@@ -157,9 +157,6 @@ patternProperties:
     patternProperties:
       "^(ethernet-)?port@[0-9]+$":
         type: object
-        description: Ethernet switch ports
-
-        unevaluatedProperties: false
 
         properties:
           reg:
@@ -238,7 +235,7 @@ $defs:
                       - sgmii
 
 allOf:
-  - $ref: dsa.yaml#
+  - $ref: dsa.yaml#/$defs/ethernet-ports
   - if:
       required:
         - mediatek,mcm
diff --git a/Documentation/devicetree/bindings/net/dsa/microchip,ksz.yaml b/Documentation/devicetree/bindings/net/dsa/microchip,ksz.yaml
index 4da75b1f9533..a4b53434c85c 100644
--- a/Documentation/devicetree/bindings/net/dsa/microchip,ksz.yaml
+++ b/Documentation/devicetree/bindings/net/dsa/microchip,ksz.yaml
@@ -11,7 +11,7 @@ maintainers:
   - Woojung Huh <Woojung.Huh@microchip.com>
 
 allOf:
-  - $ref: dsa.yaml#
+  - $ref: dsa.yaml#/$defs/ethernet-ports
   - $ref: /schemas/spi/spi-peripheral-props.yaml#
 
 properties:
diff --git a/Documentation/devicetree/bindings/net/dsa/microchip,lan937x.yaml b/Documentation/devicetree/bindings/net/dsa/microchip,lan937x.yaml
index 630bf0f8294b..4aee3bf4c2f4 100644
--- a/Documentation/devicetree/bindings/net/dsa/microchip,lan937x.yaml
+++ b/Documentation/devicetree/bindings/net/dsa/microchip,lan937x.yaml
@@ -10,7 +10,7 @@ maintainers:
   - UNGLinuxDriver@microchip.com
 
 allOf:
-  - $ref: dsa.yaml#
+  - $ref: dsa.yaml#/$defs/ethernet-ports
 
 properties:
   compatible:
diff --git a/Documentation/devicetree/bindings/net/dsa/mscc,ocelot.yaml b/Documentation/devicetree/bindings/net/dsa/mscc,ocelot.yaml
index 8d93ed9c172c..85014a590a35 100644
--- a/Documentation/devicetree/bindings/net/dsa/mscc,ocelot.yaml
+++ b/Documentation/devicetree/bindings/net/dsa/mscc,ocelot.yaml
@@ -78,7 +78,7 @@ required:
   - reg
 
 allOf:
-  - $ref: dsa.yaml#
+  - $ref: dsa.yaml#/$defs/ethernet-ports
   - if:
       properties:
         compatible:
diff --git a/Documentation/devicetree/bindings/net/dsa/nxp,sja1105.yaml b/Documentation/devicetree/bindings/net/dsa/nxp,sja1105.yaml
index 1e26d876d146..826e2db98974 100644
--- a/Documentation/devicetree/bindings/net/dsa/nxp,sja1105.yaml
+++ b/Documentation/devicetree/bindings/net/dsa/nxp,sja1105.yaml
@@ -13,7 +13,7 @@ description:
   depends on the SPI bus master driver.
 
 allOf:
-  - $ref: "dsa.yaml#"
+  - $ref: dsa.yaml#/$defs/ethernet-ports
   - $ref: /schemas/spi/spi-peripheral-props.yaml#
 
 maintainers:
diff --git a/Documentation/devicetree/bindings/net/dsa/realtek.yaml b/Documentation/devicetree/bindings/net/dsa/realtek.yaml
index 1a7d45a8ad66..cfd69c2604ea 100644
--- a/Documentation/devicetree/bindings/net/dsa/realtek.yaml
+++ b/Documentation/devicetree/bindings/net/dsa/realtek.yaml
@@ -7,7 +7,7 @@ $schema: http://devicetree.org/meta-schemas/core.yaml#
 title: Realtek switches for unmanaged switches
 
 allOf:
-  - $ref: dsa.yaml#
+  - $ref: dsa.yaml#/$defs/ethernet-ports
 
 maintainers:
   - Linus Walleij <linus.walleij@linaro.org>
diff --git a/Documentation/devicetree/bindings/net/dsa/renesas,rzn1-a5psw.yaml b/Documentation/devicetree/bindings/net/dsa/renesas,rzn1-a5psw.yaml
index 0a0d62b6c00e..833d2f68daa1 100644
--- a/Documentation/devicetree/bindings/net/dsa/renesas,rzn1-a5psw.yaml
+++ b/Documentation/devicetree/bindings/net/dsa/renesas,rzn1-a5psw.yaml
@@ -14,7 +14,7 @@ description: |
   handles 4 ports + 1 CPU management port.
 
 allOf:
-  - $ref: dsa.yaml#
+  - $ref: dsa.yaml#/$defs/ethernet-ports
 
 properties:
   compatible:
-- 
2.25.1


^ permalink raw reply related	[flat|nested] 33+ messages in thread

* [PATCH v5 net-next 05/10] dt-bindings: net: dsa: allow additional ethernet-port properties
  2022-12-10  3:30 [PATCH v5 net-next 00/10] dt-binding preparation for ocelot switches Colin Foster
                   ` (3 preceding siblings ...)
  2022-12-10  3:30 ` [PATCH v5 net-next 04/10] dt-bindings: net: dsa: utilize base definitions for standard dsa switches Colin Foster
@ 2022-12-10  3:30 ` Colin Foster
  2022-12-12 18:51   ` Vladimir Oltean
  2022-12-10  3:30 ` [PATCH v5 net-next 06/10] dt-bindings: net: dsa: qca8k: utilize shared dsa.yaml Colin Foster
                   ` (5 subsequent siblings)
  10 siblings, 1 reply; 33+ messages in thread
From: Colin Foster @ 2022-12-10  3:30 UTC (permalink / raw)
  To: linux-renesas-soc, linux-mediatek, linux-arm-kernel,
	linux-kernel, devicetree, netdev
  Cc: John Crispin, Alexandre Belloni, Claudiu Manoil, Marek Vasut,
	Sean Wang, DENG Qingfang, Landen Chao, nç ÜNAL,
	Vivien Didelot, Clément Léger, Alvin Šipraga,
	Linus Walleij, UNGLinuxDriver, Woojung Huh, Matthias Brugger,
	Kurt Kanzenbach, Krzysztof Kozlowski, Rob Herring, Paolo Abeni,
	Jakub Kicinski, Eric Dumazet, David S. Miller, Vladimir Oltean,
	Florian Fainelli, Andrew Lunn, George McCollister, Rob Herring

Explicitly allow additional properties for both the ethernet-port and
ethernet-ports properties. This specifically will allow the qca8k.yaml
binding to use shared properties.

Signed-off-by: Colin Foster <colin.foster@in-advantage.com>
Reviewed-by: Florian Fainelli <f.fainelli@gmail.com>
Reviewed-by: Rob Herring <robh@kernel.org>
---

v4 -> v5
  * Add Rob Reviewed

v3 -> v4
  * Change ethernet-ports node to have "unevaluatedProperties: false"
    instead of "additionalProperties: true"
  * Change ethernet-port node to have "additionalProperties: true" instead
    of "unevaluatedProperties: true"
  * Add Reviewed tag

v2 -> v3
  * No change

v1 -> v2
  * New patch

---
 Documentation/devicetree/bindings/net/dsa/dsa.yaml | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/Documentation/devicetree/bindings/net/dsa/dsa.yaml b/Documentation/devicetree/bindings/net/dsa/dsa.yaml
index 9375cdcfbf96..98a79be3bffe 100644
--- a/Documentation/devicetree/bindings/net/dsa/dsa.yaml
+++ b/Documentation/devicetree/bindings/net/dsa/dsa.yaml
@@ -41,6 +41,8 @@ patternProperties:
       '#size-cells':
         const: 0
 
+    unevaluatedProperties: false
+
     patternProperties:
       "^(ethernet-)?port@[0-9]+$":
         type: object
@@ -48,7 +50,7 @@ patternProperties:
 
         $ref: dsa-port.yaml#
 
-        unevaluatedProperties: false
+        additionalProperties: true
 
 oneOf:
   - required:
-- 
2.25.1


^ permalink raw reply related	[flat|nested] 33+ messages in thread

* [PATCH v5 net-next 06/10] dt-bindings: net: dsa: qca8k: utilize shared dsa.yaml
  2022-12-10  3:30 [PATCH v5 net-next 00/10] dt-binding preparation for ocelot switches Colin Foster
                   ` (4 preceding siblings ...)
  2022-12-10  3:30 ` [PATCH v5 net-next 05/10] dt-bindings: net: dsa: allow additional ethernet-port properties Colin Foster
@ 2022-12-10  3:30 ` Colin Foster
  2022-12-12 18:52   ` Vladimir Oltean
  2022-12-10  3:30 ` [PATCH v5 net-next 07/10] dt-bindings: net: dsa: mediatek,mt7530: remove unnecessary dsa-port reference Colin Foster
                   ` (4 subsequent siblings)
  10 siblings, 1 reply; 33+ messages in thread
From: Colin Foster @ 2022-12-10  3:30 UTC (permalink / raw)
  To: linux-renesas-soc, linux-mediatek, linux-arm-kernel,
	linux-kernel, devicetree, netdev
  Cc: John Crispin, Alexandre Belloni, Claudiu Manoil, Marek Vasut,
	Sean Wang, DENG Qingfang, Landen Chao, nç ÜNAL,
	Vivien Didelot, Clément Léger, Alvin Šipraga,
	Linus Walleij, UNGLinuxDriver, Woojung Huh, Matthias Brugger,
	Kurt Kanzenbach, Krzysztof Kozlowski, Rob Herring, Paolo Abeni,
	Jakub Kicinski, Eric Dumazet, David S. Miller, Vladimir Oltean,
	Florian Fainelli, Andrew Lunn, George McCollister, Rob Herring

The dsa.yaml binding contains duplicated bindings for address and size
cells, as well as the reference to dsa-port.yaml. Instead of duplicating
this information, remove the reference to dsa-port.yaml and include the
full reference to dsa.yaml.

Signed-off-by: Colin Foster <colin.foster@in-advantage.com>
Suggested-by: Vladimir Oltean <olteanv@gmail.com>
Reviewed-by: Florian Fainelli <f.fainelli@gmail.com>
Reviewed-by: Rob Herring <robh@kernel.org>
---

v4 -> v5
  * Add Rob Reviewed

v3 -> v4
  * Add Reviewed tag
  * Remove unnecessary blank line deletion

v2 -> v3
  * Remove #address-cells and #size-cells from v2. The examples were
    incorrect and fixed elsewhere.
  * Remove erroneous unevaluatedProperties: true under Ethernet Port.
  * Add back ref: dsa-port.yaml#.

v1 -> v2
  * Add #address-cells and #size-cells to the switch layer. They aren't
    part of dsa.yaml.
  * Add unevaluatedProperties: true to the ethernet-port layer so it can
    correctly read properties from dsa.yaml.

---
 Documentation/devicetree/bindings/net/dsa/qca8k.yaml | 10 +++-------
 1 file changed, 3 insertions(+), 7 deletions(-)

diff --git a/Documentation/devicetree/bindings/net/dsa/qca8k.yaml b/Documentation/devicetree/bindings/net/dsa/qca8k.yaml
index 6fc9bc985726..389892592aac 100644
--- a/Documentation/devicetree/bindings/net/dsa/qca8k.yaml
+++ b/Documentation/devicetree/bindings/net/dsa/qca8k.yaml
@@ -66,15 +66,11 @@ properties:
                  With the legacy mapping the reg corresponding to the internal
                  mdio is the switch reg with an offset of -1.
 
+$ref: "dsa.yaml#"
+
 patternProperties:
   "^(ethernet-)?ports$":
     type: object
-    properties:
-      '#address-cells':
-        const: 1
-      '#size-cells':
-        const: 0
-
     patternProperties:
       "^(ethernet-)?port@[0-6]$":
         type: object
@@ -116,7 +112,7 @@ required:
   - compatible
   - reg
 
-additionalProperties: true
+unevaluatedProperties: false
 
 examples:
   - |
-- 
2.25.1


^ permalink raw reply related	[flat|nested] 33+ messages in thread

* [PATCH v5 net-next 07/10] dt-bindings: net: dsa: mediatek,mt7530: remove unnecessary dsa-port reference
  2022-12-10  3:30 [PATCH v5 net-next 00/10] dt-binding preparation for ocelot switches Colin Foster
                   ` (5 preceding siblings ...)
  2022-12-10  3:30 ` [PATCH v5 net-next 06/10] dt-bindings: net: dsa: qca8k: utilize shared dsa.yaml Colin Foster
@ 2022-12-10  3:30 ` Colin Foster
  2022-12-12 18:53   ` Vladimir Oltean
  2022-12-10  3:30 ` [PATCH v5 net-next 08/10] dt-bindings: net: add generic ethernet-switch Colin Foster
                   ` (3 subsequent siblings)
  10 siblings, 1 reply; 33+ messages in thread
From: Colin Foster @ 2022-12-10  3:30 UTC (permalink / raw)
  To: linux-renesas-soc, linux-mediatek, linux-arm-kernel,
	linux-kernel, devicetree, netdev
  Cc: John Crispin, Alexandre Belloni, Claudiu Manoil, Marek Vasut,
	Sean Wang, DENG Qingfang, Landen Chao, nç ÜNAL,
	Vivien Didelot, Clément Léger, Alvin Šipraga,
	Linus Walleij, UNGLinuxDriver, Woojung Huh, Matthias Brugger,
	Kurt Kanzenbach, Krzysztof Kozlowski, Rob Herring, Paolo Abeni,
	Jakub Kicinski, Eric Dumazet, David S. Miller, Vladimir Oltean,
	Florian Fainelli, Andrew Lunn, George McCollister, Rob Herring

dsa.yaml contains a reference to dsa-port.yaml, so a duplicate reference to
the binding isn't necessary. Remove this unnecessary reference.

Signed-off-by: Colin Foster <colin.foster@in-advantage.com>
Suggested-by: Vladimir Oltean <olteanv@gmail.com>
Reviewed-by: Arınç ÜNAL <arinc.unal@arinc9.com>
Reviewed-by: Florian Fainelli <f.fainelli@gmail.com>
Reviewed-by: Rob Herring <robh@kernel.org>
---

v4 -> v5
  * Add Rob reviewed tag

v3 -> v4
  * Add Florian Reviewed tag

v2 -> v3
  * Keep "unevaluatedProperties: false" under the switch ports node.

v1 -> v2
  * Add Reviewed-by

---
 Documentation/devicetree/bindings/net/dsa/mediatek,mt7530.yaml | 1 -
 1 file changed, 1 deletion(-)

diff --git a/Documentation/devicetree/bindings/net/dsa/mediatek,mt7530.yaml b/Documentation/devicetree/bindings/net/dsa/mediatek,mt7530.yaml
index 20312f5d1944..08667bff74a5 100644
--- a/Documentation/devicetree/bindings/net/dsa/mediatek,mt7530.yaml
+++ b/Documentation/devicetree/bindings/net/dsa/mediatek,mt7530.yaml
@@ -165,7 +165,6 @@ patternProperties:
               for user ports.
 
         allOf:
-          - $ref: dsa-port.yaml#
           - if:
               required: [ ethernet ]
             then:
-- 
2.25.1


^ permalink raw reply related	[flat|nested] 33+ messages in thread

* [PATCH v5 net-next 08/10] dt-bindings: net: add generic ethernet-switch
  2022-12-10  3:30 [PATCH v5 net-next 00/10] dt-binding preparation for ocelot switches Colin Foster
                   ` (6 preceding siblings ...)
  2022-12-10  3:30 ` [PATCH v5 net-next 07/10] dt-bindings: net: dsa: mediatek,mt7530: remove unnecessary dsa-port reference Colin Foster
@ 2022-12-10  3:30 ` Colin Foster
  2022-12-12 18:54   ` Vladimir Oltean
  2022-12-10  3:30 ` [PATCH v5 net-next 09/10] dt-bindings: net: add generic ethernet-switch-port binding Colin Foster
                   ` (2 subsequent siblings)
  10 siblings, 1 reply; 33+ messages in thread
From: Colin Foster @ 2022-12-10  3:30 UTC (permalink / raw)
  To: linux-renesas-soc, linux-mediatek, linux-arm-kernel,
	linux-kernel, devicetree, netdev
  Cc: John Crispin, Alexandre Belloni, Claudiu Manoil, Marek Vasut,
	Sean Wang, DENG Qingfang, Landen Chao, nç ÜNAL,
	Vivien Didelot, Clément Léger, Alvin Šipraga,
	Linus Walleij, UNGLinuxDriver, Woojung Huh, Matthias Brugger,
	Kurt Kanzenbach, Krzysztof Kozlowski, Rob Herring, Paolo Abeni,
	Jakub Kicinski, Eric Dumazet, David S. Miller, Vladimir Oltean,
	Florian Fainelli, Andrew Lunn, George McCollister, Rob Herring

The dsa.yaml bindings had references that can apply to non-dsa switches. To
prevent duplication of this information, keep the dsa-specific information
inside dsa.yaml and move the remaining generic information to the newly
created ethernet-switch.yaml.

Signed-off-by: Colin Foster <colin.foster@in-advantage.com>
Suggested-by: Vladimir Oltean <olteanv@gmail.com>
Reviewed-by: Florian Fainelli <f.fainelli@gmail.com>
Reviewed-by: Rob Herring <robh@kernel.org>
---

v4 -> v5
  * Add Rob Reviewed tag
  * Remove "^(ethernet-)?switch(@.*)?$" from dsa.yaml in this patch, instead
    of dt-bindings: net: dsa: allow additional ethernet-port properties
  * Change Vivien to Vladimir to sync with MAINTAINERS
  * Remove quotes around ref: /schemas/net/ethernet-switch.yaml#

v3 -> v4
  * Update ethernet-ports and ethernet-port nodes to match what the new
    dsa.yaml has. Namely:
      "unevaluatedProperties: false" instead of "additionalProperties: true"
      "additionalProperties: true" instead of "unevaluatedProperties: true"
    for ethernet-ports and ethernet-port, respectively.
  * Add Florian Reviewed tag

v2 -> v3
  * Change ethernet-switch.yaml title from "Ethernet Switch Device
    Tree Bindings" to "Generic Ethernet Switch"
  * Rework ethernet-switch.yaml description
  * Add base defs structure for switches that don't have any additional
    properties.
  * Add "additionalProperties: true" under "^(ethernet-)?ports$" node
  * Correct port reference from /schemas/net/dsa/dsa-port.yaml# to
    ethernet-controller.yaml#

v1 -> v2
  * No net change, but deletions from dsa.yaml included the changes for
    "addionalProperties: true" under ports and "unevaluatedProperties:
    true" under port.

---
 .../devicetree/bindings/net/dsa/dsa.yaml      | 31 +--------
 .../bindings/net/ethernet-switch.yaml         | 66 +++++++++++++++++++
 MAINTAINERS                                   |  1 +
 3 files changed, 69 insertions(+), 29 deletions(-)
 create mode 100644 Documentation/devicetree/bindings/net/ethernet-switch.yaml

diff --git a/Documentation/devicetree/bindings/net/dsa/dsa.yaml b/Documentation/devicetree/bindings/net/dsa/dsa.yaml
index 98a79be3bffe..4a90168b15b7 100644
--- a/Documentation/devicetree/bindings/net/dsa/dsa.yaml
+++ b/Documentation/devicetree/bindings/net/dsa/dsa.yaml
@@ -18,10 +18,9 @@ description:
 
 select: false
 
-properties:
-  $nodename:
-    pattern: "^(ethernet-)?switch(@.*)?$"
+$ref: /schemas/net/ethernet-switch.yaml#
 
+properties:
   dsa,member:
     minItems: 2
     maxItems: 2
@@ -32,32 +31,6 @@ properties:
       (single device hanging off a CPU port) must not specify this property
     $ref: /schemas/types.yaml#/definitions/uint32-array
 
-patternProperties:
-  "^(ethernet-)?ports$":
-    type: object
-    properties:
-      '#address-cells':
-        const: 1
-      '#size-cells':
-        const: 0
-
-    unevaluatedProperties: false
-
-    patternProperties:
-      "^(ethernet-)?port@[0-9]+$":
-        type: object
-        description: Ethernet switch ports
-
-        $ref: dsa-port.yaml#
-
-        additionalProperties: true
-
-oneOf:
-  - required:
-      - ports
-  - required:
-      - ethernet-ports
-
 additionalProperties: true
 
 $defs:
diff --git a/Documentation/devicetree/bindings/net/ethernet-switch.yaml b/Documentation/devicetree/bindings/net/ethernet-switch.yaml
new file mode 100644
index 000000000000..2466d05f9a6f
--- /dev/null
+++ b/Documentation/devicetree/bindings/net/ethernet-switch.yaml
@@ -0,0 +1,66 @@
+# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/net/ethernet-switch.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Generic Ethernet Switch
+
+maintainers:
+  - Andrew Lunn <andrew@lunn.ch>
+  - Florian Fainelli <f.fainelli@gmail.com>
+  - Vladimir Oltean <olteanv@gmail.com>
+
+description:
+  Ethernet switches are multi-port Ethernet controllers. Each port has
+  its own number and is represented as its own Ethernet controller.
+  The minimum required functionality is to pass packets to software.
+  They may or may not be able to forward packets automonously between
+  ports.
+
+select: false
+
+properties:
+  $nodename:
+    pattern: "^(ethernet-)?switch(@.*)?$"
+
+patternProperties:
+  "^(ethernet-)?ports$":
+    type: object
+    unevaluatedProperties: false
+
+    properties:
+      '#address-cells':
+        const: 1
+      '#size-cells':
+        const: 0
+
+    patternProperties:
+      "^(ethernet-)?port@[0-9]+$":
+        type: object
+        description: Ethernet switch ports
+
+        $ref: ethernet-controller.yaml#
+
+        additionalProperties: true
+
+oneOf:
+  - required:
+      - ports
+  - required:
+      - ethernet-ports
+
+additionalProperties: true
+
+$defs:
+  base:
+    description: An ethernet switch without any extra port properties
+    $ref: '#/'
+
+    patternProperties:
+      "^(ethernet-)?port@[0-9]+$":
+        description: Ethernet switch ports
+        $ref: ethernet-controller.yaml#
+        unevaluatedProperties: false
+
+...
diff --git a/MAINTAINERS b/MAINTAINERS
index 52aeb86c1167..d574cae901b3 100644
--- a/MAINTAINERS
+++ b/MAINTAINERS
@@ -14337,6 +14337,7 @@ M:	Florian Fainelli <f.fainelli@gmail.com>
 M:	Vladimir Oltean <olteanv@gmail.com>
 S:	Maintained
 F:	Documentation/devicetree/bindings/net/dsa/
+F:	Documentation/devicetree/bindings/net/ethernet-switch.yaml
 F:	drivers/net/dsa/
 F:	include/linux/dsa/
 F:	include/linux/platform_data/dsa.h
-- 
2.25.1


^ permalink raw reply related	[flat|nested] 33+ messages in thread

* [PATCH v5 net-next 09/10] dt-bindings: net: add generic ethernet-switch-port binding
  2022-12-10  3:30 [PATCH v5 net-next 00/10] dt-binding preparation for ocelot switches Colin Foster
                   ` (7 preceding siblings ...)
  2022-12-10  3:30 ` [PATCH v5 net-next 08/10] dt-bindings: net: add generic ethernet-switch Colin Foster
@ 2022-12-10  3:30 ` Colin Foster
  2022-12-10  3:30 ` [PATCH v5 net-next 10/10] dt-bindings: net: mscc,vsc7514-switch: utilize generic ethernet-switch.yaml Colin Foster
  2022-12-12 18:29 ` [PATCH v5 net-next 00/10] dt-binding preparation for ocelot switches Jakub Kicinski
  10 siblings, 0 replies; 33+ messages in thread
From: Colin Foster @ 2022-12-10  3:30 UTC (permalink / raw)
  To: linux-renesas-soc, linux-mediatek, linux-arm-kernel,
	linux-kernel, devicetree, netdev
  Cc: John Crispin, Alexandre Belloni, Claudiu Manoil, Marek Vasut,
	Sean Wang, DENG Qingfang, Landen Chao, nç ÜNAL,
	Vivien Didelot, Clément Léger, Alvin Šipraga,
	Linus Walleij, UNGLinuxDriver, Woojung Huh, Matthias Brugger,
	Kurt Kanzenbach, Krzysztof Kozlowski, Rob Herring, Paolo Abeni,
	Jakub Kicinski, Eric Dumazet, David S. Miller, Vladimir Oltean,
	Florian Fainelli, Andrew Lunn, George McCollister, Rob Herring

The dsa-port.yaml binding had several references that can be common to all
ethernet ports, not just dsa-specific ones. Break out the generic bindings
to ethernet-switch-port.yaml they can be used by non-dsa drivers.

Signed-off-by: Colin Foster <colin.foster@in-advantage.com>
Suggested-by: Vladimir Oltean <olteanv@gmail.com>
Reviewed-by: Florian Fainelli <f.fainelli@gmail.com>
Reviewed-by: Rob Herring <robh@kernel.org>
---

v4 -> v5
  * Add Rob Reviewed tag
  * Change Vivien to Vladimir to match MAINTAINERS
  * Capitalize all words in title line (Generic DSA Switch Port)
  * Add better description of an Ethernet switch port

v3 -> v4
  * Add Florian Reviewed tag

v2 -> v3
  * Change dsa-port title from "DSA Switch port Device Tree Bindings"
    to "Generic DSA Switch port"
  * Add reference to ethernet-switch-port.yaml# in dsa-port.yaml
  * Change title of ethernet-switch-port.yaml from "Ethernet Switch
    port Device Tree Bindings" to "Generic Ethernet Switch port"
  * Remove most properties from ethernet-switch-port.yaml. They're
    all in ethernet-controller, and are all allowed.
  * ethernet-switch.yaml now only references ethernet-switch-port.yaml#
    under the port node.

v1 -> v2
  * Remove accidental addition of
    "$ref: /schemas/net/ethernet-switch-port.yaml" which should be kept
    out of dsa-port so that it doesn't get referenced multiple times
    through both ethernet-switch and dsa-port.

---
 .../devicetree/bindings/net/dsa/dsa-port.yaml | 27 +++----------------
 .../bindings/net/ethernet-switch-port.yaml    | 25 +++++++++++++++++
 .../bindings/net/ethernet-switch.yaml         |  6 +----
 MAINTAINERS                                   |  1 +
 4 files changed, 31 insertions(+), 28 deletions(-)
 create mode 100644 Documentation/devicetree/bindings/net/ethernet-switch-port.yaml

diff --git a/Documentation/devicetree/bindings/net/dsa/dsa-port.yaml b/Documentation/devicetree/bindings/net/dsa/dsa-port.yaml
index 2b8317911bef..8a29b4c140fb 100644
--- a/Documentation/devicetree/bindings/net/dsa/dsa-port.yaml
+++ b/Documentation/devicetree/bindings/net/dsa/dsa-port.yaml
@@ -4,7 +4,7 @@
 $id: http://devicetree.org/schemas/net/dsa/dsa-port.yaml#
 $schema: http://devicetree.org/meta-schemas/core.yaml#
 
-title: Ethernet Switch port Device Tree Bindings
+title: Generic DSA Switch Port
 
 maintainers:
   - Andrew Lunn <andrew@lunn.ch>
@@ -12,10 +12,10 @@ maintainers:
   - Vladimir Oltean <olteanv@gmail.com>
 
 description:
-  Ethernet switch port Description
+  An Ethernet switch port is a component of a switch that manages one MAC, and
+  can pass Ethernet frames.
 
-allOf:
-  - $ref: /schemas/net/ethernet-controller.yaml#
+$ref: /schemas/net/ethernet-switch-port.yaml#
 
 properties:
   reg:
@@ -58,25 +58,6 @@ properties:
       - rtl8_4t
       - seville
 
-  phy-handle: true
-
-  phy-mode: true
-
-  fixed-link: true
-
-  mac-address: true
-
-  sfp: true
-
-  managed: true
-
-  rx-internal-delay-ps: true
-
-  tx-internal-delay-ps: true
-
-required:
-  - reg
-
 # CPU and DSA ports must have phylink-compatible link descriptions
 if:
   oneOf:
diff --git a/Documentation/devicetree/bindings/net/ethernet-switch-port.yaml b/Documentation/devicetree/bindings/net/ethernet-switch-port.yaml
new file mode 100644
index 000000000000..126bc0c12cb8
--- /dev/null
+++ b/Documentation/devicetree/bindings/net/ethernet-switch-port.yaml
@@ -0,0 +1,25 @@
+# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/net/ethernet-switch-port.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Generic Ethernet Switch Port
+
+maintainers:
+  - Andrew Lunn <andrew@lunn.ch>
+  - Florian Fainelli <f.fainelli@gmail.com>
+  - Vladimir Oltean <olteanv@gmail.com>
+
+description:
+  Ethernet switch port Description
+
+$ref: ethernet-controller.yaml#
+
+properties:
+  reg:
+    description: Port number
+
+additionalProperties: true
+
+...
diff --git a/Documentation/devicetree/bindings/net/ethernet-switch.yaml b/Documentation/devicetree/bindings/net/ethernet-switch.yaml
index 2466d05f9a6f..a04f8ef744aa 100644
--- a/Documentation/devicetree/bindings/net/ethernet-switch.yaml
+++ b/Documentation/devicetree/bindings/net/ethernet-switch.yaml
@@ -40,10 +40,6 @@ patternProperties:
         type: object
         description: Ethernet switch ports
 
-        $ref: ethernet-controller.yaml#
-
-        additionalProperties: true
-
 oneOf:
   - required:
       - ports
@@ -60,7 +56,7 @@ $defs:
     patternProperties:
       "^(ethernet-)?port@[0-9]+$":
         description: Ethernet switch ports
-        $ref: ethernet-controller.yaml#
+        $ref: ethernet-switch-port.yaml#
         unevaluatedProperties: false
 
 ...
diff --git a/MAINTAINERS b/MAINTAINERS
index d574cae901b3..fe5f52c9864a 100644
--- a/MAINTAINERS
+++ b/MAINTAINERS
@@ -14337,6 +14337,7 @@ M:	Florian Fainelli <f.fainelli@gmail.com>
 M:	Vladimir Oltean <olteanv@gmail.com>
 S:	Maintained
 F:	Documentation/devicetree/bindings/net/dsa/
+F:	Documentation/devicetree/bindings/net/ethernet-switch-port.yaml
 F:	Documentation/devicetree/bindings/net/ethernet-switch.yaml
 F:	drivers/net/dsa/
 F:	include/linux/dsa/
-- 
2.25.1


^ permalink raw reply related	[flat|nested] 33+ messages in thread

* [PATCH v5 net-next 10/10] dt-bindings: net: mscc,vsc7514-switch: utilize generic ethernet-switch.yaml
  2022-12-10  3:30 [PATCH v5 net-next 00/10] dt-binding preparation for ocelot switches Colin Foster
                   ` (8 preceding siblings ...)
  2022-12-10  3:30 ` [PATCH v5 net-next 09/10] dt-bindings: net: add generic ethernet-switch-port binding Colin Foster
@ 2022-12-10  3:30 ` Colin Foster
  2022-12-12 18:29 ` [PATCH v5 net-next 00/10] dt-binding preparation for ocelot switches Jakub Kicinski
  10 siblings, 0 replies; 33+ messages in thread
From: Colin Foster @ 2022-12-10  3:30 UTC (permalink / raw)
  To: linux-renesas-soc, linux-mediatek, linux-arm-kernel,
	linux-kernel, devicetree, netdev
  Cc: John Crispin, Alexandre Belloni, Claudiu Manoil, Marek Vasut,
	Sean Wang, DENG Qingfang, Landen Chao, nç ÜNAL,
	Vivien Didelot, Clément Léger, Alvin Šipraga,
	Linus Walleij, UNGLinuxDriver, Woojung Huh, Matthias Brugger,
	Kurt Kanzenbach, Krzysztof Kozlowski, Rob Herring, Paolo Abeni,
	Jakub Kicinski, Eric Dumazet, David S. Miller, Vladimir Oltean,
	Florian Fainelli, Andrew Lunn, George McCollister, Rob Herring

Several bindings for ethernet switches are available for non-dsa switches
by way of ethernet-switch.yaml. Remove these duplicate entries and utilize
the common bindings for the VSC7514.

Signed-off-by: Colin Foster <colin.foster@in-advantage.com>
Suggested-by: Vladimir Oltean <olteanv@gmail.com>
Reviewed-by: Florian Fainelli <f.fainelli@gmail.com>
Reviewed-by: Rob Herring <robh@kernel.org>
---

v4 -> v5
  * Add Rob Reviewed tag

v3 -> v4
  * Add Florian Reviewed tag

v2 -> v3:
  * Reference ethernet-switch-port.yaml# instead of ethernet-controller
  * Undo the addition of "unevaluatedProperties: true" from v2. Those
    were only added because of my misunderstandings.
  * Keep #address-cells and #size-cells in the ports node.

v1 -> v2:
  * Fix "$ref: ethernet-switch.yaml" placement. Oops.
  * Add "unevaluatedProperties: true" to ethernet-ports layer so it
    can correctly read into ethernet-switch.yaml
  * Add "unevaluatedProperties: true" to ethernet-port layer so it can
    correctly read into ethernet-controller.yaml

---
 .../bindings/net/mscc,vsc7514-switch.yaml     | 31 ++-----------------
 1 file changed, 3 insertions(+), 28 deletions(-)

diff --git a/Documentation/devicetree/bindings/net/mscc,vsc7514-switch.yaml b/Documentation/devicetree/bindings/net/mscc,vsc7514-switch.yaml
index ee0a504bdb24..5ffe831e59e4 100644
--- a/Documentation/devicetree/bindings/net/mscc,vsc7514-switch.yaml
+++ b/Documentation/devicetree/bindings/net/mscc,vsc7514-switch.yaml
@@ -18,10 +18,9 @@ description: |
   packets using CPU. Additionally, PTP is supported as well as FDMA for faster
   packet extraction/injection.
 
-properties:
-  $nodename:
-    pattern: "^switch@[0-9a-f]+$"
+$ref: ethernet-switch.yaml#
 
+properties:
   compatible:
     const: mscc,vsc7514-switch
 
@@ -100,35 +99,11 @@ properties:
 
     patternProperties:
       "^port@[0-9a-f]+$":
-        type: object
-        description: Ethernet ports handled by the switch
 
-        $ref: ethernet-controller.yaml#
+        $ref: ethernet-switch-port.yaml#
 
         unevaluatedProperties: false
 
-        properties:
-          reg:
-            description: Switch port number
-
-          phy-handle: true
-
-          phy-mode: true
-
-          fixed-link: true
-
-          mac-address: true
-
-        required:
-          - reg
-          - phy-mode
-
-        oneOf:
-          - required:
-              - phy-handle
-          - required:
-              - fixed-link
-
 required:
   - compatible
   - reg
-- 
2.25.1


^ permalink raw reply related	[flat|nested] 33+ messages in thread

* Re: [PATCH v5 net-next 01/10] dt-bindings: dsa: sync with maintainers
  2022-12-10  3:30 ` [PATCH v5 net-next 01/10] dt-bindings: dsa: sync with maintainers Colin Foster
@ 2022-12-10 10:18   ` Kurt Kanzenbach
  2022-12-11 22:58     ` Vladimir Oltean
  2022-12-12 10:55   ` Vladimir Oltean
  2022-12-12 17:13   ` Rob Herring
  2 siblings, 1 reply; 33+ messages in thread
From: Kurt Kanzenbach @ 2022-12-10 10:18 UTC (permalink / raw)
  To: Colin Foster, linux-renesas-soc, linux-mediatek,
	linux-arm-kernel, linux-kernel, devicetree, netdev
  Cc: John Crispin, Alexandre Belloni, Claudiu Manoil, Marek Vasut,
	Sean Wang, DENG Qingfang, Landen Chao, nç ÜNAL,
	Vivien Didelot, Clément Léger, Alvin Šipraga,
	Linus Walleij, UNGLinuxDriver, Woojung Huh, Matthias Brugger,
	Krzysztof Kozlowski, Rob Herring, Paolo Abeni, Jakub Kicinski,
	Eric Dumazet, David S. Miller, Vladimir Oltean, Florian Fainelli,
	Andrew Lunn, George McCollister

[-- Attachment #1: Type: text/plain, Size: 2425 bytes --]

On Fri Dec 09 2022, Colin Foster wrote:
> The MAINTAINERS file has Andrew Lunn, Florian Fainelli, and Vladimir Oltean
> listed as the maintainers for generic dsa bindings. Update dsa.yaml and
> dsa-port.yaml accordingly.
>
> Signed-off-by: Colin Foster <colin.foster@in-advantage.com>
> Suggested-by: Vladimir Oltean <olteanv@gmail.com>
>
> ---
>
> v5
>   * New patch
>
> ---
>  Documentation/devicetree/bindings/net/dsa/dsa-port.yaml | 2 +-
>  Documentation/devicetree/bindings/net/dsa/dsa.yaml      | 2 +-
>  2 files changed, 2 insertions(+), 2 deletions(-)
>
> diff --git a/Documentation/devicetree/bindings/net/dsa/dsa-port.yaml b/Documentation/devicetree/bindings/net/dsa/dsa-port.yaml
> index 9abb8eba5fad..2b8317911bef 100644
> --- a/Documentation/devicetree/bindings/net/dsa/dsa-port.yaml
> +++ b/Documentation/devicetree/bindings/net/dsa/dsa-port.yaml
> @@ -9,7 +9,7 @@ title: Ethernet Switch port Device Tree Bindings
>  maintainers:
>    - Andrew Lunn <andrew@lunn.ch>
>    - Florian Fainelli <f.fainelli@gmail.com>
> -  - Vivien Didelot <vivien.didelot@gmail.com>
> +  - Vladimir Oltean <olteanv@gmail.com>
>  
>  description:
>    Ethernet switch port Description
> diff --git a/Documentation/devicetree/bindings/net/dsa/dsa.yaml b/Documentation/devicetree/bindings/net/dsa/dsa.yaml
> index b9d48e357e77..5efc0ee8edcb 100644
> --- a/Documentation/devicetree/bindings/net/dsa/dsa.yaml
> +++ b/Documentation/devicetree/bindings/net/dsa/dsa.yaml
> @@ -9,7 +9,7 @@ title: Ethernet Switch Device Tree Bindings
>  maintainers:
>    - Andrew Lunn <andrew@lunn.ch>
>    - Florian Fainelli <f.fainelli@gmail.com>
> -  - Vivien Didelot <vivien.didelot@gmail.com>
> +  - Vladimir Oltean <olteanv@gmail.com>

You can update the hellcreek binding as well. Thanks.

diff --git a/Documentation/devicetree/bindings/net/dsa/hirschmann,hellcreek.yaml b/Documentation/devicetree/bindings/net/dsa/hirschmann,hellcreek.yaml
index 73b774eadd0b..1d7dab31457d 100644
--- a/Documentation/devicetree/bindings/net/dsa/hirschmann,hellcreek.yaml
+++ b/Documentation/devicetree/bindings/net/dsa/hirschmann,hellcreek.yaml
@@ -12,7 +12,7 @@ allOf:
 maintainers:
   - Andrew Lunn <andrew@lunn.ch>
   - Florian Fainelli <f.fainelli@gmail.com>
-  - Vivien Didelot <vivien.didelot@gmail.com>
+  - Vladimir Oltean <olteanv@gmail.com>
   - Kurt Kanzenbach <kurt@linutronix.de>
 
 description:

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 861 bytes --]

^ permalink raw reply related	[flat|nested] 33+ messages in thread

* Re: [PATCH v5 net-next 04/10] dt-bindings: net: dsa: utilize base definitions for standard dsa switches
  2022-12-10  3:30 ` [PATCH v5 net-next 04/10] dt-bindings: net: dsa: utilize base definitions for standard dsa switches Colin Foster
@ 2022-12-10 16:24   ` Arınç ÜNAL
  2022-12-10 18:02     ` Colin Foster
  2022-12-12 18:48   ` Vladimir Oltean
  1 sibling, 1 reply; 33+ messages in thread
From: Arınç ÜNAL @ 2022-12-10 16:24 UTC (permalink / raw)
  To: Colin Foster, linux-renesas-soc, linux-mediatek,
	linux-arm-kernel, linux-kernel, devicetree, netdev
  Cc: John Crispin, Alexandre Belloni, Claudiu Manoil, Marek Vasut,
	Sean Wang, DENG Qingfang, Landen Chao, Vivien Didelot,
	Clément Léger, Alvin Šipraga, Linus Walleij,
	UNGLinuxDriver, Woojung Huh, Matthias Brugger, Kurt Kanzenbach,
	Krzysztof Kozlowski, Rob Herring, Paolo Abeni, Jakub Kicinski,
	Eric Dumazet, David S. Miller, Vladimir Oltean, Florian Fainelli,
	Andrew Lunn, George McCollister, Rob Herring

On 10.12.2022 06:30, Colin Foster wrote:
> DSA switches can fall into one of two categories: switches where all ports
> follow standard '(ethernet-)?port' properties, and switches that have
> additional properties for the ports.
> 
> The scenario where DSA ports are all standardized can be handled by
> switches with a reference to the new 'dsa.yaml#/$defs/ethernet-ports'.
> 
> The scenario where DSA ports require additional properties can reference
> '$dsa.yaml#' directly. This will allow switches to reference these standard
> definitions of the DSA switch, but add additional properties under the port
> nodes.
> 
> Suggested-by: Rob Herring <robh@kernel.org>
> Signed-off-by: Colin Foster <colin.foster@in-advantage.com>
> Reviewed-by: Linus Walleij <linus.walleij@linaro.org>
> Reviewed-by: Florian Fainelli <f.fainelli@gmail.com>
> Reviewed-by: Rob Herring <robh@kernel.org>
> Acked-by: Alvin Šipraga <alsi@bang-olufsen.dk> # realtek
> Acked-by: Arınç ÜNAL <arinc.unal@arinc9.com>
> ---
> 
> v4 -> v5
>    * Add Rob Reviewed, Arınç Acked
>    * Defer the removal of "^(ethernet-)?switch(@.*)?$" in dsa.yaml until a
>      later patch
>    * Undo the move of ethernet switch ports description in mediatek,mt7530.yaml
>    * Fix typos in commit message
> 
> v3 -> v4
>    * Rename "$defs/base" to "$defs/ethernet-ports" to avoid implication of a
>      "base class" and fix commit message accordingly
>    * Add the following to the common etherent-ports node:
>        "additionalProperties: false"
>        "#address-cells" property
>        "#size-cells" property
>    * Fix "etherenet-ports@[0-9]+" to correctly be "ethernet-port@[0-9]+"
>    * Remove unnecessary newline
>    * Apply changes to mediatek,mt7530.yaml that were previously in a separate patch
>    * Add Reviewed and Acked tags
> 
> v3
>    * New patch
> 
> ---
>   .../bindings/net/dsa/arrow,xrs700x.yaml       |  2 +-
>   .../devicetree/bindings/net/dsa/brcm,b53.yaml |  2 +-
>   .../devicetree/bindings/net/dsa/dsa.yaml      | 22 +++++++++++++++++++
>   .../net/dsa/hirschmann,hellcreek.yaml         |  2 +-
>   .../bindings/net/dsa/mediatek,mt7530.yaml     |  5 +----
>   .../bindings/net/dsa/microchip,ksz.yaml       |  2 +-
>   .../bindings/net/dsa/microchip,lan937x.yaml   |  2 +-
>   .../bindings/net/dsa/mscc,ocelot.yaml         |  2 +-
>   .../bindings/net/dsa/nxp,sja1105.yaml         |  2 +-
>   .../devicetree/bindings/net/dsa/realtek.yaml  |  2 +-
>   .../bindings/net/dsa/renesas,rzn1-a5psw.yaml  |  2 +-
>   11 files changed, 32 insertions(+), 13 deletions(-)
> 
> diff --git a/Documentation/devicetree/bindings/net/dsa/arrow,xrs700x.yaml b/Documentation/devicetree/bindings/net/dsa/arrow,xrs700x.yaml
> index 259a0c6547f3..5888e3a0169a 100644
> --- a/Documentation/devicetree/bindings/net/dsa/arrow,xrs700x.yaml
> +++ b/Documentation/devicetree/bindings/net/dsa/arrow,xrs700x.yaml
> @@ -7,7 +7,7 @@ $schema: http://devicetree.org/meta-schemas/core.yaml#
>   title: Arrow SpeedChips XRS7000 Series Switch Device Tree Bindings
>   
>   allOf:
> -  - $ref: dsa.yaml#
> +  - $ref: dsa.yaml#/$defs/ethernet-ports
>   
>   maintainers:
>     - George McCollister <george.mccollister@gmail.com>
> diff --git a/Documentation/devicetree/bindings/net/dsa/brcm,b53.yaml b/Documentation/devicetree/bindings/net/dsa/brcm,b53.yaml
> index 1219b830b1a4..5bef4128d175 100644
> --- a/Documentation/devicetree/bindings/net/dsa/brcm,b53.yaml
> +++ b/Documentation/devicetree/bindings/net/dsa/brcm,b53.yaml
> @@ -66,7 +66,7 @@ required:
>     - reg
>   
>   allOf:
> -  - $ref: dsa.yaml#
> +  - $ref: dsa.yaml#/$defs/ethernet-ports
>     - if:
>         properties:
>           compatible:
> diff --git a/Documentation/devicetree/bindings/net/dsa/dsa.yaml b/Documentation/devicetree/bindings/net/dsa/dsa.yaml
> index 5efc0ee8edcb..9375cdcfbf96 100644
> --- a/Documentation/devicetree/bindings/net/dsa/dsa.yaml
> +++ b/Documentation/devicetree/bindings/net/dsa/dsa.yaml
> @@ -58,4 +58,26 @@ oneOf:
>   
>   additionalProperties: true
>   
> +$defs:
> +  ethernet-ports:
> +    description: A DSA switch without any extra port properties
> +    $ref: '#/'
> +
> +    patternProperties:
> +      "^(ethernet-)?ports$":
> +        type: object
> +        additionalProperties: false
> +
> +        properties:
> +          '#address-cells':
> +            const: 1
> +          '#size-cells':
> +            const: 0
> +
> +        patternProperties:
> +          "^(ethernet-)?port@[0-9]+$":
> +            description: Ethernet switch ports
> +            $ref: dsa-port.yaml#
> +            unevaluatedProperties: false

I've got moderate experience in json-schema but shouldn't you put 'type: 
object' here like you did for "^(ethernet-)?ports$"?

> +
>   ...
> diff --git a/Documentation/devicetree/bindings/net/dsa/hirschmann,hellcreek.yaml b/Documentation/devicetree/bindings/net/dsa/hirschmann,hellcreek.yaml
> index 73b774eadd0b..748ef9983ce2 100644
> --- a/Documentation/devicetree/bindings/net/dsa/hirschmann,hellcreek.yaml
> +++ b/Documentation/devicetree/bindings/net/dsa/hirschmann,hellcreek.yaml
> @@ -7,7 +7,7 @@ $schema: http://devicetree.org/meta-schemas/core.yaml#
>   title: Hirschmann Hellcreek TSN Switch Device Tree Bindings
>   
>   allOf:
> -  - $ref: dsa.yaml#
> +  - $ref: dsa.yaml#/$defs/ethernet-ports
>   
>   maintainers:
>     - Andrew Lunn <andrew@lunn.ch>
> diff --git a/Documentation/devicetree/bindings/net/dsa/mediatek,mt7530.yaml b/Documentation/devicetree/bindings/net/dsa/mediatek,mt7530.yaml
> index f2e9ff3f580b..20312f5d1944 100644
> --- a/Documentation/devicetree/bindings/net/dsa/mediatek,mt7530.yaml
> +++ b/Documentation/devicetree/bindings/net/dsa/mediatek,mt7530.yaml
> @@ -157,9 +157,6 @@ patternProperties:
>       patternProperties:
>         "^(ethernet-)?port@[0-9]+$":
>           type: object

This line was being removed on the previous version. Must be related to 
above.

> -        description: Ethernet switch ports
> -
> -        unevaluatedProperties: false
>   
>           properties:
>             reg:

Arınç

^ permalink raw reply	[flat|nested] 33+ messages in thread

* Re: [PATCH v5 net-next 04/10] dt-bindings: net: dsa: utilize base definitions for standard dsa switches
  2022-12-10 16:24   ` Arınç ÜNAL
@ 2022-12-10 18:02     ` Colin Foster
  2022-12-12  9:28       ` Arınç ÜNAL
  0 siblings, 1 reply; 33+ messages in thread
From: Colin Foster @ 2022-12-10 18:02 UTC (permalink / raw)
  To: Arınç ÜNAL
  Cc: linux-renesas-soc, linux-mediatek, linux-arm-kernel,
	linux-kernel, devicetree, netdev, John Crispin,
	Alexandre Belloni, Claudiu Manoil, Marek Vasut, Sean Wang,
	DENG Qingfang, Landen Chao, Vivien Didelot,
	Clément Léger, Alvin Šipraga, Linus Walleij,
	UNGLinuxDriver, Woojung Huh, Matthias Brugger, Kurt Kanzenbach,
	Krzysztof Kozlowski, Rob Herring, Paolo Abeni, Jakub Kicinski,
	Eric Dumazet, David S. Miller, Vladimir Oltean, Florian Fainelli,
	Andrew Lunn, George McCollister, Rob Herring

Hi Arınç,
On Sat, Dec 10, 2022 at 07:24:42PM +0300, Arınç ÜNAL wrote:
> On 10.12.2022 06:30, Colin Foster wrote:
> > DSA a/Documentation/devicetree/bindings/net/dsa/dsa.yaml
> > +++ b/Documentation/devicetree/bindings/net/dsa/dsa.yaml
> > @@ -58,4 +58,26 @@ oneOf:
> >   additionalProperties: true
> > +$defs:
> > +  ethernet-ports:
> > +    description: A DSA switch without any extra port properties
> > +    $ref: '#/'
> > +
> > +    patternProperties:
> > +      "^(ethernet-)?ports$":
> > +        type: object
> > +        additionalProperties: false
> > +
> > +        properties:
> > +          '#address-cells':
> > +            const: 1
> > +          '#size-cells':
> > +            const: 0
> > +
> > +        patternProperties:
> > +          "^(ethernet-)?port@[0-9]+$":
> > +            description: Ethernet switch ports
> > +            $ref: dsa-port.yaml#
> > +            unevaluatedProperties: false
> 
> I've got moderate experience in json-schema but shouldn't you put 'type:
> object' here like you did for "^(ethernet-)?ports$"?

I can't say for sure, but adding "type: object" here and removing it
from mediatek,mt7530.yaml still causes the same issue I mention below.

Rob's initial suggestion for this patch set (which was basically the
entire implementation... many thanks again Rob) can be found here:
https://lore.kernel.org/netdev/20221104200212.GA2315642-robh@kernel.org/

From what I can tell, the omission of "type: object" here was
intentional. At the very least, it doesn't seem to have any effect on
warnings.

> 
> > +
> >   ...
> > diff --git a/Documentation/devicetree/bindings/net/dsa/hirschmann,hellcreek.yaml b/Documentation/devicetree/bindings/net/dsa/hirschmann,hellcreek.yaml
> > index 73b774eadd0b..748ef9983ce2 100644
> > --- a/Documentation/devicetree/bindings/net/dsa/hirschmann,hellcreek.yaml
> > +++ b/Documentation/devicetree/bindings/net/dsa/hirschmann,hellcreek.yaml
> > @@ -7,7 +7,7 @@ $schema: http://devicetree.org/meta-schemas/core.yaml#
> >   title: Hirschmann Hellcreek TSN Switch Device Tree Bindings
> >   allOf:
> > -  - $ref: dsa.yaml#
> > +  - $ref: dsa.yaml#/$defs/ethernet-ports
> >   maintainers:
> >     - Andrew Lunn <andrew@lunn.ch>
> > diff --git a/Documentation/devicetree/bindings/net/dsa/mediatek,mt7530.yaml b/Documentation/devicetree/bindings/net/dsa/mediatek,mt7530.yaml
> > index f2e9ff3f580b..20312f5d1944 100644
> > --- a/Documentation/devicetree/bindings/net/dsa/mediatek,mt7530.yaml
> > +++ b/Documentation/devicetree/bindings/net/dsa/mediatek,mt7530.yaml
> > @@ -157,9 +157,6 @@ patternProperties:
> >       patternProperties:
> >         "^(ethernet-)?port@[0-9]+$":
> >           type: object
> 
> This line was being removed on the previous version. Must be related to
> above.

Without the 'object' type here, I get the following warning:

Documentation/devicetree/bindings/net/dsa/mediatek,mt7530.yaml: patternProperties:^(ethernet-)?ports$:patternProperties:^(ethernet-)?port@[0-9]+$: 'anyOf' conditional failed, one must be fixed:
        'type' is a required property
        '$ref' is a required property
        hint: node schemas must have a type or $ref
        from schema $id: http://devicetree.org/meta-schemas/core.yaml#
./Documentation/devicetree/bindings/net/dsa/mediatek,mt7530.yaml: Error in referenced schema matching $id: http://devicetree.org/schemas/net/dsa/mediatek,mt7530.yaml
  SCHEMA  Documentation/devicetree/bindings/processed-schema.json
/home/colin/src/work/linux_vsc/linux-imx/Documentation/devicetree/bindings/net/dsa/mediatek,mt7530.yaml: ignoring, error in schema: patternProperties: ^(ethernet-)?ports$: patternProperties: ^(ethernet-)?port@[0-9]+$


I'm testing this now and I'm noticing something is going on with the
"ref: dsa-port.yaml"


Everything seems to work fine (in that I don't see any warnings) when I
have this diff:


diff --git a/Documentation/devicetree/bindings/net/dsa/mediatek,mt7530.yaml b/Documentation/devicetree/bindings/net/dsa/mediatek,mt7530.yaml
index 20312f5d1944..db0122020f98 100644
--- a/Documentation/devicetree/bindings/net/dsa/mediatek,mt7530.yaml
+++ b/Documentation/devicetree/bindings/net/dsa/mediatek,mt7530.yam
@@ -156,8 +156,7 @@ patternProperties:

     patternProperties:
       "^(ethernet-)?port@[0-9]+$":
-        type: object
-
+        $ref: dsa-port.yaml#
         properties:
           reg:
             description:
@@ -165,7 +164,6 @@ patternProperties:
               for user ports.

         allOf:
-          - $ref: dsa-port.yaml#
           - if:
               required: [ ethernet ]
             then:



This one has me [still] scratching my head...



> 
> > -        description: Ethernet switch ports
> > -
> > -        unevaluatedProperties: false
> >           properties:
> >             reg:
> 
> Arınç

^ permalink raw reply related	[flat|nested] 33+ messages in thread

* Re: [PATCH v5 net-next 01/10] dt-bindings: dsa: sync with maintainers
  2022-12-10 10:18   ` Kurt Kanzenbach
@ 2022-12-11 22:58     ` Vladimir Oltean
  2022-12-12  7:51       ` Kurt Kanzenbach
  0 siblings, 1 reply; 33+ messages in thread
From: Vladimir Oltean @ 2022-12-11 22:58 UTC (permalink / raw)
  To: Kurt Kanzenbach
  Cc: Colin Foster, linux-renesas-soc, linux-mediatek,
	linux-arm-kernel, linux-kernel, devicetree, netdev, John Crispin,
	Alexandre Belloni, Claudiu Manoil, Marek Vasut, Sean Wang,
	DENG Qingfang, Landen Chao, nç ÜNAL, Vivien Didelot,
	Clément Léger, Alvin Šipraga, Linus Walleij,
	UNGLinuxDriver, Woojung Huh, Matthias Brugger,
	Krzysztof Kozlowski, Rob Herring, Paolo Abeni, Jakub Kicinski,
	Eric Dumazet, David S. Miller, Florian Fainelli, Andrew Lunn,
	George McCollister

On Sat, Dec 10, 2022 at 11:18:29AM +0100, Kurt Kanzenbach wrote:
> You can update the hellcreek binding as well. Thanks.
> 
> diff --git a/Documentation/devicetree/bindings/net/dsa/hirschmann,hellcreek.yaml b/Documentation/devicetree/bindings/net/dsa/hirschmann,hellcreek.yaml
> index 73b774eadd0b..1d7dab31457d 100644
> --- a/Documentation/devicetree/bindings/net/dsa/hirschmann,hellcreek.yaml
> +++ b/Documentation/devicetree/bindings/net/dsa/hirschmann,hellcreek.yaml
> @@ -12,7 +12,7 @@ allOf:
>  maintainers:
>    - Andrew Lunn <andrew@lunn.ch>
>    - Florian Fainelli <f.fainelli@gmail.com>
> -  - Vivien Didelot <vivien.didelot@gmail.com>
> +  - Vladimir Oltean <olteanv@gmail.com>
>    - Kurt Kanzenbach <kurt@linutronix.de>
>  
>  description:

Good observation. If there are no other comments on this patch series
(which otherwise looks reasonable to me), I suppose that could be
accomplished via a parallel patch as well? The diff you're proposing
does not seem to conflict with something else that Colin is touching in
this patch set.

^ permalink raw reply	[flat|nested] 33+ messages in thread

* Re: [PATCH v5 net-next 01/10] dt-bindings: dsa: sync with maintainers
  2022-12-11 22:58     ` Vladimir Oltean
@ 2022-12-12  7:51       ` Kurt Kanzenbach
  0 siblings, 0 replies; 33+ messages in thread
From: Kurt Kanzenbach @ 2022-12-12  7:51 UTC (permalink / raw)
  To: Vladimir Oltean
  Cc: Colin Foster, linux-renesas-soc, linux-mediatek,
	linux-arm-kernel, linux-kernel, devicetree, netdev, John Crispin,
	Alexandre Belloni, Claudiu Manoil, Marek Vasut, Sean Wang,
	DENG Qingfang, Landen Chao, nç ÜNAL, Vivien Didelot,
	Clément Léger, Alvin Šipraga, Linus Walleij,
	UNGLinuxDriver, Woojung Huh, Matthias Brugger,
	Krzysztof Kozlowski, Rob Herring, Paolo Abeni, Jakub Kicinski,
	Eric Dumazet, David S. Miller, Florian Fainelli, Andrew Lunn,
	George McCollister

[-- Attachment #1: Type: text/plain, Size: 1236 bytes --]

On Mon Dec 12 2022, Vladimir Oltean wrote:
> On Sat, Dec 10, 2022 at 11:18:29AM +0100, Kurt Kanzenbach wrote:
>> You can update the hellcreek binding as well. Thanks.
>> 
>> diff --git a/Documentation/devicetree/bindings/net/dsa/hirschmann,hellcreek.yaml b/Documentation/devicetree/bindings/net/dsa/hirschmann,hellcreek.yaml
>> index 73b774eadd0b..1d7dab31457d 100644
>> --- a/Documentation/devicetree/bindings/net/dsa/hirschmann,hellcreek.yaml
>> +++ b/Documentation/devicetree/bindings/net/dsa/hirschmann,hellcreek.yaml
>> @@ -12,7 +12,7 @@ allOf:
>>  maintainers:
>>    - Andrew Lunn <andrew@lunn.ch>
>>    - Florian Fainelli <f.fainelli@gmail.com>
>> -  - Vivien Didelot <vivien.didelot@gmail.com>
>> +  - Vladimir Oltean <olteanv@gmail.com>
>>    - Kurt Kanzenbach <kurt@linutronix.de>
>>  
>>  description:
>
> Good observation. If there are no other comments on this patch series
> (which otherwise looks reasonable to me), I suppose that could be
> accomplished via a parallel patch as well? The diff you're proposing
> does not seem to conflict with something else that Colin is touching in
> this patch set.

Sure, it shouldn't conflict. I'll send a patch to update this
separately.

Thanks,
Kurt

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 861 bytes --]

^ permalink raw reply	[flat|nested] 33+ messages in thread

* Re: [PATCH v5 net-next 04/10] dt-bindings: net: dsa: utilize base definitions for standard dsa switches
  2022-12-10 18:02     ` Colin Foster
@ 2022-12-12  9:28       ` Arınç ÜNAL
  2022-12-12 16:51         ` Rob Herring
  0 siblings, 1 reply; 33+ messages in thread
From: Arınç ÜNAL @ 2022-12-12  9:28 UTC (permalink / raw)
  To: Colin Foster
  Cc: linux-renesas-soc, linux-mediatek, linux-arm-kernel,
	linux-kernel, devicetree, netdev, John Crispin,
	Alexandre Belloni, Claudiu Manoil, Marek Vasut, Sean Wang,
	DENG Qingfang, Landen Chao, Vivien Didelot,
	Clément Léger, Alvin Šipraga, Linus Walleij,
	UNGLinuxDriver, Woojung Huh, Matthias Brugger, Kurt Kanzenbach,
	Krzysztof Kozlowski, Rob Herring, Paolo Abeni, Jakub Kicinski,
	Eric Dumazet, David S. Miller, Vladimir Oltean, Florian Fainelli,
	Andrew Lunn, George McCollister, Rob Herring

On 10.12.2022 21:02, Colin Foster wrote:
> Hi Arınç,
> On Sat, Dec 10, 2022 at 07:24:42PM +0300, Arınç ÜNAL wrote:
>> On 10.12.2022 06:30, Colin Foster wrote:
>>> DSA a/Documentation/devicetree/bindings/net/dsa/dsa.yaml
>>> +++ b/Documentation/devicetree/bindings/net/dsa/dsa.yaml
>>> @@ -58,4 +58,26 @@ oneOf:
>>>    additionalProperties: true
>>> +$defs:
>>> +  ethernet-ports:
>>> +    description: A DSA switch without any extra port properties
>>> +    $ref: '#/'
>>> +
>>> +    patternProperties:
>>> +      "^(ethernet-)?ports$":
>>> +        type: object
>>> +        additionalProperties: false
>>> +
>>> +        properties:
>>> +          '#address-cells':
>>> +            const: 1
>>> +          '#size-cells':
>>> +            const: 0
>>> +
>>> +        patternProperties:
>>> +          "^(ethernet-)?port@[0-9]+$":
>>> +            description: Ethernet switch ports
>>> +            $ref: dsa-port.yaml#
>>> +            unevaluatedProperties: false
>>
>> I've got moderate experience in json-schema but shouldn't you put 'type:
>> object' here like you did for "^(ethernet-)?ports$"?
> 
> I can't say for sure, but adding "type: object" here and removing it
> from mediatek,mt7530.yaml still causes the same issue I mention below.
> 
> Rob's initial suggestion for this patch set (which was basically the
> entire implementation... many thanks again Rob) can be found here:
> https://lore.kernel.org/netdev/20221104200212.GA2315642-robh@kernel.org/
> 
>  From what I can tell, the omission of "type: object" here was
> intentional. At the very least, it doesn't seem to have any effect on
> warnings.
> 
>>
>>> +
>>>    ...
>>> diff --git a/Documentation/devicetree/bindings/net/dsa/hirschmann,hellcreek.yaml b/Documentation/devicetree/bindings/net/dsa/hirschmann,hellcreek.yaml
>>> index 73b774eadd0b..748ef9983ce2 100644
>>> --- a/Documentation/devicetree/bindings/net/dsa/hirschmann,hellcreek.yaml
>>> +++ b/Documentation/devicetree/bindings/net/dsa/hirschmann,hellcreek.yaml
>>> @@ -7,7 +7,7 @@ $schema: http://devicetree.org/meta-schemas/core.yaml#
>>>    title: Hirschmann Hellcreek TSN Switch Device Tree Bindings
>>>    allOf:
>>> -  - $ref: dsa.yaml#
>>> +  - $ref: dsa.yaml#/$defs/ethernet-ports
>>>    maintainers:
>>>      - Andrew Lunn <andrew@lunn.ch>
>>> diff --git a/Documentation/devicetree/bindings/net/dsa/mediatek,mt7530.yaml b/Documentation/devicetree/bindings/net/dsa/mediatek,mt7530.yaml
>>> index f2e9ff3f580b..20312f5d1944 100644
>>> --- a/Documentation/devicetree/bindings/net/dsa/mediatek,mt7530.yaml
>>> +++ b/Documentation/devicetree/bindings/net/dsa/mediatek,mt7530.yaml
>>> @@ -157,9 +157,6 @@ patternProperties:
>>>        patternProperties:
>>>          "^(ethernet-)?port@[0-9]+$":
>>>            type: object
>>
>> This line was being removed on the previous version. Must be related to
>> above.
> 
> Without the 'object' type here, I get the following warning:
> 
> Documentation/devicetree/bindings/net/dsa/mediatek,mt7530.yaml: patternProperties:^(ethernet-)?ports$:patternProperties:^(ethernet-)?port@[0-9]+$: 'anyOf' conditional failed, one must be fixed:
>          'type' is a required property
>          '$ref' is a required property
>          hint: node schemas must have a type or $ref
>          from schema $id: http://devicetree.org/meta-schemas/core.yaml#
> ./Documentation/devicetree/bindings/net/dsa/mediatek,mt7530.yaml: Error in referenced schema matching $id: http://devicetree.org/schemas/net/dsa/mediatek,mt7530.yaml
>    SCHEMA  Documentation/devicetree/bindings/processed-schema.json
> /home/colin/src/work/linux_vsc/linux-imx/Documentation/devicetree/bindings/net/dsa/mediatek,mt7530.yaml: ignoring, error in schema: patternProperties: ^(ethernet-)?ports$: patternProperties: ^(ethernet-)?port@[0-9]+$
> 
> 
> I'm testing this now and I'm noticing something is going on with the
> "ref: dsa-port.yaml"
> 
> 
> Everything seems to work fine (in that I don't see any warnings) when I
> have this diff:
> 
> 
> diff --git a/Documentation/devicetree/bindings/net/dsa/mediatek,mt7530.yaml b/Documentation/devicetree/bindings/net/dsa/mediatek,mt7530.yaml
> index 20312f5d1944..db0122020f98 100644
> --- a/Documentation/devicetree/bindings/net/dsa/mediatek,mt7530.yaml
> +++ b/Documentation/devicetree/bindings/net/dsa/mediatek,mt7530.yam
> @@ -156,8 +156,7 @@ patternProperties:
> 
>       patternProperties:
>         "^(ethernet-)?port@[0-9]+$":
> -        type: object
> -
> +        $ref: dsa-port.yaml#
>           properties:
>             reg:
>               description:
> @@ -165,7 +164,6 @@ patternProperties:
>                 for user ports.
> 
>           allOf:
> -          - $ref: dsa-port.yaml#
>             - if:
>                 required: [ ethernet ]
>               then:
> 
> 
> 
> This one has me [still] scratching my head...

Right there with you. In addition to this, having or deleting type 
object on/from "^(ethernet-)?ports$" and "^(ethernet-)?port@[0-9]+$" on 
dsa.yaml doesn't cause any warnings (checked with make dt_binding_check 
DT_SCHEMA_FILES=net/dsa) which makes me question why it's there in the 
first place.

Arınç

^ permalink raw reply	[flat|nested] 33+ messages in thread

* Re: [PATCH v5 net-next 01/10] dt-bindings: dsa: sync with maintainers
  2022-12-10  3:30 ` [PATCH v5 net-next 01/10] dt-bindings: dsa: sync with maintainers Colin Foster
  2022-12-10 10:18   ` Kurt Kanzenbach
@ 2022-12-12 10:55   ` Vladimir Oltean
  2022-12-12 17:13   ` Rob Herring
  2 siblings, 0 replies; 33+ messages in thread
From: Vladimir Oltean @ 2022-12-12 10:55 UTC (permalink / raw)
  To: Colin Foster
  Cc: linux-renesas-soc, linux-mediatek, linux-arm-kernel,
	linux-kernel, devicetree, netdev, John Crispin,
	Alexandre Belloni, Claudiu Manoil, Marek Vasut, Sean Wang,
	DENG Qingfang, Landen Chao, nç ÜNAL, Vivien Didelot,
	Clément Léger, Alvin Šipraga, Linus Walleij,
	UNGLinuxDriver, Woojung Huh, Matthias Brugger, Kurt Kanzenbach,
	Krzysztof Kozlowski, Rob Herring, Paolo Abeni, Jakub Kicinski,
	Eric Dumazet, David S. Miller, Florian Fainelli, Andrew Lunn,
	George McCollister

On Fri, Dec 09, 2022 at 07:30:24PM -0800, Colin Foster wrote:
> The MAINTAINERS file has Andrew Lunn, Florian Fainelli, and Vladimir Oltean
> listed as the maintainers for generic dsa bindings. Update dsa.yaml and
> dsa-port.yaml accordingly.
> 
> Signed-off-by: Colin Foster <colin.foster@in-advantage.com>
> Suggested-by: Vladimir Oltean <olteanv@gmail.com>
> 
> ---

Reviewed-by: Vladimir Oltean <olteanv@gmail.com>

^ permalink raw reply	[flat|nested] 33+ messages in thread

* Re: [PATCH v5 net-next 04/10] dt-bindings: net: dsa: utilize base definitions for standard dsa switches
  2022-12-12  9:28       ` Arınç ÜNAL
@ 2022-12-12 16:51         ` Rob Herring
  2022-12-12 18:55           ` Colin Foster
  0 siblings, 1 reply; 33+ messages in thread
From: Rob Herring @ 2022-12-12 16:51 UTC (permalink / raw)
  To: Arınç ÜNAL
  Cc: Colin Foster, linux-renesas-soc, linux-mediatek,
	linux-arm-kernel, linux-kernel, devicetree, netdev, John Crispin,
	Alexandre Belloni, Claudiu Manoil, Marek Vasut, Sean Wang,
	DENG Qingfang, Landen Chao, Vivien Didelot,
	Clément Léger, Alvin Šipraga, Linus Walleij,
	UNGLinuxDriver, Woojung Huh, Matthias Brugger, Kurt Kanzenbach,
	Krzysztof Kozlowski, Paolo Abeni, Jakub Kicinski, Eric Dumazet,
	David S. Miller, Vladimir Oltean, Florian Fainelli, Andrew Lunn,
	George McCollister

On Mon, Dec 12, 2022 at 12:28:06PM +0300, Arınç ÜNAL wrote:
> On 10.12.2022 21:02, Colin Foster wrote:
> > Hi Arınç,
> > On Sat, Dec 10, 2022 at 07:24:42PM +0300, Arınç ÜNAL wrote:
> > > On 10.12.2022 06:30, Colin Foster wrote:
> > > > DSA a/Documentation/devicetree/bindings/net/dsa/dsa.yaml
> > > > +++ b/Documentation/devicetree/bindings/net/dsa/dsa.yaml
> > > > @@ -58,4 +58,26 @@ oneOf:
> > > >    additionalProperties: true
> > > > +$defs:
> > > > +  ethernet-ports:
> > > > +    description: A DSA switch without any extra port properties
> > > > +    $ref: '#/'
> > > > +
> > > > +    patternProperties:
> > > > +      "^(ethernet-)?ports$":
> > > > +        type: object
> > > > +        additionalProperties: false
> > > > +
> > > > +        properties:
> > > > +          '#address-cells':
> > > > +            const: 1
> > > > +          '#size-cells':
> > > > +            const: 0
> > > > +
> > > > +        patternProperties:
> > > > +          "^(ethernet-)?port@[0-9]+$":
> > > > +            description: Ethernet switch ports
> > > > +            $ref: dsa-port.yaml#
> > > > +            unevaluatedProperties: false
> > > 
> > > I've got moderate experience in json-schema but shouldn't you put 'type:
> > > object' here like you did for "^(ethernet-)?ports$"?
> > 
> > I can't say for sure, but adding "type: object" here and removing it
> > from mediatek,mt7530.yaml still causes the same issue I mention below.
> > 
> > Rob's initial suggestion for this patch set (which was basically the
> > entire implementation... many thanks again Rob) can be found here:
> > https://lore.kernel.org/netdev/20221104200212.GA2315642-robh@kernel.org/
> > 
> >  From what I can tell, the omission of "type: object" here was
> > intentional. At the very least, it doesn't seem to have any effect on
> > warnings.
> > 
> > > 
> > > > +
> > > >    ...
> > > > diff --git a/Documentation/devicetree/bindings/net/dsa/hirschmann,hellcreek.yaml b/Documentation/devicetree/bindings/net/dsa/hirschmann,hellcreek.yaml
> > > > index 73b774eadd0b..748ef9983ce2 100644
> > > > --- a/Documentation/devicetree/bindings/net/dsa/hirschmann,hellcreek.yaml
> > > > +++ b/Documentation/devicetree/bindings/net/dsa/hirschmann,hellcreek.yaml
> > > > @@ -7,7 +7,7 @@ $schema: http://devicetree.org/meta-schemas/core.yaml#
> > > >    title: Hirschmann Hellcreek TSN Switch Device Tree Bindings
> > > >    allOf:
> > > > -  - $ref: dsa.yaml#
> > > > +  - $ref: dsa.yaml#/$defs/ethernet-ports
> > > >    maintainers:
> > > >      - Andrew Lunn <andrew@lunn.ch>
> > > > diff --git a/Documentation/devicetree/bindings/net/dsa/mediatek,mt7530.yaml b/Documentation/devicetree/bindings/net/dsa/mediatek,mt7530.yaml
> > > > index f2e9ff3f580b..20312f5d1944 100644
> > > > --- a/Documentation/devicetree/bindings/net/dsa/mediatek,mt7530.yaml
> > > > +++ b/Documentation/devicetree/bindings/net/dsa/mediatek,mt7530.yaml
> > > > @@ -157,9 +157,6 @@ patternProperties:
> > > >        patternProperties:
> > > >          "^(ethernet-)?port@[0-9]+$":
> > > >            type: object
> > > 
> > > This line was being removed on the previous version. Must be related to
> > > above.
> > 
> > Without the 'object' type here, I get the following warning:
> > 
> > Documentation/devicetree/bindings/net/dsa/mediatek,mt7530.yaml: patternProperties:^(ethernet-)?ports$:patternProperties:^(ethernet-)?port@[0-9]+$: 'anyOf' conditional failed, one must be fixed:
> >          'type' is a required property
> >          '$ref' is a required property
> >          hint: node schemas must have a type or $ref
> >          from schema $id: http://devicetree.org/meta-schemas/core.yaml#
> > ./Documentation/devicetree/bindings/net/dsa/mediatek,mt7530.yaml: Error in referenced schema matching $id: http://devicetree.org/schemas/net/dsa/mediatek,mt7530.yaml
> >    SCHEMA  Documentation/devicetree/bindings/processed-schema.json
> > /home/colin/src/work/linux_vsc/linux-imx/Documentation/devicetree/bindings/net/dsa/mediatek,mt7530.yaml: ignoring, error in schema: patternProperties: ^(ethernet-)?ports$: patternProperties: ^(ethernet-)?port@[0-9]+$

Is the above warning not clear? We require either 'type' or a $ref to 
define nodes as json-schema objects.


> > I'm testing this now and I'm noticing something is going on with the
> > "ref: dsa-port.yaml"
> > 
> > 
> > Everything seems to work fine (in that I don't see any warnings) when I
> > have this diff:
> > 
> > 
> > diff --git a/Documentation/devicetree/bindings/net/dsa/mediatek,mt7530.yaml b/Documentation/devicetree/bindings/net/dsa/mediatek,mt7530.yaml
> > index 20312f5d1944..db0122020f98 100644
> > --- a/Documentation/devicetree/bindings/net/dsa/mediatek,mt7530.yaml
> > +++ b/Documentation/devicetree/bindings/net/dsa/mediatek,mt7530.yam
> > @@ -156,8 +156,7 @@ patternProperties:
> > 
> >       patternProperties:
> >         "^(ethernet-)?port@[0-9]+$":
> > -        type: object
> > -
> > +        $ref: dsa-port.yaml#
> >           properties:
> >             reg:
> >               description:
> > @@ -165,7 +164,6 @@ patternProperties:
> >                 for user ports.
> > 
> >           allOf:
> > -          - $ref: dsa-port.yaml#
> >             - if:
> >                 required: [ ethernet ]
> >               then:
> > 
> > 
> > 
> > This one has me [still] scratching my head...
> 
> Right there with you. In addition to this, having or deleting type object
> on/from "^(ethernet-)?ports$" and "^(ethernet-)?port@[0-9]+$" on dsa.yaml
> doesn't cause any warnings (checked with make dt_binding_check
> DT_SCHEMA_FILES=net/dsa) which makes me question why it's there in the first
> place.


That check probably doesn't consider an ref being under an 'allOf'. 
Perhaps what is missing in understanding is every schema at the 
top-level has an implicit 'type: object'. But nothing is ever implicit 
in json-schema which will silently ignore keywords which don't make 
sense for an instance type. Instead of a bunch of boilerplate, the 
processed schema has 'type' added in lots of cases such as this one.

Rob

^ permalink raw reply	[flat|nested] 33+ messages in thread

* Re: [PATCH v5 net-next 01/10] dt-bindings: dsa: sync with maintainers
  2022-12-10  3:30 ` [PATCH v5 net-next 01/10] dt-bindings: dsa: sync with maintainers Colin Foster
  2022-12-10 10:18   ` Kurt Kanzenbach
  2022-12-12 10:55   ` Vladimir Oltean
@ 2022-12-12 17:13   ` Rob Herring
  2 siblings, 0 replies; 33+ messages in thread
From: Rob Herring @ 2022-12-12 17:13 UTC (permalink / raw)
  To: Colin Foster
  Cc: Linus Walleij, linux-kernel, devicetree, Alexandre Belloni, ,
	Eric Dumazet, Alvin Šipraga, Sean Wang, linux-arm-kernel,
	Marek Vasut, Woojung Huh, Vivien Didelot,
	Clément Léger, linux-renesas-soc, Florian Fainelli,
	Claudiu Manoil, Matthias Brugger, Landen Chao, David S. Miller,
	linux-mediatek, Kurt Kanzenbach, George McCollister, Paolo Abeni,
	Andrew Lunn, DENG Qingfang, Rob Herring, John Crispin,
	Jakub Kicinski, Krzysztof Kozlowski, Vladimir Oltean, netdev,
	UNGLinuxDriver, nç ÜNAL


On Fri, 09 Dec 2022 19:30:24 -0800, Colin Foster wrote:
> The MAINTAINERS file has Andrew Lunn, Florian Fainelli, and Vladimir Oltean
> listed as the maintainers for generic dsa bindings. Update dsa.yaml and
> dsa-port.yaml accordingly.
> 
> Signed-off-by: Colin Foster <colin.foster@in-advantage.com>
> Suggested-by: Vladimir Oltean <olteanv@gmail.com>
> 
> ---
> 
> v5
>   * New patch
> 
> ---
>  Documentation/devicetree/bindings/net/dsa/dsa-port.yaml | 2 +-
>  Documentation/devicetree/bindings/net/dsa/dsa.yaml      | 2 +-
>  2 files changed, 2 insertions(+), 2 deletions(-)
> 

Acked-by: Rob Herring <robh@kernel.org>

^ permalink raw reply	[flat|nested] 33+ messages in thread

* Re: [PATCH v5 net-next 00/10] dt-binding preparation for ocelot switches
  2022-12-10  3:30 [PATCH v5 net-next 00/10] dt-binding preparation for ocelot switches Colin Foster
                   ` (9 preceding siblings ...)
  2022-12-10  3:30 ` [PATCH v5 net-next 10/10] dt-bindings: net: mscc,vsc7514-switch: utilize generic ethernet-switch.yaml Colin Foster
@ 2022-12-12 18:29 ` Jakub Kicinski
  2022-12-12 19:03   ` Colin Foster
  10 siblings, 1 reply; 33+ messages in thread
From: Jakub Kicinski @ 2022-12-12 18:29 UTC (permalink / raw)
  To: Colin Foster, Krzysztof Kozlowski, Rob Herring
  Cc: linux-renesas-soc, linux-mediatek, linux-arm-kernel,
	linux-kernel, devicetree, netdev, John Crispin,
	Alexandre Belloni, Claudiu Manoil, Marek Vasut, Sean Wang,
	DENG Qingfang, Landen Chao, Vivien Didelot,
	Clément Léger, Alvin Šipraga, Linus Walleij,
	UNGLinuxDriver, Woojung Huh, Matthias Brugger, Kurt Kanzenbach,
	Paolo Abeni, Eric Dumazet, David S. Miller, Vladimir Oltean,
	Florian Fainelli, Andrew Lunn, George McCollister

On Fri,  9 Dec 2022 19:30:23 -0800 Colin Foster wrote:
> Ocelot switches have the abilitiy to be used internally via
> memory-mapped IO or externally via SPI or PCIe. This brings up issues
> for documentation, where the same chip might be accessed internally in a
> switchdev manner, or externally in a DSA configuration. This patch set
> is perparation to bring DSA functionality to the VSC7512, utilizing as
> much as possible with an almost identical VSC7514 chip.
> 
> This patch set changed quite a bit from v2, so I'll omit the background
> of how those sets came to be. Rob offered a lot of very useful guidance.
> My thanks.
> 
> At the end of the day, with this patch set, there should be a framework
> to document Ocelot switches (and any switch) in scenarios where they can
> be controlled internally (ethernet-switch) or externally (dsa-switch).

A lot of carried over review tags here, so please let me know if
there's anything that needs to be reviewed here, otherwise I'd like 
to merge the series for 6.2 by the end of the day.

^ permalink raw reply	[flat|nested] 33+ messages in thread

* Re: [PATCH v5 net-next 02/10] dt-bindings: net: dsa: sf2: fix brcm,use-bcm-hdr documentation
  2022-12-10  3:30 ` [PATCH v5 net-next 02/10] dt-bindings: net: dsa: sf2: fix brcm,use-bcm-hdr documentation Colin Foster
@ 2022-12-12 18:46   ` Vladimir Oltean
  0 siblings, 0 replies; 33+ messages in thread
From: Vladimir Oltean @ 2022-12-12 18:46 UTC (permalink / raw)
  To: Colin Foster
  Cc: linux-renesas-soc, linux-mediatek, linux-arm-kernel,
	linux-kernel, devicetree, netdev, John Crispin,
	Alexandre Belloni, Claudiu Manoil, Marek Vasut, Sean Wang,
	DENG Qingfang, Landen Chao, nç ÜNAL, Vivien Didelot,
	Clément Léger, Alvin Šipraga, Linus Walleij,
	UNGLinuxDriver, Woojung Huh, Matthias Brugger, Kurt Kanzenbach,
	Krzysztof Kozlowski, Rob Herring, Paolo Abeni, Jakub Kicinski,
	Eric Dumazet, David S. Miller, Florian Fainelli, Andrew Lunn,
	George McCollister, Rob Herring

On Fri, Dec 09, 2022 at 07:30:25PM -0800, Colin Foster wrote:
> The property use-bcm-hdr was documented as an entry under the ports node
> for the bcm_sf2 DSA switch. This property is actually evaluated for each
> port. Correct the documentation to match the actual behavior and properly
> reference dsa-port.yaml for additional properties of the node.
> 
> Suggested-by: Rob Herring <robh@kernel.org>
> Signed-off-by: Colin Foster <colin.foster@in-advantage.com>
> Acked-by: Florian Fainelli <f.fainelli@gmail.com>
> Reviewed-by: Rob Herring <robh@kernel.org>
> ---

Reviewed-by: Vladimir Oltean <olteanv@gmail.com>

^ permalink raw reply	[flat|nested] 33+ messages in thread

* Re: [PATCH v5 net-next 03/10] dt-bindings: net: dsa: qca8k: remove address-cells and size-cells from switch node
  2022-12-10  3:30 ` [PATCH v5 net-next 03/10] dt-bindings: net: dsa: qca8k: remove address-cells and size-cells from switch node Colin Foster
@ 2022-12-12 18:46   ` Vladimir Oltean
  0 siblings, 0 replies; 33+ messages in thread
From: Vladimir Oltean @ 2022-12-12 18:46 UTC (permalink / raw)
  To: Colin Foster
  Cc: linux-renesas-soc, linux-mediatek, linux-arm-kernel,
	linux-kernel, devicetree, netdev, John Crispin,
	Alexandre Belloni, Claudiu Manoil, Marek Vasut, Sean Wang,
	DENG Qingfang, Landen Chao, nç ÜNAL, Vivien Didelot,
	Clément Léger, Alvin Šipraga, Linus Walleij,
	UNGLinuxDriver, Woojung Huh, Matthias Brugger, Kurt Kanzenbach,
	Krzysztof Kozlowski, Rob Herring, Paolo Abeni, Jakub Kicinski,
	Eric Dumazet, David S. Miller, Florian Fainelli, Andrew Lunn,
	George McCollister, Rob Herring

On Fri, Dec 09, 2022 at 07:30:26PM -0800, Colin Foster wrote:
> The children of the switch node don't have a unit address, and therefore
> should not need the #address-cells or #size-cells entries. Fix the example
> schemas accordingly.
> 
> Suggested-by: Vladimir Oltean <olteanv@gmail.com>
> Signed-off-by: Colin Foster <colin.foster@in-advantage.com>
> Reviewed-by: Florian Fainelli <f.fainelli@gmail.com>
> Reviewed-by: Rob Herring <robh@kernel.org>
> ---

Reviewed-by: Vladimir Oltean <olteanv@gmail.com>

^ permalink raw reply	[flat|nested] 33+ messages in thread

* Re: [PATCH v5 net-next 04/10] dt-bindings: net: dsa: utilize base definitions for standard dsa switches
  2022-12-10  3:30 ` [PATCH v5 net-next 04/10] dt-bindings: net: dsa: utilize base definitions for standard dsa switches Colin Foster
  2022-12-10 16:24   ` Arınç ÜNAL
@ 2022-12-12 18:48   ` Vladimir Oltean
  1 sibling, 0 replies; 33+ messages in thread
From: Vladimir Oltean @ 2022-12-12 18:48 UTC (permalink / raw)
  To: Colin Foster
  Cc: linux-renesas-soc, linux-mediatek, linux-arm-kernel,
	linux-kernel, devicetree, netdev, John Crispin,
	Alexandre Belloni, Claudiu Manoil, Marek Vasut, Sean Wang,
	DENG Qingfang, Landen Chao, nç ÜNAL, Vivien Didelot,
	Clément Léger, Alvin Šipraga, Linus Walleij,
	UNGLinuxDriver, Woojung Huh, Matthias Brugger, Kurt Kanzenbach,
	Krzysztof Kozlowski, Rob Herring, Paolo Abeni, Jakub Kicinski,
	Eric Dumazet, David S. Miller, Florian Fainelli, Andrew Lunn,
	George McCollister, Rob Herring

On Fri, Dec 09, 2022 at 07:30:27PM -0800, Colin Foster wrote:
> DSA switches can fall into one of two categories: switches where all ports
> follow standard '(ethernet-)?port' properties, and switches that have
> additional properties for the ports.
> 
> The scenario where DSA ports are all standardized can be handled by
> switches with a reference to the new 'dsa.yaml#/$defs/ethernet-ports'.
> 
> The scenario where DSA ports require additional properties can reference
> '$dsa.yaml#' directly. This will allow switches to reference these standard
> definitions of the DSA switch, but add additional properties under the port
> nodes.
> 
> Suggested-by: Rob Herring <robh@kernel.org>
> Signed-off-by: Colin Foster <colin.foster@in-advantage.com>
> Reviewed-by: Linus Walleij <linus.walleij@linaro.org>
> Reviewed-by: Florian Fainelli <f.fainelli@gmail.com>
> Reviewed-by: Rob Herring <robh@kernel.org>
> Acked-by: Alvin Šipraga <alsi@bang-olufsen.dk> # realtek
> Acked-by: Arınç ÜNAL <arinc.unal@arinc9.com>
> ---

Reviewed-by: Vladimir Oltean <olteanv@gmail.com>

^ permalink raw reply	[flat|nested] 33+ messages in thread

* Re: [PATCH v5 net-next 05/10] dt-bindings: net: dsa: allow additional ethernet-port properties
  2022-12-10  3:30 ` [PATCH v5 net-next 05/10] dt-bindings: net: dsa: allow additional ethernet-port properties Colin Foster
@ 2022-12-12 18:51   ` Vladimir Oltean
  0 siblings, 0 replies; 33+ messages in thread
From: Vladimir Oltean @ 2022-12-12 18:51 UTC (permalink / raw)
  To: Colin Foster
  Cc: linux-renesas-soc, linux-mediatek, linux-arm-kernel,
	linux-kernel, devicetree, netdev, John Crispin,
	Alexandre Belloni, Claudiu Manoil, Marek Vasut, Sean Wang,
	DENG Qingfang, Landen Chao, nç ÜNAL, Vivien Didelot,
	Clément Léger, Alvin Šipraga, Linus Walleij,
	UNGLinuxDriver, Woojung Huh, Matthias Brugger, Kurt Kanzenbach,
	Krzysztof Kozlowski, Rob Herring, Paolo Abeni, Jakub Kicinski,
	Eric Dumazet, David S. Miller, Florian Fainelli, Andrew Lunn,
	George McCollister, Rob Herring

On Fri, Dec 09, 2022 at 07:30:28PM -0800, Colin Foster wrote:
> Explicitly allow additional properties for both the ethernet-port and
> ethernet-ports properties. This specifically will allow the qca8k.yaml
> binding to use shared properties.
> 
> Signed-off-by: Colin Foster <colin.foster@in-advantage.com>
> Reviewed-by: Florian Fainelli <f.fainelli@gmail.com>
> Reviewed-by: Rob Herring <robh@kernel.org>
> ---

Reviewed-by: Vladimir Oltean <olteanv@gmail.com>

^ permalink raw reply	[flat|nested] 33+ messages in thread

* Re: [PATCH v5 net-next 06/10] dt-bindings: net: dsa: qca8k: utilize shared dsa.yaml
  2022-12-10  3:30 ` [PATCH v5 net-next 06/10] dt-bindings: net: dsa: qca8k: utilize shared dsa.yaml Colin Foster
@ 2022-12-12 18:52   ` Vladimir Oltean
  0 siblings, 0 replies; 33+ messages in thread
From: Vladimir Oltean @ 2022-12-12 18:52 UTC (permalink / raw)
  To: Colin Foster
  Cc: linux-renesas-soc, linux-mediatek, linux-arm-kernel,
	linux-kernel, devicetree, netdev, John Crispin,
	Alexandre Belloni, Claudiu Manoil, Marek Vasut, Sean Wang,
	DENG Qingfang, Landen Chao, nç ÜNAL, Vivien Didelot,
	Clément Léger, Alvin Šipraga, Linus Walleij,
	UNGLinuxDriver, Woojung Huh, Matthias Brugger, Kurt Kanzenbach,
	Krzysztof Kozlowski, Rob Herring, Paolo Abeni, Jakub Kicinski,
	Eric Dumazet, David S. Miller, Florian Fainelli, Andrew Lunn,
	George McCollister, Rob Herring

On Fri, Dec 09, 2022 at 07:30:29PM -0800, Colin Foster wrote:
> The dsa.yaml binding contains duplicated bindings for address and size
> cells, as well as the reference to dsa-port.yaml. Instead of duplicating
> this information, remove the reference to dsa-port.yaml and include the
> full reference to dsa.yaml.
> 
> Signed-off-by: Colin Foster <colin.foster@in-advantage.com>
> Suggested-by: Vladimir Oltean <olteanv@gmail.com>
> Reviewed-by: Florian Fainelli <f.fainelli@gmail.com>
> Reviewed-by: Rob Herring <robh@kernel.org>
> ---

Reviewed-by: Vladimir Oltean <olteanv@gmail.com>

^ permalink raw reply	[flat|nested] 33+ messages in thread

* Re: [PATCH v5 net-next 07/10] dt-bindings: net: dsa: mediatek,mt7530: remove unnecessary dsa-port reference
  2022-12-10  3:30 ` [PATCH v5 net-next 07/10] dt-bindings: net: dsa: mediatek,mt7530: remove unnecessary dsa-port reference Colin Foster
@ 2022-12-12 18:53   ` Vladimir Oltean
  0 siblings, 0 replies; 33+ messages in thread
From: Vladimir Oltean @ 2022-12-12 18:53 UTC (permalink / raw)
  To: Colin Foster
  Cc: linux-renesas-soc, linux-mediatek, linux-arm-kernel,
	linux-kernel, devicetree, netdev, John Crispin,
	Alexandre Belloni, Claudiu Manoil, Marek Vasut, Sean Wang,
	DENG Qingfang, Landen Chao, nç ÜNAL, Vivien Didelot,
	Clément Léger, Alvin Šipraga, Linus Walleij,
	UNGLinuxDriver, Woojung Huh, Matthias Brugger, Kurt Kanzenbach,
	Krzysztof Kozlowski, Rob Herring, Paolo Abeni, Jakub Kicinski,
	Eric Dumazet, David S. Miller, Florian Fainelli, Andrew Lunn,
	George McCollister, Rob Herring

On Fri, Dec 09, 2022 at 07:30:30PM -0800, Colin Foster wrote:
> dsa.yaml contains a reference to dsa-port.yaml, so a duplicate reference to
> the binding isn't necessary. Remove this unnecessary reference.
> 
> Signed-off-by: Colin Foster <colin.foster@in-advantage.com>
> Suggested-by: Vladimir Oltean <olteanv@gmail.com>
> Reviewed-by: Arınç ÜNAL <arinc.unal@arinc9.com>
> Reviewed-by: Florian Fainelli <f.fainelli@gmail.com>
> Reviewed-by: Rob Herring <robh@kernel.org>
> ---

Reviewed-by: Vladimir Oltean <olteanv@gmail.com>

^ permalink raw reply	[flat|nested] 33+ messages in thread

* Re: [PATCH v5 net-next 08/10] dt-bindings: net: add generic ethernet-switch
  2022-12-10  3:30 ` [PATCH v5 net-next 08/10] dt-bindings: net: add generic ethernet-switch Colin Foster
@ 2022-12-12 18:54   ` Vladimir Oltean
  0 siblings, 0 replies; 33+ messages in thread
From: Vladimir Oltean @ 2022-12-12 18:54 UTC (permalink / raw)
  To: Colin Foster
  Cc: linux-renesas-soc, linux-mediatek, linux-arm-kernel,
	linux-kernel, devicetree, netdev, John Crispin,
	Alexandre Belloni, Claudiu Manoil, Marek Vasut, Sean Wang,
	DENG Qingfang, Landen Chao, nç ÜNAL, Vivien Didelot,
	Clément Léger, Alvin Šipraga, Linus Walleij,
	UNGLinuxDriver, Woojung Huh, Matthias Brugger, Kurt Kanzenbach,
	Krzysztof Kozlowski, Rob Herring, Paolo Abeni, Jakub Kicinski,
	Eric Dumazet, David S. Miller, Florian Fainelli, Andrew Lunn,
	George McCollister, Rob Herring

On Fri, Dec 09, 2022 at 07:30:31PM -0800, Colin Foster wrote:
> The dsa.yaml bindings had references that can apply to non-dsa switches. To
> prevent duplication of this information, keep the dsa-specific information
> inside dsa.yaml and move the remaining generic information to the newly
> created ethernet-switch.yaml.
> 
> Signed-off-by: Colin Foster <colin.foster@in-advantage.com>
> Suggested-by: Vladimir Oltean <olteanv@gmail.com>
> Reviewed-by: Florian Fainelli <f.fainelli@gmail.com>
> Reviewed-by: Rob Herring <robh@kernel.org>
> ---

Reviewed-by: Vladimir Oltean <olteanv@gmail.com>

^ permalink raw reply	[flat|nested] 33+ messages in thread

* Re: [PATCH v5 net-next 04/10] dt-bindings: net: dsa: utilize base definitions for standard dsa switches
  2022-12-12 16:51         ` Rob Herring
@ 2022-12-12 18:55           ` Colin Foster
  2022-12-22 20:08             ` Colin Foster
  0 siblings, 1 reply; 33+ messages in thread
From: Colin Foster @ 2022-12-12 18:55 UTC (permalink / raw)
  To: Rob Herring
  Cc: Arınç ÜNAL, linux-renesas-soc, linux-mediatek,
	linux-arm-kernel, linux-kernel, devicetree, netdev, John Crispin,
	Alexandre Belloni, Claudiu Manoil, Marek Vasut, Sean Wang,
	DENG Qingfang, Landen Chao, Vivien Didelot,
	Clément Léger, Alvin Šipraga, Linus Walleij,
	UNGLinuxDriver, Woojung Huh, Matthias Brugger, Kurt Kanzenbach,
	Krzysztof Kozlowski, Paolo Abeni, Jakub Kicinski, Eric Dumazet,
	David S. Miller, Vladimir Oltean, Florian Fainelli, Andrew Lunn,
	George McCollister

Hi Rob, Arınç,

On Mon, Dec 12, 2022 at 10:51:47AM -0600, Rob Herring wrote:
> On Mon, Dec 12, 2022 at 12:28:06PM +0300, Arınç ÜNAL wrote:
> > On 10.12.2022 21:02, Colin Foster wrote:
> > > Hi Arınç,
> > > On Sat, Dec 10, 2022 at 07:24:42PM +0300, Arınç ÜNAL wrote:
> > > > On 10.12.2022 06:30, Colin Foster wrote:
> > > --- a/Documentation/devicetree/bindings/net/dsa/mediatek,mt7530.yaml
> > > +++ b/Documentation/devicetree/bindings/net/dsa/mediatek,mt7530.yam
> > > @@ -156,8 +156,7 @@ patternProperties:
> > > 
> > >       patternProperties:
> > >         "^(ethernet-)?port@[0-9]+$":
> > > -        type: object
> > > -
> > > +        $ref: dsa-port.yaml#
> > >           properties:
> > >             reg:
> > >               description:
> > > @@ -165,7 +164,6 @@ patternProperties:
> > >                 for user ports.
> > > 
> > >           allOf:
> > > -          - $ref: dsa-port.yaml#
> > >             - if:
> > >                 required: [ ethernet ]
> > >               then:
> > > 
> > > 
> > > 
> > > This one has me [still] scratching my head...
> > 
> > Right there with you. In addition to this, having or deleting type object
> > on/from "^(ethernet-)?ports$" and "^(ethernet-)?port@[0-9]+$" on dsa.yaml
> > doesn't cause any warnings (checked with make dt_binding_check
> > DT_SCHEMA_FILES=net/dsa) which makes me question why it's there in the first
> > place.
> 
> 
> That check probably doesn't consider an ref being under an 'allOf'. 
> Perhaps what is missing in understanding is every schema at the 
> top-level has an implicit 'type: object'. But nothing is ever implicit 
> in json-schema which will silently ignore keywords which don't make 
> sense for an instance type. Instead of a bunch of boilerplate, the 
> processed schema has 'type' added in lots of cases such as this one.
> 
> Rob

What do you suggest on this set? I think this is the only outstanding
issue, and Jakub brought up the possibility of applying end of today
(maybe 5-6 hours from now in the US).

It seems like there's an issue with the dt_bindings_check that causes
the "allOf: $ref" to throw a warning when it shouldn't. So removing the
"type: object" was supposed to be correct, but throws warnings.

It seems like keeping this patch as-is and updating it when the check
gets fixed might be an acceptable path, but I'd understand if you
disagree and prefer a resubmission.

^ permalink raw reply	[flat|nested] 33+ messages in thread

* Re: [PATCH v5 net-next 00/10] dt-binding preparation for ocelot switches
  2022-12-12 18:29 ` [PATCH v5 net-next 00/10] dt-binding preparation for ocelot switches Jakub Kicinski
@ 2022-12-12 19:03   ` Colin Foster
  2022-12-13  3:34     ` Jakub Kicinski
  0 siblings, 1 reply; 33+ messages in thread
From: Colin Foster @ 2022-12-12 19:03 UTC (permalink / raw)
  To: Jakub Kicinski
  Cc: Krzysztof Kozlowski, Rob Herring, linux-renesas-soc,
	linux-mediatek, linux-arm-kernel, linux-kernel, devicetree,
	netdev, John Crispin, Alexandre Belloni, Claudiu Manoil,
	Marek Vasut, Sean Wang, DENG Qingfang, Landen Chao,
	Vivien Didelot, Clément Léger, Alvin Šipraga,
	Linus Walleij, UNGLinuxDriver, Woojung Huh, Matthias Brugger,
	Kurt Kanzenbach, Paolo Abeni, Eric Dumazet, David S. Miller,
	Vladimir Oltean, Florian Fainelli, Andrew Lunn,
	George McCollister

On Mon, Dec 12, 2022 at 10:29:58AM -0800, Jakub Kicinski wrote:
> On Fri,  9 Dec 2022 19:30:23 -0800 Colin Foster wrote:
> > Ocelot switches have the abilitiy to be used internally via
> > memory-mapped IO or externally via SPI or PCIe. This brings up issues
> > for documentation, where the same chip might be accessed internally in a
> > switchdev manner, or externally in a DSA configuration. This patch set
> > is perparation to bring DSA functionality to the VSC7512, utilizing as
> > much as possible with an almost identical VSC7514 chip.
> > 
> > This patch set changed quite a bit from v2, so I'll omit the background
> > of how those sets came to be. Rob offered a lot of very useful guidance.
> > My thanks.
> > 
> > At the end of the day, with this patch set, there should be a framework
> > to document Ocelot switches (and any switch) in scenarios where they can
> > be controlled internally (ethernet-switch) or externally (dsa-switch).
> 
> A lot of carried over review tags here, so please let me know if
> there's anything that needs to be reviewed here, otherwise I'd like 
> to merge the series for 6.2 by the end of the day.

I just responded to patch 4, which has a small (?) outstanding issue /
discussion. I asked Rob and Arınç's opinions as to whether it should
hold up this series. Everything else is good to go, as far as I
understand.

^ permalink raw reply	[flat|nested] 33+ messages in thread

* Re: [PATCH v5 net-next 00/10] dt-binding preparation for ocelot switches
  2022-12-12 19:03   ` Colin Foster
@ 2022-12-13  3:34     ` Jakub Kicinski
  0 siblings, 0 replies; 33+ messages in thread
From: Jakub Kicinski @ 2022-12-13  3:34 UTC (permalink / raw)
  To: Colin Foster
  Cc: Krzysztof Kozlowski, Rob Herring, linux-renesas-soc,
	linux-mediatek, linux-arm-kernel, linux-kernel, devicetree,
	netdev, John Crispin, Alexandre Belloni, Claudiu Manoil,
	Marek Vasut, Sean Wang, DENG Qingfang, Landen Chao,
	Vivien Didelot, Clément Léger, Alvin Šipraga,
	Linus Walleij, UNGLinuxDriver, Woojung Huh, Matthias Brugger,
	Kurt Kanzenbach, Paolo Abeni, Eric Dumazet, David S. Miller,
	Vladimir Oltean, Florian Fainelli, Andrew Lunn,
	George McCollister

On Mon, 12 Dec 2022 11:03:09 -0800 Colin Foster wrote:
> > A lot of carried over review tags here, so please let me know if
> > there's anything that needs to be reviewed here, otherwise I'd like 
> > to merge the series for 6.2 by the end of the day.  
> 
> I just responded to patch 4, which has a small (?) outstanding issue /
> discussion. I asked Rob and Arınç's opinions as to whether it should
> hold up this series. Everything else is good to go, as far as I
> understand.

No reply :( Since this is "just" DT bindings (as in shouldn't
functionally break anything) - if Rob gives us a green light
we can still pull it into the mid-merge window follow up.
But I'll drop it from pw for now so it doesn't distract us.

^ permalink raw reply	[flat|nested] 33+ messages in thread

* Re: [PATCH v5 net-next 04/10] dt-bindings: net: dsa: utilize base definitions for standard dsa switches
  2022-12-12 18:55           ` Colin Foster
@ 2022-12-22 20:08             ` Colin Foster
  2022-12-23  1:55               ` Jakub Kicinski
  0 siblings, 1 reply; 33+ messages in thread
From: Colin Foster @ 2022-12-22 20:08 UTC (permalink / raw)
  To: Rob Herring
  Cc: Arınç ÜNAL, linux-renesas-soc, linux-mediatek,
	linux-arm-kernel, linux-kernel, devicetree, netdev, John Crispin,
	Alexandre Belloni, Claudiu Manoil, Marek Vasut, Sean Wang,
	DENG Qingfang, Landen Chao, Vivien Didelot,
	Clément Léger, Alvin Šipraga, Linus Walleij,
	UNGLinuxDriver, Woojung Huh, Matthias Brugger, Kurt Kanzenbach,
	Krzysztof Kozlowski, Paolo Abeni, Jakub Kicinski, Eric Dumazet,
	David S. Miller, Vladimir Oltean, Florian Fainelli, Andrew Lunn,
	George McCollister

On Mon, Dec 12, 2022 at 10:55:19AM -0800, Colin Foster wrote:
> Hi Rob, Arınç,
> 
> On Mon, Dec 12, 2022 at 10:51:47AM -0600, Rob Herring wrote:
> > On Mon, Dec 12, 2022 at 12:28:06PM +0300, Arınç ÜNAL wrote:
> > > On 10.12.2022 21:02, Colin Foster wrote:
> > > > Hi Arınç,
> > > > On Sat, Dec 10, 2022 at 07:24:42PM +0300, Arınç ÜNAL wrote:
> > > > > On 10.12.2022 06:30, Colin Foster wrote:
> > > > --- a/Documentation/devicetree/bindings/net/dsa/mediatek,mt7530.yaml
> > > > +++ b/Documentation/devicetree/bindings/net/dsa/mediatek,mt7530.yam
> > > > @@ -156,8 +156,7 @@ patternProperties:
> > > > 
> > > >       patternProperties:
> > > >         "^(ethernet-)?port@[0-9]+$":
> > > > -        type: object
> > > > -
> > > > +        $ref: dsa-port.yaml#
> > > >           properties:
> > > >             reg:
> > > >               description:
> > > > @@ -165,7 +164,6 @@ patternProperties:
> > > >                 for user ports.
> > > > 
> > > >           allOf:
> > > > -          - $ref: dsa-port.yaml#
> > > >             - if:
> > > >                 required: [ ethernet ]
> > > >               then:
> > > > 
> > > > 
> > > > 
> > > > This one has me [still] scratching my head...
> > > 
> > > Right there with you. In addition to this, having or deleting type object
> > > on/from "^(ethernet-)?ports$" and "^(ethernet-)?port@[0-9]+$" on dsa.yaml
> > > doesn't cause any warnings (checked with make dt_binding_check
> > > DT_SCHEMA_FILES=net/dsa) which makes me question why it's there in the first
> > > place.
> > 
> > 
> > That check probably doesn't consider an ref being under an 'allOf'. 
> > Perhaps what is missing in understanding is every schema at the 
> > top-level has an implicit 'type: object'. But nothing is ever implicit 
> > in json-schema which will silently ignore keywords which don't make 
> > sense for an instance type. Instead of a bunch of boilerplate, the 
> > processed schema has 'type' added in lots of cases such as this one.
> > 
> > Rob
> 
> What do you suggest on this set? I think this is the only outstanding
> issue, and Jakub brought up the possibility of applying end of today
> (maybe 5-6 hours from now in the US).
> 
> It seems like there's an issue with the dt_bindings_check that causes
> the "allOf: $ref" to throw a warning when it shouldn't. So removing the
> "type: object" was supposed to be correct, but throws warnings.
> 
> It seems like keeping this patch as-is and updating it when the check
> gets fixed might be an acceptable path, but I'd understand if you
> disagree and prefer a resubmission.

Heads up on my plan for this. I plan to re-submit this on Monday after
the merge window with the change where I move the $ref: dsa-port.yaml#
to outside the allOf: section, and remove the object type as the above
code suggests. Hopefully that's the right step to take.

^ permalink raw reply	[flat|nested] 33+ messages in thread

* Re: [PATCH v5 net-next 04/10] dt-bindings: net: dsa: utilize base definitions for standard dsa switches
  2022-12-22 20:08             ` Colin Foster
@ 2022-12-23  1:55               ` Jakub Kicinski
  0 siblings, 0 replies; 33+ messages in thread
From: Jakub Kicinski @ 2022-12-23  1:55 UTC (permalink / raw)
  To: Colin Foster
  Cc: Rob Herring, Arınç ÜNAL, linux-renesas-soc,
	linux-mediatek, linux-arm-kernel, linux-kernel, devicetree,
	netdev, John Crispin, Alexandre Belloni, Claudiu Manoil,
	Marek Vasut, Sean Wang, DENG Qingfang, Landen Chao,
	Vivien Didelot, Clément Léger, Alvin Šipraga,
	Linus Walleij, UNGLinuxDriver, Woojung Huh, Matthias Brugger,
	Kurt Kanzenbach, Krzysztof Kozlowski, Paolo Abeni, Eric Dumazet,
	David S. Miller, Vladimir Oltean, Florian Fainelli, Andrew Lunn,
	George McCollister

On Thu, 22 Dec 2022 12:08:30 -0800 Colin Foster wrote:
> Heads up on my plan for this. I plan to re-submit this on Monday after
> the merge window with the change where I move the $ref: dsa-port.yaml#
> to outside the allOf: section, and remove the object type as the above
> code suggests. Hopefully that's the right step to take.

FWIW in case you mean Mon, Dec 26th and net-next -- we extended 
the period of net-next being closed until Jan:
https://lore.kernel.org/all/20221215092531.133ce653@kernel.org/

^ permalink raw reply	[flat|nested] 33+ messages in thread

end of thread, other threads:[~2022-12-23  1:55 UTC | newest]

Thread overview: 33+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2022-12-10  3:30 [PATCH v5 net-next 00/10] dt-binding preparation for ocelot switches Colin Foster
2022-12-10  3:30 ` [PATCH v5 net-next 01/10] dt-bindings: dsa: sync with maintainers Colin Foster
2022-12-10 10:18   ` Kurt Kanzenbach
2022-12-11 22:58     ` Vladimir Oltean
2022-12-12  7:51       ` Kurt Kanzenbach
2022-12-12 10:55   ` Vladimir Oltean
2022-12-12 17:13   ` Rob Herring
2022-12-10  3:30 ` [PATCH v5 net-next 02/10] dt-bindings: net: dsa: sf2: fix brcm,use-bcm-hdr documentation Colin Foster
2022-12-12 18:46   ` Vladimir Oltean
2022-12-10  3:30 ` [PATCH v5 net-next 03/10] dt-bindings: net: dsa: qca8k: remove address-cells and size-cells from switch node Colin Foster
2022-12-12 18:46   ` Vladimir Oltean
2022-12-10  3:30 ` [PATCH v5 net-next 04/10] dt-bindings: net: dsa: utilize base definitions for standard dsa switches Colin Foster
2022-12-10 16:24   ` Arınç ÜNAL
2022-12-10 18:02     ` Colin Foster
2022-12-12  9:28       ` Arınç ÜNAL
2022-12-12 16:51         ` Rob Herring
2022-12-12 18:55           ` Colin Foster
2022-12-22 20:08             ` Colin Foster
2022-12-23  1:55               ` Jakub Kicinski
2022-12-12 18:48   ` Vladimir Oltean
2022-12-10  3:30 ` [PATCH v5 net-next 05/10] dt-bindings: net: dsa: allow additional ethernet-port properties Colin Foster
2022-12-12 18:51   ` Vladimir Oltean
2022-12-10  3:30 ` [PATCH v5 net-next 06/10] dt-bindings: net: dsa: qca8k: utilize shared dsa.yaml Colin Foster
2022-12-12 18:52   ` Vladimir Oltean
2022-12-10  3:30 ` [PATCH v5 net-next 07/10] dt-bindings: net: dsa: mediatek,mt7530: remove unnecessary dsa-port reference Colin Foster
2022-12-12 18:53   ` Vladimir Oltean
2022-12-10  3:30 ` [PATCH v5 net-next 08/10] dt-bindings: net: add generic ethernet-switch Colin Foster
2022-12-12 18:54   ` Vladimir Oltean
2022-12-10  3:30 ` [PATCH v5 net-next 09/10] dt-bindings: net: add generic ethernet-switch-port binding Colin Foster
2022-12-10  3:30 ` [PATCH v5 net-next 10/10] dt-bindings: net: mscc,vsc7514-switch: utilize generic ethernet-switch.yaml Colin Foster
2022-12-12 18:29 ` [PATCH v5 net-next 00/10] dt-binding preparation for ocelot switches Jakub Kicinski
2022-12-12 19:03   ` Colin Foster
2022-12-13  3:34     ` Jakub Kicinski

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