mirror of
https://github.com/hardkernel/kernel_common_drivers.git
synced 2026-06-25 12:03:48 +09:00
Audio: bringup audio driver for s7d chip [1/1]
PD#SWPL-162976 Problem: support s7d audio driver Solution: 1. support s7d audio driver 2. earc rx not config currently Verify: use s7d Change-Id: Ic99888c2b97cabed1c5c6e91854d01cff0f2c7c6 Signed-off-by: qing.zhang <qing.zhang@amlogic.com>
This commit is contained in:
@@ -3,14 +3,12 @@
|
||||
* Copyright (c) 2019 Amlogic, Inc. All rights reserved.
|
||||
*/
|
||||
|
||||
#include <dt-bindings/clock/axg-audio-clkc.h>
|
||||
#include <dt-bindings/clock/s7d-clkc.h>
|
||||
#include <dt-bindings/clock/s7d-scmi-clkc.h>
|
||||
#include <dt-bindings/clock/g12a-aoclkc.h>
|
||||
#include <dt-bindings/interrupt-controller/irq.h>
|
||||
#include <dt-bindings/interrupt-controller/arm-gic.h>
|
||||
#include <dt-bindings/power/s7d-pd.h>
|
||||
#include <dt-bindings/clock/amlogic,sc2-audio-clk.h>
|
||||
#include <dt-bindings/gpio/gpio.h>
|
||||
#include <dt-bindings/gpio/meson-s7d-gpio.h>
|
||||
#include <dt-bindings/reset/amlogic,meson-s7d-reset.h>
|
||||
@@ -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 {
|
||||
|
||||
@@ -0,0 +1,469 @@
|
||||
// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
|
||||
/*
|
||||
* Copyright (c) 2019 Amlogic, Inc. All rights reserved.
|
||||
*/
|
||||
|
||||
#include <dt-bindings/clock/amlogic,txhd2-audio-clk.h>
|
||||
/ {
|
||||
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 =
|
||||
<GIC_SPI 35 IRQ_TYPE_EDGE_RISING>;
|
||||
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 =
|
||||
<GIC_SPI 42 IRQ_TYPE_EDGE_RISING>;
|
||||
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";
|
||||
};
|
||||
};
|
||||
};
|
||||
@@ -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 =
|
||||
<GIC_SPI 35 IRQ_TYPE_EDGE_RISING>;
|
||||
|
||||
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 = <GIC_SPI 39 IRQ_TYPE_EDGE_RISING
|
||||
GIC_SPI 44 IRQ_TYPE_EDGE_RISING>;
|
||||
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 {
|
||||
|
||||
@@ -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 =
|
||||
<GIC_SPI 35 IRQ_TYPE_EDGE_RISING>;
|
||||
|
||||
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 = <GIC_SPI 39 IRQ_TYPE_EDGE_RISING
|
||||
GIC_SPI 44 IRQ_TYPE_EDGE_RISING>;
|
||||
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>;
|
||||
};
|
||||
|
||||
@@ -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 =
|
||||
<GIC_SPI 35 IRQ_TYPE_EDGE_RISING>;
|
||||
|
||||
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 = <GIC_SPI 39 IRQ_TYPE_EDGE_RISING
|
||||
GIC_SPI 44 IRQ_TYPE_EDGE_RISING>;
|
||||
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>;
|
||||
};
|
||||
|
||||
@@ -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 =
|
||||
<GIC_SPI 35 IRQ_TYPE_EDGE_RISING>;
|
||||
|
||||
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 = <GIC_SPI 39 IRQ_TYPE_EDGE_RISING
|
||||
GIC_SPI 44 IRQ_TYPE_EDGE_RISING>;
|
||||
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>;
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user