diff mbox series

[v3,1/3] dt-bindings: usb: cdns-imx8qm: add imx8qm cdns3 glue bindings

Message ID 20230321151951.2784286-2-Frank.Li@nxp.com
State Accepted
Commit 8486eb8068ccfea99864544327a7d18f8a1e231e
Headers show
Series [v3,1/3] dt-bindings: usb: cdns-imx8qm: add imx8qm cdns3 glue bindings | expand

Commit Message

Frank Li March 21, 2023, 3:19 p.m. UTC
NXP imx8qm integrates 1 cdns3 IP. This is glue layer device bindings.

Signed-off-by: Frank Li <Frank.Li@nxp.com>
---
Change from v2 to v3
- Drop two fixed frequency clocks, it is system reset value, no need set now.
If need, futher work/discuss on driver or dts change. It will not block this
basic enablement work.
- Drop lable
- Drop some descriptions
- Reg as second property.

Change from v1 to v2.
- new add binding doc

 .../bindings/usb/fsl,imx8qm-cdns3.yaml        | 114 ++++++++++++++++++
 1 file changed, 114 insertions(+)
 create mode 100644 Documentation/devicetree/bindings/usb/fsl,imx8qm-cdns3.yaml

Comments

Krzysztof Kozlowski March 22, 2023, 9:32 p.m. UTC | #1
On 22/03/2023 15:34, Frank Li wrote:
> 
> 
>> -----Original Message-----
>> From: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
>> Sent: Wednesday, March 22, 2023 2:32 AM
>> To: Frank Li <frank.li@nxp.
>>> +      - const: usb3_aclk
>>> +      - const: usb3_ipg_clk
>>> +      - const: usb3_core_pclk
>>> +
>>> +  assigned-clocks:
>>> +    items:
>>> +      - description: Phandle and clock specifoer of
>> IMX_SC_PM_CLK_MST_BUS.
>>
>> Drop useless pieces so "Phandle and clock specifoer of " and name the
>> hardware, not the syntax.
>>
>>> +
>>> +  assigned-clock-rates:
>>> +    items:
>>> +      - description: Should be in Range 100 - 600 Mhz.
>>
>> That's better but I still do not understand why do you need it in the
>> bindings. You never actually answered this question.
> 
> I am not sure 100% sure the reason. 
> I think difference system target's  axi bus frequency is difference,   
> And just one time work, needn't software to manage it.
> Following other driver's code style may be another reason. 

That's the reason of heaving it in DTS. But I am asking about bindings.
You do understand you define here interface?

Best regards,
Krzysztof
Frank Li March 22, 2023, 9:36 p.m. UTC | #2
> -----Original Message-----
> From: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
> Sent: Wednesday, March 22, 2023 4:32 PM
> To: Frank Li <frank.li@nxp.com>
> Cc: devicetree@vger.kernel.org; festevam@gmail.com; imx@lists.linux.dev;
> kernel@pengutronix.de; krzysztof.kozlowski+dt@linaro.org; linux-arm-
> kernel@lists.infradead.org; dl-linux-imx <linux-imx@nxp.com>; linux-
> kernel@vger.kernel.org; robh+dt@kernel.org; s.hauer@pengutronix.de;
> shawnguo@kernel.org
> Subject: Re: [EXT] Re: [PATCH v3 1/3] dt-bindings: usb: cdns-imx8qm: add
> imx8qm cdns3 glue bindings
> 
> Caution: EXT Email
> 
> On 22/03/2023 15:34, Frank Li wrote:
> >
> >
> >> -----Original Message-----
> >> From: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
> >> Sent: Wednesday, March 22, 2023 2:32 AM
> >> To: Frank Li <frank.li@nxp.
> >>> +      - const: usb3_aclk
> >>> +      - const: usb3_ipg_clk
> >>> +      - const: usb3_core_pclk
> >>> +
> >>> +  assigned-clocks:
> >>> +    items:
> >>> +      - description: Phandle and clock specifoer of
> >> IMX_SC_PM_CLK_MST_BUS.
> >>
> >> Drop useless pieces so "Phandle and clock specifoer of " and name the
> >> hardware, not the syntax.
> >>
> >>> +
> >>> +  assigned-clock-rates:
> >>> +    items:
> >>> +      - description: Should be in Range 100 - 600 Mhz.
> >>
> >> That's better but I still do not understand why do you need it in the
> >> bindings. You never actually answered this question.
> >
> > I am not sure 100% sure the reason.
> > I think difference system target's  axi bus frequency is difference,
> > And just one time work, needn't software to manage it.
> > Following other driver's code style may be another reason.
> 
> That's the reason of heaving it in DTS. But I am asking about bindings.
> You do understand you define here interface?

I defined here is descript AXI frequency for usb controller. Supposed difference
Platform will have difference working frequency.  

> 
> Best regards,
> Krzysztof
Frank Li March 22, 2023, 9:40 p.m. UTC | #3
> -----Original Message-----
> From: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
> Sent: Wednesday, March 22, 2023 4:38 PM
> To: Frank Li <frank.li@nxp.com>
> Cc: devicetree@vger.kernel.org; festevam@gmail.com; imx@lists.linux.dev;
> kernel@pengutronix.de; krzysztof.kozlowski+dt@linaro.org; linux-arm-
> kernel@lists.infradead.org; dl-linux-imx <linux-imx@nxp.com>; linux-
> kernel@vger.kernel.org; robh+dt@kernel.org; s.hauer@pengutronix.de;
> shawnguo@kernel.org
> Subject: Re: [EXT] Re: [PATCH v3 1/3] dt-bindings: usb: cdns-imx8qm: add
> imx8qm cdns3 glue bindings
> 
> Caution: EXT Email
> 
> On 22/03/2023 22:36, Frank Li wrote:
> >
> >
> >> -----Original Message-----
> >> From: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
> >> Sent: Wednesday, March 22, 2023 4:32 PM
> >> To: Frank Li <frank.li@nxp.com>
> >> Cc: devicetree@vger.kernel.org; festevam@gmail.com;
> imx@lists.linux.dev;
> >> kernel@pengutronix.de; krzysztof.kozlowski+dt@linaro.org; linux-arm-
> >> kernel@lists.infradead.org; dl-linux-imx <linux-imx@nxp.com>; linux-
> >> kernel@vger.kernel.org; robh+dt@kernel.org; s.hauer@pengutronix.de;
> >> shawnguo@kernel.org
> >> Subject: Re: [EXT] Re: [PATCH v3 1/3] dt-bindings: usb: cdns-imx8qm: add
> >> imx8qm cdns3 glue bindings
> >>
> >> Caution: EXT Email
> >>
> >> On 22/03/2023 15:34, Frank Li wrote:
> >>>
> >>>
> >>>> -----Original Message-----
> >>>> From: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
> >>>> Sent: Wednesday, March 22, 2023 2:32 AM
> >>>> To: Frank Li <frank.li@nxp.
> >>>>> +      - const: usb3_aclk
> >>>>> +      - const: usb3_ipg_clk
> >>>>> +      - const: usb3_core_pclk
> >>>>> +
> >>>>> +  assigned-clocks:
> >>>>> +    items:
> >>>>> +      - description: Phandle and clock specifoer of
> >>>> IMX_SC_PM_CLK_MST_BUS.
> >>>>
> >>>> Drop useless pieces so "Phandle and clock specifoer of " and name the
> >>>> hardware, not the syntax.
> >>>>
> >>>>> +
> >>>>> +  assigned-clock-rates:
> >>>>> +    items:
> >>>>> +      - description: Should be in Range 100 - 600 Mhz.
> >>>>
> >>>> That's better but I still do not understand why do you need it in the
> >>>> bindings. You never actually answered this question.
> >>>
> >>> I am not sure 100% sure the reason.
> >>> I think difference system target's  axi bus frequency is difference,
> >>> And just one time work, needn't software to manage it.
> >>> Following other driver's code style may be another reason.
> >>
> >> That's the reason of heaving it in DTS. But I am asking about bindings.
> >> You do understand you define here interface?
> >
> > I defined here is descript AXI frequency for usb controller. Supposed
> difference
> > Platform will have difference working frequency.
> 
> I don't understand how does this answer my concerns of having it in DT
> bindings. If you do not add it, you "will have difference working
> frequency", so what's the point?

For example: imx8qxp, it need set to 250Mhz,  i.MX8QM need set to 200Mhz.
Maybe future chip can set to 400Mhz.

> 
> Best regards,
> Krzysztof
Frank Li March 22, 2023, 9:57 p.m. UTC | #4
> -----Original Message-----
> From: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
> Sent: Wednesday, March 22, 2023 4:43 PM
> To: Frank Li <frank.li@nxp.com>
> Cc: devicetree@vger.kernel.org; festevam@gmail.com; imx@lists.linux.dev;
> kernel@pengutronix.de; krzysztof.kozlowski+dt@linaro.org; linux-arm-
> kernel@lists.infradead.org; dl-linux-imx <linux-imx@nxp.com>; linux-
> kernel@vger.kernel.org; robh+dt@kernel.org; s.hauer@pengutronix.de;
> shawnguo@kernel.org
> Subject: Re: [EXT] Re: [PATCH v3 1/3] dt-bindings: usb: cdns-imx8qm: add
> imx8qm cdns3 glue bindings
> 
> Caution: EXT Email
> 
> On 22/03/2023 22:40, Frank Li wrote:
> >
> >
> >> -----Original Message-----
> >> From: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
> >> Sent: Wednesday, March 22, 2023 4:38 PM
> >> To: Frank Li <frank.li@nxp.com>
> >> Cc: devicetree@vger.kernel.org; festevam@gmail.com;
> imx@lists.linux.dev;
> >> kernel@pengutronix.de; krzysztof.kozlowski+dt@linaro.org; linux-arm-
> >> kernel@lists.infradead.org; dl-linux-imx <linux-imx@nxp.com>; linux-
> >> kernel@vger.kernel.org; robh+dt@kernel.org; s.hauer@pengutronix.de;
> >> shawnguo@kernel.org
> >> Subject: Re: [EXT] Re: [PATCH v3 1/3] dt-bindings: usb: cdns-imx8qm: add
> >> imx8qm cdns3 glue bindings
> >>
> >> Caution: EXT Email
> >>
> >> On 22/03/2023 22:36, Frank Li wrote:
> >>>
> >>>
> >>>> -----Original Message-----
> >>>> From: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
> >>>> Sent: Wednesday, March 22, 2023 4:32 PM
> >>>> To: Frank Li <frank.li@nxp.com>
> >>>> Cc: devicetree@vger.kernel.org; festevam@gmail.com;
> >> imx@lists.linux.dev;
> >>>> kernel@pengutronix.de; krzysztof.kozlowski+dt@linaro.org; linux-arm-
> >>>> kernel@lists.infradead.org; dl-linux-imx <linux-imx@nxp.com>; linux-
> >>>> kernel@vger.kernel.org; robh+dt@kernel.org;
> s.hauer@pengutronix.de;
> >>>> shawnguo@kernel.org
> >>>> Subject: Re: [EXT] Re: [PATCH v3 1/3] dt-bindings: usb: cdns-imx8qm:
> add
> >>>> imx8qm cdns3 glue bindings
> >>>>
> >>>> Caution: EXT Email
> >>>>
> >>>> On 22/03/2023 15:34, Frank Li wrote:
> >>>>>
> >>>>>
> >>>>>> -----Original Message-----
> >>>>>> From: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
> >>>>>> Sent: Wednesday, March 22, 2023 2:32 AM
> >>>>>> To: Frank Li <frank.li@nxp.
> >>>>>>> +      - const: usb3_aclk
> >>>>>>> +      - const: usb3_ipg_clk
> >>>>>>> +      - const: usb3_core_pclk
> >>>>>>> +
> >>>>>>> +  assigned-clocks:
> >>>>>>> +    items:
> >>>>>>> +      - description: Phandle and clock specifoer of
> >>>>>> IMX_SC_PM_CLK_MST_BUS.
> >>>>>>
> >>>>>> Drop useless pieces so "Phandle and clock specifoer of " and name
> the
> >>>>>> hardware, not the syntax.
> >>>>>>
> >>>>>>> +
> >>>>>>> +  assigned-clock-rates:
> >>>>>>> +    items:
> >>>>>>> +      - description: Should be in Range 100 - 600 Mhz.
> >>>>>>
> >>>>>> That's better but I still do not understand why do you need it in the
> >>>>>> bindings. You never actually answered this question.
> >>>>>
> >>>>> I am not sure 100% sure the reason.
> >>>>> I think difference system target's  axi bus frequency is difference,
> >>>>> And just one time work, needn't software to manage it.
> >>>>> Following other driver's code style may be another reason.
> >>>>
> >>>> That's the reason of heaving it in DTS. But I am asking about bindings.
> >>>> You do understand you define here interface?
> >>>
> >>> I defined here is descript AXI frequency for usb controller. Supposed
> >> difference
> >>> Platform will have difference working frequency.
> >>
> >> I don't understand how does this answer my concerns of having it in DT
> >> bindings. If you do not add it, you "will have difference working
> >> frequency", so what's the point?
> >
> > For example: imx8qxp, it need set to 250Mhz,  i.MX8QM need set to
> 200Mhz.
> > Maybe future chip can set to 400Mhz.
> 
> And? So as you can see you will still have different frequencies, so
> what's the point? What is the benefit? Dunno, maybe we do not understand
> each other, because I don't think you are answering my questions at all.

Benefit: New chip just need change dts file for the same IP, like change base
Reg address and irq number.  

Your question is:  "why need this assigned-clock-rates IMX_SC_PM_CLK_MST_BUS property?"  

My answer: it is one of hardware property, like reg base address and irq number.

If can't match your expectation, can you change another words or provide me an example?  

> 
> Best regards,
> Krzysztof
Frank Li March 22, 2023, 10:15 p.m. UTC | #5
> -----Original Message-----
> From: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
> Sent: Wednesday, March 22, 2023 5:09 PM
> To: Frank Li <frank.li@nxp.com>
> Cc: devicetree@vger.kernel.org; festevam@gmail.com; imx@lists.linux.dev;
> kernel@pengutronix.de; krzysztof.kozlowski+dt@linaro.org; linux-arm-
> kernel@lists.infradead.org; dl-linux-imx <linux-imx@nxp.com>; linux-
> kernel@vger.kernel.org; robh+dt@kernel.org; s.hauer@pengutronix.de;
> shawnguo@kernel.org
> Subject: Re: [EXT] Re: [PATCH v3 1/3] dt-bindings: usb: cdns-imx8qm: add
> imx8qm cdns3 glue bindings
> 
> Caution: EXT Email
> 
> On 22/03/2023 22:57, Frank Li wrote:
> >
> >
> >> -----Original Message-----
> >> From: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
> >> Sent: Wednesday, March 22, 2023 4:43 PM
> >> To: Frank Li <frank.li@nxp.com>
> >> Cc: devicetree@vger.kernel.org; festevam@gmail.com;
> imx@lists.linux.dev;
> >> kernel@pengutronix.de; krzysztof.kozlowski+dt@linaro.org; linux-arm-
> >> kernel@lists.infradead.org; dl-linux-imx <linux-imx@nxp.com>; linux-
> >> kernel@vger.kernel.org; robh+dt@kernel.org; s.hauer@pengutronix.de;
> >> shawnguo@kernel.org
> >> Subject: Re: [EXT] Re: [PATCH v3 1/3] dt-bindings: usb: cdns-imx8qm: add
> >> imx8qm cdns3 glue bindings
> >>
> >> Caution: EXT Email
> >>
> >> On 22/03/2023 22:40, Frank Li wrote:
> >>>
> >>>
> >>>> -----Original Message-----
> >>>> From: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
> >>>> Sent: Wednesday, March 22, 2023 4:38 PM
> >>>> To: Frank Li <frank.li@nxp.com>
> >>>> Cc: devicetree@vger.kernel.org; festevam@gmail.com;
> >> imx@lists.linux.dev;
> >>>> kernel@pengutronix.de; krzysztof.kozlowski+dt@linaro.org; linux-arm-
> >>>> kernel@lists.infradead.org; dl-linux-imx <linux-imx@nxp.com>; linux-
> >>>> kernel@vger.kernel.org; robh+dt@kernel.org;
> s.hauer@pengutronix.de;
> >>>> shawnguo@kernel.org
> >>>> Subject: Re: [EXT] Re: [PATCH v3 1/3] dt-bindings: usb: cdns-imx8qm:
> add
> >>>> imx8qm cdns3 glue bindings
> >>>>
> >>>> Caution: EXT Email
> >>>>
> >>>> On 22/03/2023 22:36, Frank Li wrote:
> >>>>>
> >>>>>
> >>>>>> -----Original Message-----
> >>>>>> From: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
> >>>>>> Sent: Wednesday, March 22, 2023 4:32 PM
> >>>>>> To: Frank Li <frank.li@nxp.com>
> >>>>>> Cc: devicetree@vger.kernel.org; festevam@gmail.com;
> >>>> imx@lists.linux.dev;
> >>>>>> kernel@pengutronix.de; krzysztof.kozlowski+dt@linaro.org; linux-
> arm-
> >>>>>> kernel@lists.infradead.org; dl-linux-imx <linux-imx@nxp.com>;
> linux-
> >>>>>> kernel@vger.kernel.org; robh+dt@kernel.org;
> >> s.hauer@pengutronix.de;
> >>>>>> shawnguo@kernel.org
> >>>>>> Subject: Re: [EXT] Re: [PATCH v3 1/3] dt-bindings: usb: cdns-imx8qm:
> >> add
> >>>>>> imx8qm cdns3 glue bindings
> >>>>>>
> >>>>>> Caution: EXT Email
> >>>>>>
> >>>>>> On 22/03/2023 15:34, Frank Li wrote:
> >>>>>>>
> >>>>>>>
> >>>>>>>> -----Original Message-----
> >>>>>>>> From: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
> >>>>>>>> Sent: Wednesday, March 22, 2023 2:32 AM
> >>>>>>>> To: Frank Li <frank.li@nxp.
> >>>>>>>>> +      - const: usb3_aclk
> >>>>>>>>> +      - const: usb3_ipg_clk
> >>>>>>>>> +      - const: usb3_core_pclk
> >>>>>>>>> +
> >>>>>>>>> +  assigned-clocks:
> >>>>>>>>> +    items:
> >>>>>>>>> +      - description: Phandle and clock specifoer of
> >>>>>>>> IMX_SC_PM_CLK_MST_BUS.
> >>>>>>>>
> >>>>>>>> Drop useless pieces so "Phandle and clock specifoer of " and
> name
> >> the
> >>>>>>>> hardware, not the syntax.
> >>>>>>>>
> >>>>>>>>> +
> >>>>>>>>> +  assigned-clock-rates:
> >>>>>>>>> +    items:
> >>>>>>>>> +      - description: Should be in Range 100 - 600 Mhz.
> >>>>>>>>
> >>>>>>>> That's better but I still do not understand why do you need it in
> the
> >>>>>>>> bindings. You never actually answered this question.
> >>>>>>>
> >>>>>>> I am not sure 100% sure the reason.
> >>>>>>> I think difference system target's  axi bus frequency is difference,
> >>>>>>> And just one time work, needn't software to manage it.
> >>>>>>> Following other driver's code style may be another reason.
> >>>>>>
> >>>>>> That's the reason of heaving it in DTS. But I am asking about bindings.
> >>>>>> You do understand you define here interface?
> >>>>>
> >>>>> I defined here is descript AXI frequency for usb controller. Supposed
> >>>> difference
> >>>>> Platform will have difference working frequency.
> >>>>
> >>>> I don't understand how does this answer my concerns of having it in DT
> >>>> bindings. If you do not add it, you "will have difference working
> >>>> frequency", so what's the point?
> >>>
> >>> For example: imx8qxp, it need set to 250Mhz,  i.MX8QM need set to
> >> 200Mhz.
> >>> Maybe future chip can set to 400Mhz.
> >>
> >> And? So as you can see you will still have different frequencies, so
> >> what's the point? What is the benefit? Dunno, maybe we do not
> understand
> >> each other, because I don't think you are answering my questions at all.
> >
> > Benefit: New chip just need change dts file for the same IP, like change
> base
> > Reg address and irq number.
> 
> To remind - the question was:
> "That's better but I still do not understand why do you need it in the
> bindings."
> If you drop it from the bindings the benefit is still there, so what do
> you want to prove?
> 
> >
> > Your question is:  "why need this assigned-clock-rates
> IMX_SC_PM_CLK_MST_BUS property?"
> 
> This was the previous thread. Now, related but slightly different, why
> do you still need it in the bindings?
> 
> 
> > My answer: it is one of hardware property, like reg base address and irq
> number.
> 
> Sure, it is, I know, and bindings already allow it. Just look at many
> DTS and their bindings. Do you see the bindings defining this property?
> No. So why do you think it is needed here? I am asking this since like 6
> emails and your answers are not related to bindings at all.
> 
> >
> > If can't match your expectation, can you change another words or provide
> me an example?
> 
> Yeah, just open several DTS and look for assigned-clock, then open their
> bindings and answer - why do you need to add it to the binding but all
> other bindings did not have to? If you have the answer, sure, bring
> these parts of bindings.

Do you means, Needn't add assigned-clock in binding *document* yaml file?
And dts file still can use assigned-clock property. 

> 
> Best regards,
> Krzysztof
diff mbox series

Patch

diff --git a/Documentation/devicetree/bindings/usb/fsl,imx8qm-cdns3.yaml b/Documentation/devicetree/bindings/usb/fsl,imx8qm-cdns3.yaml
new file mode 100644
index 000000000000..d876e3dab608
--- /dev/null
+++ b/Documentation/devicetree/bindings/usb/fsl,imx8qm-cdns3.yaml
@@ -0,0 +1,112 @@ 
+# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
+# Copyright (c) 2020 NXP
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/usb/fsl,imx8qm-cdns3.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: NXP iMX8QM Soc USB Controller
+
+maintainers:
+  - Frank Li <Frank.Li@nxp.com>
+
+properties:
+  compatible:
+    const: fsl,imx8qm-usb3
+
+  reg:
+    items:
+      - description: Register set for iMX USB3 Platform Control
+
+  "#address-cells":
+    enum: [ 1, 2 ]
+
+  "#size-cells":
+    enum: [ 1, 2 ]
+
+  ranges: true
+
+  clocks:
+    items:
+      - description: Standby clock. Used during ultra low power states.
+      - description: USB bus clock for usb3 controller.
+      - description: AXI clock for AXI interface.
+      - description: ipg clock for register access.
+      - description: Core clock for usb3 controller.
+
+  clock-names:
+    items:
+      - const: usb3_lpm_clk
+      - const: usb3_bus_clk
+      - const: usb3_aclk
+      - const: usb3_ipg_clk
+      - const: usb3_core_pclk
+
+  assigned-clocks:
+    items:
+      - description: Phandle and clock specifoer of IMX_SC_PM_CLK_MST_BUS.
+
+  assigned-clock-rates:
+    items:
+      - description: Should be in Range 100 - 600 Mhz.
+
+  power-domains:
+    maxItems: 1
+
+# Required child node:
+
+patternProperties:
+  "^usb@[0-9a-f]+$":
+    $ref: cdns,usb3.yaml#
+
+required:
+  - compatible
+  - reg
+  - "#address-cells"
+  - "#size-cells"
+  - ranges
+  - clocks
+  - clock-names
+  - power-domains
+
+additionalProperties: false
+
+examples:
+  - |
+    #include <dt-bindings/clock/imx8-lpcg.h>
+    #include <dt-bindings/firmware/imx/rsrc.h>
+    #include <dt-bindings/interrupt-controller/arm-gic.h>
+
+    usb@5b110000 {
+      compatible = "fsl,imx8qm-usb3";
+      reg = <0x5b110000 0x10000>;
+      ranges;
+      clocks = <&usb3_lpcg IMX_LPCG_CLK_1>,
+               <&usb3_lpcg IMX_LPCG_CLK_0>,
+               <&usb3_lpcg IMX_LPCG_CLK_7>,
+               <&usb3_lpcg IMX_LPCG_CLK_4>,
+               <&usb3_lpcg IMX_LPCG_CLK_5>;
+      clock-names = "usb3_lpm_clk", "usb3_bus_clk", "usb3_aclk",
+                    "usb3_ipg_clk", "usb3_core_pclk";
+      assigned-clocks = <&clk IMX_SC_R_USB_2 IMX_SC_PM_CLK_MST_BUS>;
+      assigned-clock-rates = <250000000>;
+      power-domains = <&pd IMX_SC_R_USB_2>;
+      #address-cells = <1>;
+      #size-cells = <1>;
+
+      usb@5b120000 {
+        compatible = "cdns,usb3";
+        reg = <0x5b120000 0x10000>,   /* memory area for OTG/DRD registers */
+              <0x5b130000 0x10000>,   /* memory area for HOST registers */
+              <0x5b140000 0x10000>;   /* memory area for DEVICE registers */
+        reg-names = "otg", "xhci", "dev";
+        interrupt-parent = <&gic>;
+        interrupts = <GIC_SPI 271 IRQ_TYPE_LEVEL_HIGH>,
+                     <GIC_SPI 271 IRQ_TYPE_LEVEL_HIGH>,
+                     <GIC_SPI 271 IRQ_TYPE_LEVEL_HIGH>,
+                     <GIC_SPI 271 IRQ_TYPE_LEVEL_HIGH>;
+        interrupt-names = "host", "peripheral", "otg", "wakeup";
+        phys = <&usb3_phy>;
+        phy-names = "cdns3,usb3-phy";
+      };
+    };