ranges = <0x01000000 0x0 0x60200000 0 0x60200000 0x0 0x100000>,
                                 <0x02000000 0x0 0x60300000 0 0x60300000 0x0 0x3d00000>;
 
-                       interrupts = <GIC_SPI 141 IRQ_TYPE_LEVEL_HIGH>;
-                       interrupt-names = "msi";
-                       #interrupt-cells = <1>;
+                       /*
+                        * MSIs for BDF (1:0.0) only works with Device ID 0x5980.
+                        * Hence, the IDs are swapped.
+                        */
+                       msi-map = <0x0 &gic_its 0x5981 0x1>,
+                                 <0x100 &gic_its 0x5980 0x1>;
+                       msi-map-mask = <0xff00>;
                        interrupt-map-mask = <0 0 0 0x7>;
                        interrupt-map = <0 0 0 1 &intc 0 0 0 149 IRQ_TYPE_LEVEL_HIGH>, /* int_a */
                                        <0 0 0 2 &intc 0 0 0 150 IRQ_TYPE_LEVEL_HIGH>, /* int_b */
                        ranges = <0x01000000 0x0 0x40200000 0 0x40200000 0x0 0x100000>,
                                 <0x02000000 0x0 0x40300000 0 0x40300000 0x0 0x1fd00000>;
 
-                       interrupts = <GIC_SPI 307 IRQ_TYPE_LEVEL_HIGH>;
-                       interrupt-names = "msi";
-                       #interrupt-cells = <1>;
+                       /*
+                        * MSIs for BDF (1:0.0) only works with Device ID 0x5a00.
+                        * Hence, the IDs are swapped.
+                        */
+                       msi-map = <0x0 &gic_its 0x5a01 0x1>,
+                                 <0x100 &gic_its 0x5a00 0x1>;
+                       msi-map-mask = <0xff00>;
                        interrupt-map-mask = <0 0 0 0x7>;
                        interrupt-map = <0 0 0 1 &intc 0 0 0 434 IRQ_TYPE_LEVEL_HIGH>, /* int_a */
                                        <0 0 0 2 &intc 0 0 0 435 IRQ_TYPE_LEVEL_HIGH>, /* int_b */