[PATCH net-next v21 01/14] dt-bindings: net: Introduce the ethernet-connector description

Maxime Chevallier posted 14 patches 2 months, 1 week ago
There is a newer version of this series
[PATCH net-next v21 01/14] dt-bindings: net: Introduce the ethernet-connector description
Posted by Maxime Chevallier 2 months, 1 week ago
The ability to describe the physical ports of Ethernet devices is useful
to describe multi-port devices, as well as to remove any ambiguity with
regard to the nature of the port.

Moreover, describing ports allows for a better description of features
that are tied to connectors, such as PoE through the PSE-PD devices.

Introduce a binding to allow describing the ports, for now with 2
attributes :

 - The number of pairs, which is a quite generic property that allows
   differentating between multiple similar technologies such as BaseT1
   and "regular" BaseT (which usually means BaseT4).

 - The media that can be used on that port, such as BaseT for Twisted
   Copper, BaseC for coax copper, BaseS/L for Fiber, BaseK for backplane
   ethernet, etc. This allows defining the nature of the port, and
   therefore avoids the need for vendor-specific properties such as
   "micrel,fiber-mode" or "ti,fiber-mode".

The port description lives in its own file, as it is intended in the
future to allow describing the ports for phy-less devices.

Reviewed-by: Andrew Lunn <andrew@lunn.ch>
Reviewed-by: Christophe Leroy <christophe.leroy@csgroup.eu>
Reviewed-by: Rob Herring (Arm) <robh@kernel.org>
Tested-by: Christophe Leroy <christophe.leroy@csgroup.eu>
Signed-off-by: Maxime Chevallier <maxime.chevallier@bootlin.com>
---
 .../bindings/net/ethernet-connector.yaml      | 57 +++++++++++++++++++
 .../devicetree/bindings/net/ethernet-phy.yaml | 18 ++++++
 MAINTAINERS                                   |  1 +
 3 files changed, 76 insertions(+)
 create mode 100644 Documentation/devicetree/bindings/net/ethernet-connector.yaml

diff --git a/Documentation/devicetree/bindings/net/ethernet-connector.yaml b/Documentation/devicetree/bindings/net/ethernet-connector.yaml
new file mode 100644
index 000000000000..2ccac24bd8d6
--- /dev/null
+++ b/Documentation/devicetree/bindings/net/ethernet-connector.yaml
@@ -0,0 +1,57 @@
+# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/net/ethernet-connector.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Generic Ethernet Connector
+
+maintainers:
+  - Maxime Chevallier <maxime.chevallier@bootlin.com>
+
+description:
+  An Ethernet Connector represents the output of a network component such as
+  a PHY, an Ethernet controller with no PHY, or an SFP module.
+
+properties:
+
+  pairs:
+    description:
+      Defines the number of BaseT pairs that are used on the connector.
+    $ref: /schemas/types.yaml#/definitions/uint32
+    enum: [1, 2, 4]
+
+  media:
+    description:
+      The mediums, as defined in 802.3, that can be used on the port.
+    enum:
+      - BaseT
+      - BaseK
+      - BaseS
+      - BaseC
+      - BaseL
+      - BaseD
+      - BaseE
+      - BaseF
+      - BaseV
+      - BaseMLD
+
+required:
+  - media
+
+allOf:
+  - if:
+      properties:
+        media:
+          contains:
+            const: BaseT
+    then:
+      required:
+        - pairs
+    else:
+      properties:
+        pairs: false
+
+additionalProperties: true
+
+...
diff --git a/Documentation/devicetree/bindings/net/ethernet-phy.yaml b/Documentation/devicetree/bindings/net/ethernet-phy.yaml
index bb4c49fc5fd8..58634fee9fc4 100644
--- a/Documentation/devicetree/bindings/net/ethernet-phy.yaml
+++ b/Documentation/devicetree/bindings/net/ethernet-phy.yaml
@@ -281,6 +281,17 @@ properties:
 
     additionalProperties: false
 
+  mdi:
+    type: object
+
+    patternProperties:
+      '^connector-[0-9]+$':
+        $ref: /schemas/net/ethernet-connector.yaml#
+
+        unevaluatedProperties: false
+
+    additionalProperties: false
+
 required:
   - reg
 
@@ -317,5 +328,12 @@ examples:
                     default-state = "keep";
                 };
             };
+            /* Fast Ethernet port, with only 2 pairs wired */
+            mdi {
+                connector-0 {
+                    pairs = <2>;
+                    media = "BaseT";
+                };
+            };
         };
     };
diff --git a/MAINTAINERS b/MAINTAINERS
index 09932ab7e0e8..94dd0a60a552 100644
--- a/MAINTAINERS
+++ b/MAINTAINERS
@@ -9278,6 +9278,7 @@ R:	Russell King <linux@armlinux.org.uk>
 L:	netdev@vger.kernel.org
 S:	Maintained
 F:	Documentation/ABI/testing/sysfs-class-net-phydev
+F:	Documentation/devicetree/bindings/net/ethernet-connector.yaml
 F:	Documentation/devicetree/bindings/net/ethernet-phy.yaml
 F:	Documentation/devicetree/bindings/net/mdio*
 F:	Documentation/devicetree/bindings/net/qca,ar803x.yaml
-- 
2.49.0
Re: [PATCH net-next v21 01/14] dt-bindings: net: Introduce the ethernet-connector description
Posted by Rob Herring (Arm) 2 months, 1 week ago
On Sat, 29 Nov 2025 09:22:13 +0100, Maxime Chevallier wrote:
> The ability to describe the physical ports of Ethernet devices is useful
> to describe multi-port devices, as well as to remove any ambiguity with
> regard to the nature of the port.
> 
> Moreover, describing ports allows for a better description of features
> that are tied to connectors, such as PoE through the PSE-PD devices.
> 
> Introduce a binding to allow describing the ports, for now with 2
> attributes :
> 
>  - The number of pairs, which is a quite generic property that allows
>    differentating between multiple similar technologies such as BaseT1
>    and "regular" BaseT (which usually means BaseT4).
> 
>  - The media that can be used on that port, such as BaseT for Twisted
>    Copper, BaseC for coax copper, BaseS/L for Fiber, BaseK for backplane
>    ethernet, etc. This allows defining the nature of the port, and
>    therefore avoids the need for vendor-specific properties such as
>    "micrel,fiber-mode" or "ti,fiber-mode".
> 
> The port description lives in its own file, as it is intended in the
> future to allow describing the ports for phy-less devices.
> 
> Reviewed-by: Andrew Lunn <andrew@lunn.ch>
> Reviewed-by: Christophe Leroy <christophe.leroy@csgroup.eu>
> Reviewed-by: Rob Herring (Arm) <robh@kernel.org>
> Tested-by: Christophe Leroy <christophe.leroy@csgroup.eu>
> Signed-off-by: Maxime Chevallier <maxime.chevallier@bootlin.com>
> ---
>  .../bindings/net/ethernet-connector.yaml      | 57 +++++++++++++++++++
>  .../devicetree/bindings/net/ethernet-phy.yaml | 18 ++++++
>  MAINTAINERS                                   |  1 +
>  3 files changed, 76 insertions(+)
>  create mode 100644 Documentation/devicetree/bindings/net/ethernet-connector.yaml
> 

My bot found errors running 'make dt_binding_check' on your patch:

yamllint warnings/errors:

dtschema/dtc warnings/errors:
Documentation/devicetree/bindings/thermal/thermal-sensor.example.dtb: /example-0/soc/thermal-sensor@c263000: failed to match any schema with compatible: ['qcom,sdm845-tsens', 'qcom,tsens-v2']
Documentation/devicetree/bindings/thermal/thermal-sensor.example.dtb: /example-0/soc/thermal-sensor@c263000: failed to match any schema with compatible: ['qcom,sdm845-tsens', 'qcom,tsens-v2']
Documentation/devicetree/bindings/thermal/thermal-sensor.example.dtb: /example-0/soc/thermal-sensor@c265000: failed to match any schema with compatible: ['qcom,sdm845-tsens', 'qcom,tsens-v2']
Documentation/devicetree/bindings/thermal/thermal-sensor.example.dtb: /example-0/soc/thermal-sensor@c265000: failed to match any schema with compatible: ['qcom,sdm845-tsens', 'qcom,tsens-v2']

doc reference errors (make refcheckdocs):

See https://patchwork.ozlabs.org/project/devicetree-bindings/patch/20251129082228.454678-2-maxime.chevallier@bootlin.com

The base for the series is generally the latest rc1. A different dependency
should be noted in *this* patch.

If you already ran 'make dt_binding_check' and didn't see the above
error(s), then make sure 'yamllint' is installed and dt-schema is up to
date:

pip3 install dtschema --upgrade

Please check and re-submit after running the above command yourself. Note
that DT_SCHEMA_FILES can be set to your schema file to speed up checking
your schema. However, it must be unset to test all examples with your schema.
Re: [PATCH net-next v21 01/14] dt-bindings: net: Introduce the ethernet-connector description
Posted by Christophe Leroy (CS GROUP) 2 months, 1 week ago

Le 29/11/2025 à 10:21, Rob Herring (Arm) a écrit :
> 
> On Sat, 29 Nov 2025 09:22:13 +0100, Maxime Chevallier wrote:
>> The ability to describe the physical ports of Ethernet devices is useful
>> to describe multi-port devices, as well as to remove any ambiguity with
>> regard to the nature of the port.
>>
>> Moreover, describing ports allows for a better description of features
>> that are tied to connectors, such as PoE through the PSE-PD devices.
>>
>> Introduce a binding to allow describing the ports, for now with 2
>> attributes :
>>
>>   - The number of pairs, which is a quite generic property that allows
>>     differentating between multiple similar technologies such as BaseT1
>>     and "regular" BaseT (which usually means BaseT4).
>>
>>   - The media that can be used on that port, such as BaseT for Twisted
>>     Copper, BaseC for coax copper, BaseS/L for Fiber, BaseK for backplane
>>     ethernet, etc. This allows defining the nature of the port, and
>>     therefore avoids the need for vendor-specific properties such as
>>     "micrel,fiber-mode" or "ti,fiber-mode".
>>
>> The port description lives in its own file, as it is intended in the
>> future to allow describing the ports for phy-less devices.
>>
>> Reviewed-by: Andrew Lunn <andrew@lunn.ch>
>> Reviewed-by: Christophe Leroy <christophe.leroy@csgroup.eu>
>> Reviewed-by: Rob Herring (Arm) <robh@kernel.org>
>> Tested-by: Christophe Leroy <christophe.leroy@csgroup.eu>
>> Signed-off-by: Maxime Chevallier <maxime.chevallier@bootlin.com>
>> ---
>>   .../bindings/net/ethernet-connector.yaml      | 57 +++++++++++++++++++
>>   .../devicetree/bindings/net/ethernet-phy.yaml | 18 ++++++
>>   MAINTAINERS                                   |  1 +
>>   3 files changed, 76 insertions(+)
>>   create mode 100644 Documentation/devicetree/bindings/net/ethernet-connector.yaml
>>
> 
> My bot found errors running 'make dt_binding_check' on your patch:
> 
> yamllint warnings/errors:
> 
> dtschema/dtc warnings/errors:
> Documentation/devicetree/bindings/thermal/thermal-sensor.example.dtb: /example-0/soc/thermal-sensor@c263000: failed to match any schema with compatible: ['qcom,sdm845-tsens', 'qcom,tsens-v2']
> Documentation/devicetree/bindings/thermal/thermal-sensor.example.dtb: /example-0/soc/thermal-sensor@c263000: failed to match any schema with compatible: ['qcom,sdm845-tsens', 'qcom,tsens-v2']
> Documentation/devicetree/bindings/thermal/thermal-sensor.example.dtb: /example-0/soc/thermal-sensor@c265000: failed to match any schema with compatible: ['qcom,sdm845-tsens', 'qcom,tsens-v2']
> Documentation/devicetree/bindings/thermal/thermal-sensor.example.dtb: /example-0/soc/thermal-sensor@c265000: failed to match any schema with compatible: ['qcom,sdm845-tsens', 'qcom,tsens-v2']

Those errors are unrelated to the blamed patch, the patch is about 
Ethernet the error is about thermal-sensors.

Christophe

Re: [PATCH net-next v21 01/14] dt-bindings: net: Introduce the ethernet-connector description
Posted by Rob Herring 2 months ago
On Sat, Nov 29, 2025 at 12:40:15PM +0100, Christophe Leroy (CS GROUP) wrote:
> 
> 
> Le 29/11/2025 à 10:21, Rob Herring (Arm) a écrit :
> > 
> > On Sat, 29 Nov 2025 09:22:13 +0100, Maxime Chevallier wrote:
> > > The ability to describe the physical ports of Ethernet devices is useful
> > > to describe multi-port devices, as well as to remove any ambiguity with
> > > regard to the nature of the port.
> > > 
> > > Moreover, describing ports allows for a better description of features
> > > that are tied to connectors, such as PoE through the PSE-PD devices.
> > > 
> > > Introduce a binding to allow describing the ports, for now with 2
> > > attributes :
> > > 
> > >   - The number of pairs, which is a quite generic property that allows
> > >     differentating between multiple similar technologies such as BaseT1
> > >     and "regular" BaseT (which usually means BaseT4).
> > > 
> > >   - The media that can be used on that port, such as BaseT for Twisted
> > >     Copper, BaseC for coax copper, BaseS/L for Fiber, BaseK for backplane
> > >     ethernet, etc. This allows defining the nature of the port, and
> > >     therefore avoids the need for vendor-specific properties such as
> > >     "micrel,fiber-mode" or "ti,fiber-mode".
> > > 
> > > The port description lives in its own file, as it is intended in the
> > > future to allow describing the ports for phy-less devices.
> > > 
> > > Reviewed-by: Andrew Lunn <andrew@lunn.ch>
> > > Reviewed-by: Christophe Leroy <christophe.leroy@csgroup.eu>
> > > Reviewed-by: Rob Herring (Arm) <robh@kernel.org>
> > > Tested-by: Christophe Leroy <christophe.leroy@csgroup.eu>
> > > Signed-off-by: Maxime Chevallier <maxime.chevallier@bootlin.com>
> > > ---
> > >   .../bindings/net/ethernet-connector.yaml      | 57 +++++++++++++++++++
> > >   .../devicetree/bindings/net/ethernet-phy.yaml | 18 ++++++
> > >   MAINTAINERS                                   |  1 +
> > >   3 files changed, 76 insertions(+)
> > >   create mode 100644 Documentation/devicetree/bindings/net/ethernet-connector.yaml
> > > 
> > 
> > My bot found errors running 'make dt_binding_check' on your patch:
> > 
> > yamllint warnings/errors:
> > 
> > dtschema/dtc warnings/errors:
> > Documentation/devicetree/bindings/thermal/thermal-sensor.example.dtb: /example-0/soc/thermal-sensor@c263000: failed to match any schema with compatible: ['qcom,sdm845-tsens', 'qcom,tsens-v2']
> > Documentation/devicetree/bindings/thermal/thermal-sensor.example.dtb: /example-0/soc/thermal-sensor@c263000: failed to match any schema with compatible: ['qcom,sdm845-tsens', 'qcom,tsens-v2']
> > Documentation/devicetree/bindings/thermal/thermal-sensor.example.dtb: /example-0/soc/thermal-sensor@c265000: failed to match any schema with compatible: ['qcom,sdm845-tsens', 'qcom,tsens-v2']
> > Documentation/devicetree/bindings/thermal/thermal-sensor.example.dtb: /example-0/soc/thermal-sensor@c265000: failed to match any schema with compatible: ['qcom,sdm845-tsens', 'qcom,tsens-v2']
> 
> Those errors are unrelated to the blamed patch, the patch is about Ethernet
> the error is about thermal-sensors.

There was an assumption that the base (generally linux-next if not 
defined) works. That unfortunately was not the case when a patch applied 
introduced a tab char presumably as part of conflict resolution. So now 
almost every patch fails. Applying the months old patch was timed 
perfectly with my disappearing for US holidays as well as the merge 
window because as an added bonus it went into Linus' tree too. Anyways, 
Linus' tree and today's next are fixed now. The automated testing now 
aborts if the base has issues, so this shouldn't happen again (it will 
be for other reasons). So most of the patches aren't getting tested now 
until folks move of the broken linux-next versions.  

And thanks to all this, now Linus wants to change all kernel YAML files 
over to tabs instead. That's been my week...

Rob