On 29/04/2021 10:42, Jerome Brunet wrote: > Enable audio capture frontends and a tdm decoder. > This makes it possible to loopback the audio played on the hdmi codec, > which is the only output interface at the moment. > > Of course, one TODDR device would be enough to do that but since > the 3 FRDDRs are enabled on the playback side, let's do the same on the > capture side. > > Signed-off-by: Jerome Brunet <jbrunet@xxxxxxxxxxxx> > --- > .../boot/dts/amlogic/meson-khadas-vim3.dtsi | 41 +++++++++++++++++-- > .../dts/amlogic/meson-sm1-khadas-vim3l.dts | 13 ++++++ > 2 files changed, 50 insertions(+), 4 deletions(-) > > diff --git a/arch/arm64/boot/dts/amlogic/meson-khadas-vim3.dtsi b/arch/arm64/boot/dts/amlogic/meson-khadas-vim3.dtsi > index 66d67524b031..3cf4ecb6d52e 100644 > --- a/arch/arm64/boot/dts/amlogic/meson-khadas-vim3.dtsi > +++ b/arch/arm64/boot/dts/amlogic/meson-khadas-vim3.dtsi > @@ -171,11 +171,16 @@ hdmi_connector_in: endpoint { > sound { > compatible = "amlogic,axg-sound-card"; > model = "KHADAS-VIM3"; > - audio-aux-devs = <&tdmout_a>; > + audio-aux-devs = <&tdmin_a>, <&tdmout_a>; > audio-routing = "TDMOUT_A IN 0", "FRDDR_A OUT 0", > "TDMOUT_A IN 1", "FRDDR_B OUT 0", > "TDMOUT_A IN 2", "FRDDR_C OUT 0", > - "TDM_A Playback", "TDMOUT_A OUT"; > + "TDM_A Playback", "TDMOUT_A OUT", > + "TDMIN_A IN 0", "TDM_A Capture", > + "TDMIN_A IN 3", "TDM_A Loopback", > + "TODDR_A IN 0", "TDMIN_A OUT", > + "TODDR_B IN 0", "TDMIN_A OUT", > + "TODDR_C IN 0", "TDMIN_A OUT"; > > assigned-clocks = <&clkc CLKID_MPLL2>, > <&clkc CLKID_MPLL0>, > @@ -198,8 +203,20 @@ dai-link-2 { > sound-dai = <&frddr_c>; > }; > > - /* 8ch hdmi interface */ > dai-link-3 { > + sound-dai = <&toddr_a>; > + }; > + > + dai-link-4 { > + sound-dai = <&toddr_b>; > + }; > + > + dai-link-5 { > + sound-dai = <&toddr_c>; > + }; > + > + /* 8ch hdmi interface */ > + dai-link-6 { > sound-dai = <&tdmif_a>; > dai-format = "i2s"; > dai-tdm-slot-tx-mask-0 = <1 1>; > @@ -214,7 +231,7 @@ codec { > }; > > /* hdmi glue */ > - dai-link-4 { > + dai-link-7 { > sound-dai = <&tohdmitx TOHDMITX_I2S_OUT>; > > codec { > @@ -454,10 +471,26 @@ &tdmif_a { > status = "okay"; > }; > > +&tdmin_a { > + status = "okay"; > +}; > + > &tdmout_a { > status = "okay"; > }; > > +&toddr_a { > + status = "okay"; > +}; > + > +&toddr_b { > + status = "okay"; > +}; > + > +&toddr_c { > + status = "okay"; > +}; > + > &tohdmitx { > status = "okay"; > }; > diff --git a/arch/arm64/boot/dts/amlogic/meson-sm1-khadas-vim3l.dts b/arch/arm64/boot/dts/amlogic/meson-sm1-khadas-vim3l.dts > index 06de0b1ce726..f2c098143594 100644 > --- a/arch/arm64/boot/dts/amlogic/meson-sm1-khadas-vim3l.dts > +++ b/arch/arm64/boot/dts/amlogic/meson-sm1-khadas-vim3l.dts > @@ -32,6 +32,19 @@ vddcpu: regulator-vddcpu { > regulator-boot-on; > regulator-always-on; > }; > + > + sound { > + model = "G12B-KHADAS-VIM3L"; > + audio-routing = "TDMOUT_A IN 0", "FRDDR_A OUT 0", > + "TDMOUT_A IN 1", "FRDDR_B OUT 0", > + "TDMOUT_A IN 2", "FRDDR_C OUT 0", > + "TDM_A Playback", "TDMOUT_A OUT", > + "TDMIN_A IN 0", "TDM_A Capture", > + "TDMIN_A IN 13", "TDM_A Loopback", > + "TODDR_A IN 0", "TDMIN_A OUT", > + "TODDR_B IN 0", "TDMIN_A OUT", > + "TODDR_C IN 0", "TDMIN_A OUT"; > + }; > }; > > &cpu0 { > Reviewed-by: Neil Armstrong <narmstrong@xxxxxxxxxxxx>