diff mbox series

arm64: zynqmp: Fix dwc3 usb interrupt description

Message ID 6544d13afd9f3d8f5413e32684aa16e4d155e331.1687160244.git.michal.simek@amd.com (mailing list archive)
State New, archived
Headers show
Series arm64: zynqmp: Fix dwc3 usb interrupt description | expand

Commit Message

Michal Simek June 19, 2023, 7:37 a.m. UTC
Based on DT binding dwc_usb3 is single entry without anything else. That's
why combination dwc3_usb3, otg is not allowed. That's why split it to host
and peripheral pair which both points to the same IRQ.
DWC3 code is reading these two properties first before generic dwc_usb3.

Signed-off-by: Michal Simek <michal.simek@amd.com>
---

 arch/arm64/boot/dts/xilinx/zynqmp.dtsi | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

Comments

Laurent Pinchart June 21, 2023, 2:13 p.m. UTC | #1
Hi Michal,

Thank you for the patch.

On Mon, Jun 19, 2023 at 09:37:54AM +0200, Michal Simek wrote:
> Based on DT binding dwc_usb3 is single entry without anything else. That's
> why combination dwc3_usb3, otg is not allowed. That's why split it to host
> and peripheral pair which both points to the same IRQ.
> DWC3 code is reading these two properties first before generic dwc_usb3.
> 
> Signed-off-by: Michal Simek <michal.simek@amd.com>
> ---
> 
>  arch/arm64/boot/dts/xilinx/zynqmp.dtsi | 8 ++++----
>  1 file changed, 4 insertions(+), 4 deletions(-)
> 
> diff --git a/arch/arm64/boot/dts/xilinx/zynqmp.dtsi b/arch/arm64/boot/dts/xilinx/zynqmp.dtsi
> index 02cfcc716936..e8104ffc6663 100644
> --- a/arch/arm64/boot/dts/xilinx/zynqmp.dtsi
> +++ b/arch/arm64/boot/dts/xilinx/zynqmp.dtsi
> @@ -888,8 +888,8 @@ dwc3_0: usb@fe200000 {
>  				compatible = "snps,dwc3";
>  				reg = <0x0 0xfe200000 0x0 0x40000>;
>  				interrupt-parent = <&gic>;
> -				interrupt-names = "dwc_usb3", "otg";
> -				interrupts = <0 65 4>, <0 69 4>;
> +				interrupt-names = "host", "peripheral", "otg";
> +				interrupts = <0 65 4>, <0 65 4>, <0 69 4>;

This should read

				interrupts = <GIC_SPI 65 IRQ_TYPE_LEVEL_HIGH>,
					     <GIC_SPI 65 IRQ_TYPE_LEVEL_HIGH>,
					     <GIC_SPI 69 IRQ_TYPE_LEVEL_HIGH>;

The issue isn't introduced by this patch, so it should probably be fixed
by a separate patch on top, to convert the whole zynqmp.dtsi file. Do
you have any plan to do so, or should I ?

Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>

>  				clock-names = "bus_early", "ref";
>  				iommus = <&smmu 0x860>;
>  				snps,quirk-frame-length-adjustment = <0x20>;
> @@ -915,8 +915,8 @@ dwc3_1: usb@fe300000 {
>  				compatible = "snps,dwc3";
>  				reg = <0x0 0xfe300000 0x0 0x40000>;
>  				interrupt-parent = <&gic>;
> -				interrupt-names = "dwc_usb3", "otg";
> -				interrupts = <0 70 4>, <0 74 4>;
> +				interrupt-names = "host", "peripheral", "otg";
> +				interrupts = <0 70 4>, <0 70 4>, <0 74 4>;
>  				clock-names = "bus_early", "ref";
>  				iommus = <&smmu 0x861>;
>  				snps,quirk-frame-length-adjustment = <0x20>;
Michal Simek July 10, 2023, 10:07 a.m. UTC | #2
On 6/19/23 09:37, Michal Simek wrote:
> Based on DT binding dwc_usb3 is single entry without anything else. That's
> why combination dwc3_usb3, otg is not allowed. That's why split it to host
> and peripheral pair which both points to the same IRQ.
> DWC3 code is reading these two properties first before generic dwc_usb3.
> 
> Signed-off-by: Michal Simek <michal.simek@amd.com>
> ---
> 
>   arch/arm64/boot/dts/xilinx/zynqmp.dtsi | 8 ++++----
>   1 file changed, 4 insertions(+), 4 deletions(-)
> 
> diff --git a/arch/arm64/boot/dts/xilinx/zynqmp.dtsi b/arch/arm64/boot/dts/xilinx/zynqmp.dtsi
> index 02cfcc716936..e8104ffc6663 100644
> --- a/arch/arm64/boot/dts/xilinx/zynqmp.dtsi
> +++ b/arch/arm64/boot/dts/xilinx/zynqmp.dtsi
> @@ -888,8 +888,8 @@ dwc3_0: usb@fe200000 {
>   				compatible = "snps,dwc3";
>   				reg = <0x0 0xfe200000 0x0 0x40000>;
>   				interrupt-parent = <&gic>;
> -				interrupt-names = "dwc_usb3", "otg";
> -				interrupts = <0 65 4>, <0 69 4>;
> +				interrupt-names = "host", "peripheral", "otg";
> +				interrupts = <0 65 4>, <0 65 4>, <0 69 4>;
>   				clock-names = "bus_early", "ref";
>   				iommus = <&smmu 0x860>;
>   				snps,quirk-frame-length-adjustment = <0x20>;
> @@ -915,8 +915,8 @@ dwc3_1: usb@fe300000 {
>   				compatible = "snps,dwc3";
>   				reg = <0x0 0xfe300000 0x0 0x40000>;
>   				interrupt-parent = <&gic>;
> -				interrupt-names = "dwc_usb3", "otg";
> -				interrupts = <0 70 4>, <0 74 4>;
> +				interrupt-names = "host", "peripheral", "otg";
> +				interrupts = <0 70 4>, <0 70 4>, <0 74 4>;
>   				clock-names = "bus_early", "ref";
>   				iommus = <&smmu 0x861>;
>   				snps,quirk-frame-length-adjustment = <0x20>;

Applied.
M
Michal Simek July 10, 2023, 10:53 a.m. UTC | #3
On 6/21/23 16:13, Laurent Pinchart wrote:
> Hi Michal,
> 
> Thank you for the patch.
> 
> On Mon, Jun 19, 2023 at 09:37:54AM +0200, Michal Simek wrote:
>> Based on DT binding dwc_usb3 is single entry without anything else. That's
>> why combination dwc3_usb3, otg is not allowed. That's why split it to host
>> and peripheral pair which both points to the same IRQ.
>> DWC3 code is reading these two properties first before generic dwc_usb3.
>>
>> Signed-off-by: Michal Simek <michal.simek@amd.com>
>> ---
>>
>>   arch/arm64/boot/dts/xilinx/zynqmp.dtsi | 8 ++++----
>>   1 file changed, 4 insertions(+), 4 deletions(-)
>>
>> diff --git a/arch/arm64/boot/dts/xilinx/zynqmp.dtsi b/arch/arm64/boot/dts/xilinx/zynqmp.dtsi
>> index 02cfcc716936..e8104ffc6663 100644
>> --- a/arch/arm64/boot/dts/xilinx/zynqmp.dtsi
>> +++ b/arch/arm64/boot/dts/xilinx/zynqmp.dtsi
>> @@ -888,8 +888,8 @@ dwc3_0: usb@fe200000 {
>>   				compatible = "snps,dwc3";
>>   				reg = <0x0 0xfe200000 0x0 0x40000>;
>>   				interrupt-parent = <&gic>;
>> -				interrupt-names = "dwc_usb3", "otg";
>> -				interrupts = <0 65 4>, <0 69 4>;
>> +				interrupt-names = "host", "peripheral", "otg";
>> +				interrupts = <0 65 4>, <0 65 4>, <0 69 4>;
> 
> This should read
> 
> 				interrupts = <GIC_SPI 65 IRQ_TYPE_LEVEL_HIGH>,
> 					     <GIC_SPI 65 IRQ_TYPE_LEVEL_HIGH>,
> 					     <GIC_SPI 69 IRQ_TYPE_LEVEL_HIGH>;
> 
> The issue isn't introduced by this patch, so it should probably be fixed
> by a separate patch on top, to convert the whole zynqmp.dtsi file. Do
> you have any plan to do so, or should I ?

I have sent it here.
https://lore.kernel.org/r/9d5bd17f37772be186cab17b06cc21351d36ff62.1688986332.git.michal.simek@amd.com

Feel free to review it.

Thanks,
Michal
diff mbox series

Patch

diff --git a/arch/arm64/boot/dts/xilinx/zynqmp.dtsi b/arch/arm64/boot/dts/xilinx/zynqmp.dtsi
index 02cfcc716936..e8104ffc6663 100644
--- a/arch/arm64/boot/dts/xilinx/zynqmp.dtsi
+++ b/arch/arm64/boot/dts/xilinx/zynqmp.dtsi
@@ -888,8 +888,8 @@  dwc3_0: usb@fe200000 {
 				compatible = "snps,dwc3";
 				reg = <0x0 0xfe200000 0x0 0x40000>;
 				interrupt-parent = <&gic>;
-				interrupt-names = "dwc_usb3", "otg";
-				interrupts = <0 65 4>, <0 69 4>;
+				interrupt-names = "host", "peripheral", "otg";
+				interrupts = <0 65 4>, <0 65 4>, <0 69 4>;
 				clock-names = "bus_early", "ref";
 				iommus = <&smmu 0x860>;
 				snps,quirk-frame-length-adjustment = <0x20>;
@@ -915,8 +915,8 @@  dwc3_1: usb@fe300000 {
 				compatible = "snps,dwc3";
 				reg = <0x0 0xfe300000 0x0 0x40000>;
 				interrupt-parent = <&gic>;
-				interrupt-names = "dwc_usb3", "otg";
-				interrupts = <0 70 4>, <0 74 4>;
+				interrupt-names = "host", "peripheral", "otg";
+				interrupts = <0 70 4>, <0 70 4>, <0 74 4>;
 				clock-names = "bus_early", "ref";
 				iommus = <&smmu 0x861>;
 				snps,quirk-frame-length-adjustment = <0x20>;