mirror of
https://github.com/hardkernel/linux.git
synced 2026-04-01 18:53:02 +09:00
audio: TM2 audio basic function bringup [1/1]
PD#SWPL-6721 Problem: TM2 bringup Solution: audio basic function bringup Verify: Verified on T962e2_ab311 Change-Id: Ic48ded3964ea87e40c4d683d71a50bbdc1975f91 Signed-off-by: Zhe Wang <Zhe.Wang@amlogic.com>
This commit is contained in:
@@ -13809,7 +13809,8 @@ F: include/dt-bindings/clock/*
|
||||
F: include/linux/amlogic/media/sound/*
|
||||
F: sound/soc/Kconfig
|
||||
F: sound/soc/Makefile
|
||||
F: sound/soc/amlogic/*
|
||||
F: sound/soc/amlogic/auge/*
|
||||
F: sound/soc/amlogic/meson/*
|
||||
F: sound/soc/codecs/Kconfig
|
||||
F: sound/soc/codecs/Makefile
|
||||
F: sound/soc/codecs/amlogic/*
|
||||
|
||||
@@ -23,7 +23,7 @@
|
||||
#include <dt-bindings/pwm/pwm.h>
|
||||
#include <dt-bindings/pwm/meson.h>
|
||||
#include <dt-bindings/clock/amlogic,tl1-clkc.h>
|
||||
#include <dt-bindings/clock/amlogic,tl1-audio-clk.h>
|
||||
#include <dt-bindings/clock/amlogic,tm2-audio-clk.h>
|
||||
#include <dt-bindings/phy/phy-amlogic-pcie.h>
|
||||
#include "mesong12a-bifrost.dtsi"
|
||||
#include <dt-bindings/iio/adc/amlogic-saradc.h>
|
||||
@@ -669,7 +669,7 @@
|
||||
ranges = <0x0 0xff600000 0x10000>;
|
||||
|
||||
clkaudio:audio_clocks {
|
||||
compatible = "amlogic, tl1-audio-clocks";
|
||||
compatible = "amlogic, tm2-audio-clocks";
|
||||
#clock-cells = <1>;
|
||||
reg = <0x0 0xb0>;
|
||||
};
|
||||
@@ -711,13 +711,22 @@
|
||||
reg = <0xFF601400 0x400>;
|
||||
};
|
||||
eqdrc_base {
|
||||
reg = <0xFF602000 0x2000>;
|
||||
reg = <0xFF602000 0x1000>;
|
||||
};
|
||||
reset_base {
|
||||
reg = <0xFFD01000 0x1000>;
|
||||
};
|
||||
vad_base {
|
||||
reg = <0xFF601800 0x800>;
|
||||
reg = <0xFF601800 0x400>;
|
||||
};
|
||||
earcrx_cdmc_base {
|
||||
reg = <0xFF603800 0x30>;
|
||||
};
|
||||
earcrx_dmac_base {
|
||||
reg = <0xFF603C00 0x20>;
|
||||
};
|
||||
earcrx_top_base {
|
||||
reg = <0xFF603E00 0x10>;
|
||||
};
|
||||
};
|
||||
|
||||
|
||||
@@ -286,7 +286,7 @@
|
||||
};
|
||||
|
||||
auge_sound {
|
||||
compatible = "amlogic, tl1-sound-card";
|
||||
compatible = "amlogic, tm2-sound-card";
|
||||
aml-audio-card,name = "AML-AUGESOUND";
|
||||
|
||||
avout_mute-gpios = <&gpio GPIODV_3 GPIO_ACTIVE_HIGH>;
|
||||
@@ -360,7 +360,6 @@
|
||||
};
|
||||
|
||||
aml-audio-card,dai-link@2 {
|
||||
status = "disabled";
|
||||
|
||||
format = "i2s";
|
||||
mclk-fs = <256>;
|
||||
@@ -416,6 +415,7 @@
|
||||
|
||||
aml-audio-card,dai-link@5 {
|
||||
mclk-fs = <128>;
|
||||
suffix-name = "alsaPORT-spdifb";
|
||||
cpu {
|
||||
sound-dai = <&spdifb>;
|
||||
system-clock-frequency = <6144000>;
|
||||
@@ -437,6 +437,17 @@
|
||||
};
|
||||
};
|
||||
|
||||
aml-audio-card,dai-link@7 {
|
||||
mclk-fs = <256>;
|
||||
suffix-name = "alsaPORT-earc";
|
||||
cpu {
|
||||
sound-dai = <&earc>;
|
||||
system-clock-frequency = <12288000>;
|
||||
};
|
||||
codec {
|
||||
sound-dai = <&dummy_codec>;
|
||||
};
|
||||
};
|
||||
};
|
||||
/* Audio Related end */
|
||||
|
||||
@@ -1321,7 +1332,7 @@
|
||||
|
||||
&audiobus {
|
||||
tdma:tdm@0 {
|
||||
compatible = "amlogic, tl1-snd-tdma";
|
||||
compatible = "amlogic, tm2-snd-tdma";
|
||||
#sound-dai-cells = <0>;
|
||||
|
||||
dai-tdm-lane-slot-mask-in = <1 0>;
|
||||
@@ -1360,7 +1371,7 @@
|
||||
};
|
||||
|
||||
tdmb:tdm@1 {
|
||||
compatible = "amlogic, tl1-snd-tdmb";
|
||||
compatible = "amlogic, tm2-snd-tdmb";
|
||||
#sound-dai-cells = <0>;
|
||||
|
||||
dai-tdm-lane-slot-mask-in = <1 0 0 0>;
|
||||
@@ -1375,7 +1386,7 @@
|
||||
};
|
||||
|
||||
tdmc:tdm@2 {
|
||||
compatible = "amlogic, tl1-snd-tdmc";
|
||||
compatible = "amlogic, tm2-snd-tdmc";
|
||||
#sound-dai-cells = <0>;
|
||||
|
||||
dai-tdm-lane-slot-mask-in = <1 0 0 0>;
|
||||
@@ -1392,8 +1403,27 @@
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
pdm:pdm {
|
||||
compatible = "amlogic, tm2-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 = "okay";
|
||||
};
|
||||
spdifa:spdif@0 {
|
||||
compatible = "amlogic, tl1-snd-spdif-a";
|
||||
compatible = "amlogic, tm2-snd-spdif-a";
|
||||
#sound-dai-cells = <0>;
|
||||
|
||||
clocks = <&clkc CLKID_MPLL1
|
||||
@@ -1433,7 +1463,7 @@
|
||||
};
|
||||
|
||||
spdifb:spdif@1 {
|
||||
compatible = "amlogic, tl1-snd-spdif-b";
|
||||
compatible = "amlogic, tm2-snd-spdif-b";
|
||||
#sound-dai-cells = <0>;
|
||||
|
||||
clocks = <&clkc CLKID_MPLL0 /*CLKID_HIFI_PLL*/
|
||||
@@ -1445,34 +1475,11 @@
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
pdm:pdm {
|
||||
compatible = "amlogic, tl1-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 = "okay";
|
||||
};
|
||||
|
||||
extn:extn {
|
||||
compatible = "amlogic, snd-extn";
|
||||
#sound-dai-cells = <0>;
|
||||
|
||||
|
||||
interrupts =
|
||||
<GIC_SPI 158 IRQ_TYPE_EDGE_RISING>;
|
||||
interrupt-names = "irq_frhdmirx";
|
||||
@@ -1480,6 +1487,37 @@
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
earc:earc {
|
||||
compatible = "amlogic, tm2-snd-earc";
|
||||
#sound-dai-cells = <0>;
|
||||
|
||||
clocks = < &clkaudio CLKID_EARCRX_CMDC
|
||||
&clkaudio CLKID_EARCRX_DMAC
|
||||
&clkc CLKID_FCLK_DIV5
|
||||
&clkc CLKID_FCLK_DIV3
|
||||
&clkaudio CLKID_EARCTX_CMDC
|
||||
&clkaudio CLKID_EARCTX_DMAC
|
||||
&clkc CLKID_FCLK_DIV5
|
||||
&clkc CLKID_FCLK_DIV3
|
||||
>;
|
||||
clock-names =
|
||||
"rx_cmdc",
|
||||
"rx_dmac",
|
||||
"rx_cmdc_srcpll",
|
||||
"rx_dmac_srcpll",
|
||||
"tx_cmdc",
|
||||
"tx_dmac",
|
||||
"tx_cmdc_srcpll",
|
||||
"tx_dmac_srcpll";
|
||||
interrupts = <
|
||||
GIC_SPI 88 IRQ_TYPE_EDGE_RISING
|
||||
GIC_SPI 87 IRQ_TYPE_EDGE_RISING
|
||||
>;
|
||||
interrupt-names = "rx_cmdc", "rx_dmac";
|
||||
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
aed:effect {
|
||||
compatible = "amlogic, snd-effect-v2";
|
||||
#sound-dai-cells = <0>;
|
||||
@@ -1502,7 +1540,7 @@
|
||||
/* max 0xff, each bit for one channel */
|
||||
channel_mask = <0xff>;
|
||||
|
||||
status = "okay";
|
||||
status = "disable";
|
||||
};
|
||||
|
||||
asrca: resample@0 {
|
||||
@@ -1523,7 +1561,7 @@
|
||||
*/
|
||||
resample_module = <3>;
|
||||
|
||||
status = "okay";
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
asrcb: resample@1 {
|
||||
@@ -1590,25 +1628,27 @@
|
||||
/* audio pin mux */
|
||||
|
||||
tdma_mclk: tdma_mclk {
|
||||
mux { /* GPIOZ_0 */
|
||||
groups = "mclk0_z";
|
||||
mux { /* GPIOH_4 */
|
||||
groups = "mclk0_h";
|
||||
function = "mclk0";
|
||||
};
|
||||
};
|
||||
|
||||
tdmout_a: tdmout_a {
|
||||
mux { /* GPIOH_5, GPIOH_6, GPIOH_7 */
|
||||
mux { /* GPIOH_5, GPIOH_6, GPIOH_7, GPIOH_8*/
|
||||
groups = "tdma_fs_h",
|
||||
"tdma_sclk_h",
|
||||
"tdma_dout0_h";
|
||||
"tdma_dout0_h",
|
||||
"tdma_dout1_h";
|
||||
function = "tdma_out";
|
||||
bias-pull-down;
|
||||
};
|
||||
};
|
||||
|
||||
tdmin_a: tdmin_a {
|
||||
mux { /* GPIOZ_9 */
|
||||
groups = "tdma_din2_z";
|
||||
mux { /* GPIOH_11, GPIOH_12 */
|
||||
groups = "tdma_din0_h",
|
||||
"tdma_din1_h";
|
||||
function = "tdma_in";
|
||||
};
|
||||
};
|
||||
|
||||
@@ -255,6 +255,7 @@
|
||||
reg = <0xff632000 0x1c>;
|
||||
tdmout_index = <0>;
|
||||
tdmin_index = <0>;
|
||||
dat1_ch_sel = <1>;
|
||||
};
|
||||
|
||||
aml_dtv_demod {
|
||||
@@ -283,7 +284,7 @@
|
||||
};
|
||||
|
||||
auge_sound {
|
||||
compatible = "amlogic, tl1-sound-card";
|
||||
compatible = "amlogic, tm2-sound-card";
|
||||
aml-audio-card,name = "AML-AUGESOUND";
|
||||
|
||||
avout_mute-gpios = <&gpio GPIODV_3 GPIO_ACTIVE_HIGH>;
|
||||
@@ -321,7 +322,6 @@
|
||||
};
|
||||
|
||||
aml-audio-card,dai-link@1 {
|
||||
status = "disabled";
|
||||
|
||||
format = "i2s";
|
||||
mclk-fs = <256>;
|
||||
@@ -357,7 +357,6 @@
|
||||
};
|
||||
|
||||
aml-audio-card,dai-link@2 {
|
||||
status = "disabled";
|
||||
|
||||
format = "i2s";
|
||||
mclk-fs = <256>;
|
||||
@@ -399,6 +398,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 {
|
||||
@@ -412,6 +412,7 @@
|
||||
|
||||
aml-audio-card,dai-link@5 {
|
||||
mclk-fs = <128>;
|
||||
suffix-name = "alsaPORT-spdifb";
|
||||
cpu {
|
||||
sound-dai = <&spdifb>;
|
||||
system-clock-frequency = <6144000>;
|
||||
@@ -432,6 +433,17 @@
|
||||
sound-dai = <&dummy_codec>;
|
||||
};
|
||||
};
|
||||
aml-audio-card,dai-link@7 {
|
||||
mclk-fs = <256>;
|
||||
suffix-name = "alsaPORT-earc";
|
||||
cpu {
|
||||
sound-dai = <&earc>;
|
||||
system-clock-frequency = <12288000>;
|
||||
};
|
||||
codec {
|
||||
sound-dai = <&dummy_codec>;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
/* Audio Related end */
|
||||
@@ -1229,7 +1241,7 @@
|
||||
|
||||
&audiobus {
|
||||
tdma:tdm@0 {
|
||||
compatible = "amlogic, tl1-snd-tdma";
|
||||
compatible = "amlogic, tm2-snd-tdma";
|
||||
#sound-dai-cells = <0>;
|
||||
|
||||
dai-tdm-lane-slot-mask-in = <1 0>;
|
||||
@@ -1244,7 +1256,7 @@
|
||||
"samesource_srcpll", "samesource_clk";
|
||||
|
||||
pinctrl-names = "tdm_pins";
|
||||
pinctrl-0 = <&tdma_mclk &tdmout_a>;
|
||||
pinctrl-0 = </*&tdma_mclk &tdmout_a*/>;
|
||||
|
||||
/*
|
||||
* 0: tdmout_a;
|
||||
@@ -1268,7 +1280,7 @@
|
||||
};
|
||||
|
||||
tdmb:tdm@1 {
|
||||
compatible = "amlogic, tl1-snd-tdmb";
|
||||
compatible = "amlogic, tm2-snd-tdmb";
|
||||
#sound-dai-cells = <0>;
|
||||
|
||||
dai-tdm-lane-slot-mask-in = <1 0 0 0>;
|
||||
@@ -1283,7 +1295,7 @@
|
||||
};
|
||||
|
||||
tdmc:tdm@2 {
|
||||
compatible = "amlogic, tl1-snd-tdmc";
|
||||
compatible = "amlogic, tm2-snd-tdmc";
|
||||
#sound-dai-cells = <0>;
|
||||
|
||||
dai-tdm-lane-slot-mask-in = <1 0 0 0>;
|
||||
@@ -1295,16 +1307,35 @@
|
||||
clock-names = "mclk", "clk_srcpll";
|
||||
|
||||
pinctrl-names = "tdm_pins";
|
||||
pinctrl-0 = <&tdmout_c &tdmin_c>;
|
||||
pinctrl-0 = </*&tdmout_c &tdmin_c*/>;
|
||||
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
pdm:pdm {
|
||||
compatible = "amlogic, tm2-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 = "okay";
|
||||
};
|
||||
spdifa:spdif@0 {
|
||||
compatible = "amlogic, tl1-snd-spdif-a";
|
||||
compatible = "amlogic, tm2-snd-spdif-a";
|
||||
#sound-dai-cells = <0>;
|
||||
|
||||
clocks = <&clkc CLKID_MPLL0
|
||||
clocks = <&clkc CLKID_MPLL1
|
||||
&clkc CLKID_FCLK_DIV4
|
||||
&clkaudio CLKID_AUDIO_GATE_SPDIFIN
|
||||
&clkaudio CLKID_AUDIO_GATE_SPDIFOUT_A
|
||||
@@ -1336,13 +1367,13 @@
|
||||
* 7: "Enable:192K",
|
||||
*/
|
||||
asrc_id = <0>;
|
||||
auto_asrc = <0>;
|
||||
auto_asrc = <3>;
|
||||
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
spdifb:spdif@1 {
|
||||
compatible = "amlogic, tl1-snd-spdif-b";
|
||||
compatible = "amlogic, tm2-snd-spdif-b";
|
||||
#sound-dai-cells = <0>;
|
||||
|
||||
clocks = <&clkc CLKID_MPLL0 /*CLKID_HIFI_PLL*/
|
||||
@@ -1354,34 +1385,11 @@
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
pdm:pdm {
|
||||
compatible = "amlogic, tl1-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 = "okay";
|
||||
};
|
||||
|
||||
extn:extn {
|
||||
compatible = "amlogic, snd-extn";
|
||||
#sound-dai-cells = <0>;
|
||||
|
||||
|
||||
interrupts =
|
||||
<GIC_SPI 158 IRQ_TYPE_EDGE_RISING>;
|
||||
interrupt-names = "irq_frhdmirx";
|
||||
@@ -1389,6 +1397,37 @@
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
earc:earc {
|
||||
compatible = "amlogic, tm2-snd-earc";
|
||||
#sound-dai-cells = <0>;
|
||||
|
||||
clocks = < &clkaudio CLKID_EARCRX_CMDC
|
||||
&clkaudio CLKID_EARCRX_DMAC
|
||||
&clkc CLKID_FCLK_DIV5
|
||||
&clkc CLKID_FCLK_DIV3
|
||||
&clkaudio CLKID_EARCTX_CMDC
|
||||
&clkaudio CLKID_EARCTX_DMAC
|
||||
&clkc CLKID_FCLK_DIV5
|
||||
&clkc CLKID_FCLK_DIV3
|
||||
>;
|
||||
clock-names =
|
||||
"rx_cmdc",
|
||||
"rx_dmac",
|
||||
"rx_cmdc_srcpll",
|
||||
"rx_dmac_srcpll",
|
||||
"tx_cmdc",
|
||||
"tx_dmac",
|
||||
"tx_cmdc_srcpll",
|
||||
"tx_dmac_srcpll";
|
||||
interrupts = <
|
||||
GIC_SPI 88 IRQ_TYPE_EDGE_RISING
|
||||
GIC_SPI 87 IRQ_TYPE_EDGE_RISING
|
||||
>;
|
||||
interrupt-names = "rx_cmdc", "rx_dmac";
|
||||
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
aed:effect {
|
||||
compatible = "amlogic, snd-effect-v2";
|
||||
#sound-dai-cells = <0>;
|
||||
@@ -1398,9 +1437,6 @@
|
||||
&clkaudio CLKID_AUDIO_EQDRC>;
|
||||
clock-names = "gate", "srcpll", "eqdrc";
|
||||
|
||||
eq_enable = <1>;
|
||||
multiband_drc_enable = <0>;
|
||||
fullband_drc_enable = <0>;
|
||||
/*
|
||||
* 0:tdmout_a
|
||||
* 1:tdmout_b
|
||||
@@ -1412,9 +1448,9 @@
|
||||
/* max 0xf, each bit for one lane, usually one lane */
|
||||
lane_mask = <0x1>;
|
||||
/* max 0xff, each bit for one channel */
|
||||
channel_mask = <0x3>;
|
||||
channel_mask = <0xff>;
|
||||
|
||||
status = "okay";
|
||||
status = "disable";
|
||||
};
|
||||
|
||||
asrca: resample@0 {
|
||||
@@ -1435,7 +1471,7 @@
|
||||
*/
|
||||
resample_module = <3>;
|
||||
|
||||
status = "okay";
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
asrcb: resample@1 {
|
||||
@@ -1492,7 +1528,7 @@
|
||||
* 0: in user space
|
||||
* 1: in kernel space
|
||||
*/
|
||||
level = <0>;
|
||||
level = <1>;
|
||||
|
||||
status = "disabled";
|
||||
};
|
||||
@@ -1502,38 +1538,31 @@
|
||||
/* audio pin mux */
|
||||
|
||||
tdma_mclk: tdma_mclk {
|
||||
mux { /* GPIOZ_0 */
|
||||
groups = "mclk0_z";
|
||||
mux { /* GPIOH_4 */
|
||||
groups = "mclk0_h";
|
||||
function = "mclk0";
|
||||
};
|
||||
};
|
||||
|
||||
tdmout_a: tdmout_a {
|
||||
mux { /* GPIOZ_1, GPIOZ_2, GPIOZ_3, GPIOZ_5, GPIOZ_6 */
|
||||
groups = "tdma_sclk_z",
|
||||
"tdma_fs_z",
|
||||
"tdma_dout0_z",
|
||||
"tdma_dout2_z",
|
||||
"tdma_dout3_z";
|
||||
mux { /* GPIOH_5, GPIOH_6, GPIOH_7, GPIOH_8*/
|
||||
groups = "tdma_fs_h",
|
||||
"tdma_sclk_h",
|
||||
"tdma_dout0_h",
|
||||
"tdma_dout1_h";
|
||||
function = "tdma_out";
|
||||
bias-pull-down;
|
||||
};
|
||||
};
|
||||
|
||||
tdmin_a: tdmin_a {
|
||||
mux { /* GPIOZ_9 */
|
||||
groups = "tdma_din2_z";
|
||||
mux { /* GPIOH_11, GPIOH_12 */
|
||||
groups = "tdma_din0_h",
|
||||
"tdma_din1_h";
|
||||
function = "tdma_in";
|
||||
};
|
||||
};
|
||||
#if 0 //verify tdm/i2s in
|
||||
tdmin_a: tdmin_a {
|
||||
mux { /* GPIOZ_7 */
|
||||
groups = "tdma_din0_z";
|
||||
function = "tdma_in";
|
||||
};
|
||||
};
|
||||
#endif
|
||||
|
||||
tdmout_c: tdmout_c {
|
||||
mux { /* GPIODV_7, GPIODV_8, GPIODV_9 */
|
||||
groups = "tdmc_sclk",
|
||||
|
||||
@@ -287,7 +287,7 @@
|
||||
};
|
||||
|
||||
auge_sound {
|
||||
compatible = "amlogic, tl1-sound-card";
|
||||
compatible = "amlogic, tm2-sound-card";
|
||||
aml-audio-card,name = "AML-AUGESOUND";
|
||||
|
||||
avout_mute-gpios = <&gpio GPIODV_3 GPIO_ACTIVE_HIGH>;
|
||||
@@ -320,12 +320,11 @@
|
||||
};
|
||||
tdmacodec: codec {
|
||||
//sound-dai = <&dummy_codec>;
|
||||
sound-dai = <&ad82584f &tl1_codec>;
|
||||
sound-dai = </*&ad82584f*/ &tl1_codec>;
|
||||
};
|
||||
};
|
||||
|
||||
aml-audio-card,dai-link@1 {
|
||||
status = "disabled";
|
||||
|
||||
format = "i2s";
|
||||
mclk-fs = <256>;
|
||||
@@ -361,7 +360,6 @@
|
||||
};
|
||||
|
||||
aml-audio-card,dai-link@2 {
|
||||
status = "disabled";
|
||||
|
||||
format = "i2s";
|
||||
mclk-fs = <256>;
|
||||
@@ -417,6 +415,7 @@
|
||||
|
||||
aml-audio-card,dai-link@5 {
|
||||
mclk-fs = <128>;
|
||||
suffix-name = "alsaPORT-spdifb";
|
||||
cpu {
|
||||
sound-dai = <&spdifb>;
|
||||
system-clock-frequency = <6144000>;
|
||||
@@ -438,6 +437,17 @@
|
||||
};
|
||||
};
|
||||
|
||||
aml-audio-card,dai-link@7 {
|
||||
mclk-fs = <256>;
|
||||
suffix-name = "alsaPORT-earc";
|
||||
cpu {
|
||||
sound-dai = <&earc>;
|
||||
system-clock-frequency = <12288000>;
|
||||
};
|
||||
codec {
|
||||
sound-dai = <&dummy_codec>;
|
||||
};
|
||||
};
|
||||
};
|
||||
/* Audio Related end */
|
||||
|
||||
@@ -1325,7 +1335,7 @@
|
||||
|
||||
&audiobus {
|
||||
tdma:tdm@0 {
|
||||
compatible = "amlogic, tl1-snd-tdma";
|
||||
compatible = "amlogic, tm2-snd-tdma";
|
||||
#sound-dai-cells = <0>;
|
||||
|
||||
dai-tdm-lane-slot-mask-in = <1 0>;
|
||||
@@ -1364,7 +1374,7 @@
|
||||
};
|
||||
|
||||
tdmb:tdm@1 {
|
||||
compatible = "amlogic, tl1-snd-tdmb";
|
||||
compatible = "amlogic, tm2-snd-tdmb";
|
||||
#sound-dai-cells = <0>;
|
||||
|
||||
dai-tdm-lane-slot-mask-in = <1 0 0 0>;
|
||||
@@ -1379,7 +1389,7 @@
|
||||
};
|
||||
|
||||
tdmc:tdm@2 {
|
||||
compatible = "amlogic, tl1-snd-tdmc";
|
||||
compatible = "amlogic, tm2-snd-tdmc";
|
||||
#sound-dai-cells = <0>;
|
||||
|
||||
dai-tdm-lane-slot-mask-in = <1 0 0 0>;
|
||||
@@ -1396,8 +1406,27 @@
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
pdm:pdm {
|
||||
compatible = "amlogic, tm2-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 = "okay";
|
||||
};
|
||||
spdifa:spdif@0 {
|
||||
compatible = "amlogic, tl1-snd-spdif-a";
|
||||
compatible = "amlogic, tm2-snd-spdif-a";
|
||||
#sound-dai-cells = <0>;
|
||||
|
||||
clocks = <&clkc CLKID_MPLL1
|
||||
@@ -1437,7 +1466,7 @@
|
||||
};
|
||||
|
||||
spdifb:spdif@1 {
|
||||
compatible = "amlogic, tl1-snd-spdif-b";
|
||||
compatible = "amlogic, tm2-snd-spdif-b";
|
||||
#sound-dai-cells = <0>;
|
||||
|
||||
clocks = <&clkc CLKID_MPLL0 /*CLKID_HIFI_PLL*/
|
||||
@@ -1449,34 +1478,11 @@
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
pdm:pdm {
|
||||
compatible = "amlogic, tl1-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 = "okay";
|
||||
};
|
||||
|
||||
extn:extn {
|
||||
compatible = "amlogic, snd-extn";
|
||||
#sound-dai-cells = <0>;
|
||||
|
||||
|
||||
interrupts =
|
||||
<GIC_SPI 158 IRQ_TYPE_EDGE_RISING>;
|
||||
interrupt-names = "irq_frhdmirx";
|
||||
@@ -1484,6 +1490,37 @@
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
earc:earc {
|
||||
compatible = "amlogic, tm2-snd-earc";
|
||||
#sound-dai-cells = <0>;
|
||||
|
||||
clocks = < &clkaudio CLKID_EARCRX_CMDC
|
||||
&clkaudio CLKID_EARCRX_DMAC
|
||||
&clkc CLKID_FCLK_DIV5
|
||||
&clkc CLKID_FCLK_DIV3
|
||||
&clkaudio CLKID_EARCTX_CMDC
|
||||
&clkaudio CLKID_EARCTX_DMAC
|
||||
&clkc CLKID_FCLK_DIV5
|
||||
&clkc CLKID_FCLK_DIV3
|
||||
>;
|
||||
clock-names =
|
||||
"rx_cmdc",
|
||||
"rx_dmac",
|
||||
"rx_cmdc_srcpll",
|
||||
"rx_dmac_srcpll",
|
||||
"tx_cmdc",
|
||||
"tx_dmac",
|
||||
"tx_cmdc_srcpll",
|
||||
"tx_dmac_srcpll";
|
||||
interrupts = <
|
||||
GIC_SPI 88 IRQ_TYPE_EDGE_RISING
|
||||
GIC_SPI 87 IRQ_TYPE_EDGE_RISING
|
||||
>;
|
||||
interrupt-names = "rx_cmdc", "rx_dmac";
|
||||
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
aed:effect {
|
||||
compatible = "amlogic, snd-effect-v2";
|
||||
#sound-dai-cells = <0>;
|
||||
@@ -1506,7 +1543,7 @@
|
||||
/* max 0xff, each bit for one channel */
|
||||
channel_mask = <0xff>;
|
||||
|
||||
status = "okay";
|
||||
status = "disable";
|
||||
};
|
||||
|
||||
asrca: resample@0 {
|
||||
@@ -1527,7 +1564,7 @@
|
||||
*/
|
||||
resample_module = <3>;
|
||||
|
||||
status = "okay";
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
asrcb: resample@1 {
|
||||
@@ -1601,18 +1638,21 @@
|
||||
};
|
||||
|
||||
tdmout_a: tdmout_a {
|
||||
mux { /* GPIOZ_1, GPIOZ_2, GPIOZ_3 */
|
||||
mux { /* GPIOZ_1, GPIOZ_2, GPIOZ_3, GPIOZ_5, GPIOZ_6 */
|
||||
groups = "tdma_sclk_z",
|
||||
"tdma_fs_z",
|
||||
"tdma_dout0_z";
|
||||
"tdma_dout0_z",
|
||||
"tdma_dout2_z",
|
||||
"tdma_dout3_z";
|
||||
function = "tdma_out";
|
||||
bias-pull-down;
|
||||
};
|
||||
};
|
||||
|
||||
tdmin_a: tdmin_a {
|
||||
mux { /* GPIOZ_9 */
|
||||
groups = "tdma_din2_z";
|
||||
mux { /* GPIOH_11, GPIOH_12 */
|
||||
groups = "tdma_din0_h",
|
||||
"tdma_din1_h";
|
||||
function = "tdma_in";
|
||||
};
|
||||
};
|
||||
|
||||
@@ -256,6 +256,7 @@
|
||||
reg = <0xff632000 0x1c>;
|
||||
tdmout_index = <0>;
|
||||
tdmin_index = <0>;
|
||||
dat1_ch_sel = <1>;
|
||||
};
|
||||
|
||||
aml_dtv_demod {
|
||||
@@ -284,7 +285,7 @@
|
||||
};
|
||||
|
||||
auge_sound {
|
||||
compatible = "amlogic, tl1-sound-card";
|
||||
compatible = "amlogic, tm2-sound-card";
|
||||
aml-audio-card,name = "AML-AUGESOUND";
|
||||
|
||||
avout_mute-gpios = <&gpio GPIODV_3 GPIO_ACTIVE_HIGH>;
|
||||
@@ -322,7 +323,6 @@
|
||||
};
|
||||
|
||||
aml-audio-card,dai-link@1 {
|
||||
status = "disabled";
|
||||
|
||||
format = "i2s";
|
||||
mclk-fs = <256>;
|
||||
@@ -358,7 +358,6 @@
|
||||
};
|
||||
|
||||
aml-audio-card,dai-link@2 {
|
||||
status = "disabled";
|
||||
|
||||
format = "i2s";
|
||||
mclk-fs = <256>;
|
||||
@@ -400,6 +399,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 {
|
||||
@@ -413,6 +413,7 @@
|
||||
|
||||
aml-audio-card,dai-link@5 {
|
||||
mclk-fs = <128>;
|
||||
suffix-name = "alsaPORT-spdifb";
|
||||
cpu {
|
||||
sound-dai = <&spdifb>;
|
||||
system-clock-frequency = <6144000>;
|
||||
@@ -433,6 +434,17 @@
|
||||
sound-dai = <&dummy_codec>;
|
||||
};
|
||||
};
|
||||
aml-audio-card,dai-link@7 {
|
||||
mclk-fs = <256>;
|
||||
suffix-name = "alsaPORT-earc";
|
||||
cpu {
|
||||
sound-dai = <&earc>;
|
||||
system-clock-frequency = <12288000>;
|
||||
};
|
||||
codec {
|
||||
sound-dai = <&dummy_codec>;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
/* Audio Related end */
|
||||
@@ -1230,7 +1242,7 @@
|
||||
|
||||
&audiobus {
|
||||
tdma:tdm@0 {
|
||||
compatible = "amlogic, tl1-snd-tdma";
|
||||
compatible = "amlogic, tm2-snd-tdma";
|
||||
#sound-dai-cells = <0>;
|
||||
|
||||
dai-tdm-lane-slot-mask-in = <1 0>;
|
||||
@@ -1245,7 +1257,7 @@
|
||||
"samesource_srcpll", "samesource_clk";
|
||||
|
||||
pinctrl-names = "tdm_pins";
|
||||
pinctrl-0 = <&tdma_mclk &tdmout_a>;
|
||||
pinctrl-0 = </*&tdma_mclk &tdmout_a*/>;
|
||||
|
||||
/*
|
||||
* 0: tdmout_a;
|
||||
@@ -1269,7 +1281,7 @@
|
||||
};
|
||||
|
||||
tdmb:tdm@1 {
|
||||
compatible = "amlogic, tl1-snd-tdmb";
|
||||
compatible = "amlogic, tm2-snd-tdmb";
|
||||
#sound-dai-cells = <0>;
|
||||
|
||||
dai-tdm-lane-slot-mask-in = <1 0 0 0>;
|
||||
@@ -1284,7 +1296,7 @@
|
||||
};
|
||||
|
||||
tdmc:tdm@2 {
|
||||
compatible = "amlogic, tl1-snd-tdmc";
|
||||
compatible = "amlogic, tm2-snd-tdmc";
|
||||
#sound-dai-cells = <0>;
|
||||
|
||||
dai-tdm-lane-slot-mask-in = <1 0 0 0>;
|
||||
@@ -1296,16 +1308,35 @@
|
||||
clock-names = "mclk", "clk_srcpll";
|
||||
|
||||
pinctrl-names = "tdm_pins";
|
||||
pinctrl-0 = <&tdmout_c &tdmin_c>;
|
||||
pinctrl-0 = </*&tdmout_c &tdmin_c*/>;
|
||||
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
pdm:pdm {
|
||||
compatible = "amlogic, tm2-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 = "okay";
|
||||
};
|
||||
spdifa:spdif@0 {
|
||||
compatible = "amlogic, tl1-snd-spdif-a";
|
||||
compatible = "amlogic, tm2-snd-spdif-a";
|
||||
#sound-dai-cells = <0>;
|
||||
|
||||
clocks = <&clkc CLKID_MPLL0
|
||||
clocks = <&clkc CLKID_MPLL1
|
||||
&clkc CLKID_FCLK_DIV4
|
||||
&clkaudio CLKID_AUDIO_GATE_SPDIFIN
|
||||
&clkaudio CLKID_AUDIO_GATE_SPDIFOUT_A
|
||||
@@ -1337,13 +1368,13 @@
|
||||
* 7: "Enable:192K",
|
||||
*/
|
||||
asrc_id = <0>;
|
||||
auto_asrc = <0>;
|
||||
auto_asrc = <3>;
|
||||
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
spdifb:spdif@1 {
|
||||
compatible = "amlogic, tl1-snd-spdif-b";
|
||||
compatible = "amlogic, tm2-snd-spdif-b";
|
||||
#sound-dai-cells = <0>;
|
||||
|
||||
clocks = <&clkc CLKID_MPLL0 /*CLKID_HIFI_PLL*/
|
||||
@@ -1355,34 +1386,11 @@
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
pdm:pdm {
|
||||
compatible = "amlogic, tl1-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 = "okay";
|
||||
};
|
||||
|
||||
extn:extn {
|
||||
compatible = "amlogic, snd-extn";
|
||||
#sound-dai-cells = <0>;
|
||||
|
||||
|
||||
interrupts =
|
||||
<GIC_SPI 158 IRQ_TYPE_EDGE_RISING>;
|
||||
interrupt-names = "irq_frhdmirx";
|
||||
@@ -1390,6 +1398,37 @@
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
earc:earc {
|
||||
compatible = "amlogic, tm2-snd-earc";
|
||||
#sound-dai-cells = <0>;
|
||||
|
||||
clocks = < &clkaudio CLKID_EARCRX_CMDC
|
||||
&clkaudio CLKID_EARCRX_DMAC
|
||||
&clkc CLKID_FCLK_DIV5
|
||||
&clkc CLKID_FCLK_DIV3
|
||||
&clkaudio CLKID_EARCTX_CMDC
|
||||
&clkaudio CLKID_EARCTX_DMAC
|
||||
&clkc CLKID_FCLK_DIV5
|
||||
&clkc CLKID_FCLK_DIV3
|
||||
>;
|
||||
clock-names =
|
||||
"rx_cmdc",
|
||||
"rx_dmac",
|
||||
"rx_cmdc_srcpll",
|
||||
"rx_dmac_srcpll",
|
||||
"tx_cmdc",
|
||||
"tx_dmac",
|
||||
"tx_cmdc_srcpll",
|
||||
"tx_dmac_srcpll";
|
||||
interrupts = <
|
||||
GIC_SPI 88 IRQ_TYPE_EDGE_RISING
|
||||
GIC_SPI 87 IRQ_TYPE_EDGE_RISING
|
||||
>;
|
||||
interrupt-names = "rx_cmdc", "rx_dmac";
|
||||
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
aed:effect {
|
||||
compatible = "amlogic, snd-effect-v2";
|
||||
#sound-dai-cells = <0>;
|
||||
@@ -1399,9 +1438,6 @@
|
||||
&clkaudio CLKID_AUDIO_EQDRC>;
|
||||
clock-names = "gate", "srcpll", "eqdrc";
|
||||
|
||||
eq_enable = <1>;
|
||||
multiband_drc_enable = <0>;
|
||||
fullband_drc_enable = <0>;
|
||||
/*
|
||||
* 0:tdmout_a
|
||||
* 1:tdmout_b
|
||||
@@ -1413,9 +1449,9 @@
|
||||
/* max 0xf, each bit for one lane, usually one lane */
|
||||
lane_mask = <0x1>;
|
||||
/* max 0xff, each bit for one channel */
|
||||
channel_mask = <0x3>;
|
||||
channel_mask = <0xff>;
|
||||
|
||||
status = "okay";
|
||||
status = "disable";
|
||||
};
|
||||
|
||||
asrca: resample@0 {
|
||||
@@ -1436,7 +1472,7 @@
|
||||
*/
|
||||
resample_module = <3>;
|
||||
|
||||
status = "okay";
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
asrcb: resample@1 {
|
||||
@@ -1493,7 +1529,7 @@
|
||||
* 0: in user space
|
||||
* 1: in kernel space
|
||||
*/
|
||||
level = <0>;
|
||||
level = <1>;
|
||||
|
||||
status = "disabled";
|
||||
};
|
||||
@@ -1527,14 +1563,7 @@
|
||||
function = "tdma_in";
|
||||
};
|
||||
};
|
||||
#if 0 //verify tdm/i2s in
|
||||
tdmin_a: tdmin_a {
|
||||
mux { /* GPIOZ_7 */
|
||||
groups = "tdma_din0_z";
|
||||
function = "tdma_in";
|
||||
};
|
||||
};
|
||||
#endif
|
||||
|
||||
tdmout_c: tdmout_c {
|
||||
mux { /* GPIODV_7, GPIODV_8, GPIODV_9 */
|
||||
groups = "tdmc_sclk",
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* arch/arm64/boot/dts/amlogic/mesontl1.dtsi
|
||||
* arch/arm64/boot/dts/amlogic/mesontm2.dtsi
|
||||
*
|
||||
* Copyright (C) 2018 Amlogic, Inc. All rights reserved.
|
||||
*
|
||||
@@ -23,7 +23,7 @@
|
||||
#include <dt-bindings/pwm/pwm.h>
|
||||
#include <dt-bindings/pwm/meson.h>
|
||||
#include <dt-bindings/clock/amlogic,tl1-clkc.h>
|
||||
#include <dt-bindings/clock/amlogic,tl1-audio-clk.h>
|
||||
#include <dt-bindings/clock/amlogic,tm2-audio-clk.h>
|
||||
#include <dt-bindings/phy/phy-amlogic-pcie.h>
|
||||
#include "mesong12a-bifrost.dtsi"
|
||||
#include <dt-bindings/iio/adc/amlogic-saradc.h>
|
||||
@@ -649,7 +649,7 @@
|
||||
ranges = <0x0 0x0 0x0 0xff600000 0x0 0x10000>;
|
||||
|
||||
clkaudio:audio_clocks {
|
||||
compatible = "amlogic, tl1-audio-clocks";
|
||||
compatible = "amlogic, tm2-audio-clocks";
|
||||
#clock-cells = <1>;
|
||||
reg = <0x0 0x0 0x0 0xb0>;
|
||||
};
|
||||
@@ -691,13 +691,22 @@
|
||||
reg = <0x0 0xFF601400 0x0 0x400>;
|
||||
};
|
||||
eqdrc_base {
|
||||
reg = <0x0 0xFF602000 0x0 0x2000>;
|
||||
reg = <0x0 0xFF602000 0x0 0x1000>;
|
||||
};
|
||||
reset_base {
|
||||
reg = <0x0 0xFFD01000 0x0 0x1000>;
|
||||
};
|
||||
vad_base {
|
||||
reg = <0x0 0xFF601800 0x0 0x800>;
|
||||
reg = <0x0 0xFF601800 0x0 0x400>;
|
||||
};
|
||||
earcrx_cdmc_base {
|
||||
reg = <0x0 0xFF603800 0x0 0x30>;
|
||||
};
|
||||
earcrx_dmac_base {
|
||||
reg = <0x0 0xFF603C00 0x0 0x20>;
|
||||
};
|
||||
earcrx_top_base {
|
||||
reg = <0x0 0xFF603E00 0x0 0x10>;
|
||||
};
|
||||
};
|
||||
|
||||
|
||||
@@ -282,7 +282,7 @@
|
||||
};
|
||||
|
||||
auge_sound {
|
||||
compatible = "amlogic, tl1-sound-card";
|
||||
compatible = "amlogic, tm2-sound-card";
|
||||
aml-audio-card,name = "AML-AUGESOUND";
|
||||
|
||||
avout_mute-gpios = <&gpio GPIODV_3 GPIO_ACTIVE_HIGH>;
|
||||
@@ -290,7 +290,7 @@
|
||||
aml-audio-card,dai-link@0 {
|
||||
format = "i2s";
|
||||
mclk-fs = <256>;
|
||||
//continuous-clock;
|
||||
continuous-clock;
|
||||
//bitclock-inversion;
|
||||
//frame-inversion;
|
||||
/* master mode */
|
||||
@@ -320,8 +320,6 @@
|
||||
};
|
||||
|
||||
aml-audio-card,dai-link@1 {
|
||||
status = "disabled";
|
||||
|
||||
format = "i2s";
|
||||
mclk-fs = <256>;
|
||||
//continuous-clock;
|
||||
@@ -356,8 +354,6 @@
|
||||
};
|
||||
|
||||
aml-audio-card,dai-link@2 {
|
||||
status = "disabled";
|
||||
|
||||
format = "i2s";
|
||||
mclk-fs = <256>;
|
||||
//continuous-clock;
|
||||
@@ -398,6 +394,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 {
|
||||
@@ -411,6 +408,7 @@
|
||||
|
||||
aml-audio-card,dai-link@5 {
|
||||
mclk-fs = <128>;
|
||||
suffix-name = "alsaPORT-spdifb";
|
||||
cpu {
|
||||
sound-dai = <&spdifb>;
|
||||
system-clock-frequency = <6144000>;
|
||||
@@ -432,6 +430,17 @@
|
||||
};
|
||||
};
|
||||
|
||||
aml-audio-card,dai-link@7 {
|
||||
mclk-fs = <256>;
|
||||
suffix-name = "alsaPORT-earc";
|
||||
cpu {
|
||||
sound-dai = <&earc>;
|
||||
system-clock-frequency = <12288000>;
|
||||
};
|
||||
codec {
|
||||
sound-dai = <&dummy_codec>;
|
||||
};
|
||||
};
|
||||
};
|
||||
/* Audio Related end */
|
||||
|
||||
@@ -1315,7 +1324,7 @@
|
||||
|
||||
&audiobus {
|
||||
tdma:tdm@0 {
|
||||
compatible = "amlogic, tl1-snd-tdma";
|
||||
compatible = "amlogic, tm2-snd-tdma";
|
||||
#sound-dai-cells = <0>;
|
||||
|
||||
dai-tdm-lane-slot-mask-in = <1 0>;
|
||||
@@ -1354,7 +1363,7 @@
|
||||
};
|
||||
|
||||
tdmb:tdm@1 {
|
||||
compatible = "amlogic, tl1-snd-tdmb";
|
||||
compatible = "amlogic, tm2-snd-tdmb";
|
||||
#sound-dai-cells = <0>;
|
||||
|
||||
dai-tdm-lane-slot-mask-in = <1 0 0 0>;
|
||||
@@ -1369,7 +1378,7 @@
|
||||
};
|
||||
|
||||
tdmc:tdm@2 {
|
||||
compatible = "amlogic, tl1-snd-tdmc";
|
||||
compatible = "amlogic, tm2-snd-tdmc";
|
||||
#sound-dai-cells = <0>;
|
||||
|
||||
dai-tdm-lane-slot-mask-in = <1 0 0 0>;
|
||||
@@ -1386,8 +1395,32 @@
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
pdm:pdm {
|
||||
compatible = "amlogic, tm2-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 = "okay";
|
||||
};
|
||||
|
||||
spdifa:spdif@0 {
|
||||
compatible = "amlogic, tl1-snd-spdif-a";
|
||||
compatible = "amlogic, tm2-snd-spdif-a";
|
||||
#sound-dai-cells = <0>;
|
||||
|
||||
clocks = <&clkc CLKID_MPLL1
|
||||
@@ -1427,7 +1460,7 @@
|
||||
};
|
||||
|
||||
spdifb:spdif@1 {
|
||||
compatible = "amlogic, tl1-snd-spdif-b";
|
||||
compatible = "amlogic, tm2-snd-spdif-b";
|
||||
#sound-dai-cells = <0>;
|
||||
|
||||
clocks = <&clkc CLKID_MPLL0 /*CLKID_HIFI_PLL*/
|
||||
@@ -1439,30 +1472,6 @@
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
pdm:pdm {
|
||||
compatible = "amlogic, tl1-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 = "okay";
|
||||
};
|
||||
|
||||
extn:extn {
|
||||
compatible = "amlogic, snd-extn";
|
||||
#sound-dai-cells = <0>;
|
||||
@@ -1474,6 +1483,38 @@
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
earc:earc {
|
||||
compatible = "amlogic, tm2-snd-earc";
|
||||
#sound-dai-cells = <0>;
|
||||
|
||||
clocks = < &clkaudio CLKID_EARCRX_CMDC
|
||||
&clkaudio CLKID_EARCRX_DMAC
|
||||
&clkc CLKID_FCLK_DIV5
|
||||
&clkc CLKID_FCLK_DIV3
|
||||
&clkaudio CLKID_EARCTX_CMDC
|
||||
&clkaudio CLKID_EARCTX_DMAC
|
||||
&clkc CLKID_FCLK_DIV5
|
||||
&clkc CLKID_FCLK_DIV3
|
||||
>;
|
||||
clock-names =
|
||||
"rx_cmdc",
|
||||
"rx_dmac",
|
||||
"rx_cmdc_srcpll",
|
||||
"rx_dmac_srcpll",
|
||||
"tx_cmdc",
|
||||
"tx_dmac",
|
||||
"tx_cmdc_srcpll",
|
||||
"tx_dmac_srcpll";
|
||||
|
||||
interrupts = <
|
||||
GIC_SPI 88 IRQ_TYPE_EDGE_RISING
|
||||
GIC_SPI 87 IRQ_TYPE_EDGE_RISING
|
||||
>;
|
||||
interrupt-names = "rx_cmdc", "rx_dmac";
|
||||
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
aed:effect {
|
||||
compatible = "amlogic, snd-effect-v2";
|
||||
#sound-dai-cells = <0>;
|
||||
@@ -1496,7 +1537,7 @@
|
||||
/* max 0xff, each bit for one channel */
|
||||
channel_mask = <0xff>;
|
||||
|
||||
status = "okay";
|
||||
status = "disable";
|
||||
};
|
||||
|
||||
asrca: resample@0 {
|
||||
@@ -1517,7 +1558,7 @@
|
||||
*/
|
||||
resample_module = <3>;
|
||||
|
||||
status = "okay";
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
asrcb: resample@1 {
|
||||
@@ -1543,31 +1584,63 @@
|
||||
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 155 IRQ_TYPE_EDGE_RISING
|
||||
GIC_SPI 47 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";
|
||||
};
|
||||
}; /* end of audiobus */
|
||||
|
||||
&pinctrl_periphs {
|
||||
/* audio pin mux */
|
||||
|
||||
tdma_mclk: tdma_mclk {
|
||||
mux { /* GPIOZ_0 */
|
||||
groups = "mclk0_z";
|
||||
mux { /* GPIOH_4 */
|
||||
groups = "mclk0_h";
|
||||
function = "mclk0";
|
||||
};
|
||||
};
|
||||
|
||||
tdmout_a: tdmout_a {
|
||||
mux { /* GPIOH_5, GPIOH_6, GPIOH_7 */
|
||||
mux { /* GPIOH_5, GPIOH_6, GPIOH_7, GPIOH_8*/
|
||||
groups = "tdma_fs_h",
|
||||
"tdma_sclk_h",
|
||||
"tdma_dout0_h";
|
||||
"tdma_dout0_h",
|
||||
"tdma_dout1_h";
|
||||
function = "tdma_out";
|
||||
bias-pull-down;
|
||||
};
|
||||
};
|
||||
|
||||
tdmin_a: tdmin_a {
|
||||
mux { /* GPIOZ_9 */
|
||||
groups = "tdma_din2_z";
|
||||
mux { /* GPIOH_11, GPIOH_12 */
|
||||
groups = "tdma_din0_h",
|
||||
"tdma_din1_h";
|
||||
function = "tdma_in";
|
||||
};
|
||||
};
|
||||
|
||||
@@ -255,6 +255,7 @@
|
||||
reg = <0x0 0xff632000 0x0 0x1c>;
|
||||
tdmout_index = <0>;
|
||||
tdmin_index = <0>;
|
||||
dat1_ch_sel = <1>;
|
||||
};
|
||||
|
||||
aml_dtv_demod {
|
||||
@@ -282,7 +283,7 @@
|
||||
};
|
||||
|
||||
auge_sound {
|
||||
compatible = "amlogic, tl1-sound-card";
|
||||
compatible = "amlogic, tm2-sound-card";
|
||||
aml-audio-card,name = "AML-AUGESOUND";
|
||||
|
||||
avout_mute-gpios = <&gpio GPIODV_3 GPIO_ACTIVE_HIGH>;
|
||||
@@ -320,7 +321,6 @@
|
||||
};
|
||||
|
||||
aml-audio-card,dai-link@1 {
|
||||
status = "disabled";
|
||||
|
||||
format = "i2s";
|
||||
mclk-fs = <256>;
|
||||
@@ -356,7 +356,6 @@
|
||||
};
|
||||
|
||||
aml-audio-card,dai-link@2 {
|
||||
status = "disabled";
|
||||
|
||||
format = "i2s";
|
||||
mclk-fs = <256>;
|
||||
@@ -398,6 +397,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 {
|
||||
@@ -411,6 +411,7 @@
|
||||
|
||||
aml-audio-card,dai-link@5 {
|
||||
mclk-fs = <128>;
|
||||
suffix-name = "alsaPORT-spdifb";
|
||||
cpu {
|
||||
sound-dai = <&spdifb>;
|
||||
system-clock-frequency = <6144000>;
|
||||
@@ -431,9 +432,20 @@
|
||||
sound-dai = <&dummy_codec>;
|
||||
};
|
||||
};
|
||||
aml-audio-card,dai-link@7 {
|
||||
mclk-fs = <256>;
|
||||
suffix-name = "alsaPORT-earc";
|
||||
cpu {
|
||||
sound-dai = <&earc>;
|
||||
system-clock-frequency = <12288000>;
|
||||
};
|
||||
codec {
|
||||
sound-dai = <&dummy_codec>;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
/* Audio Related end */
|
||||
|
||||
dvb {
|
||||
compatible = "amlogic, dvb";
|
||||
status = "okay";
|
||||
@@ -1228,7 +1240,7 @@
|
||||
|
||||
&audiobus {
|
||||
tdma:tdm@0 {
|
||||
compatible = "amlogic, tl1-snd-tdma";
|
||||
compatible = "amlogic, tm2-snd-tdma";
|
||||
#sound-dai-cells = <0>;
|
||||
|
||||
dai-tdm-lane-slot-mask-in = <1 0>;
|
||||
@@ -1243,7 +1255,7 @@
|
||||
"samesource_srcpll", "samesource_clk";
|
||||
|
||||
pinctrl-names = "tdm_pins";
|
||||
pinctrl-0 = <&tdma_mclk &tdmout_a>;
|
||||
pinctrl-0 = </*&tdma_mclk &tdmout_a*/>;
|
||||
|
||||
/*
|
||||
* 0: tdmout_a;
|
||||
@@ -1267,7 +1279,7 @@
|
||||
};
|
||||
|
||||
tdmb:tdm@1 {
|
||||
compatible = "amlogic, tl1-snd-tdmb";
|
||||
compatible = "amlogic, tm2-snd-tdmb";
|
||||
#sound-dai-cells = <0>;
|
||||
|
||||
dai-tdm-lane-slot-mask-in = <1 0 0 0>;
|
||||
@@ -1282,7 +1294,7 @@
|
||||
};
|
||||
|
||||
tdmc:tdm@2 {
|
||||
compatible = "amlogic, tl1-snd-tdmc";
|
||||
compatible = "amlogic, tm2-snd-tdmc";
|
||||
#sound-dai-cells = <0>;
|
||||
|
||||
dai-tdm-lane-slot-mask-in = <1 0 0 0>;
|
||||
@@ -1294,16 +1306,35 @@
|
||||
clock-names = "mclk", "clk_srcpll";
|
||||
|
||||
pinctrl-names = "tdm_pins";
|
||||
pinctrl-0 = <&tdmout_c &tdmin_c>;
|
||||
pinctrl-0 = </*&tdmout_c &tdmin_c*/>;
|
||||
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
pdm:pdm {
|
||||
compatible = "amlogic, tm2-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 = "okay";
|
||||
};
|
||||
spdifa:spdif@0 {
|
||||
compatible = "amlogic, tl1-snd-spdif-a";
|
||||
compatible = "amlogic, tm2-snd-spdif-a";
|
||||
#sound-dai-cells = <0>;
|
||||
|
||||
clocks = <&clkc CLKID_MPLL0
|
||||
clocks = <&clkc CLKID_MPLL1
|
||||
&clkc CLKID_FCLK_DIV4
|
||||
&clkaudio CLKID_AUDIO_GATE_SPDIFIN
|
||||
&clkaudio CLKID_AUDIO_GATE_SPDIFOUT_A
|
||||
@@ -1335,13 +1366,13 @@
|
||||
* 7: "Enable:192K",
|
||||
*/
|
||||
asrc_id = <0>;
|
||||
auto_asrc = <0>;
|
||||
auto_asrc = <3>;
|
||||
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
spdifb:spdif@1 {
|
||||
compatible = "amlogic, tl1-snd-spdif-b";
|
||||
compatible = "amlogic, tm2-snd-spdif-b";
|
||||
#sound-dai-cells = <0>;
|
||||
|
||||
clocks = <&clkc CLKID_MPLL0 /*CLKID_HIFI_PLL*/
|
||||
@@ -1353,34 +1384,11 @@
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
pdm:pdm {
|
||||
compatible = "amlogic, tl1-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 = "okay";
|
||||
};
|
||||
|
||||
extn:extn {
|
||||
compatible = "amlogic, snd-extn";
|
||||
#sound-dai-cells = <0>;
|
||||
|
||||
|
||||
interrupts =
|
||||
<GIC_SPI 158 IRQ_TYPE_EDGE_RISING>;
|
||||
interrupt-names = "irq_frhdmirx";
|
||||
@@ -1388,6 +1396,37 @@
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
earc:earc {
|
||||
compatible = "amlogic, tm2-snd-earc";
|
||||
#sound-dai-cells = <0>;
|
||||
|
||||
clocks = < &clkaudio CLKID_EARCRX_CMDC
|
||||
&clkaudio CLKID_EARCRX_DMAC
|
||||
&clkc CLKID_FCLK_DIV5
|
||||
&clkc CLKID_FCLK_DIV3
|
||||
&clkaudio CLKID_EARCTX_CMDC
|
||||
&clkaudio CLKID_EARCTX_DMAC
|
||||
&clkc CLKID_FCLK_DIV5
|
||||
&clkc CLKID_FCLK_DIV3
|
||||
>;
|
||||
clock-names =
|
||||
"rx_cmdc",
|
||||
"rx_dmac",
|
||||
"rx_cmdc_srcpll",
|
||||
"rx_dmac_srcpll",
|
||||
"tx_cmdc",
|
||||
"tx_dmac",
|
||||
"tx_cmdc_srcpll",
|
||||
"tx_dmac_srcpll";
|
||||
interrupts = <
|
||||
GIC_SPI 88 IRQ_TYPE_EDGE_RISING
|
||||
GIC_SPI 87 IRQ_TYPE_EDGE_RISING
|
||||
>;
|
||||
interrupt-names = "rx_cmdc", "rx_dmac";
|
||||
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
aed:effect {
|
||||
compatible = "amlogic, snd-effect-v2";
|
||||
#sound-dai-cells = <0>;
|
||||
@@ -1397,9 +1436,6 @@
|
||||
&clkaudio CLKID_AUDIO_EQDRC>;
|
||||
clock-names = "gate", "srcpll", "eqdrc";
|
||||
|
||||
eq_enable = <1>;
|
||||
multiband_drc_enable = <0>;
|
||||
fullband_drc_enable = <0>;
|
||||
/*
|
||||
* 0:tdmout_a
|
||||
* 1:tdmout_b
|
||||
@@ -1411,9 +1447,9 @@
|
||||
/* max 0xf, each bit for one lane, usually one lane */
|
||||
lane_mask = <0x1>;
|
||||
/* max 0xff, each bit for one channel */
|
||||
channel_mask = <0x3>;
|
||||
channel_mask = <0xff>;
|
||||
|
||||
status = "okay";
|
||||
status = "disable";
|
||||
};
|
||||
|
||||
asrca: resample@0 {
|
||||
@@ -1434,7 +1470,7 @@
|
||||
*/
|
||||
resample_module = <3>;
|
||||
|
||||
status = "okay";
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
asrcb: resample@1 {
|
||||
@@ -1491,7 +1527,7 @@
|
||||
* 0: in user space
|
||||
* 1: in kernel space
|
||||
*/
|
||||
level = <0>;
|
||||
level = <1>;
|
||||
|
||||
status = "disabled";
|
||||
};
|
||||
@@ -1501,38 +1537,31 @@
|
||||
/* audio pin mux */
|
||||
|
||||
tdma_mclk: tdma_mclk {
|
||||
mux { /* GPIOZ_0 */
|
||||
groups = "mclk0_z";
|
||||
mux { /* GPIOH_4 */
|
||||
groups = "mclk0_h";
|
||||
function = "mclk0";
|
||||
};
|
||||
};
|
||||
|
||||
tdmout_a: tdmout_a {
|
||||
mux { /* GPIOZ_1, GPIOZ_2, GPIOZ_3, GPIOZ_5, GPIOZ_6 */
|
||||
groups = "tdma_sclk_z",
|
||||
"tdma_fs_z",
|
||||
"tdma_dout0_z",
|
||||
"tdma_dout2_z",
|
||||
"tdma_dout3_z";
|
||||
mux { /* GPIOH_5, GPIOH_6, GPIOH_7, GPIOH_8*/
|
||||
groups = "tdma_fs_h",
|
||||
"tdma_sclk_h",
|
||||
"tdma_dout0_h",
|
||||
"tdma_dout1_h";
|
||||
function = "tdma_out";
|
||||
bias-pull-down;
|
||||
};
|
||||
};
|
||||
|
||||
tdmin_a: tdmin_a {
|
||||
mux { /* GPIOZ_9 */
|
||||
groups = "tdma_din2_z";
|
||||
mux { /* GPIOH_11, GPIOH_12 */
|
||||
groups = "tdma_din0_h",
|
||||
"tdma_din1_h";
|
||||
function = "tdma_in";
|
||||
};
|
||||
};
|
||||
#if 0 //verify tdm/i2s in
|
||||
tdmin_a: tdmin_a {
|
||||
mux { /* GPIOZ_7 */
|
||||
groups = "tdma_din0_z";
|
||||
function = "tdma_in";
|
||||
};
|
||||
};
|
||||
#endif
|
||||
|
||||
tdmout_c: tdmout_c {
|
||||
mux { /* GPIODV_7, GPIODV_8, GPIODV_9 */
|
||||
groups = "tdmc_sclk",
|
||||
|
||||
@@ -284,7 +284,7 @@
|
||||
};
|
||||
|
||||
auge_sound {
|
||||
compatible = "amlogic, tl1-sound-card";
|
||||
compatible = "amlogic, tm2-sound-card";
|
||||
aml-audio-card,name = "AML-AUGESOUND";
|
||||
|
||||
avout_mute-gpios = <&gpio GPIODV_3 GPIO_ACTIVE_HIGH>;
|
||||
@@ -317,12 +317,11 @@
|
||||
};
|
||||
tdmacodec: codec {
|
||||
//sound-dai = <&dummy_codec>;
|
||||
sound-dai = <&ad82584f &tl1_codec>;
|
||||
sound-dai = </*&ad82584f*/ &tl1_codec>;
|
||||
};
|
||||
};
|
||||
|
||||
aml-audio-card,dai-link@1 {
|
||||
status = "disabled";
|
||||
|
||||
format = "i2s";
|
||||
mclk-fs = <256>;
|
||||
@@ -358,7 +357,6 @@
|
||||
};
|
||||
|
||||
aml-audio-card,dai-link@2 {
|
||||
status = "disabled";
|
||||
|
||||
format = "i2s";
|
||||
mclk-fs = <256>;
|
||||
@@ -400,6 +398,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 {
|
||||
@@ -413,6 +412,7 @@
|
||||
|
||||
aml-audio-card,dai-link@5 {
|
||||
mclk-fs = <128>;
|
||||
suffix-name = "alsaPORT-spdifb";
|
||||
cpu {
|
||||
sound-dai = <&spdifb>;
|
||||
system-clock-frequency = <6144000>;
|
||||
@@ -433,8 +433,19 @@
|
||||
sound-dai = <&dummy_codec>;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
aml-audio-card,dai-link@7 {
|
||||
mclk-fs = <256>;
|
||||
suffix-name = "alsaPORT-earc";
|
||||
cpu {
|
||||
sound-dai = <&earc>;
|
||||
system-clock-frequency = <12288000>;
|
||||
};
|
||||
codec {
|
||||
sound-dai = <&dummy_codec>;
|
||||
};
|
||||
};
|
||||
};
|
||||
/* Audio Related end */
|
||||
dvb {
|
||||
compatible = "amlogic, dvb";
|
||||
@@ -1319,7 +1330,7 @@
|
||||
|
||||
&audiobus {
|
||||
tdma:tdm@0 {
|
||||
compatible = "amlogic, tl1-snd-tdma";
|
||||
compatible = "amlogic, tm2-snd-tdma";
|
||||
#sound-dai-cells = <0>;
|
||||
|
||||
dai-tdm-lane-slot-mask-in = <1 0>;
|
||||
@@ -1358,7 +1369,7 @@
|
||||
};
|
||||
|
||||
tdmb:tdm@1 {
|
||||
compatible = "amlogic, tl1-snd-tdmb";
|
||||
compatible = "amlogic, tm2-snd-tdmb";
|
||||
#sound-dai-cells = <0>;
|
||||
|
||||
dai-tdm-lane-slot-mask-in = <1 0 0 0>;
|
||||
@@ -1373,7 +1384,7 @@
|
||||
};
|
||||
|
||||
tdmc:tdm@2 {
|
||||
compatible = "amlogic, tl1-snd-tdmc";
|
||||
compatible = "amlogic, tm2-snd-tdmc";
|
||||
#sound-dai-cells = <0>;
|
||||
|
||||
dai-tdm-lane-slot-mask-in = <1 0 0 0>;
|
||||
@@ -1390,11 +1401,30 @@
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
pdm:pdm {
|
||||
compatible = "amlogic, tm2-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 = "okay";
|
||||
};
|
||||
spdifa:spdif@0 {
|
||||
compatible = "amlogic, tl1-snd-spdif-a";
|
||||
compatible = "amlogic, tm2-snd-spdif-a";
|
||||
#sound-dai-cells = <0>;
|
||||
|
||||
clocks = <&clkc CLKID_MPLL0
|
||||
clocks = <&clkc CLKID_MPLL1
|
||||
&clkc CLKID_FCLK_DIV4
|
||||
&clkaudio CLKID_AUDIO_GATE_SPDIFIN
|
||||
&clkaudio CLKID_AUDIO_GATE_SPDIFOUT_A
|
||||
@@ -1410,7 +1440,7 @@
|
||||
pinctrl-names = "spdif_pins",
|
||||
"spdif_pins_mute";
|
||||
|
||||
pinctrl-0 = <&spdifout_a &spdifin_a>;
|
||||
pinctrl-0 = <&spdifout_a>;
|
||||
pinctrl-1 = <&spdifout_a_mute>;
|
||||
|
||||
/*
|
||||
@@ -1426,13 +1456,13 @@
|
||||
* 7: "Enable:192K",
|
||||
*/
|
||||
asrc_id = <0>;
|
||||
auto_asrc = <0>;
|
||||
auto_asrc = <3>;
|
||||
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
spdifb:spdif@1 {
|
||||
compatible = "amlogic, tl1-snd-spdif-b";
|
||||
compatible = "amlogic, tm2-snd-spdif-b";
|
||||
#sound-dai-cells = <0>;
|
||||
|
||||
clocks = <&clkc CLKID_MPLL0 /*CLKID_HIFI_PLL*/
|
||||
@@ -1444,34 +1474,11 @@
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
pdm:pdm {
|
||||
compatible = "amlogic, tl1-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 = "okay";
|
||||
};
|
||||
|
||||
extn:extn {
|
||||
compatible = "amlogic, snd-extn";
|
||||
#sound-dai-cells = <0>;
|
||||
|
||||
|
||||
interrupts =
|
||||
<GIC_SPI 158 IRQ_TYPE_EDGE_RISING>;
|
||||
interrupt-names = "irq_frhdmirx";
|
||||
@@ -1479,6 +1486,37 @@
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
earc:earc {
|
||||
compatible = "amlogic, tm2-snd-earc";
|
||||
#sound-dai-cells = <0>;
|
||||
|
||||
clocks = < &clkaudio CLKID_EARCRX_CMDC
|
||||
&clkaudio CLKID_EARCRX_DMAC
|
||||
&clkc CLKID_FCLK_DIV5
|
||||
&clkc CLKID_FCLK_DIV3
|
||||
&clkaudio CLKID_EARCTX_CMDC
|
||||
&clkaudio CLKID_EARCTX_DMAC
|
||||
&clkc CLKID_FCLK_DIV5
|
||||
&clkc CLKID_FCLK_DIV3
|
||||
>;
|
||||
clock-names =
|
||||
"rx_cmdc",
|
||||
"rx_dmac",
|
||||
"rx_cmdc_srcpll",
|
||||
"rx_dmac_srcpll",
|
||||
"tx_cmdc",
|
||||
"tx_dmac",
|
||||
"tx_cmdc_srcpll",
|
||||
"tx_dmac_srcpll";
|
||||
interrupts = <
|
||||
GIC_SPI 88 IRQ_TYPE_EDGE_RISING
|
||||
GIC_SPI 87 IRQ_TYPE_EDGE_RISING
|
||||
>;
|
||||
interrupt-names = "rx_cmdc", "rx_dmac";
|
||||
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
aed:effect {
|
||||
compatible = "amlogic, snd-effect-v2";
|
||||
#sound-dai-cells = <0>;
|
||||
@@ -1488,9 +1526,6 @@
|
||||
&clkaudio CLKID_AUDIO_EQDRC>;
|
||||
clock-names = "gate", "srcpll", "eqdrc";
|
||||
|
||||
eq_enable = <1>;
|
||||
multiband_drc_enable = <0>;
|
||||
fullband_drc_enable = <0>;
|
||||
/*
|
||||
* 0:tdmout_a
|
||||
* 1:tdmout_b
|
||||
@@ -1502,9 +1537,9 @@
|
||||
/* max 0xf, each bit for one lane, usually one lane */
|
||||
lane_mask = <0x1>;
|
||||
/* max 0xff, each bit for one channel */
|
||||
channel_mask = <0x3>;
|
||||
channel_mask = <0xff>;
|
||||
|
||||
status = "okay";
|
||||
status = "disable";
|
||||
};
|
||||
|
||||
asrca: resample@0 {
|
||||
@@ -1525,7 +1560,7 @@
|
||||
*/
|
||||
resample_module = <3>;
|
||||
|
||||
status = "okay";
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
asrcb: resample@1 {
|
||||
@@ -1582,7 +1617,7 @@
|
||||
* 0: in user space
|
||||
* 1: in kernel space
|
||||
*/
|
||||
level = <0>;
|
||||
level = <1>;
|
||||
|
||||
status = "disabled";
|
||||
};
|
||||
@@ -1611,19 +1646,13 @@
|
||||
};
|
||||
|
||||
tdmin_a: tdmin_a {
|
||||
mux { /* GPIOZ_9 */
|
||||
groups = "tdma_din2_z";
|
||||
mux { /* GPIOH_11, GPIOH_12 */
|
||||
groups = "tdma_din0_h",
|
||||
"tdma_din1_h";
|
||||
function = "tdma_in";
|
||||
};
|
||||
};
|
||||
#if 0 //verify tdm/i2s in
|
||||
tdmin_a: tdmin_a {
|
||||
mux { /* GPIOZ_7 */
|
||||
groups = "tdma_din0_z";
|
||||
function = "tdma_in";
|
||||
};
|
||||
};
|
||||
#endif
|
||||
|
||||
tdmout_c: tdmout_c {
|
||||
mux { /* GPIODV_7, GPIODV_8, GPIODV_9 */
|
||||
groups = "tdmc_sclk",
|
||||
|
||||
@@ -256,6 +256,7 @@
|
||||
reg = <0x0 0xff632000 0x0 0x1c>;
|
||||
tdmout_index = <0>;
|
||||
tdmin_index = <0>;
|
||||
dat1_ch_sel = <1>;
|
||||
};
|
||||
|
||||
aml_dtv_demod {
|
||||
@@ -283,7 +284,7 @@
|
||||
};
|
||||
|
||||
auge_sound {
|
||||
compatible = "amlogic, tl1-sound-card";
|
||||
compatible = "amlogic, tm2-sound-card";
|
||||
aml-audio-card,name = "AML-AUGESOUND";
|
||||
|
||||
avout_mute-gpios = <&gpio GPIODV_3 GPIO_ACTIVE_HIGH>;
|
||||
@@ -321,7 +322,6 @@
|
||||
};
|
||||
|
||||
aml-audio-card,dai-link@1 {
|
||||
status = "disabled";
|
||||
|
||||
format = "i2s";
|
||||
mclk-fs = <256>;
|
||||
@@ -357,7 +357,6 @@
|
||||
};
|
||||
|
||||
aml-audio-card,dai-link@2 {
|
||||
status = "disabled";
|
||||
|
||||
format = "i2s";
|
||||
mclk-fs = <256>;
|
||||
@@ -399,6 +398,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 {
|
||||
@@ -412,6 +412,7 @@
|
||||
|
||||
aml-audio-card,dai-link@5 {
|
||||
mclk-fs = <128>;
|
||||
suffix-name = "alsaPORT-spdifb";
|
||||
cpu {
|
||||
sound-dai = <&spdifb>;
|
||||
system-clock-frequency = <6144000>;
|
||||
@@ -432,6 +433,17 @@
|
||||
sound-dai = <&dummy_codec>;
|
||||
};
|
||||
};
|
||||
aml-audio-card,dai-link@7 {
|
||||
mclk-fs = <256>;
|
||||
suffix-name = "alsaPORT-earc";
|
||||
cpu {
|
||||
sound-dai = <&earc>;
|
||||
system-clock-frequency = <12288000>;
|
||||
};
|
||||
codec {
|
||||
sound-dai = <&dummy_codec>;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
/* Audio Related end */
|
||||
@@ -1229,7 +1241,7 @@
|
||||
|
||||
&audiobus {
|
||||
tdma:tdm@0 {
|
||||
compatible = "amlogic, tl1-snd-tdma";
|
||||
compatible = "amlogic, tm2-snd-tdma";
|
||||
#sound-dai-cells = <0>;
|
||||
|
||||
dai-tdm-lane-slot-mask-in = <1 0>;
|
||||
@@ -1244,7 +1256,7 @@
|
||||
"samesource_srcpll", "samesource_clk";
|
||||
|
||||
pinctrl-names = "tdm_pins";
|
||||
pinctrl-0 = <&tdma_mclk &tdmout_a>;
|
||||
pinctrl-0 = </*&tdma_mclk &tdmout_a*/>;
|
||||
|
||||
/*
|
||||
* 0: tdmout_a;
|
||||
@@ -1268,7 +1280,7 @@
|
||||
};
|
||||
|
||||
tdmb:tdm@1 {
|
||||
compatible = "amlogic, tl1-snd-tdmb";
|
||||
compatible = "amlogic, tm2-snd-tdmb";
|
||||
#sound-dai-cells = <0>;
|
||||
|
||||
dai-tdm-lane-slot-mask-in = <1 0 0 0>;
|
||||
@@ -1283,7 +1295,7 @@
|
||||
};
|
||||
|
||||
tdmc:tdm@2 {
|
||||
compatible = "amlogic, tl1-snd-tdmc";
|
||||
compatible = "amlogic, tm2-snd-tdmc";
|
||||
#sound-dai-cells = <0>;
|
||||
|
||||
dai-tdm-lane-slot-mask-in = <1 0 0 0>;
|
||||
@@ -1295,16 +1307,35 @@
|
||||
clock-names = "mclk", "clk_srcpll";
|
||||
|
||||
pinctrl-names = "tdm_pins";
|
||||
pinctrl-0 = <&tdmout_c &tdmin_c>;
|
||||
pinctrl-0 = </*&tdmout_c &tdmin_c*/>;
|
||||
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
pdm:pdm {
|
||||
compatible = "amlogic, tm2-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 = "okay";
|
||||
};
|
||||
spdifa:spdif@0 {
|
||||
compatible = "amlogic, tl1-snd-spdif-a";
|
||||
compatible = "amlogic, tm2-snd-spdif-a";
|
||||
#sound-dai-cells = <0>;
|
||||
|
||||
clocks = <&clkc CLKID_MPLL0
|
||||
clocks = <&clkc CLKID_MPLL1
|
||||
&clkc CLKID_FCLK_DIV4
|
||||
&clkaudio CLKID_AUDIO_GATE_SPDIFIN
|
||||
&clkaudio CLKID_AUDIO_GATE_SPDIFOUT_A
|
||||
@@ -1336,13 +1367,13 @@
|
||||
* 7: "Enable:192K",
|
||||
*/
|
||||
asrc_id = <0>;
|
||||
auto_asrc = <0>;
|
||||
auto_asrc = <3>;
|
||||
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
spdifb:spdif@1 {
|
||||
compatible = "amlogic, tl1-snd-spdif-b";
|
||||
compatible = "amlogic, tm2-snd-spdif-b";
|
||||
#sound-dai-cells = <0>;
|
||||
|
||||
clocks = <&clkc CLKID_MPLL0 /*CLKID_HIFI_PLL*/
|
||||
@@ -1354,34 +1385,11 @@
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
pdm:pdm {
|
||||
compatible = "amlogic, tl1-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 = "okay";
|
||||
};
|
||||
|
||||
extn:extn {
|
||||
compatible = "amlogic, snd-extn";
|
||||
#sound-dai-cells = <0>;
|
||||
|
||||
|
||||
interrupts =
|
||||
<GIC_SPI 158 IRQ_TYPE_EDGE_RISING>;
|
||||
interrupt-names = "irq_frhdmirx";
|
||||
@@ -1389,6 +1397,37 @@
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
earc:earc {
|
||||
compatible = "amlogic, tm2-snd-earc";
|
||||
#sound-dai-cells = <0>;
|
||||
|
||||
clocks = < &clkaudio CLKID_EARCRX_CMDC
|
||||
&clkaudio CLKID_EARCRX_DMAC
|
||||
&clkc CLKID_FCLK_DIV5
|
||||
&clkc CLKID_FCLK_DIV3
|
||||
&clkaudio CLKID_EARCTX_CMDC
|
||||
&clkaudio CLKID_EARCTX_DMAC
|
||||
&clkc CLKID_FCLK_DIV5
|
||||
&clkc CLKID_FCLK_DIV3
|
||||
>;
|
||||
clock-names =
|
||||
"rx_cmdc",
|
||||
"rx_dmac",
|
||||
"rx_cmdc_srcpll",
|
||||
"rx_dmac_srcpll",
|
||||
"tx_cmdc",
|
||||
"tx_dmac",
|
||||
"tx_cmdc_srcpll",
|
||||
"tx_dmac_srcpll";
|
||||
interrupts = <
|
||||
GIC_SPI 88 IRQ_TYPE_EDGE_RISING
|
||||
GIC_SPI 87 IRQ_TYPE_EDGE_RISING
|
||||
>;
|
||||
interrupt-names = "rx_cmdc", "rx_dmac";
|
||||
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
aed:effect {
|
||||
compatible = "amlogic, snd-effect-v2";
|
||||
#sound-dai-cells = <0>;
|
||||
@@ -1398,9 +1437,6 @@
|
||||
&clkaudio CLKID_AUDIO_EQDRC>;
|
||||
clock-names = "gate", "srcpll", "eqdrc";
|
||||
|
||||
eq_enable = <1>;
|
||||
multiband_drc_enable = <0>;
|
||||
fullband_drc_enable = <0>;
|
||||
/*
|
||||
* 0:tdmout_a
|
||||
* 1:tdmout_b
|
||||
@@ -1412,9 +1448,9 @@
|
||||
/* max 0xf, each bit for one lane, usually one lane */
|
||||
lane_mask = <0x1>;
|
||||
/* max 0xff, each bit for one channel */
|
||||
channel_mask = <0x3>;
|
||||
channel_mask = <0xff>;
|
||||
|
||||
status = "okay";
|
||||
status = "disable";
|
||||
};
|
||||
|
||||
asrca: resample@0 {
|
||||
@@ -1435,7 +1471,7 @@
|
||||
*/
|
||||
resample_module = <3>;
|
||||
|
||||
status = "okay";
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
asrcb: resample@1 {
|
||||
@@ -1492,7 +1528,7 @@
|
||||
* 0: in user space
|
||||
* 1: in kernel space
|
||||
*/
|
||||
level = <0>;
|
||||
level = <1>;
|
||||
|
||||
status = "disabled";
|
||||
};
|
||||
@@ -1502,38 +1538,31 @@
|
||||
/* audio pin mux */
|
||||
|
||||
tdma_mclk: tdma_mclk {
|
||||
mux { /* GPIOZ_0 */
|
||||
groups = "mclk0_z";
|
||||
mux { /* GPIOH_4 */
|
||||
groups = "mclk0_h";
|
||||
function = "mclk0";
|
||||
};
|
||||
};
|
||||
|
||||
tdmout_a: tdmout_a {
|
||||
mux { /* GPIOZ_1, GPIOZ_2, GPIOZ_3, GPIOZ_5, GPIOZ_6 */
|
||||
groups = "tdma_sclk_z",
|
||||
"tdma_fs_z",
|
||||
"tdma_dout0_z",
|
||||
"tdma_dout2_z",
|
||||
"tdma_dout3_z";
|
||||
mux { /* GPIOH_5, GPIOH_6, GPIOH_7, GPIOH_8*/
|
||||
groups = "tdma_fs_h",
|
||||
"tdma_sclk_h",
|
||||
"tdma_dout0_h",
|
||||
"tdma_dout1_h";
|
||||
function = "tdma_out";
|
||||
bias-pull-down;
|
||||
};
|
||||
};
|
||||
|
||||
tdmin_a: tdmin_a {
|
||||
mux { /* GPIOZ_9 */
|
||||
groups = "tdma_din2_z";
|
||||
mux { /* GPIOH_11, GPIOH_12 */
|
||||
groups = "tdma_din0_h",
|
||||
"tdma_din1_h";
|
||||
function = "tdma_in";
|
||||
};
|
||||
};
|
||||
#if 0 //verify tdm/i2s in
|
||||
tdmin_a: tdmin_a {
|
||||
mux { /* GPIOZ_7 */
|
||||
groups = "tdma_din0_z";
|
||||
function = "tdma_in";
|
||||
};
|
||||
};
|
||||
#endif
|
||||
|
||||
tdmout_c: tdmout_c {
|
||||
mux { /* GPIODV_7, GPIODV_8, GPIODV_9 */
|
||||
groups = "tdmc_sclk",
|
||||
|
||||
97
include/dt-bindings/clock/amlogic,tm2-audio-clk.h
Normal file
97
include/dt-bindings/clock/amlogic,tm2-audio-clk.h
Normal file
@@ -0,0 +1,97 @@
|
||||
/*
|
||||
* include/dt-bindings/clock/amlogic,tm2-audio-clk.h
|
||||
*
|
||||
* Copyright (C) 2018 Amlogic, Inc. All rights reserved.
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation; either version 2 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful, but WITHOUT
|
||||
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
|
||||
* more details.
|
||||
*
|
||||
*/
|
||||
|
||||
#ifndef __TM2_AUDIO_CLK_H__
|
||||
#define __TM2_AUDIO_CLK_H__
|
||||
|
||||
/*
|
||||
* CLKID audio index values
|
||||
*/
|
||||
|
||||
#define CLKID_AUDIO_GATE_DDR_ARB 0
|
||||
#define CLKID_AUDIO_GATE_PDM 1
|
||||
#define CLKID_AUDIO_GATE_TDMINA 2
|
||||
#define CLKID_AUDIO_GATE_TDMINB 3
|
||||
#define CLKID_AUDIO_GATE_TDMINC 4
|
||||
#define CLKID_AUDIO_GATE_TDMINLB 5
|
||||
#define CLKID_AUDIO_GATE_TDMOUTA 6
|
||||
#define CLKID_AUDIO_GATE_TDMOUTB 7
|
||||
#define CLKID_AUDIO_GATE_TDMOUTC 8
|
||||
#define CLKID_AUDIO_GATE_FRDDRA 9
|
||||
#define CLKID_AUDIO_GATE_FRDDRB 10
|
||||
#define CLKID_AUDIO_GATE_FRDDRC 11
|
||||
#define CLKID_AUDIO_GATE_TODDRA 12
|
||||
#define CLKID_AUDIO_GATE_TODDRB 13
|
||||
#define CLKID_AUDIO_GATE_TODDRC 14
|
||||
#define CLKID_AUDIO_GATE_LOOPBACKA 15
|
||||
#define CLKID_AUDIO_GATE_SPDIFIN 16
|
||||
#define CLKID_AUDIO_GATE_SPDIFOUT_A 17
|
||||
#define CLKID_AUDIO_GATE_RESAMPLEA 18
|
||||
#define CLKID_AUDIO_GATE_RESERVED0 19
|
||||
#define CLKID_AUDIO_GATE_RESERVED1 20
|
||||
#define CLKID_AUDIO_GATE_SPDIFOUT_B 21
|
||||
#define CLKID_AUDIO_GATE_EQDRC 22
|
||||
#define CLKID_AUDIO_GATE_RESERVED2 23
|
||||
#define CLKID_AUDIO_GATE_RESERVED3 24
|
||||
#define CLKID_AUDIO_GATE_RESERVED4 25
|
||||
#define CLKID_AUDIO_GATE_RESAMPLEB 26
|
||||
#define CLKID_AUDIO_GATE_TOVAD 27
|
||||
#define CLKID_AUDIO_GATE_AUDIOLOCKER 28
|
||||
#define CLKID_AUDIO_GATE_SPDIFIN_LB 29
|
||||
#define CLKID_AUDIO_GATE_FRATV 30
|
||||
#define CLKID_AUDIO_GATE_FRHDMIRX 31
|
||||
|
||||
/* Gate En1 */
|
||||
#define CLKID_AUDIO_GATE_FRDDRD 32
|
||||
#define CLKID_AUDIO_GATE_TODDRD 33
|
||||
#define CLKID_AUDIO_GATE_LOOPBACKB 34
|
||||
#define CLKID_AUDIO_GATE_FRDDRE 35
|
||||
#define CLKID_AUDIO_GATE_TODDRE 36
|
||||
#define CLKID_AUDIO_GATE_EARCTX 37
|
||||
#define CLKID_AUDIO_GATE_EARCRX 38
|
||||
#define CLKID_AUDIO_GATE_RESAMPLEB_OLD 39
|
||||
#define CLKID_AUDIO_GATE_LOCKER 40
|
||||
|
||||
#define CLKID_AUDIO_GATE_MAX 41
|
||||
|
||||
#define MCLK_BASE CLKID_AUDIO_GATE_MAX
|
||||
#define CLKID_AUDIO_MCLK_A (MCLK_BASE + 0)
|
||||
#define CLKID_AUDIO_MCLK_B (MCLK_BASE + 1)
|
||||
#define CLKID_AUDIO_MCLK_C (MCLK_BASE + 2)
|
||||
#define CLKID_AUDIO_MCLK_D (MCLK_BASE + 3)
|
||||
#define CLKID_AUDIO_MCLK_E (MCLK_BASE + 4)
|
||||
#define CLKID_AUDIO_MCLK_F (MCLK_BASE + 5)
|
||||
|
||||
#define CLKID_AUDIO_SPDIFIN (MCLK_BASE + 6)
|
||||
#define CLKID_AUDIO_SPDIFOUT_A (MCLK_BASE + 7)
|
||||
#define CLKID_AUDIO_RESAMPLE_A (MCLK_BASE + 8)
|
||||
#define CLKID_AUDIO_LOCKER_OUT (MCLK_BASE + 9)
|
||||
#define CLKID_AUDIO_LOCKER_IN (MCLK_BASE + 10)
|
||||
#define CLKID_AUDIO_PDMIN0 (MCLK_BASE + 11)
|
||||
#define CLKID_AUDIO_PDMIN1 (MCLK_BASE + 12)
|
||||
#define CLKID_AUDIO_SPDIFOUT_B (MCLK_BASE + 13)
|
||||
#define CLKID_AUDIO_RESAMPLE_B (MCLK_BASE + 14)
|
||||
#define CLKID_AUDIO_SPDIFIN_LB (MCLK_BASE + 15)
|
||||
#define CLKID_AUDIO_EQDRC (MCLK_BASE + 16)
|
||||
#define CLKID_AUDIO_VAD (MCLK_BASE + 17)
|
||||
#define CLKID_EARCTX_CMDC (MCLK_BASE + 18)
|
||||
#define CLKID_EARCTX_DMAC (MCLK_BASE + 19)
|
||||
#define CLKID_EARCRX_CMDC (MCLK_BASE + 20)
|
||||
#define CLKID_EARCRX_DMAC (MCLK_BASE + 21)
|
||||
|
||||
#define NUM_AUDIO_CLKS (MCLK_BASE + 22)
|
||||
#endif /* __TM2_AUDIO_CLK_H__ */
|
||||
@@ -5,6 +5,7 @@ obj-$(CONFIG_AMLOGIC_SND_SOC_AUGE) += audio_controller.o \
|
||||
g12a,clocks.o \
|
||||
tl1,clocks.o \
|
||||
sm1,clocks.o \
|
||||
tm2,clocks.o \
|
||||
card.o \
|
||||
card_utils.o \
|
||||
tdm.o \
|
||||
|
||||
@@ -40,6 +40,10 @@ static const struct of_device_id audio_clocks_of_match[] = {
|
||||
.compatible = "amlogic, sm1-audio-clocks",
|
||||
.data = &sm1_audio_clks_init,
|
||||
},
|
||||
{
|
||||
.compatible = "amlogic, tm2-audio-clocks",
|
||||
.data = &tm2_audio_clks_init,
|
||||
},
|
||||
{},
|
||||
};
|
||||
MODULE_DEVICE_TABLE(of, audio_clocks_of_match);
|
||||
|
||||
@@ -94,6 +94,7 @@ extern struct audio_clk_init axg_audio_clks_init;
|
||||
extern struct audio_clk_init g12a_audio_clks_init;
|
||||
extern struct audio_clk_init tl1_audio_clks_init;
|
||||
extern struct audio_clk_init sm1_audio_clks_init;
|
||||
extern struct audio_clk_init tm2_audio_clks_init;
|
||||
|
||||
struct clk_chipinfo {
|
||||
/* force clock source as oscin(24M) */
|
||||
|
||||
@@ -104,6 +104,7 @@ static int register_audio_controller(struct platform_device *pdev,
|
||||
|
||||
/* gate on all clks on bringup stage, need gate separately */
|
||||
aml_audiobus_write(actrl, EE_AUDIO_CLK_GATE_EN0, 0xffffffff);
|
||||
aml_audiobus_write(actrl, EE_AUDIO_CLK_GATE_EN1, 0xffffffff);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
@@ -871,6 +871,10 @@ static const struct of_device_id auge_of_match[] = {
|
||||
.compatible = "amlogic, tl1-sound-card",
|
||||
.data = &tl1_chipset_info,
|
||||
},
|
||||
{
|
||||
.compatible = "amlogic, tm2-sound-card",
|
||||
.data = &tl1_chipset_info,
|
||||
},
|
||||
{},
|
||||
};
|
||||
MODULE_DEVICE_TABLE(of, auge_of_match);
|
||||
@@ -913,9 +917,8 @@ static int aml_card_probe(struct platform_device *pdev)
|
||||
|
||||
ret = aml_card_parse_of(np, priv);
|
||||
if (ret < 0) {
|
||||
if (ret != -EPROBE_DEFER)
|
||||
dev_err(dev, "%s, parse error %d\n",
|
||||
__func__, ret);
|
||||
dev_err(dev, "%s, parse error %d\n",
|
||||
__func__, ret);
|
||||
goto err;
|
||||
}
|
||||
|
||||
|
||||
@@ -406,7 +406,7 @@ void aml_toddr_set_fifos(struct toddr *to, unsigned int thresh)
|
||||
|
||||
if (to->chipinfo && to->chipinfo->ugt) {
|
||||
reg = calc_toddr_address(EE_AUDIO_TODDR_A_CTRL0, reg_base);
|
||||
aml_audiobus_update_bits(actrl, reg, 0x0 << 0, 0x1 << 0);
|
||||
aml_audiobus_update_bits(actrl, reg, 0x1, 0x1);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1263,8 +1263,8 @@ void aml_frddr_set_fifos(struct frddr *fr,
|
||||
(depth - 1)<<24 | (thresh - 1)<<16 | 2<<8);
|
||||
|
||||
if (fr->chipinfo && fr->chipinfo->ugt) {
|
||||
reg = calc_toddr_address(EE_AUDIO_FRDDR_A_CTRL0, reg_base);
|
||||
aml_audiobus_update_bits(actrl, reg, 0x0 << 0, 0x1 << 0);
|
||||
reg = calc_frddr_address(EE_AUDIO_FRDDR_A_CTRL0, reg_base);
|
||||
aml_audiobus_update_bits(actrl, reg, 0x1, 0x1);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -625,6 +625,9 @@ static const struct of_device_id earc_device_id[] = {
|
||||
{
|
||||
.compatible = "amlogic, sm1-snd-earc",
|
||||
},
|
||||
{
|
||||
.compatible = "amlogic, tm2-snd-earc",
|
||||
},
|
||||
{},
|
||||
};
|
||||
|
||||
@@ -664,7 +667,7 @@ static int earc_platform_probe(struct platform_device *pdev)
|
||||
if (IS_ERR(p_earc->clk_rx_gate)) {
|
||||
dev_err(&pdev->dev,
|
||||
"Can't get earc gate\n");
|
||||
return PTR_ERR(p_earc->clk_rx_gate);
|
||||
/*return PTR_ERR(p_earc->clk_rx_gate);*/
|
||||
}
|
||||
/* RX */
|
||||
p_earc->clk_rx_cmdc = devm_clk_get(&pdev->dev, "rx_cmdc");
|
||||
|
||||
@@ -31,6 +31,12 @@ static struct pdm_chipinfo sm1_pdm_chipinfo = {
|
||||
.train = true,
|
||||
};
|
||||
|
||||
static struct pdm_chipinfo tm2_pdm_chipinfo = {
|
||||
.mute_fn = true,
|
||||
.truncate_data = false,
|
||||
.train = true,
|
||||
};
|
||||
|
||||
static const struct of_device_id aml_pdm_device_id[] = {
|
||||
{
|
||||
.compatible = "amlogic, axg-snd-pdm",
|
||||
@@ -47,6 +53,10 @@ static const struct of_device_id aml_pdm_device_id[] = {
|
||||
.compatible = "amlogic, sm1-snd-pdm",
|
||||
.data = &sm1_pdm_chipinfo,
|
||||
},
|
||||
{
|
||||
.compatible = "amlogic, tm2-snd-pdm",
|
||||
.data = &tm2_pdm_chipinfo,
|
||||
},
|
||||
|
||||
{}
|
||||
};
|
||||
|
||||
@@ -92,6 +92,20 @@ struct spdif_chipinfo sm1_spdif_b_chipinfo = {
|
||||
.eq_drc_en = true,
|
||||
};
|
||||
|
||||
struct spdif_chipinfo tm2_spdif_a_chipinfo = {
|
||||
.id = SPDIF_A,
|
||||
.chnum_en = true,
|
||||
.hold_start = true,
|
||||
.eq_drc_en = true,
|
||||
};
|
||||
|
||||
struct spdif_chipinfo tm2_spdif_b_chipinfo = {
|
||||
.id = SPDIF_B,
|
||||
.chnum_en = true,
|
||||
.hold_start = true,
|
||||
.eq_drc_en = true,
|
||||
};
|
||||
|
||||
static const struct of_device_id aml_spdif_device_id[] = {
|
||||
{
|
||||
.compatible = "amlogic, axg-snd-spdif",
|
||||
@@ -121,6 +135,14 @@ static const struct of_device_id aml_spdif_device_id[] = {
|
||||
.compatible = "amlogic, sm1-snd-spdif-b",
|
||||
.data = &sm1_spdif_b_chipinfo,
|
||||
},
|
||||
{
|
||||
.compatible = "amlogic, tm2-snd-spdif-a",
|
||||
.data = &tm2_spdif_a_chipinfo,
|
||||
},
|
||||
{
|
||||
.compatible = "amlogic, tm2-snd-spdif-b",
|
||||
.data = &tm2_spdif_b_chipinfo,
|
||||
},
|
||||
{},
|
||||
};
|
||||
MODULE_DEVICE_TABLE(of, aml_spdif_device_id);
|
||||
|
||||
@@ -132,6 +132,30 @@ struct tdm_chipinfo sm1_tdmc_chipinfo = {
|
||||
.lane_cnt = LANE_MAX1,
|
||||
};
|
||||
|
||||
struct tdm_chipinfo tm2_tdma_chipinfo = {
|
||||
.id = TDM_A,
|
||||
.sclk_ws_inv = true,
|
||||
.oe_fn = true,
|
||||
.same_src_fn = true,
|
||||
.lane_cnt = LANE_MAX0,
|
||||
};
|
||||
|
||||
struct tdm_chipinfo tm2_tdmb_chipinfo = {
|
||||
.id = TDM_B,
|
||||
.sclk_ws_inv = true,
|
||||
.oe_fn = true,
|
||||
.same_src_fn = true,
|
||||
.lane_cnt = LANE_MAX3,
|
||||
};
|
||||
|
||||
struct tdm_chipinfo tm2_tdmc_chipinfo = {
|
||||
.id = TDM_C,
|
||||
.sclk_ws_inv = true,
|
||||
.oe_fn = true,
|
||||
.same_src_fn = true,
|
||||
.lane_cnt = LANE_MAX1,
|
||||
};
|
||||
|
||||
static const struct of_device_id aml_tdm_device_id[] = {
|
||||
{
|
||||
.compatible = "amlogic, axg-snd-tdma",
|
||||
@@ -181,6 +205,18 @@ static const struct of_device_id aml_tdm_device_id[] = {
|
||||
.compatible = "amlogic, sm1-snd-tdmc",
|
||||
.data = &sm1_tdmc_chipinfo,
|
||||
},
|
||||
{
|
||||
.compatible = "amlogic, tm2-snd-tdma",
|
||||
.data = &tm2_tdma_chipinfo,
|
||||
},
|
||||
{
|
||||
.compatible = "amlogic, tm2-snd-tdmb",
|
||||
.data = &tm2_tdmb_chipinfo,
|
||||
},
|
||||
{
|
||||
.compatible = "amlogic, tm2-snd-tdmc",
|
||||
.data = &tm2_tdmc_chipinfo,
|
||||
},
|
||||
{},
|
||||
};
|
||||
MODULE_DEVICE_TABLE(of, aml_tdm_device_id);
|
||||
|
||||
392
sound/soc/amlogic/auge/tm2,clocks.c
Normal file
392
sound/soc/amlogic/auge/tm2,clocks.c
Normal file
@@ -0,0 +1,392 @@
|
||||
/*
|
||||
* sound/soc/amlogic/auge/tm2_clocks.c
|
||||
*
|
||||
* Copyright (C) 2019 Amlogic, Inc. All rights reserved.
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation; either version 2 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful, but WITHOUT
|
||||
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
|
||||
* more details.
|
||||
*
|
||||
*/
|
||||
#undef pr_fmt
|
||||
#define pr_fmt(fmt) "tm2_audio_clocks: " fmt
|
||||
|
||||
#include <dt-bindings/clock/amlogic,tm2-audio-clk.h>
|
||||
|
||||
#include "audio_clks.h"
|
||||
#include "regs.h"
|
||||
|
||||
static spinlock_t aclk_lock;
|
||||
|
||||
static const char *const mclk_parent_names[] = {
|
||||
"mpll0", "mpll1", "mpll2", "mpll3", "hifi_pll",
|
||||
"fclk_div3", "fclk_div4", "fclk_div5"};
|
||||
|
||||
static const char *const audioclk_parent_names[] = {
|
||||
"mclk_a", "mclk_b", "mclk_c", "mclk_d", "mclk_e",
|
||||
"mclk_f", "i_slv_sclk_a", "i_slv_sclk_b", "i_slv_sclk_c",
|
||||
"i_slv_sclk_d", "i_slv_sclk_e", "i_slv_sclk_f", "i_slv_sclk_g",
|
||||
"i_slv_sclk_h", "i_slv_sclk_i", "i_slv_sclk_j"};
|
||||
|
||||
CLOCK_GATE(audio_ddr_arb, AUD_ADDR_OFFSET(EE_AUDIO_CLK_GATE_EN0), 0);
|
||||
CLOCK_GATE(audio_pdm, AUD_ADDR_OFFSET(EE_AUDIO_CLK_GATE_EN0), 1);
|
||||
CLOCK_GATE(audio_tdmina, AUD_ADDR_OFFSET(EE_AUDIO_CLK_GATE_EN0), 2);
|
||||
CLOCK_GATE(audio_tdminb, AUD_ADDR_OFFSET(EE_AUDIO_CLK_GATE_EN0), 3);
|
||||
CLOCK_GATE(audio_tdminc, AUD_ADDR_OFFSET(EE_AUDIO_CLK_GATE_EN0), 4);
|
||||
CLOCK_GATE(audio_tdminlb, AUD_ADDR_OFFSET(EE_AUDIO_CLK_GATE_EN0), 5);
|
||||
CLOCK_GATE(audio_tdmouta, AUD_ADDR_OFFSET(EE_AUDIO_CLK_GATE_EN0), 6);
|
||||
CLOCK_GATE(audio_tdmoutb, AUD_ADDR_OFFSET(EE_AUDIO_CLK_GATE_EN0), 7);
|
||||
CLOCK_GATE(audio_tdmoutc, AUD_ADDR_OFFSET(EE_AUDIO_CLK_GATE_EN0), 8);
|
||||
CLOCK_GATE(audio_frddra, AUD_ADDR_OFFSET(EE_AUDIO_CLK_GATE_EN0), 9);
|
||||
CLOCK_GATE(audio_frddrb, AUD_ADDR_OFFSET(EE_AUDIO_CLK_GATE_EN0), 10);
|
||||
CLOCK_GATE(audio_frddrc, AUD_ADDR_OFFSET(EE_AUDIO_CLK_GATE_EN0), 11);
|
||||
CLOCK_GATE(audio_toddra, AUD_ADDR_OFFSET(EE_AUDIO_CLK_GATE_EN0), 12);
|
||||
CLOCK_GATE(audio_toddrb, AUD_ADDR_OFFSET(EE_AUDIO_CLK_GATE_EN0), 13);
|
||||
CLOCK_GATE(audio_toddrc, AUD_ADDR_OFFSET(EE_AUDIO_CLK_GATE_EN0), 14);
|
||||
CLOCK_GATE(audio_loopbacka, AUD_ADDR_OFFSET(EE_AUDIO_CLK_GATE_EN0), 15);
|
||||
CLOCK_GATE(audio_spdifin, AUD_ADDR_OFFSET(EE_AUDIO_CLK_GATE_EN0), 16);
|
||||
CLOCK_GATE(audio_spdifout, AUD_ADDR_OFFSET(EE_AUDIO_CLK_GATE_EN0), 17);
|
||||
CLOCK_GATE(audio_resamplea, AUD_ADDR_OFFSET(EE_AUDIO_CLK_GATE_EN0), 18);
|
||||
CLOCK_GATE(audio_reserved0, AUD_ADDR_OFFSET(EE_AUDIO_CLK_GATE_EN0), 19);
|
||||
CLOCK_GATE(audio_reserved1, AUD_ADDR_OFFSET(EE_AUDIO_CLK_GATE_EN0), 20);
|
||||
CLOCK_GATE(audio_spdifoutb, AUD_ADDR_OFFSET(EE_AUDIO_CLK_GATE_EN0), 21);
|
||||
CLOCK_GATE(audio_eqdrc, AUD_ADDR_OFFSET(EE_AUDIO_CLK_GATE_EN0), 22);
|
||||
CLOCK_GATE(audio_reserved2, AUD_ADDR_OFFSET(EE_AUDIO_CLK_GATE_EN0), 23);
|
||||
CLOCK_GATE(audio_reserved3, AUD_ADDR_OFFSET(EE_AUDIO_CLK_GATE_EN0), 24);
|
||||
CLOCK_GATE(audio_reserved4, AUD_ADDR_OFFSET(EE_AUDIO_CLK_GATE_EN0), 25);
|
||||
CLOCK_GATE(audio_resampleb, AUD_ADDR_OFFSET(EE_AUDIO_CLK_GATE_EN0), 26);
|
||||
CLOCK_GATE(audio_tovad, AUD_ADDR_OFFSET(EE_AUDIO_CLK_GATE_EN0), 27);
|
||||
CLOCK_GATE(audio_audiolocker, AUD_ADDR_OFFSET(EE_AUDIO_CLK_GATE_EN0), 28);
|
||||
CLOCK_GATE(audio_spdifin_lb, AUD_ADDR_OFFSET(EE_AUDIO_CLK_GATE_EN0), 29);
|
||||
CLOCK_GATE(audio_fratv, AUD_ADDR_OFFSET(EE_AUDIO_CLK_GATE_EN0), 30);
|
||||
CLOCK_GATE(audio_frhdmirx, AUD_ADDR_OFFSET(EE_AUDIO_CLK_GATE_EN0), 31);
|
||||
|
||||
CLOCK_GATE(audio_frddrd, AUD_ADDR_OFFSET(EE_AUDIO_CLK_GATE_EN1), 0);
|
||||
CLOCK_GATE(audio_toddrd, AUD_ADDR_OFFSET(EE_AUDIO_CLK_GATE_EN1), 1);
|
||||
CLOCK_GATE(audio_loopbackb, AUD_ADDR_OFFSET(EE_AUDIO_CLK_GATE_EN1), 2);
|
||||
CLOCK_GATE(audio_frddre, AUD_ADDR_OFFSET(EE_AUDIO_CLK_GATE_EN1), 3);
|
||||
CLOCK_GATE(audio_toddre, AUD_ADDR_OFFSET(EE_AUDIO_CLK_GATE_EN1), 4);
|
||||
CLOCK_GATE(audio_earctx, AUD_ADDR_OFFSET(EE_AUDIO_CLK_GATE_EN1), 5);
|
||||
CLOCK_GATE(audio_earcrx, AUD_ADDR_OFFSET(EE_AUDIO_CLK_GATE_EN1), 6);
|
||||
CLOCK_GATE(audio_resampleb_old, AUD_ADDR_OFFSET(EE_AUDIO_CLK_GATE_EN1), 7);
|
||||
CLOCK_GATE(audio_locker, AUD_ADDR_OFFSET(EE_AUDIO_CLK_GATE_EN1), 8);
|
||||
|
||||
|
||||
static struct clk_gate *tm2_audio_clk_gates[] = {
|
||||
&audio_ddr_arb,
|
||||
&audio_pdm,
|
||||
&audio_tdmina,
|
||||
&audio_tdminb,
|
||||
&audio_tdminc,
|
||||
&audio_tdminlb,
|
||||
&audio_tdmouta,
|
||||
&audio_tdmoutb,
|
||||
&audio_tdmoutc,
|
||||
&audio_frddra,
|
||||
&audio_frddrb,
|
||||
&audio_frddrc,
|
||||
&audio_toddra,
|
||||
&audio_toddrb,
|
||||
&audio_toddrc,
|
||||
&audio_loopbacka,
|
||||
&audio_spdifin,
|
||||
&audio_spdifout,
|
||||
&audio_resamplea,
|
||||
&audio_reserved0,
|
||||
&audio_reserved1,
|
||||
&audio_spdifoutb,
|
||||
&audio_eqdrc,
|
||||
&audio_reserved2,
|
||||
&audio_reserved3,
|
||||
&audio_reserved4,
|
||||
&audio_resampleb,
|
||||
&audio_tovad,
|
||||
&audio_audiolocker,
|
||||
&audio_spdifin_lb,
|
||||
&audio_fratv,
|
||||
&audio_frhdmirx,
|
||||
|
||||
&audio_frddrd,
|
||||
&audio_toddrd,
|
||||
&audio_loopbackb,
|
||||
&audio_frddre,
|
||||
&audio_toddre,
|
||||
&audio_earctx,
|
||||
&audio_earcrx,
|
||||
&audio_resampleb_old,
|
||||
&audio_locker,
|
||||
};
|
||||
|
||||
/* Array of all clocks provided by this provider */
|
||||
static struct clk_hw *tm2_audio_clk_hws[] = {
|
||||
[CLKID_AUDIO_GATE_DDR_ARB] = &audio_ddr_arb.hw,
|
||||
[CLKID_AUDIO_GATE_PDM] = &audio_pdm.hw,
|
||||
[CLKID_AUDIO_GATE_TDMINA] = &audio_tdmina.hw,
|
||||
[CLKID_AUDIO_GATE_TDMINB] = &audio_tdminb.hw,
|
||||
[CLKID_AUDIO_GATE_TDMINC] = &audio_tdminc.hw,
|
||||
[CLKID_AUDIO_GATE_TDMINLB] = &audio_tdminlb.hw,
|
||||
[CLKID_AUDIO_GATE_TDMOUTA] = &audio_tdmouta.hw,
|
||||
[CLKID_AUDIO_GATE_TDMOUTB] = &audio_tdmoutb.hw,
|
||||
[CLKID_AUDIO_GATE_TDMOUTC] = &audio_tdmoutc.hw,
|
||||
[CLKID_AUDIO_GATE_FRDDRA] = &audio_frddra.hw,
|
||||
[CLKID_AUDIO_GATE_FRDDRB] = &audio_frddrb.hw,
|
||||
[CLKID_AUDIO_GATE_FRDDRC] = &audio_frddrc.hw,
|
||||
[CLKID_AUDIO_GATE_TODDRA] = &audio_toddra.hw,
|
||||
[CLKID_AUDIO_GATE_TODDRB] = &audio_toddrb.hw,
|
||||
[CLKID_AUDIO_GATE_TODDRC] = &audio_toddrc.hw,
|
||||
[CLKID_AUDIO_GATE_LOOPBACKA] = &audio_loopbacka.hw,
|
||||
[CLKID_AUDIO_GATE_SPDIFIN] = &audio_spdifin.hw,
|
||||
[CLKID_AUDIO_GATE_SPDIFOUT_A] = &audio_spdifout.hw,
|
||||
[CLKID_AUDIO_GATE_RESAMPLEA] = &audio_resamplea.hw,
|
||||
[CLKID_AUDIO_GATE_RESERVED0] = &audio_reserved0.hw,
|
||||
[CLKID_AUDIO_GATE_RESERVED1] = &audio_reserved1.hw,
|
||||
[CLKID_AUDIO_GATE_SPDIFOUT_B] = &audio_spdifoutb.hw,
|
||||
[CLKID_AUDIO_GATE_EQDRC] = &audio_eqdrc.hw,
|
||||
[CLKID_AUDIO_GATE_RESERVED2] = &audio_reserved2.hw,
|
||||
[CLKID_AUDIO_GATE_RESERVED3] = &audio_reserved3.hw,
|
||||
[CLKID_AUDIO_GATE_RESERVED4] = &audio_reserved4.hw,
|
||||
[CLKID_AUDIO_GATE_RESAMPLEB] = &audio_resampleb.hw,
|
||||
[CLKID_AUDIO_GATE_TOVAD] = &audio_tovad.hw,
|
||||
[CLKID_AUDIO_GATE_AUDIOLOCKER] = &audio_audiolocker.hw,
|
||||
[CLKID_AUDIO_GATE_SPDIFIN_LB] = &audio_spdifin_lb.hw,
|
||||
[CLKID_AUDIO_GATE_FRATV] = &audio_fratv.hw,
|
||||
[CLKID_AUDIO_GATE_FRHDMIRX] = &audio_frhdmirx.hw,
|
||||
|
||||
[CLKID_AUDIO_GATE_FRDDRD] = &audio_frddrd.hw,
|
||||
[CLKID_AUDIO_GATE_TODDRD] = &audio_toddrd.hw,
|
||||
[CLKID_AUDIO_GATE_LOOPBACKB] = &audio_loopbackb.hw,
|
||||
[CLKID_AUDIO_GATE_FRDDRE] = &audio_frddre.hw,
|
||||
[CLKID_AUDIO_GATE_TODDRE] = &audio_toddre.hw,
|
||||
[CLKID_AUDIO_GATE_EARCTX] = &audio_earctx.hw,
|
||||
[CLKID_AUDIO_GATE_EARCRX] = &audio_earcrx.hw,
|
||||
[CLKID_AUDIO_GATE_RESAMPLEB_OLD] = &audio_resampleb_old.hw,
|
||||
[CLKID_AUDIO_GATE_LOCKER] = &audio_locker.hw,
|
||||
};
|
||||
|
||||
static int tm2_clk_gates_init(struct clk **clks, void __iomem *iobase)
|
||||
{
|
||||
int clkid;
|
||||
|
||||
if (ARRAY_SIZE(tm2_audio_clk_gates) != MCLK_BASE) {
|
||||
pr_err("check clk gates number\n");
|
||||
return -EINVAL;
|
||||
}
|
||||
|
||||
for (clkid = 0; clkid < MCLK_BASE; clkid++) {
|
||||
tm2_audio_clk_gates[clkid]->reg = iobase;
|
||||
clks[clkid] = clk_register(NULL, tm2_audio_clk_hws[clkid]);
|
||||
WARN_ON(IS_ERR_OR_NULL(clks[clkid]));
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
/* mclk_a */
|
||||
CLOCK_COM_MUX(mclk_a, AUD_ADDR_OFFSET(EE_AUDIO_MCLK_A_CTRL(1)), 0x7, 24);
|
||||
CLOCK_COM_DIV(mclk_a, AUD_ADDR_OFFSET(EE_AUDIO_MCLK_A_CTRL(1)), 0, 16);
|
||||
CLOCK_COM_GATE(mclk_a, AUD_ADDR_OFFSET(EE_AUDIO_MCLK_A_CTRL(1)), 31);
|
||||
/* mclk_b */
|
||||
CLOCK_COM_MUX(mclk_b, AUD_ADDR_OFFSET(EE_AUDIO_MCLK_B_CTRL(1)), 0x7, 24);
|
||||
CLOCK_COM_DIV(mclk_b, AUD_ADDR_OFFSET(EE_AUDIO_MCLK_B_CTRL(1)), 0, 16);
|
||||
CLOCK_COM_GATE(mclk_b, AUD_ADDR_OFFSET(EE_AUDIO_MCLK_B_CTRL(1)), 31);
|
||||
/* mclk_c */
|
||||
CLOCK_COM_MUX(mclk_c, AUD_ADDR_OFFSET(EE_AUDIO_MCLK_C_CTRL(1)), 0x7, 24);
|
||||
CLOCK_COM_DIV(mclk_c, AUD_ADDR_OFFSET(EE_AUDIO_MCLK_C_CTRL(1)), 0, 16);
|
||||
CLOCK_COM_GATE(mclk_c, AUD_ADDR_OFFSET(EE_AUDIO_MCLK_C_CTRL(1)), 31);
|
||||
/* mclk_d */
|
||||
CLOCK_COM_MUX(mclk_d, AUD_ADDR_OFFSET(EE_AUDIO_MCLK_D_CTRL(1)), 0x7, 24);
|
||||
CLOCK_COM_DIV(mclk_d, AUD_ADDR_OFFSET(EE_AUDIO_MCLK_D_CTRL(1)), 0, 16);
|
||||
CLOCK_COM_GATE(mclk_d, AUD_ADDR_OFFSET(EE_AUDIO_MCLK_D_CTRL(1)), 31);
|
||||
/* mclk_e */
|
||||
CLOCK_COM_MUX(mclk_e, AUD_ADDR_OFFSET(EE_AUDIO_MCLK_E_CTRL(1)), 0x7, 24);
|
||||
CLOCK_COM_DIV(mclk_e, AUD_ADDR_OFFSET(EE_AUDIO_MCLK_E_CTRL(1)), 0, 16);
|
||||
CLOCK_COM_GATE(mclk_e, AUD_ADDR_OFFSET(EE_AUDIO_MCLK_E_CTRL(1)), 31);
|
||||
/* mclk_f */
|
||||
CLOCK_COM_MUX(mclk_f, AUD_ADDR_OFFSET(EE_AUDIO_MCLK_F_CTRL(1)), 0x7, 24);
|
||||
CLOCK_COM_DIV(mclk_f, AUD_ADDR_OFFSET(EE_AUDIO_MCLK_F_CTRL(1)), 0, 16);
|
||||
CLOCK_COM_GATE(mclk_f, AUD_ADDR_OFFSET(EE_AUDIO_MCLK_F_CTRL(1)), 31);
|
||||
/* spdifin */
|
||||
CLOCK_COM_MUX(spdifin, AUD_ADDR_OFFSET(EE_AUDIO_CLK_SPDIFIN_CTRL), 0x7, 24);
|
||||
CLOCK_COM_DIV(spdifin, AUD_ADDR_OFFSET(EE_AUDIO_CLK_SPDIFIN_CTRL), 0, 8);
|
||||
CLOCK_COM_GATE(spdifin, AUD_ADDR_OFFSET(EE_AUDIO_CLK_SPDIFIN_CTRL), 31);
|
||||
/* spdifout */
|
||||
CLOCK_COM_MUX(spdifout, AUD_ADDR_OFFSET(EE_AUDIO_CLK_SPDIFOUT_CTRL), 0x7, 24);
|
||||
CLOCK_COM_DIV(spdifout, AUD_ADDR_OFFSET(EE_AUDIO_CLK_SPDIFOUT_CTRL), 0, 10);
|
||||
CLOCK_COM_GATE(spdifout, AUD_ADDR_OFFSET(EE_AUDIO_CLK_SPDIFOUT_CTRL), 31);
|
||||
/* audio resample_a */
|
||||
CLOCK_COM_MUX(resample_a,
|
||||
AUD_ADDR_OFFSET(EE_AUDIO_CLK_RESAMPLEA_CTRL), 0xf, 24);
|
||||
CLOCK_COM_DIV(resample_a, AUD_ADDR_OFFSET(EE_AUDIO_CLK_RESAMPLEA_CTRL), 0, 8);
|
||||
CLOCK_COM_GATE(resample_a, AUD_ADDR_OFFSET(EE_AUDIO_CLK_RESAMPLEA_CTRL), 31);
|
||||
/* audio locker_out */
|
||||
CLOCK_COM_MUX(locker_out, AUD_ADDR_OFFSET(EE_AUDIO_CLK_LOCKER_CTRL), 0xf, 24);
|
||||
CLOCK_COM_DIV(locker_out, AUD_ADDR_OFFSET(EE_AUDIO_CLK_LOCKER_CTRL), 16, 8);
|
||||
CLOCK_COM_GATE(locker_out, AUD_ADDR_OFFSET(EE_AUDIO_CLK_LOCKER_CTRL), 31);
|
||||
/* audio locker_in */
|
||||
CLOCK_COM_MUX(locker_in, AUD_ADDR_OFFSET(EE_AUDIO_CLK_LOCKER_CTRL), 0xf, 8);
|
||||
CLOCK_COM_DIV(locker_in, AUD_ADDR_OFFSET(EE_AUDIO_CLK_LOCKER_CTRL), 0, 8);
|
||||
CLOCK_COM_GATE(locker_in, AUD_ADDR_OFFSET(EE_AUDIO_CLK_LOCKER_CTRL), 15);
|
||||
/* pdmin0 */
|
||||
CLOCK_COM_MUX(pdmin0, AUD_ADDR_OFFSET(EE_AUDIO_CLK_PDMIN_CTRL0), 0x7, 24);
|
||||
CLOCK_COM_DIV(pdmin0, AUD_ADDR_OFFSET(EE_AUDIO_CLK_PDMIN_CTRL0), 0, 16);
|
||||
CLOCK_COM_GATE(pdmin0, AUD_ADDR_OFFSET(EE_AUDIO_CLK_PDMIN_CTRL0), 31);
|
||||
/* pdmin1 */
|
||||
CLOCK_COM_MUX(pdmin1, AUD_ADDR_OFFSET(EE_AUDIO_CLK_PDMIN_CTRL1), 0x7, 24);
|
||||
CLOCK_COM_DIV(pdmin1, AUD_ADDR_OFFSET(EE_AUDIO_CLK_PDMIN_CTRL1), 0, 16);
|
||||
CLOCK_COM_GATE(pdmin1, AUD_ADDR_OFFSET(EE_AUDIO_CLK_PDMIN_CTRL1), 31);
|
||||
/* spdifout b*/
|
||||
CLOCK_COM_MUX(spdifout_b,
|
||||
AUD_ADDR_OFFSET(EE_AUDIO_CLK_SPDIFOUT_B_CTRL), 0x7, 24);
|
||||
CLOCK_COM_DIV(spdifout_b, AUD_ADDR_OFFSET(EE_AUDIO_CLK_SPDIFOUT_B_CTRL), 0, 10);
|
||||
CLOCK_COM_GATE(spdifout_b, AUD_ADDR_OFFSET(EE_AUDIO_CLK_SPDIFOUT_B_CTRL), 31);
|
||||
/* audio resample_b */
|
||||
CLOCK_COM_MUX(resample_b,
|
||||
AUD_ADDR_OFFSET(EE_AUDIO_CLK_RESAMPLEB_CTRL), 0xf, 24);
|
||||
CLOCK_COM_DIV(resample_b, AUD_ADDR_OFFSET(EE_AUDIO_CLK_RESAMPLEB_CTRL), 0, 8);
|
||||
CLOCK_COM_GATE(resample_b, AUD_ADDR_OFFSET(EE_AUDIO_CLK_RESAMPLEB_CTRL), 31);
|
||||
/* spdifin_lb, div is a fake */
|
||||
CLOCK_COM_MUX(spdifin_lb,
|
||||
AUD_ADDR_OFFSET(EE_AUDIO_CLK_SPDIFOUT_B_CTRL), 0x1, 30);
|
||||
CLOCK_COM_DIV(spdifin_lb, AUD_ADDR_OFFSET(EE_AUDIO_CLK_SPDIFOUT_B_CTRL), 0, 29);
|
||||
CLOCK_COM_GATE(spdifin_lb, AUD_ADDR_OFFSET(EE_AUDIO_CLK_SPDIFOUT_B_CTRL), 31);
|
||||
/* audio eqdrc */
|
||||
CLOCK_COM_MUX(eqdrc, AUD_ADDR_OFFSET(EE_AUDIO_CLK_EQDRC_CTRL0), 0x7, 24);
|
||||
CLOCK_COM_DIV(eqdrc, AUD_ADDR_OFFSET(EE_AUDIO_CLK_EQDRC_CTRL0), 0, 16);
|
||||
CLOCK_COM_GATE(eqdrc, AUD_ADDR_OFFSET(EE_AUDIO_CLK_EQDRC_CTRL0), 31);
|
||||
/* audio vad */
|
||||
CLOCK_COM_MUX(vad, AUD_ADDR_OFFSET(EE_AUDIO_VAD_CLK_CTRL), 0x7, 24);
|
||||
CLOCK_COM_DIV(vad, AUD_ADDR_OFFSET(EE_AUDIO_VAD_CLK_CTRL), 0, 16);
|
||||
CLOCK_COM_GATE(vad, AUD_ADDR_OFFSET(EE_AUDIO_VAD_CLK_CTRL), 31);
|
||||
/* EARC TX CMDC */
|
||||
CLOCK_COM_MUX(earctx_cmdc,
|
||||
AUD_ADDR_OFFSET(EE_AUDIO_EARCTX_CMDC_CLK_CTRL), 0x7, 24);
|
||||
CLOCK_COM_DIV(earctx_cmdc,
|
||||
AUD_ADDR_OFFSET(EE_AUDIO_EARCTX_CMDC_CLK_CTRL), 0, 16);
|
||||
CLOCK_COM_GATE(earctx_cmdc,
|
||||
AUD_ADDR_OFFSET(EE_AUDIO_EARCTX_CMDC_CLK_CTRL), 31);
|
||||
/* EARC TX DMAC */
|
||||
CLOCK_COM_MUX(earctx_dmac,
|
||||
AUD_ADDR_OFFSET(EE_AUDIO_EARCTX_DMAC_CLK_CTRL), 0x7, 24);
|
||||
CLOCK_COM_DIV(earctx_dmac,
|
||||
AUD_ADDR_OFFSET(EE_AUDIO_EARCTX_DMAC_CLK_CTRL), 0, 16);
|
||||
CLOCK_COM_GATE(earctx_dmac,
|
||||
AUD_ADDR_OFFSET(EE_AUDIO_EARCTX_DMAC_CLK_CTRL), 31);
|
||||
/* EARC RX CMDC */
|
||||
CLOCK_COM_MUX(earcrx_cmdc,
|
||||
AUD_ADDR_OFFSET(EE_AUDIO_EARCRX_CMDC_CLK_CTRL), 0x7, 24);
|
||||
CLOCK_COM_DIV(earcrx_cmdc,
|
||||
AUD_ADDR_OFFSET(EE_AUDIO_EARCRX_CMDC_CLK_CTRL), 0, 16);
|
||||
CLOCK_COM_GATE(earcrx_cmdc,
|
||||
AUD_ADDR_OFFSET(EE_AUDIO_EARCRX_CMDC_CLK_CTRL), 31);
|
||||
/* EARC RX DMAC */
|
||||
CLOCK_COM_MUX(earcrx_dmac,
|
||||
AUD_ADDR_OFFSET(EE_AUDIO_EARCRX_DMAC_CLK_CTRL), 0x7, 24);
|
||||
CLOCK_COM_DIV(earcrx_dmac,
|
||||
AUD_ADDR_OFFSET(EE_AUDIO_EARCRX_DMAC_CLK_CTRL), 0, 16);
|
||||
CLOCK_COM_GATE(earcrx_dmac,
|
||||
AUD_ADDR_OFFSET(EE_AUDIO_EARCRX_DMAC_CLK_CTRL), 31);
|
||||
|
||||
static int tm2_clks_init(struct clk **clks, void __iomem *iobase)
|
||||
{
|
||||
IOMAP_COM_CLK(mclk_a, iobase);
|
||||
clks[CLKID_AUDIO_MCLK_A] = REGISTER_CLK_COM(mclk_a);
|
||||
WARN_ON(IS_ERR_OR_NULL(clks[CLKID_AUDIO_MCLK_A]));
|
||||
|
||||
IOMAP_COM_CLK(mclk_b, iobase);
|
||||
clks[CLKID_AUDIO_MCLK_B] = REGISTER_CLK_COM(mclk_b);
|
||||
WARN_ON(IS_ERR_OR_NULL(clks[CLKID_AUDIO_MCLK_B]));
|
||||
|
||||
IOMAP_COM_CLK(mclk_c, iobase);
|
||||
clks[CLKID_AUDIO_MCLK_C] = REGISTER_CLK_COM(mclk_c);
|
||||
WARN_ON(IS_ERR_OR_NULL(clks[CLKID_AUDIO_MCLK_C]));
|
||||
|
||||
IOMAP_COM_CLK(mclk_d, iobase);
|
||||
clks[CLKID_AUDIO_MCLK_D] = REGISTER_CLK_COM(mclk_d);
|
||||
WARN_ON(IS_ERR_OR_NULL(clks[CLKID_AUDIO_MCLK_D]));
|
||||
|
||||
IOMAP_COM_CLK(mclk_e, iobase);
|
||||
clks[CLKID_AUDIO_MCLK_E] = REGISTER_CLK_COM(mclk_e);
|
||||
WARN_ON(IS_ERR_OR_NULL(clks[CLKID_AUDIO_MCLK_E]));
|
||||
|
||||
IOMAP_COM_CLK(mclk_f, iobase);
|
||||
clks[CLKID_AUDIO_MCLK_F] = REGISTER_CLK_COM(mclk_f);
|
||||
WARN_ON(IS_ERR_OR_NULL(clks[CLKID_AUDIO_MCLK_F]));
|
||||
|
||||
IOMAP_COM_CLK(spdifin, iobase);
|
||||
clks[CLKID_AUDIO_SPDIFIN] = REGISTER_CLK_COM(spdifin);
|
||||
WARN_ON(IS_ERR_OR_NULL(clks[CLKID_AUDIO_SPDIFIN]));
|
||||
|
||||
IOMAP_COM_CLK(spdifout, iobase);
|
||||
clks[CLKID_AUDIO_SPDIFOUT_A] = REGISTER_CLK_COM(spdifout);
|
||||
WARN_ON(IS_ERR_OR_NULL(clks[CLKID_AUDIO_SPDIFOUT_A]));
|
||||
|
||||
IOMAP_COM_CLK(resample_a, iobase);
|
||||
clks[CLKID_AUDIO_RESAMPLE_A] = REGISTER_AUDIOCLK_COM(resample_a);
|
||||
WARN_ON(IS_ERR_OR_NULL(clks[CLKID_AUDIO_RESAMPLE_A]));
|
||||
|
||||
IOMAP_COM_CLK(locker_out, iobase);
|
||||
clks[CLKID_AUDIO_LOCKER_OUT] = REGISTER_AUDIOCLK_COM(locker_out);
|
||||
WARN_ON(IS_ERR_OR_NULL(clks[CLKID_AUDIO_LOCKER_OUT]));
|
||||
|
||||
IOMAP_COM_CLK(locker_in, iobase);
|
||||
clks[CLKID_AUDIO_LOCKER_IN] = REGISTER_AUDIOCLK_COM(locker_in);
|
||||
WARN_ON(IS_ERR_OR_NULL(clks[CLKID_AUDIO_LOCKER_IN]));
|
||||
|
||||
IOMAP_COM_CLK(pdmin0, iobase);
|
||||
clks[CLKID_AUDIO_PDMIN0] = REGISTER_CLK_COM(pdmin0);
|
||||
WARN_ON(IS_ERR_OR_NULL(clks[CLKID_AUDIO_PDMIN0]));
|
||||
|
||||
IOMAP_COM_CLK(pdmin1, iobase);
|
||||
clks[CLKID_AUDIO_PDMIN1] = REGISTER_CLK_COM(pdmin1);
|
||||
WARN_ON(IS_ERR_OR_NULL(clks[CLKID_AUDIO_PDMIN1]));
|
||||
|
||||
IOMAP_COM_CLK(spdifout_b, iobase);
|
||||
clks[CLKID_AUDIO_SPDIFOUT_B] = REGISTER_CLK_COM(spdifout_b);
|
||||
WARN_ON(IS_ERR_OR_NULL(clks[CLKID_AUDIO_SPDIFOUT_B]));
|
||||
|
||||
IOMAP_COM_CLK(resample_b, iobase);
|
||||
clks[CLKID_AUDIO_RESAMPLE_B] = REGISTER_AUDIOCLK_COM(resample_b);
|
||||
WARN_ON(IS_ERR_OR_NULL(clks[CLKID_AUDIO_RESAMPLE_B]));
|
||||
|
||||
IOMAP_COM_CLK(spdifin_lb, iobase);
|
||||
clks[CLKID_AUDIO_SPDIFIN_LB] = REGISTER_CLK_COM(spdifin_lb);
|
||||
WARN_ON(IS_ERR_OR_NULL(clks[CLKID_AUDIO_SPDIFIN_LB]));
|
||||
|
||||
IOMAP_COM_CLK(eqdrc, iobase);
|
||||
clks[CLKID_AUDIO_EQDRC] = REGISTER_CLK_COM(eqdrc);
|
||||
WARN_ON(IS_ERR_OR_NULL(clks[CLKID_AUDIO_EQDRC]));
|
||||
|
||||
IOMAP_COM_CLK(vad, iobase);
|
||||
clks[CLKID_AUDIO_VAD] = REGISTER_CLK_COM(vad);
|
||||
WARN_ON(IS_ERR_OR_NULL(clks[CLKID_AUDIO_VAD]));
|
||||
|
||||
IOMAP_COM_CLK(earctx_cmdc, iobase);
|
||||
clks[CLKID_EARCTX_CMDC] = REGISTER_CLK_COM(earctx_cmdc);
|
||||
WARN_ON(IS_ERR_OR_NULL(clks[CLKID_EARCTX_CMDC]));
|
||||
|
||||
IOMAP_COM_CLK(earctx_dmac, iobase);
|
||||
clks[CLKID_EARCTX_DMAC] = REGISTER_CLK_COM(earctx_dmac);
|
||||
WARN_ON(IS_ERR_OR_NULL(clks[CLKID_EARCTX_DMAC]));
|
||||
|
||||
IOMAP_COM_CLK(earcrx_cmdc, iobase);
|
||||
clks[CLKID_EARCRX_CMDC] = REGISTER_CLK_COM(earcrx_cmdc);
|
||||
WARN_ON(IS_ERR_OR_NULL(clks[CLKID_EARCRX_CMDC]));
|
||||
|
||||
IOMAP_COM_CLK(earcrx_dmac, iobase);
|
||||
clks[CLKID_EARCRX_DMAC] = REGISTER_CLK_COM(earcrx_dmac);
|
||||
WARN_ON(IS_ERR_OR_NULL(clks[CLKID_EARCRX_DMAC]));
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
struct audio_clk_init tm2_audio_clks_init = {
|
||||
.clk_num = NUM_AUDIO_CLKS,
|
||||
.clk_gates = tm2_clk_gates_init,
|
||||
.clks = tm2_clks_init,
|
||||
};
|
||||
Reference in New Issue
Block a user