diff --git a/arch/arm64/boot/dts/freescale/fsl-imx8dx.dtsi b/arch/arm64/boot/dts/freescale/fsl-imx8dx.dtsi
index b9777ac2afcf2fb5ce11e1589da3ee62fba999ee..2f047081429438a7fe863afdf2cef481bce1557d 100644
--- a/arch/arm64/boot/dts/freescale/fsl-imx8dx.dtsi
+++ b/arch/arm64/boot/dts/freescale/fsl-imx8dx.dtsi
@@ -1009,6 +1009,25 @@
 				reg = <SC_R_SPI_0>;
 				#power-domain-cells = <0>;
 				power-domains = <&pd_dma>;
+				#address-cells = <1>;
+				#size-cells = <0>;
+				wakeup-irq = <336>;
+
+				pd_dma2_chan0: PD_LPSPI0_RX {
+					reg = <SC_R_DMA_2_CH0>;
+					power-domains =<&pd_dma_lpspi0>;
+					#power-domain-cells = <0>;
+					#address-cells = <1>;
+					#size-cells = <0>;
+
+					pd_dma2_chan1: PD_LPSPI0_TX {
+						reg = <SC_R_DMA_2_CH1>;
+						power-domains =<&pd_dma2_chan0>;
+						#power-domain-cells = <0>;
+						#address-cells = <1>;
+						#size-cells = <0>;
+					};
+				};
 			};
 			pd_dma_lpspi1: PD_DMA_SPI_1 {
 				reg = <SC_R_SPI_1>;
@@ -1019,6 +1038,25 @@
 				reg = <SC_R_SPI_2>;
 				#power-domain-cells = <0>;
 				power-domains = <&pd_dma>;
+				#address-cells = <1>;
+				#size-cells = <0>;
+				wakeup-irq = <338>;
+
+				pd_dma2_chan4: PD_LPSPI2_RX {
+					reg = <SC_R_DMA_2_CH4>;
+					power-domains =<&pd_dma_lpspi2>;
+					#power-domain-cells = <0>;
+					#address-cells = <1>;
+					#size-cells = <0>;
+
+					pd_dma2_chan5: PD_LPSPI2_TX {
+						reg = <SC_R_DMA_2_CH5>;
+						power-domains =<&pd_dma2_chan4>;
+						#power-domain-cells = <0>;
+						#address-cells = <1>;
+						#size-cells = <0>;
+					};
+				};
 			};
 			pd_dma_lpspi3: PD_DMA_SPI_3 {
 				reg = <SC_R_SPI_3>;
@@ -2713,7 +2751,9 @@
 		clock-names = "per", "ipg";
 		assigned-clocks = <&clk IMX8QXP_SPI0_CLK>;
 		assigned-clock-rates = <20000000>;
-		power-domains = <&pd_dma_lpspi0>;
+		power-domains = <&pd_dma2_chan1>;
+		dma-names = "tx","rx";
+		dmas = <&edma2 1 0 0>, <&edma2 0 0 1>;
 		status = "disabled";
 	};
 
@@ -2727,7 +2767,9 @@
 		clock-names = "per", "ipg";
 		assigned-clocks = <&clk IMX8QXP_SPI2_CLK>;
 		assigned-clock-rates = <20000000>;
-		power-domains = <&pd_dma_lpspi2>;
+		power-domains = <&pd_dma2_chan5>;
+		dma-names = "tx","rx";
+		dmas = <&edma2 5 0 0>, <&edma2 4 0 1>;
 		status = "disabled";
 	};
 
@@ -2798,7 +2840,15 @@
 
 	edma2: dma-controller@5a1f0000 {
 		compatible = "fsl,imx8qm-edma";
-		reg = <0x0 0x5a280000 0x0 0x10000>, /* channel8 UART0 rx */
+		reg = <0x0 0x5a200000 0x0 0x10000>, /* channel0 LPSPI0 rx */
+		      <0x0 0x5a210000 0x0 0x10000>, /* channel1 LPSPI0 tx */
+		      <0x0 0x5a220000 0x0 0x10000>, /* channel2 LPSPI1 rx */
+		      <0x0 0x5a230000 0x0 0x10000>, /* channel3 LPSPI1 tx */
+		      <0x0 0x5a240000 0x0 0x10000>, /* channel4 LPSPI2 rx */
+		      <0x0 0x5a250000 0x0 0x10000>, /* channel5 LPSPI2 tx */
+		      <0x0 0x5a260000 0x0 0x10000>, /* channel6 LPSPI3 rx */
+		      <0x0 0x5a270000 0x0 0x10000>, /* channel7 LPSPI3 tx */
+		      <0x0 0x5a280000 0x0 0x10000>, /* channel8 UART0 rx */
 		      <0x0 0x5a290000 0x0 0x10000>, /* channel9 UART0 tx */
 		      <0x0 0x5a2a0000 0x0 0x10000>, /* channel10 UART1 rx */
 		      <0x0 0x5a2b0000 0x0 0x10000>, /* channel11 UART1 tx */
@@ -2807,8 +2857,16 @@
 		      <0x0 0x5a2e0000 0x0 0x10000>, /* channel14 UART3 rx */
 		      <0x0 0x5a2f0000 0x0 0x10000>; /* channel15 UART3 tx */
 		#dma-cells = <3>;
-		dma-channels = <8>;
-		interrupts = <GIC_SPI 434 IRQ_TYPE_LEVEL_HIGH>,
+		dma-channels = <16>;
+		interrupts = <GIC_SPI 416 IRQ_TYPE_LEVEL_HIGH>,
+			     <GIC_SPI 417 IRQ_TYPE_LEVEL_HIGH>,
+			     <GIC_SPI 418 IRQ_TYPE_LEVEL_HIGH>,
+			     <GIC_SPI 419 IRQ_TYPE_LEVEL_HIGH>,
+			     <GIC_SPI 420 IRQ_TYPE_LEVEL_HIGH>,
+			     <GIC_SPI 421 IRQ_TYPE_LEVEL_HIGH>,
+			     <GIC_SPI 422 IRQ_TYPE_LEVEL_HIGH>,
+			     <GIC_SPI 423 IRQ_TYPE_LEVEL_HIGH>,
+			     <GIC_SPI 434 IRQ_TYPE_LEVEL_HIGH>,
 			     <GIC_SPI 435 IRQ_TYPE_LEVEL_HIGH>,
 			     <GIC_SPI 436 IRQ_TYPE_LEVEL_HIGH>,
 			     <GIC_SPI 437 IRQ_TYPE_LEVEL_HIGH>,
@@ -2816,7 +2874,11 @@
 			     <GIC_SPI 439 IRQ_TYPE_LEVEL_HIGH>,
 			     <GIC_SPI 440 IRQ_TYPE_LEVEL_HIGH>,
 			     <GIC_SPI 441 IRQ_TYPE_LEVEL_HIGH>;
-		interrupt-names = "edma2-chan8-rx", "edma2-chan9-tx",
+		interrupt-names = "edma2-chan0-rx", "edma2-chan1-tx",
+				  "edma2-chan2-rx", "edma2-chan3-tx",
+				  "edma2-chan4-rx", "edma2-chan5-tx",
+				  "edma2-chan6-rx", "edma2-chan7-tx",
+				  "edma2-chan8-rx", "edma2-chan9-tx",
 				  "edma2-chan10-rx", "edma2-chan11-tx",
 				  "edma2-chan12-rx", "edma2-chan13-tx",
 				  "edma2-chan14-rx", "edma2-chan15-tx";
diff --git a/arch/arm64/boot/dts/freescale/fsl-imx8qxp-lpddr4-arm2-lpspi-slave.dts b/arch/arm64/boot/dts/freescale/fsl-imx8qxp-lpddr4-arm2-lpspi-slave.dts
index 7f3cf7082a937fd5a908c5f91cd9d52303d5b220..8c2661370de43fa37783cdfa481cb42c0174e304 100644
--- a/arch/arm64/boot/dts/freescale/fsl-imx8qxp-lpddr4-arm2-lpspi-slave.dts
+++ b/arch/arm64/boot/dts/freescale/fsl-imx8qxp-lpddr4-arm2-lpspi-slave.dts
@@ -16,6 +16,17 @@
 
 /delete-node/&spidev0;
 
+&pinctrl_lpspi2 {
+	fsl,pins = <
+		SC_P_SPI2_SCK_ADMA_SPI2_SCK		0x0600004c
+		SC_P_SPI2_SDO_ADMA_SPI2_SDO		0x0600004c
+		SC_P_SPI2_SDI_ADMA_SPI2_SDI		0x0600004c
+		SC_P_SPI2_CS0_ADMA_SPI2_CS0		0x0600004c
+	>;
+};
+
 &lpspi2 {
+	pinctrl-0 = <&pinctrl_lpspi2>;
+	/delete-property/ cs-gpios;
 	spi-slave;
 };