[net-next,RFC,02/14] dt-bindings: net: move PHY modes to common PHY mode types definition
Commit Message
Move PHY modes from ethernet-controller schema to dedicated common PHY
mode types definition. This is needed to have a centralized place to
define PHY interface mode and permit usage and reference of these modes
in other schemas.
Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
---
.../bindings/net/ethernet-controller.yaml | 47 +------
.../bindings/net/ethernet-phy-mode-types.yaml | 132 ++++++++++++++++++
2 files changed, 133 insertions(+), 46 deletions(-)
create mode 100644 Documentation/devicetree/bindings/net/ethernet-phy-mode-types.yaml
Comments
On Mon, 20 Nov 2023 14:50:29 +0100, Christian Marangi wrote:
> Move PHY modes from ethernet-controller schema to dedicated common PHY
> mode types definition. This is needed to have a centralized place to
> define PHY interface mode and permit usage and reference of these modes
> in other schemas.
>
> Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
> ---
> .../bindings/net/ethernet-controller.yaml | 47 +------
> .../bindings/net/ethernet-phy-mode-types.yaml | 132 ++++++++++++++++++
> 2 files changed, 133 insertions(+), 46 deletions(-)
> create mode 100644 Documentation/devicetree/bindings/net/ethernet-phy-mode-types.yaml
>
My bot found errors running 'make DT_CHECKER_FLAGS=-m dt_binding_check'
on your patch (DT_CHECKER_FLAGS is new in v5.13):
yamllint warnings/errors:
./Documentation/devicetree/bindings/net/ethernet-phy-mode-types.yaml:21:9: [warning] wrong indentation: expected 10 but found 8 (indentation)
dtschema/dtc warnings/errors:
/builds/robherring/dt-review-ci/linux/Documentation/devicetree/bindings/net/ethernet-phy-mode-types.yaml: 'oneOf' conditional failed, one must be fixed:
'unevaluatedProperties' is a required property
'additionalProperties' is a required property
hint: Either unevaluatedProperties or additionalProperties must be present
from schema $id: http://devicetree.org/meta-schemas/core.yaml#
/builds/robherring/dt-review-ci/linux/Documentation/devicetree/bindings/net/ethernet-phy-mode-types.yaml: 'anyOf' conditional failed, one must be fixed:
'properties' is a required property
'patternProperties' is a required property
hint: Metaschema for devicetree binding documentation
from schema $id: http://devicetree.org/meta-schemas/core.yaml#
doc reference errors (make refcheckdocs):
See https://patchwork.ozlabs.org/project/devicetree-bindings/patch/20231120135041.15259-3-ansuelsmth@gmail.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.
On Mon, Nov 20, 2023 at 02:50:29PM +0100, Christian Marangi wrote:
> Move PHY modes from ethernet-controller schema to dedicated common PHY
> mode types definition. This is needed to have a centralized place to
> define PHY interface mode and permit usage and reference of these modes
> in other schemas.
>
> Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
> ---
> .../bindings/net/ethernet-controller.yaml | 47 +------
> .../bindings/net/ethernet-phy-mode-types.yaml | 132 ++++++++++++++++++
> 2 files changed, 133 insertions(+), 46 deletions(-)
> create mode 100644 Documentation/devicetree/bindings/net/ethernet-phy-mode-types.yaml
>
> diff --git a/Documentation/devicetree/bindings/net/ethernet-controller.yaml b/Documentation/devicetree/bindings/net/ethernet-controller.yaml
> index 9f6a5ccbcefe..40c1daff2a48 100644
> --- a/Documentation/devicetree/bindings/net/ethernet-controller.yaml
> +++ b/Documentation/devicetree/bindings/net/ethernet-controller.yaml
> @@ -55,55 +55,10 @@ properties:
> const: mac-address
>
> phy-connection-type:
> + $ref: /schemas/net/ethernet-phy-mode-types.yaml#definitions/phy-connection-type
You need a '/' after '#' or it is not a JSON pointer.
> description:
> Specifies interface type between the Ethernet device and a physical
> layer (PHY) device.
> - enum:
> - # There is not a standard bus between the MAC and the PHY,
> - # something proprietary is being used to embed the PHY in the
> - # MAC.
> - - internal
> - - mii
> - - gmii
> - - sgmii
> - - psgmii
> - - qsgmii
> - - qusgmii
> - - tbi
> - - rev-mii
> - - rmii
> - - rev-rmii
> - - moca
> -
> - # RX and TX delays are added by the MAC when required
> - - rgmii
> -
> - # RGMII with internal RX and TX delays provided by the PHY,
> - # the MAC should not add the RX or TX delays in this case
> - - rgmii-id
> -
> - # RGMII with internal RX delay provided by the PHY, the MAC
> - # should not add an RX delay in this case
> - - rgmii-rxid
> -
> - # RGMII with internal TX delay provided by the PHY, the MAC
> - # should not add an TX delay in this case
> - - rgmii-txid
> - - rtbi
> - - smii
> - - xgmii
> - - trgmii
> - - 1000base-x
> - - 2500base-x
> - - 5gbase-r
> - - rxaui
> - - xaui
> -
> - # 10GBASE-KR, XFI, SFI
> - - 10gbase-kr
> - - usxgmii
> - - 10gbase-r
> - - 25gbase-r
>
> phy-mode:
> $ref: "#/properties/phy-connection-type"
> diff --git a/Documentation/devicetree/bindings/net/ethernet-phy-mode-types.yaml b/Documentation/devicetree/bindings/net/ethernet-phy-mode-types.yaml
> new file mode 100644
> index 000000000000..6d15743b4ffa
> --- /dev/null
> +++ b/Documentation/devicetree/bindings/net/ethernet-phy-mode-types.yaml
> @@ -0,0 +1,132 @@
> +# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
> +%YAML 1.2
> +---
> +$id: http://devicetree.org/schemas/net/ethernet-phy-mode-types.yaml#
> +$schema: http://devicetree.org/meta-schemas/core.yaml#
> +
> +title: Ethernet PHY Common Mode Types
> +
> +maintainers:
> + - David S. Miller <davem@davemloft.net>
> +
> +definitions:
Use '$defs'
'definitions' is special in that we don't process it at all. That's
probably why you ended up with this overly complicated schema below.
But really, there's no need to use $defs or definitions at all here.
Just put it under 'properties' And move the references up a level (i.e.
to the node, not a property).
> + phy-connection-type:
> + # const: "internal"
> + allOf:
> + - $ref: /schemas/types.yaml#/definitions/string
> + - oneOf:
> + # There is not a standard bus between the MAC and the PHY,
> + # something proprietary is being used to embed the PHY in the
> + # MAC.
> + - items:
'items' is for arrays, but you just said this is a 'string', not
'string-array'.
> + - type: string
Already covered by the type $ref.
This can all be expressed with just 1 'enum' as it was before.
> + const: internal
> + - items:
> + - type: string
> + const: mii
> + - items:
> + - type: string
> + const: gmii
> + - items:
> + - type: string
> + const: sgmii
> + - items:
> + - type: string
> + const: psgmii
> + - items:
> + - type: string
> + const: qsgmii
> + - items:
> + - type: string
> + const: qusgmii
> + - items:
> + - type: string
> + const: tbi
> + - items:
> + - type: string
> + const: rev-mii
> + - items:
> + - type: string
> + const: rmii
> + - items:
> + - type: string
> + const: rev-rmii
> + - items:
> + - type: string
> + const: moca
> +
> + # RX and TX delays are added by the MAC when required
> + - items:
> + - type: string
> + const: rgmii
> +
> + # RGMII with internal RX and TX delays provided by the PHY,
> + # the MAC should not add the RX or TX delays in this case
> + - items:
> + - type: string
> + const: rgmii-id
> +
> + # RGMII with internal RX delay provided by the PHY, the MAC
> + # should not add an RX delay in this case
> + - items:
> + - type: string
> + const: rgmii-rxid
> +
> + # RGMII with internal TX delay provided by the PHY, the MAC
> + # should not add an TX delay in this case
> + - items:
> + - type: string
> + const: rgmii-txid
> +
> + - items:
> + - type: string
> + const: rtbi
> +
> + - items:
> + - type: string
> + const: smii
> +
> + - items:
> + - type: string
> + const: xgmii
> +
> + - items:
> + - type: string
> + const: trgmii
> +
> + - items:
> + - type: string
> + const: 1000base-x
> +
> + - items:
> + - type: string
> + const: 2500base-x
> +
> + - items:
> + - type: string
> + const: 5gbase-r
> +
> + - items:
> + - type: string
> + const: rxaui
> +
> + - items:
> + - type: string
> + const: xaui
> +
> + # 10GBASE-KR, XFI, SFI
> + - items:
> + - type: string
> + const: 10gbase-kr
> +
> + - items:
> + - type: string
> + const: usxgmii
> +
> + - items:
> + - type: string
> + const: 10gbase-r
> +
> + - items:
> + - type: string
> + const: 25gbase-r
> --
> 2.40.1
>
@@ -55,55 +55,10 @@ properties:
const: mac-address
phy-connection-type:
+ $ref: /schemas/net/ethernet-phy-mode-types.yaml#definitions/phy-connection-type
description:
Specifies interface type between the Ethernet device and a physical
layer (PHY) device.
- enum:
- # There is not a standard bus between the MAC and the PHY,
- # something proprietary is being used to embed the PHY in the
- # MAC.
- - internal
- - mii
- - gmii
- - sgmii
- - psgmii
- - qsgmii
- - qusgmii
- - tbi
- - rev-mii
- - rmii
- - rev-rmii
- - moca
-
- # RX and TX delays are added by the MAC when required
- - rgmii
-
- # RGMII with internal RX and TX delays provided by the PHY,
- # the MAC should not add the RX or TX delays in this case
- - rgmii-id
-
- # RGMII with internal RX delay provided by the PHY, the MAC
- # should not add an RX delay in this case
- - rgmii-rxid
-
- # RGMII with internal TX delay provided by the PHY, the MAC
- # should not add an TX delay in this case
- - rgmii-txid
- - rtbi
- - smii
- - xgmii
- - trgmii
- - 1000base-x
- - 2500base-x
- - 5gbase-r
- - rxaui
- - xaui
-
- # 10GBASE-KR, XFI, SFI
- - 10gbase-kr
- - usxgmii
- - 10gbase-r
- - 25gbase-r
phy-mode:
$ref: "#/properties/phy-connection-type"
new file mode 100644
@@ -0,0 +1,132 @@
+# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/net/ethernet-phy-mode-types.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Ethernet PHY Common Mode Types
+
+maintainers:
+ - David S. Miller <davem@davemloft.net>
+
+definitions:
+ phy-connection-type:
+ # const: "internal"
+ allOf:
+ - $ref: /schemas/types.yaml#/definitions/string
+ - oneOf:
+ # There is not a standard bus between the MAC and the PHY,
+ # something proprietary is being used to embed the PHY in the
+ # MAC.
+ - items:
+ - type: string
+ const: internal
+ - items:
+ - type: string
+ const: mii
+ - items:
+ - type: string
+ const: gmii
+ - items:
+ - type: string
+ const: sgmii
+ - items:
+ - type: string
+ const: psgmii
+ - items:
+ - type: string
+ const: qsgmii
+ - items:
+ - type: string
+ const: qusgmii
+ - items:
+ - type: string
+ const: tbi
+ - items:
+ - type: string
+ const: rev-mii
+ - items:
+ - type: string
+ const: rmii
+ - items:
+ - type: string
+ const: rev-rmii
+ - items:
+ - type: string
+ const: moca
+
+ # RX and TX delays are added by the MAC when required
+ - items:
+ - type: string
+ const: rgmii
+
+ # RGMII with internal RX and TX delays provided by the PHY,
+ # the MAC should not add the RX or TX delays in this case
+ - items:
+ - type: string
+ const: rgmii-id
+
+ # RGMII with internal RX delay provided by the PHY, the MAC
+ # should not add an RX delay in this case
+ - items:
+ - type: string
+ const: rgmii-rxid
+
+ # RGMII with internal TX delay provided by the PHY, the MAC
+ # should not add an TX delay in this case
+ - items:
+ - type: string
+ const: rgmii-txid
+
+ - items:
+ - type: string
+ const: rtbi
+
+ - items:
+ - type: string
+ const: smii
+
+ - items:
+ - type: string
+ const: xgmii
+
+ - items:
+ - type: string
+ const: trgmii
+
+ - items:
+ - type: string
+ const: 1000base-x
+
+ - items:
+ - type: string
+ const: 2500base-x
+
+ - items:
+ - type: string
+ const: 5gbase-r
+
+ - items:
+ - type: string
+ const: rxaui
+
+ - items:
+ - type: string
+ const: xaui
+
+ # 10GBASE-KR, XFI, SFI
+ - items:
+ - type: string
+ const: 10gbase-kr
+
+ - items:
+ - type: string
+ const: usxgmii
+
+ - items:
+ - type: string
+ const: 10gbase-r
+
+ - items:
+ - type: string
+ const: 25gbase-r