Add support for audio on jack socket of the odroid-n2

Signed-off-by: Jerome Brunet <jbru...@baylibre.com>
---
 .../boot/dts/amlogic/meson-g12b-odroid-n2.dts | 79 +++++++++++++++++--
 1 file changed, 74 insertions(+), 5 deletions(-)

diff --git a/arch/arm64/boot/dts/amlogic/meson-g12b-odroid-n2.dts 
b/arch/arm64/boot/dts/amlogic/meson-g12b-odroid-n2.dts
index d4421ad164bd..34fffa6d859d 100644
--- a/arch/arm64/boot/dts/amlogic/meson-g12b-odroid-n2.dts
+++ b/arch/arm64/boot/dts/amlogic/meson-g12b-odroid-n2.dts
@@ -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>
 
 / {
@@ -20,6 +21,14 @@ aliases {
                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";
        };
@@ -209,16 +218,26 @@ hdmi_connector_in: endpoint {
        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",
@@ -230,7 +249,11 @@ sound {
                                "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>,
@@ -275,22 +298,56 @@ dai-link-6 {
                        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";
 };
@@ -505,6 +562,10 @@ &tdmif_b {
        status = "okay";
 };
 
+&tdmif_c {
+       status = "okay";
+};
+
 &tdmin_a {
        status = "okay";
 };
@@ -525,6 +586,14 @@ &tdmout_b {
        status = "okay";
 };
 
+&tdmout_c {
+       status = "okay";
+};
+
+&toacodec {
+       status = "okay";
+};
+
 &tohdmitx {
        status = "okay";
 };
-- 
2.25.4

Reply via email to