ARM: dts: omap3-echo: Add speaker sound card support
authorAndré Hentschel <nerv@dawncrow.de>
Sun, 27 Dec 2020 17:13:53 +0000 (18:13 +0100)
committerTony Lindgren <tony@atomide.com>
Tue, 26 Jan 2021 11:14:05 +0000 (13:14 +0200)
This adds audio playback to the first generation Amazon Echo

Signed-off-by: André Hentschel <nerv@dawncrow.de>
Signed-off-by: Tony Lindgren <tony@atomide.com>
arch/arm/boot/dts/omap3-echo.dts

index 93ffeddada1eb1a9c26c4d4da6dda5ff653e4239..b9fd113979f25e875966bea0077c7b3d0cab2fed 100644 (file)
                linux,axis = <REL_X>;
                rotary-encoder,relative-axis;
        };
+
+       speaker_amp: speaker-amplifier {
+               compatible = "simple-audio-amplifier";
+               enable-gpios = <&gpio5 1 GPIO_ACTIVE_HIGH>;     /* gpio_129 */
+               sound-name-prefix = "Speaker Amp";
+               VCC-supply = <&vcc1v8>;
+       };
+
+       sound {
+               compatible = "simple-audio-card";
+               simple-audio-card,name = "Misto Speaker";
+               simple-audio-card,widgets =
+                       "Speaker", "Speaker";
+               simple-audio-card,routing =
+                       "Speaker Amp INL", "HPL",
+                       "Speaker Amp INR", "HPR",
+                       "Speaker", "Speaker Amp OUTL",
+                       "Speaker", "Speaker Amp OUTR";
+               simple-audio-card,format = "i2s";
+               simple-audio-card,bitclock-master = <&sound_master>;
+               simple-audio-card,frame-master = <&sound_master>;
+               simple-audio-card,aux-devs = <&speaker_amp>;
+
+               simple-audio-card,cpu {
+                       sound-dai = <&mcbsp2>;
+               };
+
+               sound_master: simple-audio-card,codec {
+                       sound-dai = <&codec0>;
+                       system-clock-frequency = <19200000>;
+               };
+       };
 };
 
 &i2c1 {
        };
 };
 
+&mcbsp2 {
+       status = "okay";
+       #sound-dai-cells = <0>;
+       pinctrl-names = "default";
+       pinctrl-0 = <&mcbsp2_pins>;
+};
+
 &i2c2 {
        clock-frequency = <400000>;
 
        };
 };
 
+&i2c3 {
+       clock-frequency = <400000>;
+
+       codec0: codec@18 {
+               #sound-dai-cells = <0>;
+               compatible = "ti,tlv320aic32x4";
+               reg = <0x18>;
+               clocks = <&sys_clkout1>;
+               clock-names = "mclk";
+               ldoin-supply = <&vcc1v8>;
+               iov-supply = <&vcc1v8>;
+               reset-gpios = <&gpio3 10 GPIO_ACTIVE_LOW>;      /* gpio_74 */
+       };
+};
+
+
 #include "tps65910.dtsi"
 
 &omap3_pmx_core {
                pinctrl-single,pins = <
                        OMAP3_CORE1_IOPAD(0x20dc, PIN_INPUT | MUX_MODE4)        /* dss_data0.gpio_70 */
                        OMAP3_CORE1_IOPAD(0x20e0, PIN_INPUT | MUX_MODE4)        /* dss_data2.gpio_72 */
+                       OMAP3_CORE1_IOPAD(0x20e4, PIN_OUTPUT | MUX_MODE4)       /* dss_data4.gpio_74 */
+                       OMAP3_CORE1_IOPAD(0x20fa, PIN_OUTPUT_PULLDOWN | MUX_MODE4)      /* dss_data15.gpio_85 */
+                       OMAP3_CORE1_IOPAD(0x2a1a, PIN_OUTPUT | MUX_MODE0)       /* sys_clkout1.sys_clkout1 */
                >;
        };
 
                        OMAP3_CORE1_IOPAD(0x216a, PIN_INPUT_PULLUP | MUX_MODE0)         /* sdmmc2_dat7.sdmmc2_dat7 */
                >;
        };
+
+       mcbsp2_pins: pinmux_mcbsp2_pins {
+               pinctrl-single,pins = <
+                       OMAP3_CORE1_IOPAD(0x213c, PIN_INPUT | MUX_MODE0)        /* mcbsp2_fsx.mcbsp2_fsx */
+                       OMAP3_CORE1_IOPAD(0x213e, PIN_INPUT | MUX_MODE0)        /* mcbsp2_clkx.mcbsp2_clkx */
+                       OMAP3_CORE1_IOPAD(0x2140, PIN_INPUT | MUX_MODE0)        /* mcbsp2_dr.mcbsp2.dr */
+                       OMAP3_CORE1_IOPAD(0x2142, PIN_OUTPUT | MUX_MODE0)       /* mcbsp2_dx.mcbsp2_dx */
+               >;
+       };
 };
 
 &omap3_pmx_core2 {