[PATCH 2/3] dt-bindings: usb: Add support for Terminus FE1.1s USB2.0 Hub controller

Yixun Lan posted 3 patches 2 weeks, 6 days ago
There is a newer version of this series
[PATCH 2/3] dt-bindings: usb: Add support for Terminus FE1.1s USB2.0 Hub controller
Posted by Yixun Lan 2 weeks, 6 days ago
Terminus FE1.1s is USB2.0 protocol compliant 4-port USB HUB, It support
MTT (Multiple Transaction Translator) mode, the upstream port supports
high-speed 480MHz and full-speed 12MHz modes, also has integrated 5V to
3.3V, 1.8V regulator and Power-On-Reset circuit.

Introduce the DT binding for it.

Link: https://terminus-usa.com/wp-content/uploads/2024/06/FE1.1s-Product-Brief-Rev.-2.0-2023.pdf [1]
Signed-off-by: Yixun Lan <dlan@kernel.org>
---
 .../devicetree/bindings/usb/terminus,fe11.yaml     | 61 ++++++++++++++++++++++
 1 file changed, 61 insertions(+)

diff --git a/Documentation/devicetree/bindings/usb/terminus,fe11.yaml b/Documentation/devicetree/bindings/usb/terminus,fe11.yaml
new file mode 100644
index 000000000000..93bb4066f851
--- /dev/null
+++ b/Documentation/devicetree/bindings/usb/terminus,fe11.yaml
@@ -0,0 +1,61 @@
+# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/usb/terminus,fe11.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Terminus FE1.1/1.1S USB 2.0 Hub Controller
+
+maintainers:
+  - Yixun Lan <dlan@kernel.org>
+
+allOf:
+  - $ref: usb-hub.yaml#
+
+properties:
+  compatible:
+    enum:
+      - usb1a40,0101
+
+  reg: true
+
+  reset-gpios:
+    description:
+      GPIO controlling the RESET#, but the reset line can be optional.
+
+  vdd-supply:
+    description:
+      Regulator supply to the hub, one of 3.3V or 5V can be chosen.
+
+  ports:
+    $ref: /schemas/graph.yaml#/properties/ports
+
+    patternProperties:
+      '^port@':
+        $ref: /schemas/graph.yaml#/properties/port
+
+        properties:
+          reg:
+            minimum: 1
+            maximum: 4
+
+required:
+  - compatible
+  - reg
+
+additionalProperties: false
+
+examples:
+  - |
+    #include <dt-bindings/gpio/gpio.h>
+    usb {
+        #address-cells = <1>;
+        #size-cells = <0>;
+
+        hub: hub@1 {
+            compatible = "usb1a40,0101";
+            reg = <1>;
+            reset-gpios = <&gpio0 1 GPIO_ACTIVE_LOW>;
+            vdd-supply = <&vcc_5v>;
+        };
+    };

-- 
2.53.0
Re: [PATCH 2/3] dt-bindings: usb: Add support for Terminus FE1.1s USB2.0 Hub controller
Posted by Krzysztof Kozlowski 2 weeks, 5 days ago
On Tue, Mar 17, 2026 at 08:55:03AM +0000, Yixun Lan wrote:
> Terminus FE1.1s is USB2.0 protocol compliant 4-port USB HUB, It support
> MTT (Multiple Transaction Translator) mode, the upstream port supports
> high-speed 480MHz and full-speed 12MHz modes, also has integrated 5V to
> 3.3V, 1.8V regulator and Power-On-Reset circuit.
> 
> Introduce the DT binding for it.
> 
> Link: https://terminus-usa.com/wp-content/uploads/2024/06/FE1.1s-Product-Brief-Rev.-2.0-2023.pdf [1]
> Signed-off-by: Yixun Lan <dlan@kernel.org>
> ---
>  .../devicetree/bindings/usb/terminus,fe11.yaml     | 61 ++++++++++++++++++++++
>  1 file changed, 61 insertions(+)
> 
> diff --git a/Documentation/devicetree/bindings/usb/terminus,fe11.yaml b/Documentation/devicetree/bindings/usb/terminus,fe11.yaml
> new file mode 100644
> index 000000000000..93bb4066f851
> --- /dev/null
> +++ b/Documentation/devicetree/bindings/usb/terminus,fe11.yaml
> @@ -0,0 +1,61 @@
> +# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
> +%YAML 1.2
> +---
> +$id: http://devicetree.org/schemas/usb/terminus,fe11.yaml#
> +$schema: http://devicetree.org/meta-schemas/core.yaml#
> +
> +title: Terminus FE1.1/1.1S USB 2.0 Hub Controller
> +
> +maintainers:
> +  - Yixun Lan <dlan@kernel.org>
> +
> +allOf:
> +  - $ref: usb-hub.yaml#
> +
> +properties:
> +  compatible:
> +    enum:
> +      - usb1a40,0101

I do not see vendor prefix used anywhere. Drop that patch, because I
think we do not reserve them for file names or schema IDs.

> +
> +  reg: true
> +
> +  reset-gpios:
> +    description:
> +      GPIO controlling the RESET#, but the reset line can be optional.

Don't repeat constraints in free form text. Schema tells what can be
optional by not requiring it.

> +
> +  vdd-supply:
> +    description:
> +      Regulator supply to the hub, one of 3.3V or 5V can be chosen.

And this cannot be optional.

> +
> +  ports:
> +    $ref: /schemas/graph.yaml#/properties/ports
> +
> +    patternProperties:
> +      '^port@':
> +        $ref: /schemas/graph.yaml#/properties/port
> +
> +        properties:
> +          reg:
> +            minimum: 1
> +            maximum: 4
> +
> +required:
> +  - compatible
> +  - reg

Missing supply.

> +
> +additionalProperties: false

First, radxa never built tested the DTS when posted it. Yeah, why would
they care...

Second, now you added schema which is nice, but you still did not verify
it with the DTS.

That's the point of DT schema. To verify the DTS. You MUST do it when
you post the binding. Why? To see the errors you have here. See other
hub schemas, like genesys, what goes above - unevaluated.

> +
> +examples:
> +  - |
> +    #include <dt-bindings/gpio/gpio.h>
> +    usb {
> +        #address-cells = <1>;
> +        #size-cells = <0>;
> +
> +        hub: hub@1 {

Drop unused label

> +            compatible = "usb1a40,0101";
> +            reg = <1>;
> +            reset-gpios = <&gpio0 1 GPIO_ACTIVE_LOW>;
> +            vdd-supply = <&vcc_5v>;
> +        };
> +    };
> 
> -- 
> 2.53.0
>
Re: [PATCH 2/3] dt-bindings: usb: Add support for Terminus FE1.1s USB2.0 Hub controller
Posted by Yixun Lan 2 weeks, 4 days ago
Hi Krzysztof, 

I will address all comments for other patches in this series, so no reply
to all of them..

On 09:36 Wed 18 Mar     , Krzysztof Kozlowski wrote:
> On Tue, Mar 17, 2026 at 08:55:03AM +0000, Yixun Lan wrote:
> > Terminus FE1.1s is USB2.0 protocol compliant 4-port USB HUB, It support
> > MTT (Multiple Transaction Translator) mode, the upstream port supports
> > high-speed 480MHz and full-speed 12MHz modes, also has integrated 5V to
> > 3.3V, 1.8V regulator and Power-On-Reset circuit.
> > 
> > Introduce the DT binding for it.
> > 
> > Link: https://terminus-usa.com/wp-content/uploads/2024/06/FE1.1s-Product-Brief-Rev.-2.0-2023.pdf [1]
> > Signed-off-by: Yixun Lan <dlan@kernel.org>
> > ---
> >  .../devicetree/bindings/usb/terminus,fe11.yaml     | 61 ++++++++++++++++++++++
> >  1 file changed, 61 insertions(+)
> > 
> > diff --git a/Documentation/devicetree/bindings/usb/terminus,fe11.yaml b/Documentation/devicetree/bindings/usb/terminus,fe11.yaml
> > new file mode 100644
> > index 000000000000..93bb4066f851
> > --- /dev/null
> > +++ b/Documentation/devicetree/bindings/usb/terminus,fe11.yaml
> > @@ -0,0 +1,61 @@
> > +# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
> > +%YAML 1.2
> > +---
> > +$id: http://devicetree.org/schemas/usb/terminus,fe11.yaml#
> > +$schema: http://devicetree.org/meta-schemas/core.yaml#
> > +
> > +title: Terminus FE1.1/1.1S USB 2.0 Hub Controller
> > +
> > +maintainers:
> > +  - Yixun Lan <dlan@kernel.org>
> > +
> > +allOf:
> > +  - $ref: usb-hub.yaml#
> > +
> > +properties:
> > +  compatible:
> > +    enum:
> > +      - usb1a40,0101
> 
> I do not see vendor prefix used anywhere. Drop that patch, because I
> think we do not reserve them for file names or schema IDs.
> 
Ok, will drop
> > +
> > +  reg: true
> > +
> > +  reset-gpios:
> > +    description:
> > +      GPIO controlling the RESET#, but the reset line can be optional.
> 
> Don't repeat constraints in free form text. Schema tells what can be
> optional by not requiring it.
> 
Ok
> > +
> > +  vdd-supply:
> > +    description:
> > +      Regulator supply to the hub, one of 3.3V or 5V can be chosen.
> 
> And this cannot be optional.
> 
Ok, will add it to 'required' section
> > +
> > +  ports:
> > +    $ref: /schemas/graph.yaml#/properties/ports
> > +
> > +    patternProperties:
> > +      '^port@':
> > +        $ref: /schemas/graph.yaml#/properties/port
> > +
> > +        properties:
> > +          reg:
> > +            minimum: 1
> > +            maximum: 4
> > +
> > +required:
> > +  - compatible
> > +  - reg
> 
> Missing supply.
> 
ditto
> > +
> > +additionalProperties: false
> 
> First, radxa never built tested the DTS when posted it. Yeah, why would
> they care...
> 
> Second, now you added schema which is nice, but you still did not verify
> it with the DTS.
> 
> That's the point of DT schema. To verify the DTS. You MUST do it when
> you post the binding. Why? To see the errors you have here. See other
> hub schemas, like genesys, what goes above - unevaluated.
> 
Ok, I did the binding check but only for arch/riscv/, will cover all in
future..

> > +
> > +examples:
> > +  - |
> > +    #include <dt-bindings/gpio/gpio.h>
> > +    usb {
> > +        #address-cells = <1>;
> > +        #size-cells = <0>;
> > +
> > +        hub: hub@1 {
> 
> Drop unused label
> 
Ok

> > +            compatible = "usb1a40,0101";
> > +            reg = <1>;
> > +            reset-gpios = <&gpio0 1 GPIO_ACTIVE_LOW>;
> > +            vdd-supply = <&vcc_5v>;
> > +        };
> > +    };
> > 
> > -- 
> > 2.53.0
> > 
> 

-- 
Yixun Lan (dlan)