[PATCH v2 1/4] dt-bindings: usb: Add wake-up support for Tegra234 XUSB host controller

Haotien Hsu posted 4 patches 1 month, 3 weeks ago
There is a newer version of this series
[PATCH v2 1/4] dt-bindings: usb: Add wake-up support for Tegra234 XUSB host controller
Posted by Haotien Hsu 1 month, 3 weeks ago
Populate USB wake events for Tegra234 XUSB host controller.
These wake-up events are optional to maintain backward compatibility and
because the USB controller does not require them for normal operation.

Signed-off-by: Haotien Hsu <haotienh@nvidia.com>
Acked-by: Conor Dooley <conor.dooley@microchip.com>
---
V1->V2
- Add the Acked-by tag to the commit message.
---
 .../bindings/usb/nvidia,tegra234-xusb.yaml    | 28 +++++++++++++++++--
 1 file changed, 26 insertions(+), 2 deletions(-)

diff --git a/Documentation/devicetree/bindings/usb/nvidia,tegra234-xusb.yaml b/Documentation/devicetree/bindings/usb/nvidia,tegra234-xusb.yaml
index db761dcbf72a..6365c6647cd7 100644
--- a/Documentation/devicetree/bindings/usb/nvidia,tegra234-xusb.yaml
+++ b/Documentation/devicetree/bindings/usb/nvidia,tegra234-xusb.yaml
@@ -32,9 +32,32 @@ properties:
       - const: bar2
 
   interrupts:
+    minItems: 2
     items:
       - description: xHCI host interrupt
       - description: mailbox interrupt
+      - description: USB wake event 0
+      - description: USB wake event 1
+      - description: USB wake event 2
+      - description: USB wake event 3
+      - description: USB wake event 4
+      - description: USB wake event 5
+      - description: USB wake event 6
+    description: |
+      The first two interrupts are required for the USB host controller. The remaining USB wake
+      event interrupts are optional. Each USB wake event is independent; it is not necessary to use
+      all of these events on a platform. The USB host controller can function even if no wake-up
+      events are defined. The USB wake event interrupts are handled by the Tegra PMC; hence, the
+      interrupt controller for these is the PMC and the interrupt IDs correspond to the PMC wake
+      event IDs. A complete list of wake event IDs is provided below, and this information is also
+      present in the Tegra TRM document.
+      PMC wake-up 76 for USB3 port 0 wakeup
+      PMC wake-up 77 for USB3 port 1 wakeup
+      PMC wake-up 78 for USB3 port 2 and port 3 wakeup
+      PMC wake-up 79 for USB2 port 0 wakeup
+      PMC wake-up 80 for USB2 port 1 wakeup
+      PMC wake-up 81 for USB2 port 2 wakeup
+      PMC wake-up 82 for USB2 port 3 wakeup
 
   clocks:
     items:
@@ -127,8 +150,9 @@ examples:
               <0x03650000 0x10000>;
         reg-names = "hcd", "fpci", "bar2";
 
-        interrupts = <GIC_SPI 163 IRQ_TYPE_LEVEL_HIGH>,
-                     <GIC_SPI 164 IRQ_TYPE_LEVEL_HIGH>;
+        interrupts-extended = <&gic GIC_SPI 163 IRQ_TYPE_LEVEL_HIGH>,
+                              <&gic GIC_SPI 164 IRQ_TYPE_LEVEL_HIGH>,
+                              <&pmc 76 IRQ_TYPE_LEVEL_HIGH>;
 
         clocks = <&bpmp TEGRA234_CLK_XUSB_CORE_HOST>,
                  <&bpmp TEGRA234_CLK_XUSB_FALCON>,
-- 
2.34.1
Re: [PATCH v2 1/4] dt-bindings: usb: Add wake-up support for Tegra234 XUSB host controller
Posted by Rob Herring 1 month, 3 weeks ago
On Fri, Aug 08, 2025 at 02:57:30PM +0800, Haotien Hsu wrote:
> Populate USB wake events for Tegra234 XUSB host controller.
> These wake-up events are optional to maintain backward compatibility and
> because the USB controller does not require them for normal operation.
> 
> Signed-off-by: Haotien Hsu <haotienh@nvidia.com>
> Acked-by: Conor Dooley <conor.dooley@microchip.com>
> ---
> V1->V2
> - Add the Acked-by tag to the commit message.
> ---
>  .../bindings/usb/nvidia,tegra234-xusb.yaml    | 28 +++++++++++++++++--
>  1 file changed, 26 insertions(+), 2 deletions(-)
> 
> diff --git a/Documentation/devicetree/bindings/usb/nvidia,tegra234-xusb.yaml b/Documentation/devicetree/bindings/usb/nvidia,tegra234-xusb.yaml
> index db761dcbf72a..6365c6647cd7 100644
> --- a/Documentation/devicetree/bindings/usb/nvidia,tegra234-xusb.yaml
> +++ b/Documentation/devicetree/bindings/usb/nvidia,tegra234-xusb.yaml
> @@ -32,9 +32,32 @@ properties:
>        - const: bar2
>  
>    interrupts:
> +    minItems: 2
>      items:
>        - description: xHCI host interrupt
>        - description: mailbox interrupt
> +      - description: USB wake event 0
> +      - description: USB wake event 1
> +      - description: USB wake event 2
> +      - description: USB wake event 3
> +      - description: USB wake event 4
> +      - description: USB wake event 5
> +      - description: USB wake event 6
> +    description: |
> +      The first two interrupts are required for the USB host controller. The remaining USB wake

Wrap lines at <80 chars.

> +      event interrupts are optional. Each USB wake event is independent; it is not necessary to use
> +      all of these events on a platform. The USB host controller can function even if no wake-up
> +      events are defined. The USB wake event interrupts are handled by the Tegra PMC; hence, the
> +      interrupt controller for these is the PMC and the interrupt IDs correspond to the PMC wake
> +      event IDs. A complete list of wake event IDs is provided below, and this information is also
> +      present in the Tegra TRM document.

blank line

> +      PMC wake-up 76 for USB3 port 0 wakeup
> +      PMC wake-up 77 for USB3 port 1 wakeup
> +      PMC wake-up 78 for USB3 port 2 and port 3 wakeup
> +      PMC wake-up 79 for USB2 port 0 wakeup
> +      PMC wake-up 80 for USB2 port 1 wakeup
> +      PMC wake-up 81 for USB2 port 2 wakeup
> +      PMC wake-up 82 for USB2 port 3 wakeup

indent lists.

>  
>    clocks:
>      items:
> @@ -127,8 +150,9 @@ examples:
>                <0x03650000 0x10000>;
>          reg-names = "hcd", "fpci", "bar2";
>  
> -        interrupts = <GIC_SPI 163 IRQ_TYPE_LEVEL_HIGH>,
> -                     <GIC_SPI 164 IRQ_TYPE_LEVEL_HIGH>;
> +        interrupts-extended = <&gic GIC_SPI 163 IRQ_TYPE_LEVEL_HIGH>,
> +                              <&gic GIC_SPI 164 IRQ_TYPE_LEVEL_HIGH>,
> +                              <&pmc 76 IRQ_TYPE_LEVEL_HIGH>;
>  
>          clocks = <&bpmp TEGRA234_CLK_XUSB_CORE_HOST>,
>                   <&bpmp TEGRA234_CLK_XUSB_FALCON>,
> -- 
> 2.34.1
>