Re: [PATCH 1/2] dt-bindings: phy: econet: Document EN751221 USB PHY
From: Caleb James DeLisle
Date: Tue Jun 02 2026 - 08:42:18 EST
On 02/06/2026 00:58, Rob Herring wrote:
On Mon, May 18, 2026 at 02:13:42PM +0000, Caleb James DeLisle wrote:
Document the USB PHY devices which appear in EcoNet EN751221, EN751627,Don't need '|' unless there is formatting to preserve.
and EN7528 based SoCs.
Signed-off-by: Caleb James DeLisle <cjd@xxxxxxxx>
---
.../bindings/phy/econet,en751221-usb-phy.yaml | 128 ++++++++++++++++++
MAINTAINERS | 6 +
2 files changed, 134 insertions(+)
create mode 100644 Documentation/devicetree/bindings/phy/econet,en751221-usb-phy.yaml
diff --git a/Documentation/devicetree/bindings/phy/econet,en751221-usb-phy.yaml b/Documentation/devicetree/bindings/phy/econet,en751221-usb-phy.yaml
new file mode 100644
index 000000000000..a44f59601747
--- /dev/null
+++ b/Documentation/devicetree/bindings/phy/econet,en751221-usb-phy.yaml
@@ -0,0 +1,128 @@
+# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
+# Copyright (C) 2024 EcoNet
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/phy/econet,en751221-usb-phy.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: EcoNet EN751221 USB PHY
+
+maintainers:
+ - Caleb James DeLisle <cjd@xxxxxxxx>
+
+description: |
+ USB PHY controller found on EcoNet EN751221 SoCs as well as on EN751627 andWhat is special about this platform needing this property.
+ EN7528. These devices generally have two ports, one of which is a USB 3.0,
+ and the other is USB 2.0. The USB 3.0 port is driven by one of two PHY
+ blocks, depending on whether the connected device has negotiated USB 3.0 or
+ 2.0. These PHYs are also used on other EcoNet silicon in varying
+ configurations, such as only port 0 (the USB 3.0 port), or only port 1 (the
+ USB 2.0 port).
+
+properties:
+ compatible:
+ enum:
+ - econet,en751221-usb-phy
+ - econet,en751627-usb-phy
+ - econet,en7528-usb-phy
+
+ reg:
+ maxItems: 1
+
+ "#address-cells": true
+ "#size-cells": true
+ ranges: true
+
+ clocks:
+ maxItems: 1
+ description: |
+ Crystal oscillator clock source. EcoNet devices run at either 20Mhz or
+ 25Mhz. 25Mhz devices require additional tuning in the USB 3.0 PHY.
+
+ clock-names:
+ items:
+ - const: xtal
+
+patternProperties:
+ "^usb-phy@[0-9a-f]+$":
+ type: object
+ description: USB 2.0 or 3.0 PHY sub-node.
+
+ properties:
+ compatible:
+ enum:
+ - econet,usb2-phy
+ - econet,usb3-phy
+
+ reg:
+ maxItems: 1
+
+ resets:
+ maxItems: 1
+
+ econet,usb-port-id:
+ $ref: /schemas/types.yaml#/definitions/uint32
+ enum: [0, 1]
+ description: |
+ Physical port number. Since USB 3.0 requires a second PHY for the 2.0
+ fallback, multiple PHYs can map to the same physical port.
For measuring the frequency to set the slew rate, we need to know which port we're working with. Also the hardware revision has to be set differently on port 1 than port 0.
Lots ofI copied the idea from google,extcon-usbc-cros-ec which uses google,usb-port-id.
platforms have 2 phys for USB 2.0 and 3.0 yet don't need a property
like this.
Can't you figure out which phys are the same USB port by the
USB controller 'phys' property which would define that?
Unfortunately the Mediatek driver handles all of the ports and only uses one DT node. I suppose I could encode the information in the compatible of the subnode, something like:
usb-phy@1fa80000 {
compatible = "econet,en751221-usb-phy";
...
usb-phy@1fa80800 {
compatible = "econet,usb2-port0-phy";
...
};
...
};
I'm not really sure which way is more correct. If you have an opinion on this, let me know.
Thanks,
Caleb
Rob