arm64: dts: meson: odroid-n2: add jack audio output support
authorJerome Brunet <jbrunet@baylibre.com>
Wed, 1 Jul 2020 09:45:56 +0000 (11:45 +0200)
committerKevin Hilman <khilman@baylibre.com>
Wed, 29 Jul 2020 19:18:32 +0000 (12:18 -0700)
Add support for audio on jack socket of the odroid-n2

Signed-off-by: Jerome Brunet <jbrunet@baylibre.com>
Signed-off-by: Kevin Hilman <khilman@baylibre.com>
Reviewed-by: Neil Armstrong <narmstrong@baylibre.com>
Link: https://lore.kernel.org/r/20200701094556.194498-3-jbrunet@baylibre.com
arch/arm64/boot/dts/amlogic/meson-g12b-odroid-n2.dts

index d4421ad..34fffa6 100644 (file)
@@ -9,6 +9,7 @@
 #include "meson-g12b-s922x.dtsi"
 #include <dt-bindings/input/input.h>
 #include <dt-bindings/gpio/meson-g12a-gpio.h>
+#include <dt-bindings/sound/meson-g12a-toacodec.h>
 #include <dt-bindings/sound/meson-g12a-tohdmitx.h>
 
 / {
                ethernet0 = &ethmac;
        };
 
+       dioo2133: audio-amplifier-0 {
+               compatible = "simple-audio-amplifier";
+               enable-gpios = <&gpio_ao GPIOAO_2 GPIO_ACTIVE_HIGH>;
+               VCC-supply = <&vcc_5v>;
+               sound-name-prefix = "U19";
+               status = "okay";
+       };
+
        chosen {
                stdout-path = "serial0:115200n8";
        };
        sound {
                compatible = "amlogic,axg-sound-card";
                model = "G12B-ODROID-N2";
-               audio-aux-devs = <&tdmout_b>, <&tdmin_a>, <&tdmin_b>,
-                                <&tdmin_c>, <&tdmin_lb>;
+               audio-widgets = "Line", "Lineout";
+               audio-aux-devs = <&tdmout_b>, <&tdmout_c>, <&tdmin_a>,
+                                <&tdmin_b>, <&tdmin_c>, <&tdmin_lb>,
+                                <&dioo2133>;
                audio-routing = "TDMOUT_B IN 0", "FRDDR_A OUT 1",
                                "TDMOUT_B IN 1", "FRDDR_B OUT 1",
                                "TDMOUT_B IN 2", "FRDDR_C OUT 1",
                                "TDM_B Playback", "TDMOUT_B OUT",
+                               "TDMOUT_C IN 0", "FRDDR_A OUT 2",
+                               "TDMOUT_C IN 1", "FRDDR_B OUT 2",
+                               "TDMOUT_C IN 2", "FRDDR_C OUT 2",
+                               "TDM_C Playback", "TDMOUT_C OUT",
                                "TDMIN_A IN 4", "TDM_B Loopback",
                                "TDMIN_B IN 4", "TDM_B Loopback",
                                "TDMIN_C IN 4", "TDM_B Loopback",
                                "TDMIN_LB IN 1", "TDM_B Loopback",
+                               "TDMIN_A IN 5", "TDM_C Loopback",
+                               "TDMIN_B IN 5", "TDM_C Loopback",
+                               "TDMIN_C IN 5", "TDM_C Loopback",
+                               "TDMIN_LB IN 2", "TDM_C Loopback",
                                "TODDR_A IN 0", "TDMIN_A OUT",
                                "TODDR_B IN 0", "TDMIN_A OUT",
                                "TODDR_C IN 0", "TDMIN_A OUT",
                                "TODDR_C IN 2", "TDMIN_C OUT",
                                "TODDR_A IN 6", "TDMIN_LB OUT",
                                "TODDR_B IN 6", "TDMIN_LB OUT",
-                               "TODDR_C IN 6", "TDMIN_LB OUT";
+                               "TODDR_C IN 6", "TDMIN_LB OUT",
+                               "U19 INL", "ACODEC LOLP",
+                               "U19 INR", "ACODEC LORP",
+                               "Lineout", "U19 OUTL",
+                               "Lineout", "U19 OUTR";
 
                assigned-clocks = <&clkc CLKID_MPLL2>,
                                  <&clkc CLKID_MPLL0>,
                        dai-tdm-slot-tx-mask-3 = <1 1>;
                        mclk-fs = <256>;
 
-                       codec {
+                       codec-0 {
                                sound-dai = <&tohdmitx TOHDMITX_I2S_IN_B>;
                        };
+
+                       codec-1 {
+                               sound-dai = <&toacodec TOACODEC_IN_B>;
+                       };
                };
 
-               /* hdmi glue */
+               /* i2s jack output interface */
                dai-link-7 {
+                       sound-dai = <&tdmif_c>;
+                       dai-format = "i2s";
+                       dai-tdm-slot-tx-mask-0 = <1 1>;
+                       mclk-fs = <256>;
+
+                       codec-0 {
+                               sound-dai = <&tohdmitx TOHDMITX_I2S_IN_C>;
+                       };
+
+                       codec-1 {
+                               sound-dai = <&toacodec TOACODEC_IN_C>;
+                       };
+               };
+
+               /* hdmi glue */
+               dai-link-8 {
                        sound-dai = <&tohdmitx TOHDMITX_I2S_OUT>;
 
                        codec {
                                sound-dai = <&hdmi_tx>;
                        };
                };
+
+               /* acodec glue */
+               dai-link-9 {
+                       sound-dai = <&toacodec TOACODEC_OUT>;
+
+                       codec {
+                               sound-dai = <&acodec>;
+                       };
+               };
        };
 };
 
+&acodec {
+       AVDD-supply = <&vddao_1v8>;
+       status = "okay";
+};
+
 &arb {
        status = "okay";
 };
        status = "okay";
 };
 
+&tdmif_c {
+       status = "okay";
+};
+
 &tdmin_a {
        status = "okay";
 };
        status = "okay";
 };
 
+&tdmout_c {
+       status = "okay";
+};
+
+&toacodec {
+       status = "okay";
+};
+
 &tohdmitx {
        status = "okay";
 };