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
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.
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
© 2016 - 2025 Red Hat, Inc.