ARM: mvebu: add audio support to Armada 385 DB
authorMarcin Wojtas <mw@semihalf.com>
Tue, 20 Sep 2022 13:26:46 +0000 (15:26 +0200)
committerGregory CLEMENT <gregory.clement@bootlin.com>
Fri, 23 Sep 2022 15:13:06 +0000 (17:13 +0200)
This commit adds the necessary Device Tree information to enable
audio support on the Armada 385 DB platform. In details it:

 * Instantiates the CS42L51 audio codec on the I2C0 bus

 * Adds simple-card DT binding for audio on Armada 385 DB

 * Adds description for both analog I2S and S/PDIF I/O

 * Disabled by default

Signed-off-by: Marcin Wojtas <mw@semihalf.com>
Signed-off-by: Nadav Haklai <nadavh@marvell.com>
Tested-by: Star_Automation <star@marvell.com>
Tested-by: Lior Amsalem <alior@marvell.com>
Reviewed-by: Andrew Lunn <andrew@lunn.ch>
Signed-off-by: Gregory CLEMENT <gregory.clement@bootlin.com>
arch/arm/boot/dts/armada-388-db.dts

index 5130ecc..2bcec54 100644 (file)
                        i2c@11000 {
                                status = "okay";
                                clock-frequency = <100000>;
+                               audio_codec: audio-codec@4a {
+                                       #sound-dai-cells = <0>;
+                                       compatible = "cirrus,cs42l51";
+                                       reg = <0x4a>;
+                               };
                        };
 
                        i2c@11100 {
                                no-1-8-v;
                        };
 
+                       audio-controller@e8000 {
+                               pinctrl-0 = <&i2s_pins>;
+                               pinctrl-names = "default";
+                               status = "disabled";
+                       };
+
                        usb3@f0000 {
                                status = "okay";
                        };
                        };
                };
        };
+
+       sound {
+               compatible = "simple-audio-card";
+               simple-audio-card,name = "Armada 385 DB Audio";
+               simple-audio-card,mclk-fs = <256>;
+               simple-audio-card,widgets =
+                       "Headphone", "Out Jack",
+                       "Line", "In Jack";
+               simple-audio-card,routing =
+                       "Out Jack", "HPL",
+                       "Out Jack", "HPR",
+                       "AIN1L", "In Jack",
+                       "AIN1R", "In Jack";
+               status = "disabled";
+
+               simple-audio-card,dai-link@0 {
+                       format = "i2s";
+                       cpu {
+                               sound-dai = <&audio_controller 0>;
+                       };
+
+                       codec {
+                               sound-dai = <&audio_codec>;
+                       };
+               };
+
+               simple-audio-card,dai-link@1 {
+                       format = "i2s";
+                       cpu {
+                               sound-dai = <&audio_controller 1>;
+                       };
+
+                       codec {
+                               sound-dai = <&spdif_out>;
+                       };
+               };
+
+               simple-audio-card,dai-link@2 {
+                       format = "i2s";
+                       cpu {
+                               sound-dai = <&audio_controller 1>;
+                       };
+
+                       codec {
+                               sound-dai = <&spdif_in>;
+                       };
+               };
+       };
+
+       spdif_out: spdif-out {
+               #sound-dai-cells = <0>;
+               compatible = "linux,spdif-dit";
+       };
+
+       spdif_in: spdif-in {
+               #sound-dai-cells = <0>;
+               compatible = "linux,spdif-dir";
+       };
 };
 
 &spi0 {