diff --git a/arch/arm64/boot/dts/amlogic/meson-s7d.dtsi b/arch/arm64/boot/dts/amlogic/meson-s7d.dtsi index e06523844..ae4dc09a6 100644 --- a/arch/arm64/boot/dts/amlogic/meson-s7d.dtsi +++ b/arch/arm64/boot/dts/amlogic/meson-s7d.dtsi @@ -3,14 +3,12 @@ * Copyright (c) 2019 Amlogic, Inc. All rights reserved. */ -#include #include #include #include #include #include #include -#include #include #include #include @@ -295,20 +293,6 @@ mboxes = <&mbox_fifo S7D_REE2AO_VRTC>; }; - audio_data: audio_data { - compatible = "amlogic, audio_data"; - mem_in_base_cmd = <0x82000020>; - query_licence_cmd = <0x82000050>; - status = "disabled"; - }; - - amaudio: amaudio { - compatible = "amlogic, amaudio"; - reg = <0x0 0xfe440000 0x0 0x10000>; - reg-names = "otp_tee_base"; - status = "disabled"; - }; - pwrdm: power-domains { compatible = "amlogic,s7d-power-domain"; #power-domain-cells = <1>; @@ -1314,99 +1298,37 @@ clock-names = "crg_general"; }; - dummy_codec:dummy{ - #sound-dai-cells = <0>; - compatible = "amlogic, aml_dummy_codec"; - status = "disabled"; - }; - amlogic_codec:t9015{ - #sound-dai-cells = <0>; - compatible = "amlogic, s4_codec_T9015"; - reg = <0x0 0xFE01A000 0x0 0x2000>; - tocodec_inout = <2>; - tdmout_index = <2>; - ch0_sel = <0>; - ch1_sel = <1>; - - reset-names = "acodec"; - resets = <&reset RESET_ACODEC>; - - status = "disabled"; - }; - - audiobus: audiobus@0xFE330000 { - compatible = "amlogic, audio-controller", "simple-bus"; - reg = <0x0 0xFE330000 0x0 0x3000>; - #address-cells = <2>; - #size-cells = <2>; - ranges = <0x0 0x0 0x0 0xFE330000 0x0 0x3000>; - - //power-domains = <&pwrdm PDID_S4_AUDIO>; - - clkaudio: audio_clocks { - compatible = "amlogic, sc2-audio-clocks"; - #clock-cells = <1>; - reg = <0x0 0x0 0x0 0xb0>; - }; - ddr_manager { - compatible = - "amlogic, t5-audio-ddr-manager"; - interrupts = < - GIC_SPI 32 IRQ_TYPE_EDGE_RISING - GIC_SPI 33 IRQ_TYPE_EDGE_RISING - GIC_SPI 34 IRQ_TYPE_EDGE_RISING - GIC_SPI 45 IRQ_TYPE_EDGE_RISING - GIC_SPI 36 IRQ_TYPE_EDGE_RISING - GIC_SPI 37 IRQ_TYPE_EDGE_RISING - GIC_SPI 38 IRQ_TYPE_EDGE_RISING - GIC_SPI 46 IRQ_TYPE_EDGE_RISING - >; - interrupt-names = - "toddr_a", "toddr_b", "toddr_c", - "toddr_d", - "frddr_a", "frddr_b", "frddr_c", - "frddr_d"; - }; - - pinctrl_audio: pinctrl { - compatible = "amlogic, audio-pinctrl"; - }; - };/* end of audiobus*/ - - /* Sound iomap */ - aml_snd_iomap { - compatible = "amlogic, snd-iomap"; - status = "disabled"; - #address-cells=<2>; - #size-cells=<2>; - ranges; - pdm_bus { - reg = <0x0 0xFE331000 0x0 0x400>; - }; - audiobus_base { - reg = <0x0 0xFE330000 0x0 0x1000>; - }; - audiolocker_base { - reg = <0x0 0xFE331400 0x0 0x400>; - }; - eqdrc_base { - reg = <0x0 0xFE332000 0x0 0x1000>; - }; - vad_base { - reg = <0x0 0xFE331800 0x0 0x400>; - }; - resampleA_base { - reg = <0x0 0xFE331c00 0x0 0x104>; - }; - resampleB_base { - reg = <0x0 0xFE334000 0x0 0x104>; - }; + dwc2_a: dwc2_a@fdd00000 { + compatible = "amlogic,dwc2"; + status = "disable"; + device_name = "dwc2_a"; + reg = <0x0 0xfdd00000 0x0 0x100000>; + interrupts = <0 131 4>; + pl-periph-id = <0>; /** lm name */ + clock-src = "usb0"; /** clock src */ + port-id = <0>; /** ref to mach/usb.h */ + port-type = <2>; /** 0: otg, 1: host, 2: slave */ + port-speed = <0>; /** 0: default, high, 1: full */ + port-config = <0>; /** 0: default */ + /*0:default,1:single,2:incr,3:incr4,4:incr8,5:incr16,6:disable*/ + port-dma = <0>; + port-id-mode = <0>; /** 0: hardware, 1: sw_host, 2: sw_slave*/ + usb-fifo = <728>; + cpu-type = "v2"; + phy-reg = <0xfe03a000>; + phy-reg-size = <0xa0>; + /** phy-interface: 0x0: amlogic phy, 0x1: synopsys phy **/ + phy-interface = <0x2>; + //clocks = <&clkc CLKID_USB + // &clkc CLKID_USB1_TO_DDR>; + //clock-names = "usb_general", + // "usb1"; }; dolby_fw: dolby_fw { compatible = "amlogic, dolby_fw"; mem_size = <0x100000>; - status = "disabled"; + status = "okay"; }; pcie: pcie@f5000000 { diff --git a/arch/arm64/boot/dts/amlogic/mesons7d_audio.dtsi b/arch/arm64/boot/dts/amlogic/mesons7d_audio.dtsi new file mode 100644 index 000000000..ee47b80e1 --- /dev/null +++ b/arch/arm64/boot/dts/amlogic/mesons7d_audio.dtsi @@ -0,0 +1,469 @@ +// SPDX-License-Identifier: (GPL-2.0+ OR MIT) +/* + * Copyright (c) 2019 Amlogic, Inc. All rights reserved. + */ + +#include +/ { + soc { + dummy_codec:dummy{ + #sound-dai-cells = <0>; + compatible = "amlogic, aml_dummy_codec"; + status = "okay"; + }; + + amlogic_codec:t9015{ + #sound-dai-cells = <0>; + compatible = "amlogic, s4_codec_T9015"; + reg = <0x0 0xFE01A000 0x0 0x2000>; + tocodec_inout = <1>; + tdmout_index = <1>; + ch0_sel = <0>; + ch1_sel = <1>; + reset-names = "acodec"; + //resets = <&reset RESET_ACODEC>; + status = "okay"; + }; + + audio_data: audio_data { + compatible = "amlogic, audio_data"; + mem_in_base_cmd = <0x82000020>; + query_licence_cmd = <0x82000050>; + status = "okay"; + }; + + amaudio: amaudio { + compatible = "amlogic, amaudio"; + reg = <0x0 0xfe440000 0x0 0x10000>; + reg-names = "otp_tee_base"; + status = "okay"; + }; + + /* Sound iomap */ + aml_snd_iomap { + compatible = "amlogic, snd-iomap"; + status = "okay"; + #address-cells=<2>; + #size-cells=<2>; + ranges; + pdm_bus { + reg = <0x0 0xFE331000 0x0 0x400>; + }; + audiobus_base { + reg = <0x0 0xFE330000 0x0 0x1000>; + }; + audiolocker_base { + reg = <0x0 0xFE331400 0x0 0x400>; + }; + eqdrc_base { + reg = <0x0 0xFE332000 0x0 0x1000>; + }; + vad_base { + reg = <0x0 0xFE331800 0x0 0x400>; + }; + resampleA_base { + reg = <0x0 0xFE331c00 0x0 0x104>; + }; + resampleB_base { + reg = <0x0 0xFE334000 0x0 0x104>; + }; + }; + audiobus: audiobus@fe330000 { + compatible = "amlogic, audio-controller", "simple-bus"; + reg = <0x0 0xfe330000 0x0 0x3000>; + reg-names = "audio_bus"; + #address-cells = <2>; + #size-cells = <2>; + ranges = <0x0 0x0 0x0 0xfe330000 0x0 0x3000>; + chip_id = <0x47>; + // power-domains = <&pwrdm PDID_T7_AUDIO>; + status = "okay"; + + clkaudio: audio_clocks { + compatible = "amlogic, txhd2-audio-clocks"; + #clock-cells = <1>; + reg = <0x0 0x0 0x0 0xb0>; + status = "okay"; + }; + ddr_manager { + compatible = + "amlogic, t5-audio-ddr-manager"; + interrupts = < + GIC_SPI 32 IRQ_TYPE_EDGE_RISING + GIC_SPI 33 IRQ_TYPE_EDGE_RISING + GIC_SPI 34 IRQ_TYPE_EDGE_RISING + GIC_SPI 45 IRQ_TYPE_EDGE_RISING + GIC_SPI 36 IRQ_TYPE_EDGE_RISING + GIC_SPI 37 IRQ_TYPE_EDGE_RISING + GIC_SPI 38 IRQ_TYPE_EDGE_RISING + GIC_SPI 46 IRQ_TYPE_EDGE_RISING + >; + interrupt-names = + "toddr_a", "toddr_b", "toddr_c", + "toddr_d", + "frddr_a", "frddr_b", "frddr_c", + "frddr_d"; + }; + pinctrl_audio: pinctrl { + compatible = "amlogic, audio-pinctrl"; + status = "okay"; + }; + };/* end of audiobus*/ + };/*end soc*/ +}; + +&audiobus { + tdma:tdm@0 { + compatible = "amlogic, t5-snd-tdma"; + #sound-dai-cells = <0>; + + dai-tdm-lane-slot-mask-in = <1 1>; + dai-tdm-lane-slot-mask-out = <1 1>; + dai-tdm-clk-sel = <0>; + clocks = <&clkaudio CLKID_AUDIO_MCLK_A + &clkc CLKID_HIFI_PLL + &clkc CLKID_HIFI1_PLL>; + clock-names = "mclk", "clk_srcpll", "clk_src_cd"; + suspend-clk-off = <1>; + /* enable control gain */ + ctrl_gain = <1>; + status = "okay"; + }; + + tdmb:tdm@1 { + compatible = "amlogic, t5-snd-tdmb"; + #sound-dai-cells = <0>; + + dai-tdm-lane-slot-mask-in = <1 1 1 1>; + dai-tdm-lane-slot-mask-out = <1 1 1 1>; + dai-tdm-clk-sel = <1>; + clocks = <&clkaudio CLKID_AUDIO_MCLK_B + &clkc CLKID_HIFI_PLL + &clkc CLKID_HIFI1_PLL>; + clock-names = "mclk", "clk_srcpll", "clk_src_cd"; + suspend-clk-off = <1>; + i2s2hdmi = <1>; + src-clk-freq = <491520000>; + status = "okay"; + + }; + + tdmc:tdm@2 { + compatible = "amlogic, t5-snd-tdmc"; + #sound-dai-cells = <0>; + + dai-tdm-lane-slot-mask-in = <1 1 1 1>; + dai-tdm-lane-slot-mask-out = <1 0 0 0>; + dai-tdm-clk-sel = <2>; + + clocks = <&clkaudio CLKID_AUDIO_MCLK_C + &clkc CLKID_HIFI_PLL + &clkc CLKID_HIFI1_PLL>; + clock-names = "mclk", "clk_srcpll", "clk_src_cd"; + + /* + * 0: tdmout_a; + * 1: tdmout_b; + * 2: tdmout_c; + * 3: spdifout; + * 4: spdifout_b; + */ + samesource_sel = <3>; + + /*enable default mclk(12.288M), before extern codec start*/ + start_clk_enable = <1>; + src-clk-freq = <491520000>; + suspend-clk-off = <1>; + ctrl_gain = <1>; + status = "okay"; + /* !!!For --TV platform-- ONLY */ + Channel_Mask { + /*i2s has 4 pins, 8channel, mux output*/ + Spdif_samesource_Channel_Mask = "i2s_0/1"; + }; + }; + + pdma:pdm { + compatible = "amlogic, tm2-revb-snd-pdm"; + #sound-dai-cells = <0>; + + clocks = <&clkaudio CLKID_AUDIO_GATE_PDM + &clkc CLKID_FCLK_DIV3 + &clkc CLKID_HIFI_PLL + &clkaudio CLKID_AUDIO_PDMIN0 + &clkaudio CLKID_AUDIO_PDMIN1>; + clock-names = "gate", + "sysclk_srcpll", + "dclk_srcpll", + "pdm_dclk", + "pdm_sysclk"; + pinctrl-names = "pdm_pins"; + pinctrl-0 = <&pdmin>; + train_sample_count = <10>; + src-clk-freq = <491520000>; + /* mode 0~4, defalut:1 */ + filter_mode = <1>; + + status = "okay"; + }; + + spdifa:spdif@0 { + compatible = "amlogic, tm2-revb-snd-spdif-a"; + #sound-dai-cells = <0>; + + clocks = <&clkc CLKID_HIFI_PLL + &clkc CLKID_HIFI1_PLL + &clkc CLKID_FCLK_DIV4 + &clkaudio CLKID_AUDIO_GATE_SPDIFIN + &clkaudio CLKID_AUDIO_GATE_SPDIFOUT_A + &clkaudio CLKID_AUDIO_SPDIFIN + &clkaudio CLKID_AUDIO_SPDIFOUT_A>; + clock-names = "sysclk", "clk_src_cd", "fixed_clk", "gate_spdifin", + "gate_spdifout", "clk_spdifin", "clk_spdifout"; + + interrupts = + ; + interrupt-names = "irq_spdifin"; + pinctrl-names = "spdif_pins", "spdif_pins_mute"; + pinctrl-0 = <&spdif_out_a_h4_pins>; + pinctrl-1 = <&spdif_out_a_h4_mute_pins>; + /* + * 0: tdmout_a; + * 1: tdmout_b; + * 2: tdmout_c; + * 3: spdifout; + * 4: spdifout_b; + * 5: earc; + */ + src-clk-freq = <491520000>; + /*spdif clk tuning enable*/ + clk_tuning_enable = <1>; + suspend-clk-off = <1>; + status = "okay"; + }; + + spdifb:spdif@1 { + compatible = "amlogic, tm2-revb-snd-spdif-b"; + #sound-dai-cells = <0>; + + clocks = <&clkc CLKID_HIFI_PLL /*CLKID_HIFI_PLL*/ + &clkc CLKID_HIFI1_PLL + &clkaudio CLKID_AUDIO_GATE_SPDIFOUT_B + &clkaudio CLKID_AUDIO_SPDIFOUT_B>; + clock-names = "sysclk", "clk_src_cd", + "gate_spdifout", "clk_spdifout"; + src-clk-freq = <491520000>; + suspend-clk-off = <1>; + status = "okay"; + }; + + extn:extn { + compatible = "amlogic, txhd2-snd-extn"; + #sound-dai-cells = <0>; + + interrupts = + ; + interrupt-names = "irq_frhdmirx"; + + status = "okay"; + }; + + aed:effect { + compatible = "amlogic, snd-effect-v4"; + #sound-dai-cells = <0>; + + clocks = <&clkaudio CLKID_AUDIO_GATE_EQDRC + &clkc CLKID_FCLK_DIV5 + &clkaudio CLKID_AUDIO_EQDRC>; + clock-names = "gate", "srcpll", "eqdrc"; + + /* + * 0:tdmout_a + * 1:tdmout_b + * 2:tdmout_c + * 3:spdifout + * 4:spdifout_b + */ + eqdrc_module = <1>; + /* max 0xf, each bit for one lane, usually one lane */ + lane_mask = <0x1>; + /* max 0xff, each bit for one channel */ + channel_mask = <0xff>; + suspend-clk-off = <1>; + status = "okay"; + }; + + asrca: resample@0 { + compatible = "amlogic, t5-resample-a"; + clocks = <&clkc CLKID_HIFI_PLL + &clkaudio CLKID_AUDIO_MCLK_B + &clkaudio CLKID_AUDIO_RESAMPLE_A>; + clock-names = "resample_pll", "resample_src", "resample_clk"; + + /*same with toddr_src + * TDMIN_A, 0 + * TDMIN_B, 1 + * TDMIN_C, 2 + * SPDIFIN, 3 + * PDMIN, 4 + * FRATV, 5 + * TDMIN_LB, 6 + * LOOPBACK_A, 7 + * FRHDMIRX, 8 + * LOOPBACK_B, 9 + * SPDIFIN_LB, 10 + * EARC_RX, 11 + */ + src-clk-freq = <491520000>; + resample_module = <8>; + suspend-clk-off = <1>; + status = "okay"; + }; + + asrcb: resample@1 { + compatible = "amlogic, t5-resample-b"; + clocks = <&clkc CLKID_HIFI_PLL + &clkaudio CLKID_AUDIO_MCLK_F + &clkaudio CLKID_AUDIO_RESAMPLE_B>; + clock-names = "resample_pll", "resample_src", "resample_clk"; + src-clk-freq = <491520000>; + /*this resample is only used for loopback_A.*/ + suspend-clk-off = <1>; + status = "okay"; + }; + loopbacka:loopback@0 { + compatible = "amlogic, t5-loopbacka"; + #sound-dai-cells = <0>; + + clocks = <&clkaudio CLKID_AUDIO_GATE_PDM + &clkc CLKID_FCLK_DIV3 + &clkc CLKID_HIFI_PLL + &clkaudio CLKID_AUDIO_PDMIN0 + &clkaudio CLKID_AUDIO_PDMIN1 + &clkc CLKID_HIFI_PLL + &clkaudio CLKID_AUDIO_MCLK_A>; + clock-names = "pdm_gate", + "pdm_sysclk_srcpll", + "pdm_dclk_srcpll", + "pdm_dclk", + "pdm_sysclk", + "tdminlb_mpll", + "tdminlb_mclk"; + + /* datain src + * 0: tdmin_a; + * 1: tdmin_b; + * 2: tdmin_c; + * 3: spdifin; + * 4: pdmin; + */ + datain_src = <4>; + datain_chnum = <2>; + datain_chmask = <0x3>; + /* config which data pin for loopback */ + datain-lane-mask-in = <1 1 0 0>; + + /* calc mclk for datalb */ + mclk-fs = <256>; + /* tdmin_lb src + * 0: tdmoutA + * 1: tdmoutB + * 2: tdmoutC + * 3: PAD_TDMINA_DIN*, refer to core pinmux + * 4: PAD_TDMINB_DIN*, refer to core pinmux + * 5: PAD_TDMINC_DIN*, refer to core pinmux + * 6: PAD_TDMINA_D*, oe, refer to core pinmux + * 7: PAD_TDMINB_D*, oe, refer to core pinmux + */ + /* if tdmin_lb >= 3, use external loopback */ + datalb_src = <1>; + datalb_chnum = <2>; + datalb_chmask = <0x3>; + /* config which data pin as loopback */ + datalb-lane-mask-in = <1 0 0 0>; + + /* define loopack with pdm mic. */ + mic-src = <&pdma>; + status = "okay"; + }; + + loopbackb:loopback@1 { + compatible = "amlogic, t5-loopbackb"; + #sound-dai-cells = <0>; + + clocks = <&clkaudio CLKID_AUDIO_GATE_PDM + &clkc CLKID_FCLK_DIV3 + &clkc CLKID_HIFI_PLL + &clkaudio CLKID_AUDIO_PDMIN0 + &clkaudio CLKID_AUDIO_PDMIN1 + &clkc CLKID_HIFI_PLL + &clkaudio CLKID_AUDIO_MCLK_A>; + clock-names = "pdm_gate", + "pdm_sysclk_srcpll", + "pdm_dclk_srcpll", + "pdm_dclk", + "pdm_sysclk", + "tdminlb_mpll", + "tdminlb_mclk"; + + /* calc mclk for datain_lb */ + mclk-fs = <256>; + + /* datain src + * 0: tdmin_a; + * 1: tdmin_b; + * 2: tdmin_c; + * 3: spdifin; + * 4: pdmin; + */ + datain_src = <4>; + datain_chnum = <4>; + datain_chmask = <0xf>; + /* config which data pin for loopback */ + datain-lane-mask-in = <1 0 1 0>; + + /* tdmin_lb src + * 0: tdmoutA + * 1: tdmoutB + * 2: tdmoutC + * 3: PAD_TDMINA_DIN*, refer to core pinmux + * 4: PAD_TDMINB_DIN*, refer to core pinmux + * 5: PAD_TDMINC_DIN*, refer to core pinmux + * 6: PAD_TDMINA_D*, oe, refer to core pinmux + * 7: PAD_TDMINB_D*, oe, refer to core pinmux + */ + /* if tdmin_lb >= 3, use external loopback */ + datalb_src = <1>; + datalb_chnum = <2>; + datalb_chmask = <0x3>; + /* config which data pin as loopback */ + datalb-lane-mask-in = <1 0 0 0>; + suspend-clk-off = <1>; + status = "disabled"; + }; +}; /* end of audiobus */ + +&periphs_pinctrl { + spdif_out_a_h4_pins: spdifout_a_h4 { + mux { /* GPIOH_4 */ + groups = "spdif_out_h4"; + function = "spdif"; + }; + }; + spdif_out_a_h4_mute_pins: spdifout_a_h4_mute { + mux { /* GPIOH_4 */ + groups = "GPIOH_4"; + function = "gpio_periphs"; + output-low; + }; + }; + + pdmin: pdmin { + mux { /* GPIODV_3, GPIODV_4, GPIODV_5*/ + groups = "pdm_dclk_dv3", + "pdm_din0_dv4", + "pdm_din1_dv5"; + function = "pdm"; + }; + }; +}; diff --git a/arch/arm64/boot/dts/amlogic/s7d_pxp.dts b/arch/arm64/boot/dts/amlogic/s7d_pxp.dts index 2bc955353..7e1d9f9d7 100644 --- a/arch/arm64/boot/dts/amlogic/s7d_pxp.dts +++ b/arch/arm64/boot/dts/amlogic/s7d_pxp.dts @@ -7,6 +7,7 @@ #include "meson-s7d.dtsi" #include "mesons7d_drm.dtsi" +#include "mesons7d_audio.dtsi" / { amlogic-dt-id = "s7d_pxp"; compatible = "s7d_pxp"; @@ -583,9 +584,8 @@ aml-audio-card,name = "AML-AUGESOUND"; /*avout mute gpio*/ - avout_mute-gpios = <&gpio GPIOH_5 GPIO_ACTIVE_HIGH>; - spk_mute-gpios = <&gpio GPIOH_8 GPIO_ACTIVE_LOW>; - + avout_mute-gpios = <&gpio GPIOH_4 GPIO_ACTIVE_HIGH>; + av_mute_sleep_time = <700>; aml-audio-card,dai-link@0 { format = "dsp_a"; mclk-fs = <512>; @@ -679,19 +679,6 @@ }; }; - aml-audio-card,dai-link@3 { - mclk-fs = <64>; - /* suffix-name, sync with android audio hal - * what's the dai link used for - */ - suffix-name = "alsaPORT-pdm-builtinmic"; - cpu { - sound-dai = <&apdm>; - }; - codec { - sound-dai = <&dummy_codec>; - }; - }; aml-audio-card,dai-link@4 { mclk-fs = <128>; @@ -722,18 +709,6 @@ }; }; - aml-audio-card,dai-link@6 { - mclk-fs = <256>; - continuous-clock; - suffix-name = "alsaPORT-loopback"; - cpu { - sound-dai = <&loopbacka>; - system-clock-frequency = <12288000>; - }; - codec { - sound-dai = <&dummy_codec>; - }; - }; }; picdec { @@ -907,330 +882,6 @@ <&cpu_opp_table3_s805c3>; }; -&audiobus { - tdma: tdm@0 { - compatible = "amlogic, t5-snd-tdma"; - #sound-dai-cells = <0>; - dai-tdm-lane-slot-mask-in = <1>; - dai-tdm-lane-slot-mask-out = <1 0>; - dai-tdm-clk-sel = <0>; - //clocks = <&clkaudio CLKID_AUDIO_MCLK_A - // &clkc CLKID_MPLL0>; - //clock-names = "mclk", "clk_srcpll"; - pinctrl-names = "tdm_pins"; - pinctrl-0 = <&tdm_a - &tdm_d0_pins - &tdm_d1_pins - &tdma_clk_pins>; - - status = "disabled"; - }; - - tdmb: tdm@1 { - compatible = "amlogic, t5-snd-tdmb"; - #sound-dai-cells = <0>; - dai-tdm-lane-slot-mask-out = <1 1 1 1>; - dai-tdm-clk-sel = <1>; - //clocks = <&clkaudio CLKID_AUDIO_MCLK_B - // &clkaudio CLKID_AUDIO_MCLK_PAD0 - // &clkc CLKID_MPLL1>; - //clock-names = "mclk", "mclk_pad", "clk_srcpll"; - /* - * 0: tdmout_a; - * 1: tdmout_b; - * 2: tdmout_c; - * 3: spdifout; - * 4: spdifout_b; - */ - samesource_sel = <3>; - - /*enable default mclk(12.288M), before extern codec start*/ - start_clk_enable = <1>; - - /*tdm clk tuning enable*/ - clk_tuning_enable = <1>; - - status = "disabled"; - - /* !!!For --TV platform-- ONLY */ - Channel_Mask { - /*i2s has 4 pins, 8channel, mux output*/ - Spdif_samesource_Channel_Mask = "i2s_0/1"; - }; - }; - - tdmc: tdm@2 { - compatible = "amlogic, t5-snd-tdmc"; - #sound-dai-cells = <0>; - dai-tdm-lane-slot-mask-out = <1>; - dai-tdm-clk-sel = <2>; - //clocks = <&clkaudio CLKID_AUDIO_MCLK_C - // &clkc CLKID_MPLL2>; - //clock-names = "mclk", "clk_srcpll"; - - status = "disabled"; - }; - - spdifa: spdif@0 { - compatible = "amlogic, tm2-revb-snd-spdif-a"; - #sound-dai-cells = <0>; - //clocks = <&clkc CLKID_MPLL0 - // &clkc CLKID_FCLK_DIV4 - // &clkaudio CLKID_AUDIO_GATE_SPDIFIN - // &clkaudio CLKID_AUDIO_GATE_SPDIFOUT_A - // &clkaudio CLKID_AUDIO_SPDIFIN - // &clkaudio CLKID_AUDIO_SPDIFOUT_A>; - //clock-names = "sysclk", "fixed_clk", "gate_spdifin", - // "gate_spdifout", "clk_spdifin", "clk_spdifout"; - interrupts = - ; - - interrupt-names = "irq_spdifin"; - pinctrl-names = "spdif_pins", "spdif_pins_mute"; - pinctrl-0 = <&spdifout>; - pinctrl-1 = <&spdifout_a_mute>; - - /*spdif clk tuning enable*/ - clk_tuning_enable = <1>; - - status = "disabled"; - }; - spdifb: spdif@1 { - compatible = "amlogic, tm2-revb-snd-spdif-b"; - #sound-dai-cells = <0>; - //clocks = <&clkc CLKID_MPLL0 /*CLKID_HIFI_PLL*/ - // &clkaudio CLKID_AUDIO_GATE_SPDIFOUT_B - // &clkaudio CLKID_AUDIO_SPDIFOUT_B>; - //clock-names = "sysclk", - // "gate_spdifout", "clk_spdifout"; - - status = "disabled"; - }; - apdm: pdm { - compatible = "amlogic, sm1-snd-pdm"; - #sound-dai-cells = <0>; - - //clocks = <&clkaudio CLKID_AUDIO_GATE_PDM - // &clkc CLKID_FCLK_DIV3 - // &clkc CLKID_MPLL3 - // &clkaudio CLKID_AUDIO_PDMIN0 - // &clkaudio CLKID_AUDIO_PDMIN1>; - //clock-names = "gate", - // "sysclk_srcpll", - // "dclk_srcpll", - // "pdm_dclk", - // "pdm_sysclk"; - - pinctrl-names = "pdm_pins"; - pinctrl-0 = <&pdmin>; - - /* mode 0~4, defalut:1 */ - filter_mode = <1>; - - status = "disabled"; - }; - - asrca: resample@0 { - compatible = "amlogic, t5-resample-a"; - //clocks = <&clkc CLKID_MPLL3 - // &clkaudio CLKID_AUDIO_MCLK_F - // &clkaudio CLKID_AUDIO_RESAMPLE_A>; - //clock-names = "resample_pll", "resample_src", "resample_clk"; - /*same with toddr_src - * TDMIN_A, 0 - * TDMIN_B, 1 - * TDMIN_C, 2 - * SPDIFIN, 3 - * PDMIN, 4 - * NONE, - * TDMIN_LB, 6 - * LOOPBACK, 7 - */ - resample_module = <4>; - status = "disabled"; - }; - - asrcb:resample@1 { - compatible = "amlogic, t5-resample-b"; - //clocks = <&clkc CLKID_MPLL3 - // &clkaudio CLKID_AUDIO_MCLK_F - // &clkaudio CLKID_AUDIO_RESAMPLE_B>; - //clock-names = "resample_pll", "resample_src", "resample_clk"; - - /*this resample is only used for loopback_A.*/ - capture_sample_rate = <16000>; - - status = "disabled"; - }; - - vad:vad { - compatible = "amlogic, snd-vad"; - #sound-dai-cells = <0>; - - //clocks = <&clkaudio CLKID_AUDIO_GATE_TOVAD - // &clkc CLKID_FCLK_DIV5 - // &clkaudio CLKID_AUDIO_VAD>; - //clock-names = "gate", "pll", "clk"; - - interrupts = ; - interrupt-names = "irq_wakeup", "irq_frame_sync"; - - /* - * Data src sel: - * 0: tdmin_a; - * 1: tdmin_b; - * 2: tdmin_c; - * 3: spdifin; - * 4: pdmin; - * 5: loopback_b; - * 6: tdmin_lb; - * 7: loopback_a; - */ - src = <4>; - - /* - * deal with hot word in user space or kernel space - * 0: in user space - * 1: in kernel space - */ - level = <1>; - - status = "disabled"; - }; - - loopbacka:loopback@0 { - compatible = "amlogic, t5-loopbacka"; - #sound-dai-cells = <0>; - - //clocks = <&clkaudio CLKID_AUDIO_GATE_PDM - // &clkc CLKID_FCLK_DIV3 - // &clkc CLKID_MPLL3 - // &clkaudio CLKID_AUDIO_PDMIN0 - // &clkaudio CLKID_AUDIO_PDMIN1 - // &clkc CLKID_MPLL0 - // &clkaudio CLKID_AUDIO_MCLK_A>; - //clock-names = "pdm_gate", - // "pdm_sysclk_srcpll", - // "pdm_dclk_srcpll", - // "pdm_dclk", - // "pdm_sysclk", - // "tdminlb_mpll", - // "tdminlb_mclk"; - - /* datain src - * 0: tdmin_a; - * 1: tdmin_b; - * 2: tdmin_c; - * 3: spdifin; - * 4: pdmin; - */ - datain_src = <4>; - datain_chnum = <2>; - datain_chmask = <0x3>; - /* config which data pin for loopback */ - datain-lane-mask-in = <1 0 0 0>; - - /* calc mclk for datalb */ - mclk-fs = <256>; - - /* tdmin_lb src - * 0: tdmoutA - * 1: tdmoutB - * 2: tdmoutC - * 3: PAD_TDMINA_DIN*, refer to core pinmux - * 4: PAD_TDMINB_DIN*, refer to core pinmux - * 5: PAD_TDMINC_DIN*, refer to core pinmux - * 6: PAD_TDMINA_D*, oe, refer to core pinmux - * 7: PAD_TDMINB_D*, oe, refer to core pinmux - */ - /* if tdmin_lb >= 3, use external loopback */ - datalb_src = <1>; - datalb_chnum = <2>; - datalb_chmask = <0x3>; - /* config which data pin as loopback */ - datalb-lane-mask-in = <1 0 0 0>; - - status = "disabled"; - }; - - loopbackb:loopback@1 { - compatible = "amlogic, t5-loopbackb"; - #sound-dai-cells = <0>; - - //clocks = <&clkaudio CLKID_AUDIO_GATE_PDM - // &clkc CLKID_FCLK_DIV3 - // &clkc CLKID_MPLL3 - // &clkaudio CLKID_AUDIO_PDMIN0 - // &clkaudio CLKID_AUDIO_PDMIN1 - // &clkc CLKID_MPLL0 - // &clkaudio CLKID_AUDIO_MCLK_A>; - //clock-names = "pdm_gate", - // "pdm_sysclk_srcpll", - // "pdm_dclk_srcpll", - // "pdm_dclk", - // "pdm_sysclk", - // "tdminlb_mpll", - // "tdminlb_mclk"; - - /* calc mclk for datain_lb */ - mclk-fs = <256>; - - /* datain src - * 0: tdmin_a; - * 1: tdmin_b; - * 2: tdmin_c; - * 3: spdifin; - * 4: pdmin; - */ - datain_src = <4>; - datain_chnum = <4>; - datain_chmask = <0xf>; - /* config which data pin for loopback */ - datain-lane-mask-in = <1 0 1 0>; - - /* tdmin_lb src - * 0: tdmoutA - * 1: tdmoutB - * 2: tdmoutC - * 3: PAD_TDMINA_DIN*, refer to core pinmux - * 4: PAD_TDMINB_DIN*, refer to core pinmux - * 5: PAD_TDMINC_DIN*, refer to core pinmux - * 6: PAD_TDMINA_D*, oe, refer to core pinmux - * 7: PAD_TDMINB_D*, oe, refer to core pinmux - */ - /* if tdmin_lb >= 3, use external loopback */ - datalb_src = <1>; - datalb_chnum = <2>; - datalb_chmask = <0x3>; - /* config which data pin as loopback */ - datalb-lane-mask-in = <1 0 0 0>; - - status = "disabled"; - }; - aed:effect { - compatible = "amlogic, snd-effect-v3"; - #sound-dai-cells = <0>; - //clocks = <&clkaudio CLKID_AUDIO_GATE_EQDRC - // &clkc CLKID_FCLK_DIV5 - // &clkaudio CLKID_AUDIO_EQDRC>; - //clock-names = "gate", "srcpll", "eqdrc"; - /* - * 0:tdmout_a - * 1:tdmout_b - * 2:tdmout_c - * 3:spdifout - * 4:spdifout_b - */ - eqdrc_module = <1>; - /* max 0xf, each bit for one lane, usually one lane */ - lane_mask = <0x1>; - /* max 0xff, each bit for one channel */ - channel_mask = <0x3>; - status = "disabled"; - }; -}; /* end of audiobus */ - &pinctrl_audio { tdm_d0_pins: tdm_d0_pin { mux { @@ -1255,43 +906,6 @@ }; &periphs_pinctrl { - tdm_a: tdm_a { - mux { /* GPIOX_11, GPIOX_10, GPIOX_9, GPIOX_8 */ - groups = "tdm_sclk0", - "tdm_fs0", - "tdm_d0", - "tdm_d1"; - function = "tdm"; - }; - }; - - pdmin: pdmin { - mux { /* GPIOD_8, GPIOD_9 */ - groups = "pdm_din0_d"; - function = "pdm"; - }; - mux1 { - groups = "pdm_dclk_d"; - function = "pdm"; - drive-strength-microamp = <500>; - }; - }; - - spdifout: spdifout { - mux { /* GPIOH_4 */ - groups = "spdif_out_h"; - function = "spdif_out"; - }; - }; - - spdifout_a_mute: spdifout_a_mute { - mux { /* GPIOH_4 */ - groups = "GPIOH_4"; - function = "gpio_periphs"; - output-low; - }; - }; - dvb_s_ts0_pins: dvb_s_ts0_pins { tsin_a { groups = "tsin_a_sop", @@ -1304,7 +918,7 @@ }; /* end of periphs_pinctrl */ &audio_data { - status = "disabled"; + status = "okay"; }; &usb_phy20 { diff --git a/arch/arm64/boot/dts/amlogic/s7d_s905x5m_bm201.dts b/arch/arm64/boot/dts/amlogic/s7d_s905x5m_bm201.dts index f1d581d94..31bb89ed6 100644 --- a/arch/arm64/boot/dts/amlogic/s7d_s905x5m_bm201.dts +++ b/arch/arm64/boot/dts/amlogic/s7d_s905x5m_bm201.dts @@ -7,6 +7,7 @@ #include "meson-s7d.dtsi" #include "mesons7d_drm.dtsi" +#include "mesons7d_audio.dtsi" / { amlogic-dt-id = "s7d_s905x5m_bm201"; compatible = "s7d_s905x5m_bm201"; @@ -589,10 +590,9 @@ /*avout mute gpio*/ avout_mute-gpios = <&gpio GPIOH_5 GPIO_ACTIVE_HIGH>; - spk_mute-gpios = <&gpio GPIOH_8 GPIO_ACTIVE_LOW>; - + av_mute_sleep_time = <700>; aml-audio-card,dai-link@0 { - format = "dsp_a"; + format = "dsp_b"; mclk-fs = <512>; //continuous-clock; //bitclock-inversion; @@ -636,7 +636,7 @@ /* suffix-name, sync with android audio hal * what's the dai link used for */ - suffix-name = "alsaPORT-i2s"; + suffix-name = "alsaPORT-i2s2hdmi"; cpu { sound-dai = <&tdmb>; dai-tdm-slot-tx-mask = <1 1>; @@ -691,7 +691,7 @@ */ suffix-name = "alsaPORT-pdm-builtinmic"; cpu { - sound-dai = <&apdm>; + sound-dai = <&pdma>; }; codec { sound-dai = <&dummy_codec>; @@ -700,6 +700,7 @@ aml-audio-card,dai-link@4 { mclk-fs = <128>; + continuous-clock; /* suffix-name, sync with android audio hal used for */ suffix-name = "alsaPORT-spdif"; cpu { @@ -912,330 +913,6 @@ <&cpu_opp_table3_s805c3>; }; -&audiobus { - tdma: tdm@0 { - compatible = "amlogic, t5-snd-tdma"; - #sound-dai-cells = <0>; - dai-tdm-lane-slot-mask-in = <1>; - dai-tdm-lane-slot-mask-out = <1 0>; - dai-tdm-clk-sel = <0>; - //clocks = <&clkaudio CLKID_AUDIO_MCLK_A - // &clkc CLKID_MPLL0>; - //clock-names = "mclk", "clk_srcpll"; - pinctrl-names = "tdm_pins"; - pinctrl-0 = <&tdm_a - &tdm_d0_pins - &tdm_d1_pins - &tdma_clk_pins>; - - status = "disabled"; - }; - - tdmb: tdm@1 { - compatible = "amlogic, t5-snd-tdmb"; - #sound-dai-cells = <0>; - dai-tdm-lane-slot-mask-out = <1 1 1 1>; - dai-tdm-clk-sel = <1>; - //clocks = <&clkaudio CLKID_AUDIO_MCLK_B - // &clkaudio CLKID_AUDIO_MCLK_PAD0 - // &clkc CLKID_MPLL1>; - //clock-names = "mclk", "mclk_pad", "clk_srcpll"; - /* - * 0: tdmout_a; - * 1: tdmout_b; - * 2: tdmout_c; - * 3: spdifout; - * 4: spdifout_b; - */ - samesource_sel = <3>; - - /*enable default mclk(12.288M), before extern codec start*/ - start_clk_enable = <1>; - - /*tdm clk tuning enable*/ - clk_tuning_enable = <1>; - - status = "disabled"; - - /* !!!For --TV platform-- ONLY */ - Channel_Mask { - /*i2s has 4 pins, 8channel, mux output*/ - Spdif_samesource_Channel_Mask = "i2s_0/1"; - }; - }; - - tdmc: tdm@2 { - compatible = "amlogic, t5-snd-tdmc"; - #sound-dai-cells = <0>; - dai-tdm-lane-slot-mask-out = <1>; - dai-tdm-clk-sel = <2>; - //clocks = <&clkaudio CLKID_AUDIO_MCLK_C - // &clkc CLKID_MPLL2>; - //clock-names = "mclk", "clk_srcpll"; - - status = "disabled"; - }; - - spdifa: spdif@0 { - compatible = "amlogic, tm2-revb-snd-spdif-a"; - #sound-dai-cells = <0>; - //clocks = <&clkc CLKID_MPLL0 - // &clkc CLKID_FCLK_DIV4 - // &clkaudio CLKID_AUDIO_GATE_SPDIFIN - // &clkaudio CLKID_AUDIO_GATE_SPDIFOUT_A - // &clkaudio CLKID_AUDIO_SPDIFIN - // &clkaudio CLKID_AUDIO_SPDIFOUT_A>; - //clock-names = "sysclk", "fixed_clk", "gate_spdifin", - // "gate_spdifout", "clk_spdifin", "clk_spdifout"; - interrupts = - ; - - interrupt-names = "irq_spdifin"; - pinctrl-names = "spdif_pins", "spdif_pins_mute"; - pinctrl-0 = <&spdifout>; - pinctrl-1 = <&spdifout_a_mute>; - - /*spdif clk tuning enable*/ - clk_tuning_enable = <1>; - - status = "disabled"; - }; - spdifb: spdif@1 { - compatible = "amlogic, tm2-revb-snd-spdif-b"; - #sound-dai-cells = <0>; - //clocks = <&clkc CLKID_MPLL0 /*CLKID_HIFI_PLL*/ - // &clkaudio CLKID_AUDIO_GATE_SPDIFOUT_B - // &clkaudio CLKID_AUDIO_SPDIFOUT_B>; - //clock-names = "sysclk", - // "gate_spdifout", "clk_spdifout"; - - status = "disabled"; - }; - apdm: pdm { - compatible = "amlogic, sm1-snd-pdm"; - #sound-dai-cells = <0>; - - //clocks = <&clkaudio CLKID_AUDIO_GATE_PDM - // &clkc CLKID_FCLK_DIV3 - // &clkc CLKID_MPLL3 - // &clkaudio CLKID_AUDIO_PDMIN0 - // &clkaudio CLKID_AUDIO_PDMIN1>; - //clock-names = "gate", - // "sysclk_srcpll", - // "dclk_srcpll", - // "pdm_dclk", - // "pdm_sysclk"; - - pinctrl-names = "pdm_pins"; - pinctrl-0 = <&pdmin>; - - /* mode 0~4, defalut:1 */ - filter_mode = <1>; - - status = "disabled"; - }; - - asrca: resample@0 { - compatible = "amlogic, t5-resample-a"; - //clocks = <&clkc CLKID_MPLL3 - // &clkaudio CLKID_AUDIO_MCLK_F - // &clkaudio CLKID_AUDIO_RESAMPLE_A>; - //clock-names = "resample_pll", "resample_src", "resample_clk"; - /*same with toddr_src - * TDMIN_A, 0 - * TDMIN_B, 1 - * TDMIN_C, 2 - * SPDIFIN, 3 - * PDMIN, 4 - * NONE, - * TDMIN_LB, 6 - * LOOPBACK, 7 - */ - resample_module = <4>; - status = "disabled"; - }; - - asrcb:resample@1 { - compatible = "amlogic, t5-resample-b"; - //clocks = <&clkc CLKID_MPLL3 - // &clkaudio CLKID_AUDIO_MCLK_F - // &clkaudio CLKID_AUDIO_RESAMPLE_B>; - //clock-names = "resample_pll", "resample_src", "resample_clk"; - - /*this resample is only used for loopback_A.*/ - capture_sample_rate = <16000>; - - status = "disabled"; - }; - - vad:vad { - compatible = "amlogic, snd-vad"; - #sound-dai-cells = <0>; - - //clocks = <&clkaudio CLKID_AUDIO_GATE_TOVAD - // &clkc CLKID_FCLK_DIV5 - // &clkaudio CLKID_AUDIO_VAD>; - //clock-names = "gate", "pll", "clk"; - - interrupts = ; - interrupt-names = "irq_wakeup", "irq_frame_sync"; - - /* - * Data src sel: - * 0: tdmin_a; - * 1: tdmin_b; - * 2: tdmin_c; - * 3: spdifin; - * 4: pdmin; - * 5: loopback_b; - * 6: tdmin_lb; - * 7: loopback_a; - */ - src = <4>; - - /* - * deal with hot word in user space or kernel space - * 0: in user space - * 1: in kernel space - */ - level = <1>; - - status = "disabled"; - }; - - loopbacka:loopback@0 { - compatible = "amlogic, t5-loopbacka"; - #sound-dai-cells = <0>; - - //clocks = <&clkaudio CLKID_AUDIO_GATE_PDM - // &clkc CLKID_FCLK_DIV3 - // &clkc CLKID_MPLL3 - // &clkaudio CLKID_AUDIO_PDMIN0 - // &clkaudio CLKID_AUDIO_PDMIN1 - // &clkc CLKID_MPLL0 - // &clkaudio CLKID_AUDIO_MCLK_A>; - //clock-names = "pdm_gate", - // "pdm_sysclk_srcpll", - // "pdm_dclk_srcpll", - // "pdm_dclk", - // "pdm_sysclk", - // "tdminlb_mpll", - // "tdminlb_mclk"; - - /* datain src - * 0: tdmin_a; - * 1: tdmin_b; - * 2: tdmin_c; - * 3: spdifin; - * 4: pdmin; - */ - datain_src = <4>; - datain_chnum = <2>; - datain_chmask = <0x3>; - /* config which data pin for loopback */ - datain-lane-mask-in = <1 0 0 0>; - - /* calc mclk for datalb */ - mclk-fs = <256>; - - /* tdmin_lb src - * 0: tdmoutA - * 1: tdmoutB - * 2: tdmoutC - * 3: PAD_TDMINA_DIN*, refer to core pinmux - * 4: PAD_TDMINB_DIN*, refer to core pinmux - * 5: PAD_TDMINC_DIN*, refer to core pinmux - * 6: PAD_TDMINA_D*, oe, refer to core pinmux - * 7: PAD_TDMINB_D*, oe, refer to core pinmux - */ - /* if tdmin_lb >= 3, use external loopback */ - datalb_src = <1>; - datalb_chnum = <2>; - datalb_chmask = <0x3>; - /* config which data pin as loopback */ - datalb-lane-mask-in = <1 0 0 0>; - - status = "disabled"; - }; - - loopbackb:loopback@1 { - compatible = "amlogic, t5-loopbackb"; - #sound-dai-cells = <0>; - - //clocks = <&clkaudio CLKID_AUDIO_GATE_PDM - // &clkc CLKID_FCLK_DIV3 - // &clkc CLKID_MPLL3 - // &clkaudio CLKID_AUDIO_PDMIN0 - // &clkaudio CLKID_AUDIO_PDMIN1 - // &clkc CLKID_MPLL0 - // &clkaudio CLKID_AUDIO_MCLK_A>; - //clock-names = "pdm_gate", - // "pdm_sysclk_srcpll", - // "pdm_dclk_srcpll", - // "pdm_dclk", - // "pdm_sysclk", - // "tdminlb_mpll", - // "tdminlb_mclk"; - - /* calc mclk for datain_lb */ - mclk-fs = <256>; - - /* datain src - * 0: tdmin_a; - * 1: tdmin_b; - * 2: tdmin_c; - * 3: spdifin; - * 4: pdmin; - */ - datain_src = <4>; - datain_chnum = <4>; - datain_chmask = <0xf>; - /* config which data pin for loopback */ - datain-lane-mask-in = <1 0 1 0>; - - /* tdmin_lb src - * 0: tdmoutA - * 1: tdmoutB - * 2: tdmoutC - * 3: PAD_TDMINA_DIN*, refer to core pinmux - * 4: PAD_TDMINB_DIN*, refer to core pinmux - * 5: PAD_TDMINC_DIN*, refer to core pinmux - * 6: PAD_TDMINA_D*, oe, refer to core pinmux - * 7: PAD_TDMINB_D*, oe, refer to core pinmux - */ - /* if tdmin_lb >= 3, use external loopback */ - datalb_src = <1>; - datalb_chnum = <2>; - datalb_chmask = <0x3>; - /* config which data pin as loopback */ - datalb-lane-mask-in = <1 0 0 0>; - - status = "disabled"; - }; - aed:effect { - compatible = "amlogic, snd-effect-v3"; - #sound-dai-cells = <0>; - //clocks = <&clkaudio CLKID_AUDIO_GATE_EQDRC - // &clkc CLKID_FCLK_DIV5 - // &clkaudio CLKID_AUDIO_EQDRC>; - //clock-names = "gate", "srcpll", "eqdrc"; - /* - * 0:tdmout_a - * 1:tdmout_b - * 2:tdmout_c - * 3:spdifout - * 4:spdifout_b - */ - eqdrc_module = <1>; - /* max 0xf, each bit for one lane, usually one lane */ - lane_mask = <0x1>; - /* max 0xff, each bit for one channel */ - channel_mask = <0x3>; - status = "disabled"; - }; -}; /* end of audiobus */ - &pinctrl_audio { tdm_d0_pins: tdm_d0_pin { mux { @@ -1261,7 +938,7 @@ &periphs_pinctrl { tdm_a: tdm_a { - mux { /* GPIOX_11, GPIOX_10, GPIOX_9, GPIOX_8 */ + mux { /* GPIOX_11, GPIOX_10, GPIOX_8, GPIOX_9 */ groups = "tdm_sclk0", "tdm_fs0", "tdm_d0", @@ -1270,33 +947,6 @@ }; }; - pdmin: pdmin { - mux { /* GPIOD_8, GPIOD_9 */ - groups = "pdm_din0_d"; - function = "pdm"; - }; - mux1 { - groups = "pdm_dclk_d"; - function = "pdm"; - drive-strength-microamp = <500>; - }; - }; - - spdifout: spdifout { - mux { /* GPIOH_4 */ - groups = "spdif_out_h"; - function = "spdif_out"; - }; - }; - - spdifout_a_mute: spdifout_a_mute { - mux { /* GPIOH_4 */ - groups = "GPIOH_4"; - function = "gpio_periphs"; - output-low; - }; - }; - dvb_s_ts0_pins: dvb_s_ts0_pins { tsin_a { groups = "tsin_a_sop", @@ -1309,7 +959,7 @@ }; /* end of periphs_pinctrl */ &audio_data { - status = "disabled"; + status = "okay"; }; &usb_phy20 { @@ -1655,8 +1305,3 @@ &drm_subsystem { fbdev_sizes = <1280 720 1280 1440 32>; }; - -&amlogic_codec { - tocodec_inout = <1>; - tdmout_index = <1>; -}; diff --git a/arch/arm64/boot/dts/amlogic/s7d_s905x5m_bm202.dts b/arch/arm64/boot/dts/amlogic/s7d_s905x5m_bm202.dts index 0397eeb0c..d7b2e84c5 100644 --- a/arch/arm64/boot/dts/amlogic/s7d_s905x5m_bm202.dts +++ b/arch/arm64/boot/dts/amlogic/s7d_s905x5m_bm202.dts @@ -7,6 +7,7 @@ #include "meson-s7d.dtsi" #include "mesons7d_drm.dtsi" +#include "mesons7d_audio.dtsi" / { amlogic-dt-id = "s7d_s905x5m_bm202"; compatible = "s7d_s905x5m_bm202"; @@ -589,10 +590,9 @@ /*avout mute gpio*/ avout_mute-gpios = <&gpio GPIOH_5 GPIO_ACTIVE_HIGH>; - spk_mute-gpios = <&gpio GPIOH_8 GPIO_ACTIVE_LOW>; - + av_mute_sleep_time = <700>; aml-audio-card,dai-link@0 { - format = "dsp_a"; + format = "dsp_b"; mclk-fs = <512>; //continuous-clock; //bitclock-inversion; @@ -636,7 +636,7 @@ /* suffix-name, sync with android audio hal * what's the dai link used for */ - suffix-name = "alsaPORT-i2s"; + suffix-name = "alsaPORT-i2s2hdmi"; cpu { sound-dai = <&tdmb>; dai-tdm-slot-tx-mask = <1 1>; @@ -653,7 +653,7 @@ system-clock-frequency = <12288000>; }; tdmbcodec: codec { - sound-dai = <&amlogic_codec>; + sound-dai = <&dummy_codec>; }; }; @@ -680,7 +680,7 @@ system-clock-frequency = <12288000>; }; tdmccodec: codec { - sound-dai = <&dummy_codec>; + sound-dai = <&amlogic_codec>; }; }; @@ -691,7 +691,7 @@ */ suffix-name = "alsaPORT-pdm-builtinmic"; cpu { - sound-dai = <&apdm>; + sound-dai = <&pdma>; }; codec { sound-dai = <&dummy_codec>; @@ -912,330 +912,6 @@ <&cpu_opp_table3_s805c3>; }; -&audiobus { - tdma: tdm@0 { - compatible = "amlogic, t5-snd-tdma"; - #sound-dai-cells = <0>; - dai-tdm-lane-slot-mask-in = <1>; - dai-tdm-lane-slot-mask-out = <1 0>; - dai-tdm-clk-sel = <0>; - //clocks = <&clkaudio CLKID_AUDIO_MCLK_A - // &clkc CLKID_MPLL0>; - //clock-names = "mclk", "clk_srcpll"; - pinctrl-names = "tdm_pins"; - pinctrl-0 = <&tdm_a - &tdm_d0_pins - &tdm_d1_pins - &tdma_clk_pins>; - - status = "disabled"; - }; - - tdmb: tdm@1 { - compatible = "amlogic, t5-snd-tdmb"; - #sound-dai-cells = <0>; - dai-tdm-lane-slot-mask-out = <1 1 1 1>; - dai-tdm-clk-sel = <1>; - //clocks = <&clkaudio CLKID_AUDIO_MCLK_B - // &clkaudio CLKID_AUDIO_MCLK_PAD0 - // &clkc CLKID_MPLL1>; - //clock-names = "mclk", "mclk_pad", "clk_srcpll"; - /* - * 0: tdmout_a; - * 1: tdmout_b; - * 2: tdmout_c; - * 3: spdifout; - * 4: spdifout_b; - */ - samesource_sel = <3>; - - /*enable default mclk(12.288M), before extern codec start*/ - start_clk_enable = <1>; - - /*tdm clk tuning enable*/ - clk_tuning_enable = <1>; - - status = "disabled"; - - /* !!!For --TV platform-- ONLY */ - Channel_Mask { - /*i2s has 4 pins, 8channel, mux output*/ - Spdif_samesource_Channel_Mask = "i2s_0/1"; - }; - }; - - tdmc: tdm@2 { - compatible = "amlogic, t5-snd-tdmc"; - #sound-dai-cells = <0>; - dai-tdm-lane-slot-mask-out = <1>; - dai-tdm-clk-sel = <2>; - //clocks = <&clkaudio CLKID_AUDIO_MCLK_C - // &clkc CLKID_MPLL2>; - //clock-names = "mclk", "clk_srcpll"; - - status = "disabled"; - }; - - spdifa: spdif@0 { - compatible = "amlogic, tm2-revb-snd-spdif-a"; - #sound-dai-cells = <0>; - //clocks = <&clkc CLKID_MPLL0 - // &clkc CLKID_FCLK_DIV4 - // &clkaudio CLKID_AUDIO_GATE_SPDIFIN - // &clkaudio CLKID_AUDIO_GATE_SPDIFOUT_A - // &clkaudio CLKID_AUDIO_SPDIFIN - // &clkaudio CLKID_AUDIO_SPDIFOUT_A>; - //clock-names = "sysclk", "fixed_clk", "gate_spdifin", - // "gate_spdifout", "clk_spdifin", "clk_spdifout"; - interrupts = - ; - - interrupt-names = "irq_spdifin"; - pinctrl-names = "spdif_pins", "spdif_pins_mute"; - pinctrl-0 = <&spdifout>; - pinctrl-1 = <&spdifout_a_mute>; - - /*spdif clk tuning enable*/ - clk_tuning_enable = <1>; - - status = "disabled"; - }; - spdifb: spdif@1 { - compatible = "amlogic, tm2-revb-snd-spdif-b"; - #sound-dai-cells = <0>; - //clocks = <&clkc CLKID_MPLL0 /*CLKID_HIFI_PLL*/ - // &clkaudio CLKID_AUDIO_GATE_SPDIFOUT_B - // &clkaudio CLKID_AUDIO_SPDIFOUT_B>; - //clock-names = "sysclk", - // "gate_spdifout", "clk_spdifout"; - - status = "disabled"; - }; - apdm: pdm { - compatible = "amlogic, sm1-snd-pdm"; - #sound-dai-cells = <0>; - - //clocks = <&clkaudio CLKID_AUDIO_GATE_PDM - // &clkc CLKID_FCLK_DIV3 - // &clkc CLKID_MPLL3 - // &clkaudio CLKID_AUDIO_PDMIN0 - // &clkaudio CLKID_AUDIO_PDMIN1>; - //clock-names = "gate", - // "sysclk_srcpll", - // "dclk_srcpll", - // "pdm_dclk", - // "pdm_sysclk"; - - pinctrl-names = "pdm_pins"; - pinctrl-0 = <&pdmin>; - - /* mode 0~4, defalut:1 */ - filter_mode = <1>; - - status = "disabled"; - }; - - asrca: resample@0 { - compatible = "amlogic, t5-resample-a"; - //clocks = <&clkc CLKID_MPLL3 - // &clkaudio CLKID_AUDIO_MCLK_F - // &clkaudio CLKID_AUDIO_RESAMPLE_A>; - //clock-names = "resample_pll", "resample_src", "resample_clk"; - /*same with toddr_src - * TDMIN_A, 0 - * TDMIN_B, 1 - * TDMIN_C, 2 - * SPDIFIN, 3 - * PDMIN, 4 - * NONE, - * TDMIN_LB, 6 - * LOOPBACK, 7 - */ - resample_module = <4>; - status = "disabled"; - }; - - asrcb:resample@1 { - compatible = "amlogic, t5-resample-b"; - //clocks = <&clkc CLKID_MPLL3 - // &clkaudio CLKID_AUDIO_MCLK_F - // &clkaudio CLKID_AUDIO_RESAMPLE_B>; - //clock-names = "resample_pll", "resample_src", "resample_clk"; - - /*this resample is only used for loopback_A.*/ - capture_sample_rate = <16000>; - - status = "disabled"; - }; - - vad:vad { - compatible = "amlogic, snd-vad"; - #sound-dai-cells = <0>; - - //clocks = <&clkaudio CLKID_AUDIO_GATE_TOVAD - // &clkc CLKID_FCLK_DIV5 - // &clkaudio CLKID_AUDIO_VAD>; - //clock-names = "gate", "pll", "clk"; - - interrupts = ; - interrupt-names = "irq_wakeup", "irq_frame_sync"; - - /* - * Data src sel: - * 0: tdmin_a; - * 1: tdmin_b; - * 2: tdmin_c; - * 3: spdifin; - * 4: pdmin; - * 5: loopback_b; - * 6: tdmin_lb; - * 7: loopback_a; - */ - src = <4>; - - /* - * deal with hot word in user space or kernel space - * 0: in user space - * 1: in kernel space - */ - level = <1>; - - status = "disabled"; - }; - - loopbacka:loopback@0 { - compatible = "amlogic, t5-loopbacka"; - #sound-dai-cells = <0>; - - //clocks = <&clkaudio CLKID_AUDIO_GATE_PDM - // &clkc CLKID_FCLK_DIV3 - // &clkc CLKID_MPLL3 - // &clkaudio CLKID_AUDIO_PDMIN0 - // &clkaudio CLKID_AUDIO_PDMIN1 - // &clkc CLKID_MPLL0 - // &clkaudio CLKID_AUDIO_MCLK_A>; - //clock-names = "pdm_gate", - // "pdm_sysclk_srcpll", - // "pdm_dclk_srcpll", - // "pdm_dclk", - // "pdm_sysclk", - // "tdminlb_mpll", - // "tdminlb_mclk"; - - /* datain src - * 0: tdmin_a; - * 1: tdmin_b; - * 2: tdmin_c; - * 3: spdifin; - * 4: pdmin; - */ - datain_src = <4>; - datain_chnum = <2>; - datain_chmask = <0x3>; - /* config which data pin for loopback */ - datain-lane-mask-in = <1 0 0 0>; - - /* calc mclk for datalb */ - mclk-fs = <256>; - - /* tdmin_lb src - * 0: tdmoutA - * 1: tdmoutB - * 2: tdmoutC - * 3: PAD_TDMINA_DIN*, refer to core pinmux - * 4: PAD_TDMINB_DIN*, refer to core pinmux - * 5: PAD_TDMINC_DIN*, refer to core pinmux - * 6: PAD_TDMINA_D*, oe, refer to core pinmux - * 7: PAD_TDMINB_D*, oe, refer to core pinmux - */ - /* if tdmin_lb >= 3, use external loopback */ - datalb_src = <1>; - datalb_chnum = <2>; - datalb_chmask = <0x3>; - /* config which data pin as loopback */ - datalb-lane-mask-in = <1 0 0 0>; - - status = "disabled"; - }; - - loopbackb:loopback@1 { - compatible = "amlogic, t5-loopbackb"; - #sound-dai-cells = <0>; - - //clocks = <&clkaudio CLKID_AUDIO_GATE_PDM - // &clkc CLKID_FCLK_DIV3 - // &clkc CLKID_MPLL3 - // &clkaudio CLKID_AUDIO_PDMIN0 - // &clkaudio CLKID_AUDIO_PDMIN1 - // &clkc CLKID_MPLL0 - // &clkaudio CLKID_AUDIO_MCLK_A>; - //clock-names = "pdm_gate", - // "pdm_sysclk_srcpll", - // "pdm_dclk_srcpll", - // "pdm_dclk", - // "pdm_sysclk", - // "tdminlb_mpll", - // "tdminlb_mclk"; - - /* calc mclk for datain_lb */ - mclk-fs = <256>; - - /* datain src - * 0: tdmin_a; - * 1: tdmin_b; - * 2: tdmin_c; - * 3: spdifin; - * 4: pdmin; - */ - datain_src = <4>; - datain_chnum = <4>; - datain_chmask = <0xf>; - /* config which data pin for loopback */ - datain-lane-mask-in = <1 0 1 0>; - - /* tdmin_lb src - * 0: tdmoutA - * 1: tdmoutB - * 2: tdmoutC - * 3: PAD_TDMINA_DIN*, refer to core pinmux - * 4: PAD_TDMINB_DIN*, refer to core pinmux - * 5: PAD_TDMINC_DIN*, refer to core pinmux - * 6: PAD_TDMINA_D*, oe, refer to core pinmux - * 7: PAD_TDMINB_D*, oe, refer to core pinmux - */ - /* if tdmin_lb >= 3, use external loopback */ - datalb_src = <1>; - datalb_chnum = <2>; - datalb_chmask = <0x3>; - /* config which data pin as loopback */ - datalb-lane-mask-in = <1 0 0 0>; - - status = "disabled"; - }; - aed:effect { - compatible = "amlogic, snd-effect-v3"; - #sound-dai-cells = <0>; - //clocks = <&clkaudio CLKID_AUDIO_GATE_EQDRC - // &clkc CLKID_FCLK_DIV5 - // &clkaudio CLKID_AUDIO_EQDRC>; - //clock-names = "gate", "srcpll", "eqdrc"; - /* - * 0:tdmout_a - * 1:tdmout_b - * 2:tdmout_c - * 3:spdifout - * 4:spdifout_b - */ - eqdrc_module = <1>; - /* max 0xf, each bit for one lane, usually one lane */ - lane_mask = <0x1>; - /* max 0xff, each bit for one channel */ - channel_mask = <0x3>; - status = "disabled"; - }; -}; /* end of audiobus */ - &pinctrl_audio { tdm_d0_pins: tdm_d0_pin { mux { @@ -1261,7 +937,7 @@ &periphs_pinctrl { tdm_a: tdm_a { - mux { /* GPIOX_11, GPIOX_10, GPIOX_9, GPIOX_8 */ + mux { /* GPIOX_11, GPIOX_10, GPIOX_8, GPIOX_9 */ groups = "tdm_sclk0", "tdm_fs0", "tdm_d0", @@ -1309,7 +985,7 @@ }; /* end of periphs_pinctrl */ &audio_data { - status = "disabled"; + status = "okay"; }; &usb_phy20 { @@ -1653,8 +1329,3 @@ &drm_subsystem { fbdev_sizes = <1280 720 1280 1440 32>; }; - -&amlogic_codec { - tocodec_inout = <1>; - tdmout_index = <1>; -}; diff --git a/arch/arm64/boot/dts/amlogic/s7d_s905x5m_bm209.dts b/arch/arm64/boot/dts/amlogic/s7d_s905x5m_bm209.dts index d68b85870..0cdde17e5 100644 --- a/arch/arm64/boot/dts/amlogic/s7d_s905x5m_bm209.dts +++ b/arch/arm64/boot/dts/amlogic/s7d_s905x5m_bm209.dts @@ -7,6 +7,7 @@ #include "meson-s7d.dtsi" #include "mesons7d_drm.dtsi" +#include "mesons7d_audio.dtsi" / { amlogic-dt-id = "s7d_s905x5m_bm209"; compatible = "s7d_s905x5m_bm209"; @@ -589,10 +590,9 @@ /*avout mute gpio*/ avout_mute-gpios = <&gpio GPIOH_5 GPIO_ACTIVE_HIGH>; - spk_mute-gpios = <&gpio GPIOH_8 GPIO_ACTIVE_LOW>; - + av_mute_sleep_time = <700>; aml-audio-card,dai-link@0 { - format = "dsp_a"; + format = "dsp_b"; mclk-fs = <512>; //continuous-clock; //bitclock-inversion; @@ -636,7 +636,7 @@ /* suffix-name, sync with android audio hal * what's the dai link used for */ - suffix-name = "alsaPORT-i2s"; + suffix-name = "alsaPORT-i2s2hdmi"; cpu { sound-dai = <&tdmb>; dai-tdm-slot-tx-mask = <1 1>; @@ -653,7 +653,7 @@ system-clock-frequency = <12288000>; }; tdmbcodec: codec { - sound-dai = <&amlogic_codec>; + sound-dai = <&dummy_codec>; }; }; @@ -680,7 +680,7 @@ system-clock-frequency = <12288000>; }; tdmccodec: codec { - sound-dai = <&dummy_codec>; + sound-dai = <&amlogic_codec>; }; }; @@ -691,7 +691,7 @@ */ suffix-name = "alsaPORT-pdm-builtinmic"; cpu { - sound-dai = <&apdm>; + sound-dai = <&pdma>; }; codec { sound-dai = <&dummy_codec>; @@ -912,330 +912,6 @@ <&cpu_opp_table3_s805c3>; }; -&audiobus { - tdma: tdm@0 { - compatible = "amlogic, t5-snd-tdma"; - #sound-dai-cells = <0>; - dai-tdm-lane-slot-mask-in = <1>; - dai-tdm-lane-slot-mask-out = <1 0>; - dai-tdm-clk-sel = <0>; - //clocks = <&clkaudio CLKID_AUDIO_MCLK_A - // &clkc CLKID_MPLL0>; - //clock-names = "mclk", "clk_srcpll"; - pinctrl-names = "tdm_pins"; - pinctrl-0 = <&tdm_a - &tdm_d0_pins - &tdm_d1_pins - &tdma_clk_pins>; - - status = "disabled"; - }; - - tdmb: tdm@1 { - compatible = "amlogic, t5-snd-tdmb"; - #sound-dai-cells = <0>; - dai-tdm-lane-slot-mask-out = <1 1 1 1>; - dai-tdm-clk-sel = <1>; - //clocks = <&clkaudio CLKID_AUDIO_MCLK_B - // &clkaudio CLKID_AUDIO_MCLK_PAD0 - // &clkc CLKID_MPLL1>; - //clock-names = "mclk", "mclk_pad", "clk_srcpll"; - /* - * 0: tdmout_a; - * 1: tdmout_b; - * 2: tdmout_c; - * 3: spdifout; - * 4: spdifout_b; - */ - samesource_sel = <3>; - - /*enable default mclk(12.288M), before extern codec start*/ - start_clk_enable = <1>; - - /*tdm clk tuning enable*/ - clk_tuning_enable = <1>; - - status = "disabled"; - - /* !!!For --TV platform-- ONLY */ - Channel_Mask { - /*i2s has 4 pins, 8channel, mux output*/ - Spdif_samesource_Channel_Mask = "i2s_0/1"; - }; - }; - - tdmc: tdm@2 { - compatible = "amlogic, t5-snd-tdmc"; - #sound-dai-cells = <0>; - dai-tdm-lane-slot-mask-out = <1>; - dai-tdm-clk-sel = <2>; - //clocks = <&clkaudio CLKID_AUDIO_MCLK_C - // &clkc CLKID_MPLL2>; - //clock-names = "mclk", "clk_srcpll"; - - status = "disabled"; - }; - - spdifa: spdif@0 { - compatible = "amlogic, tm2-revb-snd-spdif-a"; - #sound-dai-cells = <0>; - //clocks = <&clkc CLKID_MPLL0 - // &clkc CLKID_FCLK_DIV4 - // &clkaudio CLKID_AUDIO_GATE_SPDIFIN - // &clkaudio CLKID_AUDIO_GATE_SPDIFOUT_A - // &clkaudio CLKID_AUDIO_SPDIFIN - // &clkaudio CLKID_AUDIO_SPDIFOUT_A>; - //clock-names = "sysclk", "fixed_clk", "gate_spdifin", - // "gate_spdifout", "clk_spdifin", "clk_spdifout"; - interrupts = - ; - - interrupt-names = "irq_spdifin"; - pinctrl-names = "spdif_pins", "spdif_pins_mute"; - pinctrl-0 = <&spdifout>; - pinctrl-1 = <&spdifout_a_mute>; - - /*spdif clk tuning enable*/ - clk_tuning_enable = <1>; - - status = "disabled"; - }; - spdifb: spdif@1 { - compatible = "amlogic, tm2-revb-snd-spdif-b"; - #sound-dai-cells = <0>; - //clocks = <&clkc CLKID_MPLL0 /*CLKID_HIFI_PLL*/ - // &clkaudio CLKID_AUDIO_GATE_SPDIFOUT_B - // &clkaudio CLKID_AUDIO_SPDIFOUT_B>; - //clock-names = "sysclk", - // "gate_spdifout", "clk_spdifout"; - - status = "disabled"; - }; - apdm: pdm { - compatible = "amlogic, sm1-snd-pdm"; - #sound-dai-cells = <0>; - - //clocks = <&clkaudio CLKID_AUDIO_GATE_PDM - // &clkc CLKID_FCLK_DIV3 - // &clkc CLKID_MPLL3 - // &clkaudio CLKID_AUDIO_PDMIN0 - // &clkaudio CLKID_AUDIO_PDMIN1>; - //clock-names = "gate", - // "sysclk_srcpll", - // "dclk_srcpll", - // "pdm_dclk", - // "pdm_sysclk"; - - pinctrl-names = "pdm_pins"; - pinctrl-0 = <&pdmin>; - - /* mode 0~4, defalut:1 */ - filter_mode = <1>; - - status = "disabled"; - }; - - asrca: resample@0 { - compatible = "amlogic, t5-resample-a"; - //clocks = <&clkc CLKID_MPLL3 - // &clkaudio CLKID_AUDIO_MCLK_F - // &clkaudio CLKID_AUDIO_RESAMPLE_A>; - //clock-names = "resample_pll", "resample_src", "resample_clk"; - /*same with toddr_src - * TDMIN_A, 0 - * TDMIN_B, 1 - * TDMIN_C, 2 - * SPDIFIN, 3 - * PDMIN, 4 - * NONE, - * TDMIN_LB, 6 - * LOOPBACK, 7 - */ - resample_module = <4>; - status = "disabled"; - }; - - asrcb:resample@1 { - compatible = "amlogic, t5-resample-b"; - //clocks = <&clkc CLKID_MPLL3 - // &clkaudio CLKID_AUDIO_MCLK_F - // &clkaudio CLKID_AUDIO_RESAMPLE_B>; - //clock-names = "resample_pll", "resample_src", "resample_clk"; - - /*this resample is only used for loopback_A.*/ - capture_sample_rate = <16000>; - - status = "disabled"; - }; - - vad:vad { - compatible = "amlogic, snd-vad"; - #sound-dai-cells = <0>; - - //clocks = <&clkaudio CLKID_AUDIO_GATE_TOVAD - // &clkc CLKID_FCLK_DIV5 - // &clkaudio CLKID_AUDIO_VAD>; - //clock-names = "gate", "pll", "clk"; - - interrupts = ; - interrupt-names = "irq_wakeup", "irq_frame_sync"; - - /* - * Data src sel: - * 0: tdmin_a; - * 1: tdmin_b; - * 2: tdmin_c; - * 3: spdifin; - * 4: pdmin; - * 5: loopback_b; - * 6: tdmin_lb; - * 7: loopback_a; - */ - src = <4>; - - /* - * deal with hot word in user space or kernel space - * 0: in user space - * 1: in kernel space - */ - level = <1>; - - status = "disabled"; - }; - - loopbacka:loopback@0 { - compatible = "amlogic, t5-loopbacka"; - #sound-dai-cells = <0>; - - //clocks = <&clkaudio CLKID_AUDIO_GATE_PDM - // &clkc CLKID_FCLK_DIV3 - // &clkc CLKID_MPLL3 - // &clkaudio CLKID_AUDIO_PDMIN0 - // &clkaudio CLKID_AUDIO_PDMIN1 - // &clkc CLKID_MPLL0 - // &clkaudio CLKID_AUDIO_MCLK_A>; - //clock-names = "pdm_gate", - // "pdm_sysclk_srcpll", - // "pdm_dclk_srcpll", - // "pdm_dclk", - // "pdm_sysclk", - // "tdminlb_mpll", - // "tdminlb_mclk"; - - /* datain src - * 0: tdmin_a; - * 1: tdmin_b; - * 2: tdmin_c; - * 3: spdifin; - * 4: pdmin; - */ - datain_src = <4>; - datain_chnum = <2>; - datain_chmask = <0x3>; - /* config which data pin for loopback */ - datain-lane-mask-in = <1 0 0 0>; - - /* calc mclk for datalb */ - mclk-fs = <256>; - - /* tdmin_lb src - * 0: tdmoutA - * 1: tdmoutB - * 2: tdmoutC - * 3: PAD_TDMINA_DIN*, refer to core pinmux - * 4: PAD_TDMINB_DIN*, refer to core pinmux - * 5: PAD_TDMINC_DIN*, refer to core pinmux - * 6: PAD_TDMINA_D*, oe, refer to core pinmux - * 7: PAD_TDMINB_D*, oe, refer to core pinmux - */ - /* if tdmin_lb >= 3, use external loopback */ - datalb_src = <1>; - datalb_chnum = <2>; - datalb_chmask = <0x3>; - /* config which data pin as loopback */ - datalb-lane-mask-in = <1 0 0 0>; - - status = "disabled"; - }; - - loopbackb:loopback@1 { - compatible = "amlogic, t5-loopbackb"; - #sound-dai-cells = <0>; - - //clocks = <&clkaudio CLKID_AUDIO_GATE_PDM - // &clkc CLKID_FCLK_DIV3 - // &clkc CLKID_MPLL3 - // &clkaudio CLKID_AUDIO_PDMIN0 - // &clkaudio CLKID_AUDIO_PDMIN1 - // &clkc CLKID_MPLL0 - // &clkaudio CLKID_AUDIO_MCLK_A>; - //clock-names = "pdm_gate", - // "pdm_sysclk_srcpll", - // "pdm_dclk_srcpll", - // "pdm_dclk", - // "pdm_sysclk", - // "tdminlb_mpll", - // "tdminlb_mclk"; - - /* calc mclk for datain_lb */ - mclk-fs = <256>; - - /* datain src - * 0: tdmin_a; - * 1: tdmin_b; - * 2: tdmin_c; - * 3: spdifin; - * 4: pdmin; - */ - datain_src = <4>; - datain_chnum = <4>; - datain_chmask = <0xf>; - /* config which data pin for loopback */ - datain-lane-mask-in = <1 0 1 0>; - - /* tdmin_lb src - * 0: tdmoutA - * 1: tdmoutB - * 2: tdmoutC - * 3: PAD_TDMINA_DIN*, refer to core pinmux - * 4: PAD_TDMINB_DIN*, refer to core pinmux - * 5: PAD_TDMINC_DIN*, refer to core pinmux - * 6: PAD_TDMINA_D*, oe, refer to core pinmux - * 7: PAD_TDMINB_D*, oe, refer to core pinmux - */ - /* if tdmin_lb >= 3, use external loopback */ - datalb_src = <1>; - datalb_chnum = <2>; - datalb_chmask = <0x3>; - /* config which data pin as loopback */ - datalb-lane-mask-in = <1 0 0 0>; - - status = "disabled"; - }; - aed:effect { - compatible = "amlogic, snd-effect-v3"; - #sound-dai-cells = <0>; - //clocks = <&clkaudio CLKID_AUDIO_GATE_EQDRC - // &clkc CLKID_FCLK_DIV5 - // &clkaudio CLKID_AUDIO_EQDRC>; - //clock-names = "gate", "srcpll", "eqdrc"; - /* - * 0:tdmout_a - * 1:tdmout_b - * 2:tdmout_c - * 3:spdifout - * 4:spdifout_b - */ - eqdrc_module = <1>; - /* max 0xf, each bit for one lane, usually one lane */ - lane_mask = <0x1>; - /* max 0xff, each bit for one channel */ - channel_mask = <0x3>; - status = "disabled"; - }; -}; /* end of audiobus */ - &pinctrl_audio { tdm_d0_pins: tdm_d0_pin { mux { @@ -1261,7 +937,7 @@ &periphs_pinctrl { tdm_a: tdm_a { - mux { /* GPIOX_11, GPIOX_10, GPIOX_9, GPIOX_8 */ + mux { /* GPIOX_11, GPIOX_10, GPIOX_8, GPIOX_9 */ groups = "tdm_sclk0", "tdm_fs0", "tdm_d0", @@ -1309,7 +985,7 @@ }; /* end of periphs_pinctrl */ &audio_data { - status = "disabled"; + status = "okay"; }; &usb_phy20 { @@ -1655,8 +1331,3 @@ &drm_subsystem { fbdev_sizes = <1280 720 1280 1440 32>; }; - -&amlogic_codec { - tocodec_inout = <1>; - tdmout_index = <1>; -};