Re: [PATCH 7/9] arm64: dts: qcom: ipq6018: Flatten usb controller nodes

From: George Moussalem

Date: Sat Aug 29 2026 - 23:12:47 EST


On 8/29/26 20:48, Krishna Kurapati wrote:
>
>
> On 8/25/2026 4:12 PM, George Moussalem via B4 Relay wrote:
>> From: George Moussalem <george.moussalem@xxxxxxxxxxx>
>>
>> Flatten usb controller nodes and update to using latest bindings and
>> flattened driver approach.
>>
>> This SoC has two USB controllers of which the USB3 node had a ref clock
>> populated in the DWC3 child node. Add property to the USB3 node only to
>> select UTMI as reference clock for the DWC3 core to calculate the right
>> values for the period and frame length adjustment.
>>
>> Signed-off-by: George Moussalem <george.moussalem@xxxxxxxxxxx>
>
> [...]
>
>>   -            interrupts = <GIC_SPI 128 IRQ_TYPE_LEVEL_HIGH>,
>> +            interrupts = <GIC_SPI 99 IRQ_TYPE_LEVEL_HIGH>,
>> +                     <GIC_SPI 128 IRQ_TYPE_LEVEL_HIGH>,
>>                        <GIC_SPI 130 IRQ_TYPE_LEVEL_HIGH>;
>> -            interrupt-names = "pwr_event",
>> +            interrupt-names = "dwc_usb3",
>> +                      "pwr_event",
>>                         "qusb2_phy";
>>  
>
> You are adding pwr_event irq here. Do mention that in the commit message
> or send this particular interrupt addition as a separate patch.

I think you may have misread, I'm not adding the pwr_event irq. It was
already there. I'm simply moving up the dwc_usb3 irq from the dwc node.

>
>>               resets = <&gcc GCC_USB1_BCR>;
>> -            status = "disabled";
>>   -            dwc_1: usb@7000000 {
>> -                compatible = "snps,dwc3";
>> -                reg = <0x0 0x07000000 0x0 0xcd00>;
>> -                interrupts = <GIC_SPI 99 IRQ_TYPE_LEVEL_HIGH>;
>> -                phys = <&qusb_phy_1>;
>> -                phy-names = "usb2-phy";
>> -                tx-fifo-resize;
>> -                snps,is-utmi-l1-suspend;
>> -                snps,hird-threshold = /bits/ 8 <0x0>;
>> -                snps,dis_u2_susphy_quirk;
>> -                snps,dis_u3_susphy_quirk;
>> -                dr_mode = "host";
>> -            };
>> +            phys = <&qusb_phy_1>;
>> +            phy-names = "usb2-phy";
>> +
>> +            tx-fifo-resize;
>> +            snps,is-utmi-l1-suspend;
>> +            snps,hird-threshold = /bits/ 8 <0x0>;
>> +            snps,dis_u2_susphy_quirk;
>> +            snps,dis_u3_susphy_quirk;
>> +            dr_mode = "host";
>> +
>
> If this is HS only, do we need to add "qcom,select-utmi-as-pipe-clk" ?

No, I've not removed it, I've flattened the node as is.

>
> [...]
>
>> +        usb3: usb@8a00000 {
>> +            compatible = "qcom,ipq6018-dwc3", "qcom,snps-dwc3";
>> +            reg = <0x0 0x08a00000 0x0 0xfc100>;
>>                 clocks = <&gcc GCC_SYS_NOC_USB0_AXI_CLK>,
>> -                <&gcc GCC_USB0_MASTER_CLK>,
>> -                <&gcc GCC_USB0_SLEEP_CLK>,
>> -                <&gcc GCC_USB0_MOCK_UTMI_CLK>;
>> +                 <&gcc GCC_USB0_MASTER_CLK>,
>> +                 <&gcc GCC_USB0_SLEEP_CLK>,
>> +                 <&gcc GCC_USB0_MOCK_UTMI_CLK>;
>>               clock-names = "cfg_noc",
>> -                "core",
>> -                "sleep",
>> -                "mock_utmi";
>> +                      "core",
>> +                      "sleep",
>> +                      "mock_utmi";
>>                 assigned-clocks = <&gcc GCC_SYS_NOC_USB0_AXI_CLK>,
>>                         <&gcc GCC_USB0_MASTER_CLK>,
>> @@ -692,32 +686,31 @@ usb3: usb@8af8800 {
>>                              <133330000>,
>>                              <24000000>;
>>   -            interrupts = <GIC_SPI 134 IRQ_TYPE_LEVEL_HIGH>,
>> +            interrupts = <GIC_SPI 140 IRQ_TYPE_LEVEL_HIGH>,
>> +                     <GIC_SPI 134 IRQ_TYPE_LEVEL_HIGH>,
>>                        <GIC_SPI 136 IRQ_TYPE_LEVEL_HIGH>,
>>                        <GIC_SPI 220 IRQ_TYPE_LEVEL_HIGH>;
>> -            interrupt-names = "pwr_event",
>> +            interrupt-names = "dwc_usb3",
>> +                      "pwr_event",
>>                         "qusb2_phy",
>>                         "ss_phy_irq";
>
> Same comment as above.

Same reply as above.
>
>>                 resets = <&gcc GCC_USB0_BCR>;
>> -            status = "disabled";
>>   -            dwc_0: usb@8a00000 {
>> -                compatible = "snps,dwc3";
>> -                reg = <0x0 0x08a00000 0x0 0xcd00>;
>> -                interrupts = <GIC_SPI 140 IRQ_TYPE_LEVEL_HIGH>;
>> -                phys = <&qusb_phy_0>, <&ssphy_0>;
>> -                phy-names = "usb2-phy", "usb3-phy";
>> -                clocks = <&xo>;
>> -                clock-names = "ref";
>> -                tx-fifo-resize;
>> -                snps,parkmode-disable-ss-quirk;
>> -                snps,is-utmi-l1-suspend;
>> -                snps,hird-threshold = /bits/ 8 <0x0>;
>> -                snps,dis_u2_susphy_quirk;
>> -                snps,dis_u3_susphy_quirk;
>> -                dr_mode = "host";
>> -            };
>> +            phys = <&qusb_phy_0>, <&ssphy_0>;
>> +            phy-names = "usb2-phy", "usb3-phy";
>> +
>> +            qcom,select-utmi-as-ref-clk;
>> +
>> +            tx-fifo-resize;
>> +            snps,parkmode-disable-ss-quirk;
>> +            snps,is-utmi-l1-suspend;
>> +            snps,hird-threshold = /bits/ 8 <0x0>;
>> +            snps,dis_u2_susphy_quirk;
>> +            snps,dis_u3_susphy_quirk;
>> +            dr_mode = "host";
>
> This controller is DRD capable. Please move this dr_mode property to DTS
> file.

dr_mode was already there. Removing may break existing implementations
and should require a separate patch.

>
> Regards,
> Krishna,