From 358b2d553762030d3e7e66eb4c0bb7140d348c43 Mon Sep 17 00:00:00 2001
From: Phil Elwell <phil@raspberrypi.com>
Date: Thu, 11 May 2023 11:50:57 +0100
Subject: [PATCH] ARM: dts: bcm2711-rpi: Add i2s_dma4

Add an i2s_dma4 parameter to make the I2S interface use 40-bit DMA
channels, taking the opportunity to remove some duplication.

Signed-off-by: Phil Elwell <phil@raspberrypi.com>
---
 arch/arm/boot/dts/bcm2711-rpi-4-b.dts  | 4 ----
 arch/arm/boot/dts/bcm2711-rpi-400.dts  | 4 ----
 arch/arm/boot/dts/bcm2711-rpi-cm4.dts  | 4 ----
 arch/arm/boot/dts/bcm2711-rpi-cm4s.dts | 4 ----
 arch/arm/boot/dts/bcm2711-rpi-ds.dtsi  | 6 ++++++
 arch/arm/boot/dts/overlays/README      | 4 ++++
 6 files changed, 10 insertions(+), 16 deletions(-)

--- a/arch/arm/boot/dts/bcm2711-rpi-4-b.dts
+++ b/arch/arm/boot/dts/bcm2711-rpi-4-b.dts
@@ -414,9 +414,5 @@ cam0_reg: &cam_dummy_reg {
 
 		eth_led0 = <&phy1>,"led-modes:0";
 		eth_led1 = <&phy1>,"led-modes:4";
-
-		sd_poll_once = <&emmc2>, "non-removable?";
-		spi_dma4 = <&spi0>, "dmas:0=", <&dma40>,
-			   <&spi0>, "dmas:8=", <&dma40>;
 	};
 };
--- a/arch/arm/boot/dts/bcm2711-rpi-400.dts
+++ b/arch/arm/boot/dts/bcm2711-rpi-400.dts
@@ -425,9 +425,5 @@ cam0_reg: &cam_dummy_reg {
 
 		eth_led0 = <&phy1>,"led-modes:0";
 		eth_led1 = <&phy1>,"led-modes:4";
-
-		sd_poll_once = <&emmc2>, "non-removable?";
-		spi_dma4 = <&spi0>, "dmas:0=", <&dma40>,
-			   <&spi0>, "dmas:8=", <&dma40>;
 	};
 };
--- a/arch/arm/boot/dts/bcm2711-rpi-cm4.dts
+++ b/arch/arm/boot/dts/bcm2711-rpi-cm4.dts
@@ -437,10 +437,6 @@ cam0_reg: &cam1_reg {
 			<&ant2>, "output-high?=off",
 			<&ant2>, "output-low?=on";
 
-		sd_poll_once = <&emmc2>, "non-removable?";
-		spi_dma4 = <&spi0>, "dmas:0=", <&dma40>,
-			   <&spi0>, "dmas:8=", <&dma40>;
-
 		cam0_reg = <&cam0_reg>,"status";
 		cam0_reg_gpio = <&cam0_reg>,"gpio:4",
 				  <&cam0_reg>,"gpio:0=", <&gpio>;
--- a/arch/arm/boot/dts/bcm2711-rpi-cm4s.dts
+++ b/arch/arm/boot/dts/bcm2711-rpi-cm4s.dts
@@ -290,10 +290,6 @@ cam0_reg: &cam0_regulator {
 		act_led_activelow = <&act_led>,"gpios:8";
 		act_led_trigger = <&act_led>,"linux,default-trigger";
 
-		sd_poll_once = <&emmc2>, "non-removable?";
-		spi_dma4 = <&spi0>, "dmas:0=", <&dma40>,
-			   <&spi0>, "dmas:8=", <&dma40>;
-
 		cam0_reg = <&cam0_reg>,"status";
 		cam0_reg_gpio = <&cam0_reg>,"gpio:4";
 		cam1_reg = <&cam1_reg>,"status";
--- a/arch/arm/boot/dts/bcm2711-rpi-ds.dtsi
+++ b/arch/arm/boot/dts/bcm2711-rpi-ds.dtsi
@@ -12,6 +12,12 @@
 		       <&hdmi1>,"status";
 		pcie = <&pcie0>,"status";
 		sd = <&emmc2>,"status";
+
+		sd_poll_once = <&emmc2>, "non-removable?";
+		spi_dma4 = <&spi0>, "dmas:0=", <&dma40>,
+			   <&spi0>, "dmas:8=", <&dma40>;
+		i2s_dma4 = <&i2s>, "dmas:0=", <&dma40>,
+			   <&i2s>, "dmas:8=", <&dma40>;
 	};
 
 	scb: scb {
--- a/arch/arm/boot/dts/overlays/README
+++ b/arch/arm/boot/dts/overlays/README
@@ -226,6 +226,10 @@ Params:
         i2s                     Set to "on" to enable the i2s interface
                                 (default "off")
 
+        i2s_dma4                Use to enable 40-bit DMA on the i2s interface
+                                (the assigned value doesn't matter)
+                                (2711 only)
+
         krnbt                   Set to "off" to disable autoprobing of Bluetooth
                                 driver without need of hciattach/btattach
                                 (default "on")
