diff mbox

BCM2835: Add I2S driver to device tree

Message ID 1404895825-25668-1-git-send-email-broonie@kernel.org
State New
Headers show

Commit Message

Mark Brown July 9, 2014, 8:50 a.m. UTC
From: Mark Brown <broonie@linaro.org>

[Tweaked slightly to disable by default -- broonie]

Signed-off-by: Florian Meier <florian.meier@koalo.de>
Signed-off-by: Mark Brown <broonie@linaro.org>
---
 arch/arm/boot/dts/bcm2835-rpi-b.dts |  8 +++++++-
 arch/arm/boot/dts/bcm2835.dtsi      | 11 +++++++++++
 2 files changed, 18 insertions(+), 1 deletion(-)

Comments

Stephen Warren Sept. 17, 2014, 1:53 a.m. UTC | #1
On 07/09/2014 02:50 AM, Mark Brown wrote:
> From: Mark Brown <broonie@linaro.org>
> 
> [Tweaked slightly to disable by default -- broonie]
> 
> Signed-off-by: Florian Meier <florian.meier@koalo.de>
> Signed-off-by: Mark Brown <broonie@linaro.org>

I've belatedly forwarded this to arm-soc for application, except:

> diff --git a/arch/arm/boot/dts/bcm2835.dtsi b/arch/arm/boot/dts/bcm2835.dtsi

> +		bcm2835_i2s: i2s@7e203000 {
> +			compatible = "brcm,bcm2835-i2s";
> +			reg = <0x7e203000 0x20>,
> +			      <0x7e101098 0x02>;
> +
> +			dmas = <&dma 2>,
> +			       <&dma 3>;
> +			dma-names = "tx", "rx";
> +		};

This node is already there (and even edited in this patch), so I dropped
that hunk.
Mark Brown Sept. 17, 2014, 4:44 p.m. UTC | #2
On Tue, Sep 16, 2014 at 07:53:09PM -0600, Stephen Warren wrote:
> On 07/09/2014 02:50 AM, Mark Brown wrote:
> > From: Mark Brown <broonie@linaro.org>

> > +		bcm2835_i2s: i2s@7e203000 {
> > +			compatible = "brcm,bcm2835-i2s";
> > +			reg = <0x7e203000 0x20>,
> > +			      <0x7e101098 0x02>;
> > +
> > +			dmas = <&dma 2>,
> > +			       <&dma 3>;
> > +			dma-names = "tx", "rx";
> > +		};

> This node is already there (and even edited in this patch), so I dropped
> that hunk.

Right, not sure what went on with applying it upstream originally but it
looks like git rebase didn't figure out what was going on well - the
bcm2835_i2s is needed so we can reference the node.  I'll probably get
round to resending an incremental patch.
Stephen Warren Sept. 17, 2014, 5:23 p.m. UTC | #3
On 09/17/2014 10:44 AM, Mark Brown wrote:
> On Tue, Sep 16, 2014 at 07:53:09PM -0600, Stephen Warren wrote:
>> On 07/09/2014 02:50 AM, Mark Brown wrote:
>>> From: Mark Brown <broonie@linaro.org>
>
>>> +		bcm2835_i2s: i2s@7e203000 {
>>> +			compatible = "brcm,bcm2835-i2s";
>>> +			reg = <0x7e203000 0x20>,
>>> +			      <0x7e101098 0x02>;
>>> +
>>> +			dmas = <&dma 2>,
>>> +			       <&dma 3>;
>>> +			dma-names = "tx", "rx";
>>> +		};
>
>> This node is already there (and even edited in this patch), so I dropped
>> that hunk.
>
> Right, not sure what went on with applying it upstream originally but it
> looks like git rebase didn't figure out what was going on well - the
> bcm2835_i2s is needed so we can reference the node.  I'll probably get
> round to resending an incremental patch.

Oh right, I guess I did drop the addition of that label when I dropped 
that node.

The board DT could doesn't necessarily require a label though; it could 
just repeat the node name:

/ {
     i2s@7e203000 {
         ... extra properties

Still, it looks like we typically use labels to reference nodes in 
bcm2835-*.dts, so adding the label would indeed be a good idea.
diff mbox

Patch

diff --git a/arch/arm/boot/dts/bcm2835-rpi-b.dts b/arch/arm/boot/dts/bcm2835-rpi-b.dts
index 2a3b1c1..58a0d60 100644
--- a/arch/arm/boot/dts/bcm2835-rpi-b.dts
+++ b/arch/arm/boot/dts/bcm2835-rpi-b.dts
@@ -23,7 +23,7 @@ 
 
 &gpio {
 	pinctrl-names = "default";
-	pinctrl-0 = <&gpioout &alt0 &alt3>;
+	pinctrl-0 = <&gpioout &alt0 &alt2 &alt3>;
 
 	gpioout: gpioout {
 		brcm,pins = <6>;
@@ -39,6 +39,12 @@ 
 		brcm,pins = <48 49 50 51 52 53>;
 		brcm,function = <7>; /* alt3 */
 	};
+
+	/* I2S interface */
+	alt2: alt2 {
+		brcm,pins = <28 29 30 31>;
+		brcm,function = <6>; /* alt2 */
+	};
 };
 
 &i2c0 {
diff --git a/arch/arm/boot/dts/bcm2835.dtsi b/arch/arm/boot/dts/bcm2835.dtsi
index b8473c4..a0aff1f 100644
--- a/arch/arm/boot/dts/bcm2835.dtsi
+++ b/arch/arm/boot/dts/bcm2835.dtsi
@@ -99,6 +99,7 @@ 
 			dmas = <&dma 2>,
 			       <&dma 3>;
 			dma-names = "tx", "rx";
+			status = "disabled";
 		};
 
 		spi: spi@7e204000 {
@@ -148,6 +149,16 @@ 
 		arm-pmu {
 			compatible = "arm,arm1176-pmu";
 		};
+
+		bcm2835_i2s: i2s@7e203000 {
+			compatible = "brcm,bcm2835-i2s";
+			reg = <0x7e203000 0x20>,
+			      <0x7e101098 0x02>;
+
+			dmas = <&dma 2>,
+			       <&dma 3>;
+			dma-names = "tx", "rx";
+		};
 	};
 
 	clocks {