diff --git a/arch/arm64/boot/dts/amlogic/meson64_odroidc4.dts b/arch/arm64/boot/dts/amlogic/meson64_odroidc4.dts index ae37aec87cc8..3173ebc44a0c 100644 --- a/arch/arm64/boot/dts/amlogic/meson64_odroidc4.dts +++ b/arch/arm64/boot/dts/amlogic/meson64_odroidc4.dts @@ -626,6 +626,11 @@ }; /* Audio Related start */ + spdif_dit:spdif{ + #sound-dai-cells = <0>; + compatible = "linux,spdif-dit"; + status = "okay"; + }; dummy_codec:dummy{ #sound-dai-cells = <0>; compatible = "amlogic, aml_dummy_codec"; @@ -672,7 +677,7 @@ system-clock-frequency = <6144000>; }; codec { - sound-dai = <&dummy_codec>; + sound-dai = <&spdif_dit>; }; }; @@ -695,6 +700,24 @@ sound-dai = <&amlogic_codec>; }; }; + + aml-audio-card,dai-link@2 { + format = "i2s"; + mclk-fs = <256>; + bitclock-master = <&tdmb>; + frame-master = <&tdmb>; + suffix-name = "alsaPORT-i2s1"; + cpu { + sound-dai = <&tdmb>; + dai-tdm-slot-tx-mask = <1 1>; + dai-tdm-slot-num = <2>; + dai-tdm-slot-width = <32>; + system-clock-frequency = <12288000>; + }; + codec { + sound-dai = <&dummy_codec>; + }; + }; }; audiolocker: locker { compatible = "amlogic, audiolocker"; @@ -733,6 +756,25 @@ }; /* end of / */ &audiobus { + tdmb: tdm@1 { + compatible = "amlogic, sm1-snd-tdmb"; + #sound-dai-cells = <0>; + dai-tdm-lane-slot-mask-in = <0 1 0 0>; + dai-tdm-lane-slot-mask-out = <1 0 0 0>; + dai-tdm-clk-sel = <1>; + clocks = <&clkaudio CLKID_AUDIO_MCLK_B + &clkaudio CLKID_AUDIO_MCLK_PAD0 + &clkc CLKID_MPLL0>; + clock-names = "mclk", "mclk_pad", "clk_srcpll"; + pinctrl-names = "tdm_pins"; + pinctrl-0 = <&tdmb_mclk_ao &tdmout_b_ao>; + i2s2hdmi = <0>; + start_clk_enable = <1>; + clk_tuning_enable = <1>; + status = "okay"; + }; + + tdmc: tdm@2 { compatible = "amlogic, sm1-snd-tdmc"; #sound-dai-cells = <0>; @@ -742,7 +784,6 @@ clocks = <&clkaudio CLKID_AUDIO_MCLK_C &clkc CLKID_MPLL2>; clock-names = "mclk", "clk_srcpll"; - mclk_pad = <0>; /* 0: mclk_0; 1: mclk_1 */ i2s2hdmi = <1>; status = "okay"; }; @@ -855,13 +896,22 @@ function = "spdif_out_ao"; }; }; - tdma_mclk: tdma_mclk { + tdmb_mclk_ao: mclk0_ao{ mux { groups = "mclk0_ao"; function = "mclk0_ao"; drive-strength = <2>; }; }; + tdmout_b_ao: tdmout_b { + mux { + groups = "tdmb_sclk_ao", + "tdmb_fs_ao", + "tdmb_dout0_ao"; + function = "tdmb_out_ao"; + drive-strength = <2>; + }; + }; }; /* end of pinctrl_aobus */ &spicc0 {