[PATCH v3 1/3] dt-bindings: usb: usb251xb: support usage case without I2C control

Jisheng Zhang posted 3 patches 1 month, 2 weeks ago
There is a newer version of this series
[PATCH v3 1/3] dt-bindings: usb: usb251xb: support usage case without I2C control
Posted by Jisheng Zhang 1 month, 2 weeks ago
Currently, the usb251xb assumes i2c control, and the corresponding
dt node looks like the following:

i2c {
	usb-hub@2c {
		compatible = "microchip,usb2512b";
		reg = <0x2c>;
		reset-gpios = <&porta 8 GPIO_ACTIVE_LOW>;
	};
};

But from HW point of view, the hub supports usage case without any i2c
control, I.E we only want the gpio controls, for example the following
dt node:

usb-hub {
	compatible = "microchip,usb2512b";
	reset-gpios = <&porta 8 GPIO_ACTIVE_LOW>;
};

Modify the dt-binding of usb2512b to support this usage case, and add
usage example to the examples section.

Signed-off-by: Jisheng Zhang <jszhang@kernel.org>
---
 Documentation/devicetree/bindings/usb/usb251xb.yaml | 9 ++++++++-
 1 file changed, 8 insertions(+), 1 deletion(-)

diff --git a/Documentation/devicetree/bindings/usb/usb251xb.yaml b/Documentation/devicetree/bindings/usb/usb251xb.yaml
index ac5b99710332..0329a6aaaa92 100644
--- a/Documentation/devicetree/bindings/usb/usb251xb.yaml
+++ b/Documentation/devicetree/bindings/usb/usb251xb.yaml
@@ -240,7 +240,6 @@ additionalProperties: false
 
 required:
   - compatible
-  - reg
 
 examples:
   - |
@@ -269,3 +268,11 @@ examples:
         swap-dx-lanes = <1 2>;
       };
     };
+
+  - |
+    #include <dt-bindings/gpio/gpio.h>
+    usb-hub {
+      /* I2C is not connected */
+      compatible = "microchip,usb2512b";
+      reset-gpios = <&porta 8 GPIO_ACTIVE_LOW>;
+    };
-- 
2.50.0
Re: [PATCH v3 1/3] dt-bindings: usb: usb251xb: support usage case without I2C control
Posted by Krzysztof Kozlowski 1 month, 1 week ago
On Thu, Aug 21, 2025 at 12:17:41AM +0800, Jisheng Zhang wrote:
> Currently, the usb251xb assumes i2c control, and the corresponding
> dt node looks like the following:
> 
> i2c {
> 	usb-hub@2c {
> 		compatible = "microchip,usb2512b";
> 		reg = <0x2c>;
> 		reset-gpios = <&porta 8 GPIO_ACTIVE_LOW>;
> 	};
> };

Above is redundant, obvious from stagtement that USB can be a device on
I2C bus. Just keep it simple.

> 
> But from HW point of view, the hub supports usage case without any i2c
> control, I.E we only want the gpio controls, for example the following
> dt node:
> 
> usb-hub {
> 	compatible = "microchip,usb2512b";
> 	reset-gpios = <&porta 8 GPIO_ACTIVE_LOW>;
> };
> 
> Modify the dt-binding of usb2512b to support this usage case, and add
> usage example to the examples section.
> 
> Signed-off-by: Jisheng Zhang <jszhang@kernel.org>
> ---
>  Documentation/devicetree/bindings/usb/usb251xb.yaml | 9 ++++++++-
>  1 file changed, 8 insertions(+), 1 deletion(-)

Reviewed-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>

Best regards,
Krzysztof