* [PATCH 1/3 net-next v3] net: ethernet: ixp4xx: Add DT bindings
@ 2021-04-23 8:22 Linus Walleij
2021-04-23 14:49 ` Andrew Lunn
2021-04-23 17:58 ` Rob Herring
0 siblings, 2 replies; 5+ messages in thread
From: Linus Walleij @ 2021-04-23 8:22 UTC (permalink / raw)
To: netdev, David S . Miller
Cc: Andrew Lunn, Heiner Kallweit, Russell King, Linus Walleij,
Zoltan HERPAI, Raylynn Knight, devicetree
This adds device tree bindings for the IXP4xx ethernet
controller with optional MDIO bridge.
Cc: Zoltan HERPAI <wigyori@uid0.hu>
Cc: Raylynn Knight <rayknight@me.com>
Cc: devicetree@vger.kernel.org
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
---
ChangeLog v2->v3:
- Designate phy nodes with ethernet-phy@
- Include phy-mode in the schema
ChangeLog v1->v2:
- Add schema for the (optional) embedded MDIO bus inside
the ethernet controller in an "mdio" node instead of just
letting the code randomly populate and present it to
the operating system.
- Reference the standard schemas for ethernet controller and
MDIO buses.
- Add intel,npe to indentify the NPE unit used with each
ethernet adapter.
---
.../bindings/net/intel,ixp4xx-ethernet.yaml | 82 +++++++++++++++++++
1 file changed, 82 insertions(+)
create mode 100644 Documentation/devicetree/bindings/net/intel,ixp4xx-ethernet.yaml
diff --git a/Documentation/devicetree/bindings/net/intel,ixp4xx-ethernet.yaml b/Documentation/devicetree/bindings/net/intel,ixp4xx-ethernet.yaml
new file mode 100644
index 000000000000..978e7f236f3a
--- /dev/null
+++ b/Documentation/devicetree/bindings/net/intel,ixp4xx-ethernet.yaml
@@ -0,0 +1,82 @@
+# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
+# Copyright 2018 Linaro Ltd.
+%YAML 1.2
+---
+$id: "http://devicetree.org/schemas/net/intel,ixp4xx-ethernet.yaml#"
+$schema: "http://devicetree.org/meta-schemas/core.yaml#"
+
+title: Intel IXP4xx ethernet
+
+allOf:
+ - $ref: "ethernet-controller.yaml#"
+
+maintainers:
+ - Linus Walleij <linus.walleij@linaro.org>
+
+description: |
+ The Intel IXP4xx ethernet makes use of the IXP4xx NPE (Network
+ Processing Engine) and the IXP4xx Queue Mangager to process
+ the ethernet frames. It can optionally contain an MDIO bus to
+ talk to PHYs.
+
+properties:
+ compatible:
+ const: intel,ixp4xx-ethernet
+
+ reg:
+ maxItems: 1
+ description: Ethernet MMIO address range
+
+ queue-rx:
+ $ref: '/schemas/types.yaml#/definitions/phandle-array'
+ maxItems: 1
+ description: phandle to the RX queue on the NPE
+
+ queue-txready:
+ $ref: '/schemas/types.yaml#/definitions/phandle-array'
+ maxItems: 1
+ description: phandle to the TX READY queue on the NPE
+
+ phy-mode: true
+
+ phy-handle: true
+
+ intel,npe:
+ $ref: /schemas/types.yaml#/definitions/uint32
+ enum: [0, 1, 2, 3]
+ description: which NPE (Network Processing Engine) this ethernet
+ instance is using
+
+ mdio:
+ type: object
+ $ref: "mdio.yaml#"
+ description: optional node for embedded MDIO controller
+
+required:
+ - compatible
+ - reg
+ - queue-rx
+ - queue-txready
+
+additionalProperties: false
+
+examples:
+ - |
+ ethernet@c8009000 {
+ compatible = "intel,ixp4xx-ethernet";
+ reg = <0xc8009000 0x1000>;
+ status = "disabled";
+ queue-rx = <&qmgr 3>;
+ queue-txready = <&qmgr 20>;
+ intel,npe = <1>;
+ phy-mode = "rgmii";
+ phy-handle = <&phy1>;
+
+ mdio {
+ #address-cells = <1>;
+ #size-cells = <0>;
+ phy1: ethernet-phy@1 {
+ reg = <1>;
+ };
+ };
+ };
--
2.29.2
^ permalink raw reply related [flat|nested] 5+ messages in thread
* Re: [PATCH 1/3 net-next v3] net: ethernet: ixp4xx: Add DT bindings
2021-04-23 8:22 [PATCH 1/3 net-next v3] net: ethernet: ixp4xx: Add DT bindings Linus Walleij
@ 2021-04-23 14:49 ` Andrew Lunn
2021-04-25 0:24 ` Linus Walleij
2021-04-23 17:58 ` Rob Herring
1 sibling, 1 reply; 5+ messages in thread
From: Andrew Lunn @ 2021-04-23 14:49 UTC (permalink / raw)
To: Linus Walleij
Cc: netdev, David S . Miller, Heiner Kallweit, Russell King,
Zoltan HERPAI, Raylynn Knight, devicetree
On Fri, Apr 23, 2021 at 10:22:06AM +0200, Linus Walleij wrote:
> This adds device tree bindings for the IXP4xx ethernet
> controller with optional MDIO bridge.
Hi Linus
That optional MDIO bus sentence is important here. I think it would be
good to give examples for say IXP43x, where the MDIO bus is on NPE-C,
and the phy-handles point from one Ethernet device in the device tree
to the other. It is not unknown, but it is unusual, so giving an
example is good.
Also, looking at the unmodified driver, there is the global variable
mdio_bus. This should contain the one MDIO bus for the cluster. With
the C code, it should be impossible for multiple devices to
instantiate an MDIO bus. But with device tree, is that still true?
Should there be validation that only one device has an MDIO bus in its
device tree?
Andrew
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [PATCH 1/3 net-next v3] net: ethernet: ixp4xx: Add DT bindings
2021-04-23 8:22 [PATCH 1/3 net-next v3] net: ethernet: ixp4xx: Add DT bindings Linus Walleij
2021-04-23 14:49 ` Andrew Lunn
@ 2021-04-23 17:58 ` Rob Herring
1 sibling, 0 replies; 5+ messages in thread
From: Rob Herring @ 2021-04-23 17:58 UTC (permalink / raw)
To: Linus Walleij
Cc: netdev, David S . Miller, Andrew Lunn, Heiner Kallweit,
Russell King, Zoltan HERPAI, Raylynn Knight, devicetree
On Fri, Apr 23, 2021 at 10:22:06AM +0200, Linus Walleij wrote:
> This adds device tree bindings for the IXP4xx ethernet
> controller with optional MDIO bridge.
>
> Cc: Zoltan HERPAI <wigyori@uid0.hu>
> Cc: Raylynn Knight <rayknight@me.com>
> Cc: devicetree@vger.kernel.org
> Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
> ---
> ChangeLog v2->v3:
> - Designate phy nodes with ethernet-phy@
> - Include phy-mode in the schema
> ChangeLog v1->v2:
> - Add schema for the (optional) embedded MDIO bus inside
> the ethernet controller in an "mdio" node instead of just
> letting the code randomly populate and present it to
> the operating system.
> - Reference the standard schemas for ethernet controller and
> MDIO buses.
> - Add intel,npe to indentify the NPE unit used with each
> ethernet adapter.
> ---
> .../bindings/net/intel,ixp4xx-ethernet.yaml | 82 +++++++++++++++++++
> 1 file changed, 82 insertions(+)
> create mode 100644 Documentation/devicetree/bindings/net/intel,ixp4xx-ethernet.yaml
>
> diff --git a/Documentation/devicetree/bindings/net/intel,ixp4xx-ethernet.yaml b/Documentation/devicetree/bindings/net/intel,ixp4xx-ethernet.yaml
> new file mode 100644
> index 000000000000..978e7f236f3a
> --- /dev/null
> +++ b/Documentation/devicetree/bindings/net/intel,ixp4xx-ethernet.yaml
> @@ -0,0 +1,82 @@
> +# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
> +# Copyright 2018 Linaro Ltd.
> +%YAML 1.2
> +---
> +$id: "http://devicetree.org/schemas/net/intel,ixp4xx-ethernet.yaml#"
> +$schema: "http://devicetree.org/meta-schemas/core.yaml#"
> +
> +title: Intel IXP4xx ethernet
> +
> +allOf:
> + - $ref: "ethernet-controller.yaml#"
> +
> +maintainers:
> + - Linus Walleij <linus.walleij@linaro.org>
> +
> +description: |
> + The Intel IXP4xx ethernet makes use of the IXP4xx NPE (Network
> + Processing Engine) and the IXP4xx Queue Mangager to process
typo
> + the ethernet frames. It can optionally contain an MDIO bus to
> + talk to PHYs.
> +
> +properties:
> + compatible:
> + const: intel,ixp4xx-ethernet
> +
> + reg:
> + maxItems: 1
> + description: Ethernet MMIO address range
> +
> + queue-rx:
> + $ref: '/schemas/types.yaml#/definitions/phandle-array'
> + maxItems: 1
> + description: phandle to the RX queue on the NPE
> +
> + queue-txready:
> + $ref: '/schemas/types.yaml#/definitions/phandle-array'
> + maxItems: 1
> + description: phandle to the TX READY queue on the NPE
> +
> + phy-mode: true
> +
> + phy-handle: true
> +
> + intel,npe:
> + $ref: /schemas/types.yaml#/definitions/uint32
> + enum: [0, 1, 2, 3]
> + description: which NPE (Network Processing Engine) this ethernet
> + instance is using
Is there a node for the NPE? If so, make this a phandle.
> +
> + mdio:
> + type: object
> + $ref: "mdio.yaml#"
> + description: optional node for embedded MDIO controller
> +
> +required:
> + - compatible
> + - reg
> + - queue-rx
> + - queue-txready
> +
> +additionalProperties: false
> +
> +examples:
> + - |
> + ethernet@c8009000 {
> + compatible = "intel,ixp4xx-ethernet";
> + reg = <0xc8009000 0x1000>;
> + status = "disabled";
> + queue-rx = <&qmgr 3>;
> + queue-txready = <&qmgr 20>;
> + intel,npe = <1>;
> + phy-mode = "rgmii";
> + phy-handle = <&phy1>;
> +
> + mdio {
> + #address-cells = <1>;
> + #size-cells = <0>;
> + phy1: ethernet-phy@1 {
> + reg = <1>;
> + };
> + };
> + };
> --
> 2.29.2
>
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [PATCH 1/3 net-next v3] net: ethernet: ixp4xx: Add DT bindings
2021-04-23 14:49 ` Andrew Lunn
@ 2021-04-25 0:24 ` Linus Walleij
2021-04-25 0:37 ` Andrew Lunn
0 siblings, 1 reply; 5+ messages in thread
From: Linus Walleij @ 2021-04-25 0:24 UTC (permalink / raw)
To: Andrew Lunn, Rob Herring
Cc: netdev, David S . Miller, Heiner Kallweit, Russell King,
Zoltan HERPAI, Raylynn Knight,
open list:OPEN FIRMWARE AND FLATTENED DEVICE TREE BINDINGS
On Fri, Apr 23, 2021 at 4:49 PM Andrew Lunn <andrew@lunn.ch> wrote:
> (...) it should be impossible for multiple devices to
> instantiate an MDIO bus. But with device tree, is that still true?
> Should there be validation that only one device has an MDIO bus in its
> device tree?
This would be more of a question to Rob.
I am "OK" at writing YAML but not great.
If I were to express that out of 3 nodes in the DT one and only
one *must* contain a certain subnode, but it doesn't matter
which one, I have no idea how to express that.
Since the abstract syntax in YAML is pretty much stateless
this beats me.
Yours,
Linus Walleij
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [PATCH 1/3 net-next v3] net: ethernet: ixp4xx: Add DT bindings
2021-04-25 0:24 ` Linus Walleij
@ 2021-04-25 0:37 ` Andrew Lunn
0 siblings, 0 replies; 5+ messages in thread
From: Andrew Lunn @ 2021-04-25 0:37 UTC (permalink / raw)
To: Linus Walleij
Cc: Rob Herring, netdev, David S . Miller, Heiner Kallweit,
Russell King, Zoltan HERPAI, Raylynn Knight,
open list:OPEN FIRMWARE AND FLATTENED DEVICE TREE BINDINGS
On Sun, Apr 25, 2021 at 02:24:26AM +0200, Linus Walleij wrote:
> On Fri, Apr 23, 2021 at 4:49 PM Andrew Lunn <andrew@lunn.ch> wrote:
>
> > (...) it should be impossible for multiple devices to
> > instantiate an MDIO bus. But with device tree, is that still true?
> > Should there be validation that only one device has an MDIO bus in its
> > device tree?
>
> This would be more of a question to Rob.
Hi Linus
Sorry. I was thinking C code. The driver already has the global
variable mdio_bus. It is initially a NULL pointer. It gets sent when
the first MDIO bus driver probes. If it is not NULL when an MDIO bus
driver probes, throw an error.
Andrew
^ permalink raw reply [flat|nested] 5+ messages in thread
end of thread, other threads:[~2021-04-25 0:37 UTC | newest]
Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-04-23 8:22 [PATCH 1/3 net-next v3] net: ethernet: ixp4xx: Add DT bindings Linus Walleij
2021-04-23 14:49 ` Andrew Lunn
2021-04-25 0:24 ` Linus Walleij
2021-04-25 0:37 ` Andrew Lunn
2021-04-23 17:58 ` Rob Herring
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).