mirror of
https://github.com/hardkernel/linux.git
synced 2026-06-09 12:17:12 +09:00
audio: mclk pad0 doesn't output clk [1/1]
PD#OTT-5603 Problem: Configurate GPIO_AO 9 as mclk_0,it doesn't work. Solution: From SM1, the mclk pad register is changed. Using standard clk tree to make it compitable. Verify: TM2, SM1. Change-Id: I8d53296297536c90768495232570f33fc89db131 Signed-off-by: Shuai Li <shuai.li@amlogic.com>
This commit is contained in:
@@ -1152,10 +1152,11 @@
|
||||
//dai-tdm-lane-slot-mask-out = <1 1 1 1 1 1 1 1>;
|
||||
dai-tdm-clk-sel = <1>;
|
||||
clocks = <&clkaudio CLKID_AUDIO_MCLK_B
|
||||
&clkaudio CLKID_AUDIO_MCLK_PAD0
|
||||
&clkc CLKID_MPLL1
|
||||
&clkc CLKID_MPLL0
|
||||
&clkaudio CLKID_AUDIO_SPDIFOUT_A>;
|
||||
clock-names = "mclk", "clk_srcpll",
|
||||
clock-names = "mclk", "mclk_pad", "clk_srcpll",
|
||||
"samesource_srcpll", "samesource_clk";
|
||||
pinctrl-names = "tdm_pins";
|
||||
pinctrl-0 = <&tdmb_mclk &tdmout_b &tdmin_b>;
|
||||
|
||||
@@ -1214,10 +1214,11 @@
|
||||
//dai-tdm-lane-slot-mask-out = <1 1 1 1 1 1 1 1>;
|
||||
dai-tdm-clk-sel = <1>;
|
||||
clocks = <&clkaudio CLKID_AUDIO_MCLK_B
|
||||
&clkaudio CLKID_AUDIO_MCLK_PAD0
|
||||
&clkc CLKID_MPLL1
|
||||
&clkc CLKID_MPLL0
|
||||
&clkaudio CLKID_AUDIO_SPDIFOUT_A>;
|
||||
clock-names = "mclk", "clk_srcpll",
|
||||
clock-names = "mclk", "mclk_pad", "clk_srcpll",
|
||||
"samesource_srcpll", "samesource_clk";
|
||||
pinctrl-names = "tdm_pins";
|
||||
pinctrl-0 = <&tdmb_mclk &tdmout_b &tdmin_b>;
|
||||
|
||||
@@ -1230,10 +1230,11 @@
|
||||
//dai-tdm-lane-slot-mask-out = <1 1 1 1 1 1 1 1>;
|
||||
dai-tdm-clk-sel = <1>;
|
||||
clocks = <&clkaudio CLKID_AUDIO_MCLK_B
|
||||
&clkaudio CLKID_AUDIO_MCLK_PAD0
|
||||
&clkc CLKID_MPLL1
|
||||
&clkc CLKID_MPLL0
|
||||
&clkaudio CLKID_AUDIO_SPDIFOUT_A>;
|
||||
clock-names = "mclk", "clk_srcpll",
|
||||
clock-names = "mclk", "mclk_pad", "clk_srcpll",
|
||||
"samesource_srcpll", "samesource_clk";
|
||||
pinctrl-names = "tdm_pins";
|
||||
pinctrl-0 = <&tdmb_mclk &tdmout_b &tdmin_b>;
|
||||
|
||||
@@ -1162,10 +1162,11 @@
|
||||
//dai-tdm-lane-slot-mask-out = <1 1 1 1 1 1 1 1>;
|
||||
dai-tdm-clk-sel = <1>;
|
||||
clocks = <&clkaudio CLKID_AUDIO_MCLK_B
|
||||
&clkaudio CLKID_AUDIO_MCLK_PAD0
|
||||
&clkc CLKID_MPLL1
|
||||
&clkc CLKID_MPLL0
|
||||
&clkaudio CLKID_AUDIO_SPDIFOUT_A>;
|
||||
clock-names = "mclk", "clk_srcpll",
|
||||
clock-names = "mclk", "mclk_pad", "clk_srcpll",
|
||||
"samesource_srcpll", "samesource_clk";
|
||||
pinctrl-names = "tdm_pins";
|
||||
/*pinctrl-0 = <&tdmb_mclk &tdmout_b &tdmin_b>;*/
|
||||
|
||||
@@ -1162,10 +1162,11 @@
|
||||
//dai-tdm-lane-slot-mask-out = <1 1 1 1 1 1 1 1>;
|
||||
dai-tdm-clk-sel = <1>;
|
||||
clocks = <&clkaudio CLKID_AUDIO_MCLK_B
|
||||
&clkaudio CLKID_AUDIO_MCLK_PAD0
|
||||
&clkc CLKID_MPLL1
|
||||
&clkc CLKID_MPLL0
|
||||
&clkaudio CLKID_AUDIO_SPDIFOUT_A>;
|
||||
clock-names = "mclk", "clk_srcpll",
|
||||
clock-names = "mclk", "mclk_pad", "clk_srcpll",
|
||||
"samesource_srcpll", "samesource_clk";
|
||||
pinctrl-names = "tdm_pins";
|
||||
/*pinctrl-0 = <&tdmb_mclk &tdmout_b &tdmin_b>;*/
|
||||
|
||||
@@ -1157,10 +1157,11 @@
|
||||
dai-tdm-lane-slot-mask-out = <1 0 0 0>;
|
||||
dai-tdm-clk-sel = <1>;
|
||||
clocks = <&clkaudio CLKID_AUDIO_MCLK_B
|
||||
&clkaudio CLKID_AUDIO_MCLK_PAD0
|
||||
&clkc CLKID_MPLL1
|
||||
&clkc CLKID_MPLL0
|
||||
&clkaudio CLKID_AUDIO_SPDIFOUT_A>;
|
||||
clock-names = "mclk", "clk_srcpll",
|
||||
clock-names = "mclk", "mclk_pad", "clk_srcpll",
|
||||
"samesource_srcpll", "samesource_clk";
|
||||
pinctrl-names = "tdm_pins";
|
||||
pinctrl-0 = <&tdmb_mclk &tdmout_b &tdmin_b>;
|
||||
|
||||
@@ -1127,10 +1127,11 @@
|
||||
dai-tdm-lane-slot-mask-out = <1 0 0 0>;
|
||||
dai-tdm-clk-sel = <1>;
|
||||
clocks = <&clkaudio CLKID_AUDIO_MCLK_B
|
||||
&clkaudio CLKID_AUDIO_MCLK_PAD0
|
||||
&clkc CLKID_MPLL1
|
||||
&clkc CLKID_MPLL0
|
||||
&clkaudio CLKID_AUDIO_SPDIFOUT_A>;
|
||||
clock-names = "mclk", "clk_srcpll",
|
||||
clock-names = "mclk", "mclk_pad", "clk_srcpll",
|
||||
"samesource_srcpll", "samesource_clk";
|
||||
pinctrl-names = "tdm_pins";
|
||||
pinctrl-0 = <&tdmb_mclk &tdmout_b &tdmin_b>;
|
||||
|
||||
@@ -1189,10 +1189,11 @@
|
||||
dai-tdm-lane-slot-mask-out = <1 0 0 0>;
|
||||
dai-tdm-clk-sel = <1>;
|
||||
clocks = <&clkaudio CLKID_AUDIO_MCLK_B
|
||||
&clkaudio CLKID_AUDIO_MCLK_PAD0
|
||||
&clkc CLKID_MPLL1
|
||||
&clkc CLKID_MPLL0
|
||||
&clkaudio CLKID_AUDIO_SPDIFOUT_A>;
|
||||
clock-names = "mclk", "clk_srcpll",
|
||||
clock-names = "mclk", "mclk_pad", "clk_srcpll",
|
||||
"samesource_srcpll", "samesource_clk";
|
||||
pinctrl-names = "tdm_pins";
|
||||
pinctrl-0 = <&tdmb_mclk &tdmout_b &tdmin_b>;
|
||||
|
||||
@@ -1114,10 +1114,11 @@
|
||||
dai-tdm-lane-slot-mask-out = <1 0 0 0>;
|
||||
dai-tdm-clk-sel = <1>;
|
||||
clocks = <&clkaudio CLKID_AUDIO_MCLK_B
|
||||
&clkaudio CLKID_AUDIO_MCLK_PAD0
|
||||
&clkc CLKID_MPLL1
|
||||
&clkc CLKID_MPLL0
|
||||
&clkaudio CLKID_AUDIO_SPDIFOUT_A>;
|
||||
clock-names = "mclk", "clk_srcpll",
|
||||
clock-names = "mclk", "mclk_pad", "clk_srcpll",
|
||||
"samesource_srcpll", "samesource_clk";
|
||||
pinctrl-names = "tdm_pins";
|
||||
pinctrl-0 = <&tdmb_mclk &tdmout_b &tdmin_b>;
|
||||
|
||||
@@ -1189,10 +1189,11 @@
|
||||
dai-tdm-lane-slot-mask-out = <1 0 0 0>;
|
||||
dai-tdm-clk-sel = <1>;
|
||||
clocks = <&clkaudio CLKID_AUDIO_MCLK_B
|
||||
&clkaudio CLKID_AUDIO_MCLK_PAD0
|
||||
&clkc CLKID_MPLL1
|
||||
&clkc CLKID_MPLL0
|
||||
&clkaudio CLKID_AUDIO_SPDIFOUT_A>;
|
||||
clock-names = "mclk", "clk_srcpll",
|
||||
clock-names = "mclk", "mclk_pad", "clk_srcpll",
|
||||
"samesource_srcpll", "samesource_clk";
|
||||
pinctrl-names = "tdm_pins";
|
||||
pinctrl-0 = <&tdmb_mclk &tdmout_b &tdmin_b>;
|
||||
|
||||
@@ -1073,10 +1073,11 @@
|
||||
dai-tdm-lane-slot-mask-out = <1 0 0 0>;
|
||||
dai-tdm-clk-sel = <1>;
|
||||
clocks = <&clkaudio CLKID_AUDIO_MCLK_B
|
||||
&clkaudio CLKID_AUDIO_MCLK_PAD0
|
||||
&clkc CLKID_MPLL1
|
||||
&clkc CLKID_MPLL0
|
||||
&clkaudio CLKID_AUDIO_SPDIFOUT_A>;
|
||||
clock-names = "mclk", "clk_srcpll",
|
||||
clock-names = "mclk", "mclk_pad", "clk_srcpll",
|
||||
"samesource_srcpll", "samesource_clk";
|
||||
pinctrl-names = "tdm_pins";
|
||||
pinctrl-0 = <&tdmb_mclk &tdmout_b &tdmin_b>;
|
||||
|
||||
@@ -1390,10 +1390,11 @@
|
||||
dai-tdm-clk-sel = <0>;
|
||||
|
||||
clocks = <&clkaudio CLKID_AUDIO_MCLK_A
|
||||
&clkaudio CLKID_AUDIO_MCLK_PAD0
|
||||
&clkc CLKID_MPLL0
|
||||
&clkc CLKID_MPLL1
|
||||
&clkaudio CLKID_AUDIO_SPDIFOUT_A>;
|
||||
clock-names = "mclk", "clk_srcpll",
|
||||
clock-names = "mclk", "mclk_pad", "clk_srcpll",
|
||||
"samesource_srcpll", "samesource_clk";
|
||||
|
||||
pinctrl-names = "tdm_pins";
|
||||
|
||||
@@ -1323,10 +1323,11 @@
|
||||
dai-tdm-clk-sel = <0>;
|
||||
|
||||
clocks = <&clkaudio CLKID_AUDIO_MCLK_A
|
||||
&clkaudio CLKID_AUDIO_MCLK_PAD0
|
||||
&clkc CLKID_MPLL0
|
||||
&clkc CLKID_MPLL1
|
||||
&clkaudio CLKID_AUDIO_SPDIFOUT_A>;
|
||||
clock-names = "mclk", "clk_srcpll",
|
||||
clock-names = "mclk", "mclk_pad", "clk_srcpll",
|
||||
"samesource_srcpll", "samesource_clk";
|
||||
|
||||
pinctrl-names = "tdm_pins";
|
||||
|
||||
@@ -1393,10 +1393,11 @@
|
||||
dai-tdm-clk-sel = <0>;
|
||||
|
||||
clocks = <&clkaudio CLKID_AUDIO_MCLK_A
|
||||
&clkaudio CLKID_AUDIO_MCLK_PAD0
|
||||
&clkc CLKID_MPLL0
|
||||
&clkc CLKID_MPLL1
|
||||
&clkaudio CLKID_AUDIO_SPDIFOUT_A>;
|
||||
clock-names = "mclk", "clk_srcpll",
|
||||
clock-names = "mclk", "mclk_pad", "clk_srcpll",
|
||||
"samesource_srcpll", "samesource_clk";
|
||||
|
||||
pinctrl-names = "tdm_pins";
|
||||
|
||||
@@ -1324,10 +1324,11 @@
|
||||
dai-tdm-clk-sel = <0>;
|
||||
|
||||
clocks = <&clkaudio CLKID_AUDIO_MCLK_A
|
||||
&clkaudio CLKID_AUDIO_MCLK_PAD0
|
||||
&clkc CLKID_MPLL0
|
||||
&clkc CLKID_MPLL1
|
||||
&clkaudio CLKID_AUDIO_SPDIFOUT_A>;
|
||||
clock-names = "mclk", "clk_srcpll",
|
||||
clock-names = "mclk", "mclk_pad", "clk_srcpll",
|
||||
"samesource_srcpll", "samesource_clk";
|
||||
|
||||
pinctrl-names = "tdm_pins";
|
||||
|
||||
@@ -1374,10 +1374,11 @@
|
||||
dai-tdm-clk-sel = <0>;
|
||||
|
||||
clocks = <&clkaudio CLKID_AUDIO_MCLK_A
|
||||
&clkaudio CLKID_AUDIO_MCLK_PAD0
|
||||
&clkc CLKID_MPLL0
|
||||
&clkc CLKID_MPLL1
|
||||
&clkaudio CLKID_AUDIO_SPDIFOUT_A>;
|
||||
clock-names = "mclk", "clk_srcpll",
|
||||
clock-names = "mclk", "mclk_pad", "clk_srcpll",
|
||||
"samesource_srcpll", "samesource_clk";
|
||||
|
||||
pinctrl-names = "tdm_pins";
|
||||
|
||||
@@ -1149,10 +1149,11 @@
|
||||
dai-tdm-lane-slot-mask-out = <1 0 0 0>;
|
||||
dai-tdm-clk-sel = <1>;
|
||||
clocks = <&clkaudio CLKID_AUDIO_MCLK_B
|
||||
&clkaudio CLKID_AUDIO_MCLK_PAD0
|
||||
&clkc CLKID_MPLL1
|
||||
&clkc CLKID_MPLL0
|
||||
&clkaudio CLKID_AUDIO_SPDIFOUT_A>;
|
||||
clock-names = "mclk", "clk_srcpll",
|
||||
clock-names = "mclk", "mclk_pad", "clk_srcpll",
|
||||
"samesource_srcpll", "samesource_clk";
|
||||
pinctrl-names = "tdm_pins";
|
||||
pinctrl-0 = <&tdmb_mclk &tdmout_b &tdmin_b>;
|
||||
|
||||
@@ -1211,10 +1211,11 @@
|
||||
dai-tdm-lane-slot-mask-out = <1 0 0 0>;
|
||||
dai-tdm-clk-sel = <1>;
|
||||
clocks = <&clkaudio CLKID_AUDIO_MCLK_B
|
||||
&clkaudio CLKID_AUDIO_MCLK_PAD0
|
||||
&clkc CLKID_MPLL1
|
||||
&clkc CLKID_MPLL0
|
||||
&clkaudio CLKID_AUDIO_SPDIFOUT_A>;
|
||||
clock-names = "mclk", "clk_srcpll",
|
||||
clock-names = "mclk", "mclk_pad", "clk_srcpll",
|
||||
"samesource_srcpll", "samesource_clk";
|
||||
pinctrl-names = "tdm_pins";
|
||||
pinctrl-0 = <&tdmb_mclk &tdmout_b &tdmin_b>;
|
||||
|
||||
@@ -1227,10 +1227,11 @@
|
||||
dai-tdm-lane-slot-mask-out = <1 0 0 0>;
|
||||
dai-tdm-clk-sel = <1>;
|
||||
clocks = <&clkaudio CLKID_AUDIO_MCLK_B
|
||||
&clkaudio CLKID_AUDIO_MCLK_PAD0
|
||||
&clkc CLKID_MPLL1
|
||||
&clkc CLKID_MPLL0
|
||||
&clkaudio CLKID_AUDIO_SPDIFOUT_A>;
|
||||
clock-names = "mclk", "clk_srcpll",
|
||||
clock-names = "mclk", "mclk_pad", "clk_srcpll",
|
||||
"samesource_srcpll", "samesource_clk";
|
||||
pinctrl-names = "tdm_pins";
|
||||
pinctrl-0 = <&tdmb_mclk &tdmout_b &tdmin_b>;
|
||||
|
||||
@@ -1161,10 +1161,11 @@
|
||||
//dai-tdm-lane-slot-mask-out = <1 1 1 1 1 1 1 1>;
|
||||
dai-tdm-clk-sel = <1>;
|
||||
clocks = <&clkaudio CLKID_AUDIO_MCLK_B
|
||||
&clkaudio CLKID_AUDIO_MCLK_PAD0
|
||||
&clkc CLKID_MPLL1
|
||||
&clkc CLKID_MPLL0
|
||||
&clkaudio CLKID_AUDIO_SPDIFOUT_A>;
|
||||
clock-names = "mclk", "clk_srcpll",
|
||||
clock-names = "mclk", "mclk_pad", "clk_srcpll",
|
||||
"samesource_srcpll", "samesource_clk";
|
||||
pinctrl-names = "tdm_pins";
|
||||
/*pinctrl-0 = <&tdmb_mclk &tdmout_b &tdmin_b>;*/
|
||||
|
||||
@@ -1161,10 +1161,11 @@
|
||||
//dai-tdm-lane-slot-mask-out = <1 1 1 1 1 1 1 1>;
|
||||
dai-tdm-clk-sel = <1>;
|
||||
clocks = <&clkaudio CLKID_AUDIO_MCLK_B
|
||||
&clkaudio CLKID_AUDIO_MCLK_PAD0
|
||||
&clkc CLKID_MPLL1
|
||||
&clkc CLKID_MPLL0
|
||||
&clkaudio CLKID_AUDIO_SPDIFOUT_A>;
|
||||
clock-names = "mclk", "clk_srcpll",
|
||||
clock-names = "mclk", "mclk_pad", "clk_srcpll",
|
||||
"samesource_srcpll", "samesource_clk";
|
||||
pinctrl-names = "tdm_pins";
|
||||
/*pinctrl-0 = <&tdmb_mclk &tdmout_b &tdmin_b>;*/
|
||||
|
||||
@@ -1155,10 +1155,11 @@
|
||||
dai-tdm-lane-slot-mask-out = <1 0 0 0>;
|
||||
dai-tdm-clk-sel = <1>;
|
||||
clocks = <&clkaudio CLKID_AUDIO_MCLK_B
|
||||
&clkaudio CLKID_AUDIO_MCLK_PAD0
|
||||
&clkc CLKID_MPLL1
|
||||
&clkc CLKID_MPLL0
|
||||
&clkaudio CLKID_AUDIO_SPDIFOUT_A>;
|
||||
clock-names = "mclk", "clk_srcpll",
|
||||
clock-names = "mclk", "mclk_pad", "clk_srcpll",
|
||||
"samesource_srcpll", "samesource_clk";
|
||||
pinctrl-names = "tdm_pins";
|
||||
pinctrl-0 = <&tdmb_mclk &tdmout_b &tdmin_b>;
|
||||
|
||||
@@ -1191,10 +1191,11 @@
|
||||
dai-tdm-lane-slot-mask-out = <1 0 0 0>;
|
||||
dai-tdm-clk-sel = <1>;
|
||||
clocks = <&clkaudio CLKID_AUDIO_MCLK_B
|
||||
&clkaudio CLKID_AUDIO_MCLK_PAD0
|
||||
&clkc CLKID_MPLL1
|
||||
&clkc CLKID_MPLL0
|
||||
&clkaudio CLKID_AUDIO_SPDIFOUT_A>;
|
||||
clock-names = "mclk", "clk_srcpll",
|
||||
clock-names = "mclk", "mclk_pad", "clk_srcpll",
|
||||
"samesource_srcpll", "samesource_clk";
|
||||
pinctrl-names = "tdm_pins";
|
||||
pinctrl-0 = <&tdmb_mclk &tdmout_b &tdmin_b>;
|
||||
|
||||
@@ -1266,10 +1266,11 @@
|
||||
dai-tdm-lane-slot-mask-out = <1 0 0 0>;
|
||||
dai-tdm-clk-sel = <1>;
|
||||
clocks = <&clkaudio CLKID_AUDIO_MCLK_B
|
||||
&clkaudio CLKID_AUDIO_MCLK_PAD0
|
||||
&clkc CLKID_MPLL1
|
||||
&clkc CLKID_MPLL0
|
||||
&clkaudio CLKID_AUDIO_SPDIFOUT_A>;
|
||||
clock-names = "mclk", "clk_srcpll",
|
||||
clock-names = "mclk", "mclk_pad", "clk_srcpll",
|
||||
"samesource_srcpll", "samesource_clk";
|
||||
pinctrl-names = "tdm_pins";
|
||||
pinctrl-0 = <&tdmb_mclk &tdmout_b &tdmin_b>;
|
||||
|
||||
@@ -1179,10 +1179,11 @@
|
||||
dai-tdm-lane-slot-mask-out = <1 0 0 0>;
|
||||
dai-tdm-clk-sel = <1>;
|
||||
clocks = <&clkaudio CLKID_AUDIO_MCLK_B
|
||||
&clkaudio CLKID_AUDIO_MCLK_PAD0
|
||||
&clkc CLKID_MPLL1
|
||||
&clkc CLKID_MPLL0
|
||||
&clkaudio CLKID_AUDIO_SPDIFOUT_A>;
|
||||
clock-names = "mclk", "clk_srcpll",
|
||||
clock-names = "mclk", "mclk_pad", "clk_srcpll",
|
||||
"samesource_srcpll", "samesource_clk";
|
||||
pinctrl-names = "tdm_pins";
|
||||
pinctrl-0 = <&tdmb_mclk &tdmout_b &tdmin_b>;
|
||||
|
||||
@@ -1266,10 +1266,11 @@
|
||||
dai-tdm-lane-slot-mask-out = <1 0 0 0>;
|
||||
dai-tdm-clk-sel = <1>;
|
||||
clocks = <&clkaudio CLKID_AUDIO_MCLK_B
|
||||
&clkaudio CLKID_AUDIO_MCLK_PAD0
|
||||
&clkc CLKID_MPLL1
|
||||
&clkc CLKID_MPLL0
|
||||
&clkaudio CLKID_AUDIO_SPDIFOUT_A>;
|
||||
clock-names = "mclk", "clk_srcpll",
|
||||
clock-names = "mclk", "mclk_pad", "clk_srcpll",
|
||||
"samesource_srcpll", "samesource_clk";
|
||||
pinctrl-names = "tdm_pins";
|
||||
pinctrl-0 = <&tdmb_mclk &tdmout_b &tdmin_b>;
|
||||
|
||||
@@ -1137,10 +1137,11 @@
|
||||
dai-tdm-lane-slot-mask-out = <1 0 0 0>;
|
||||
dai-tdm-clk-sel = <1>;
|
||||
clocks = <&clkaudio CLKID_AUDIO_MCLK_B
|
||||
&clkaudio CLKID_AUDIO_MCLK_PAD0
|
||||
&clkc CLKID_MPLL1
|
||||
&clkc CLKID_MPLL0
|
||||
&clkaudio CLKID_AUDIO_SPDIFOUT_A>;
|
||||
clock-names = "mclk", "clk_srcpll",
|
||||
clock-names = "mclk", "mclk_pad", "clk_srcpll",
|
||||
"samesource_srcpll", "samesource_clk";
|
||||
pinctrl-names = "tdm_pins";
|
||||
pinctrl-0 = <&tdmb_mclk &tdmout_b &tdmin_b>;
|
||||
|
||||
@@ -1385,10 +1385,11 @@
|
||||
dai-tdm-clk-sel = <0>;
|
||||
|
||||
clocks = <&clkaudio CLKID_AUDIO_MCLK_A
|
||||
&clkaudio CLKID_AUDIO_MCLK_PAD0
|
||||
&clkc CLKID_MPLL0
|
||||
&clkc CLKID_MPLL1
|
||||
&clkaudio CLKID_AUDIO_SPDIFOUT_A>;
|
||||
clock-names = "mclk", "clk_srcpll",
|
||||
clock-names = "mclk", "mclk_pad", "clk_srcpll",
|
||||
"samesource_srcpll", "samesource_clk";
|
||||
|
||||
pinctrl-names = "tdm_pins";
|
||||
|
||||
@@ -1323,10 +1323,11 @@
|
||||
dai-tdm-clk-sel = <0>;
|
||||
|
||||
clocks = <&clkaudio CLKID_AUDIO_MCLK_A
|
||||
&clkaudio CLKID_AUDIO_MCLK_PAD0
|
||||
&clkc CLKID_MPLL0
|
||||
&clkc CLKID_MPLL1
|
||||
&clkaudio CLKID_AUDIO_SPDIFOUT_A>;
|
||||
clock-names = "mclk", "clk_srcpll",
|
||||
clock-names = "mclk", "mclk_pad", "clk_srcpll",
|
||||
"samesource_srcpll", "samesource_clk";
|
||||
|
||||
pinctrl-names = "tdm_pins";
|
||||
|
||||
@@ -1390,10 +1390,11 @@
|
||||
dai-tdm-clk-sel = <0>;
|
||||
|
||||
clocks = <&clkaudio CLKID_AUDIO_MCLK_A
|
||||
&clkaudio CLKID_AUDIO_MCLK_PAD0
|
||||
&clkc CLKID_MPLL0
|
||||
&clkc CLKID_MPLL1
|
||||
&clkaudio CLKID_AUDIO_SPDIFOUT_A>;
|
||||
clock-names = "mclk", "clk_srcpll",
|
||||
clock-names = "mclk", "mclk_pad", "clk_srcpll",
|
||||
"samesource_srcpll", "samesource_clk";
|
||||
|
||||
pinctrl-names = "tdm_pins";
|
||||
|
||||
@@ -1324,10 +1324,11 @@
|
||||
dai-tdm-clk-sel = <0>;
|
||||
|
||||
clocks = <&clkaudio CLKID_AUDIO_MCLK_A
|
||||
&clkaudio CLKID_AUDIO_MCLK_PAD0
|
||||
&clkc CLKID_MPLL0
|
||||
&clkc CLKID_MPLL1
|
||||
&clkaudio CLKID_AUDIO_SPDIFOUT_A>;
|
||||
clock-names = "mclk", "clk_srcpll",
|
||||
clock-names = "mclk", "mclk_pad", "clk_srcpll",
|
||||
"samesource_srcpll", "samesource_clk";
|
||||
|
||||
pinctrl-names = "tdm_pins";
|
||||
|
||||
@@ -1376,10 +1376,11 @@
|
||||
dai-tdm-clk-sel = <0>;
|
||||
|
||||
clocks = <&clkaudio CLKID_AUDIO_MCLK_A
|
||||
&clkaudio CLKID_AUDIO_MCLK_PAD0
|
||||
&clkc CLKID_MPLL0
|
||||
&clkc CLKID_MPLL1
|
||||
&clkaudio CLKID_AUDIO_SPDIFOUT_A>;
|
||||
clock-names = "mclk", "clk_srcpll",
|
||||
clock-names = "mclk", "mclk_pad", "clk_srcpll",
|
||||
"samesource_srcpll", "samesource_clk";
|
||||
|
||||
pinctrl-names = "tdm_pins";
|
||||
|
||||
@@ -88,5 +88,8 @@
|
||||
#define CLKID_EARCRX_CMDC (MCLK_BASE + 20)
|
||||
#define CLKID_EARCRX_DMAC (MCLK_BASE + 21)
|
||||
|
||||
#define NUM_AUDIO_CLKS (MCLK_BASE + 22)
|
||||
#define CLKID_AUDIO_MCLK_PAD0 (MCLK_BASE + 22)
|
||||
#define CLKID_AUDIO_MCLK_PAD1 (MCLK_BASE + 23)
|
||||
|
||||
#define NUM_AUDIO_CLKS (MCLK_BASE + 24)
|
||||
#endif /* __SM1_AUDIO_CLK_H__ */
|
||||
|
||||
@@ -93,5 +93,8 @@
|
||||
#define CLKID_EARCRX_CMDC (MCLK_BASE + 20)
|
||||
#define CLKID_EARCRX_DMAC (MCLK_BASE + 21)
|
||||
|
||||
#define NUM_AUDIO_CLKS (MCLK_BASE + 22)
|
||||
#define CLKID_AUDIO_MCLK_PAD0 (MCLK_BASE + 22)
|
||||
#define CLKID_AUDIO_MCLK_PAD1 (MCLK_BASE + 23)
|
||||
|
||||
#define NUM_AUDIO_CLKS (MCLK_BASE + 24)
|
||||
#endif /* __TM2_AUDIO_CLK_H__ */
|
||||
|
||||
@@ -84,6 +84,15 @@ do { \
|
||||
&_name##_gate.hw, &clk_gate_ops, \
|
||||
CLK_SET_RATE_NO_REPARENT)
|
||||
|
||||
#define REGISTER_CLK_COM_PARENTS(_name, pnames) \
|
||||
clk_register_composite(NULL, #_name, \
|
||||
pnames##_parent_names, \
|
||||
ARRAY_SIZE(pnames##_parent_names), \
|
||||
&_name##_mux.hw, &clk_mux_ops, \
|
||||
&_name##_div.hw, &clk_divider_ops, \
|
||||
&_name##_gate.hw, &clk_gate_ops, \
|
||||
CLK_SET_RATE_NO_REPARENT)
|
||||
|
||||
struct audio_clk_init {
|
||||
int clk_num;
|
||||
int (*clk_gates)(struct clk **clks, void __iomem *iobase);
|
||||
|
||||
@@ -32,6 +32,11 @@ static const char *const audioclk_parent_names[] = {
|
||||
"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"};
|
||||
|
||||
static const char *const mclk_pad_parent_names[] = {
|
||||
"mclk_a", "mclk_b", "mclk_c",
|
||||
"mclk_d", "mclk_e", "mclk_f"
|
||||
};
|
||||
|
||||
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);
|
||||
@@ -192,6 +197,15 @@ CLOCK_COM_GATE(mclk_d, AUD_ADDR_OFFSET(EE_AUDIO_MCLK_D_CTRL(1)), 31);
|
||||
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_pad0 */
|
||||
CLOCK_COM_MUX(mclk_pad0, AUD_ADDR_OFFSET(EE_AUDIO_MST_PAD_CTRL0(1)), 0x7, 8);
|
||||
CLOCK_COM_DIV(mclk_pad0, AUD_ADDR_OFFSET(EE_AUDIO_MST_PAD_CTRL0(1)), 0, 8);
|
||||
CLOCK_COM_GATE(mclk_pad0, AUD_ADDR_OFFSET(EE_AUDIO_MST_PAD_CTRL0(1)), 15);
|
||||
/* mclk_pad1 */
|
||||
CLOCK_COM_MUX(mclk_pad1, AUD_ADDR_OFFSET(EE_AUDIO_MST_PAD_CTRL0(1)), 0x7, 24);
|
||||
CLOCK_COM_DIV(mclk_pad1, AUD_ADDR_OFFSET(EE_AUDIO_MST_PAD_CTRL0(1)), 16, 8);
|
||||
CLOCK_COM_GATE(mclk_pad1, AUD_ADDR_OFFSET(EE_AUDIO_MST_PAD_CTRL0(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);
|
||||
@@ -367,6 +381,16 @@ static int sm1_clks_init(struct clk **clks, void __iomem *iobase)
|
||||
clks[CLKID_EARCRX_DMAC] = REGISTER_CLK_COM(earcrx_dmac);
|
||||
WARN_ON(IS_ERR_OR_NULL(clks[CLKID_EARCRX_DMAC]));
|
||||
|
||||
IOMAP_COM_CLK(mclk_pad0, iobase);
|
||||
clks[CLKID_AUDIO_MCLK_PAD0] =
|
||||
REGISTER_CLK_COM_PARENTS(mclk_pad0, mclk_pad);
|
||||
WARN_ON(IS_ERR_OR_NULL(clks[CLKID_AUDIO_MCLK_PAD0]));
|
||||
|
||||
IOMAP_COM_CLK(mclk_pad1, iobase);
|
||||
clks[CLKID_AUDIO_MCLK_PAD1] =
|
||||
REGISTER_CLK_COM_PARENTS(mclk_pad1, mclk_pad);
|
||||
WARN_ON(IS_ERR_OR_NULL(clks[CLKID_AUDIO_MCLK_PAD1]));
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
@@ -85,6 +85,8 @@ struct aml_tdm {
|
||||
struct clk *clk;
|
||||
struct clk *clk_gate;
|
||||
struct clk *mclk;
|
||||
/* mclk mux out to pad */
|
||||
struct clk *mclk2pad;
|
||||
struct clk *samesrc_srcpll;
|
||||
struct clk *samesrc_clk;
|
||||
bool contns_clk;
|
||||
@@ -909,12 +911,17 @@ static int aml_tdm_set_clk_pad(struct aml_tdm *p_tdm)
|
||||
if (p_tdm->chipinfo && (!p_tdm->chipinfo->mclkpad_no_offset))
|
||||
mpad_offset = 1;
|
||||
|
||||
aml_tdm_clk_pad_select(p_tdm->actrl,
|
||||
p_tdm->mclk_pad,
|
||||
mpad_offset,
|
||||
p_tdm->id,
|
||||
p_tdm->id,
|
||||
p_tdm->clk_sel);
|
||||
if (p_tdm->mclk_pad >= 0) {
|
||||
aml_tdm_mclk_pad_select(p_tdm->actrl,
|
||||
p_tdm->mclk_pad,
|
||||
mpad_offset,
|
||||
p_tdm->clk_sel);
|
||||
}
|
||||
|
||||
aml_tdm_sclk_pad_select(p_tdm->actrl,
|
||||
mpad_offset,
|
||||
p_tdm->id,
|
||||
p_tdm->id);
|
||||
|
||||
return 0;
|
||||
}
|
||||
@@ -1659,7 +1666,7 @@ static int aml_tdm_platform_probe(struct platform_device *pdev)
|
||||
ret = of_parse_tdm_lane_slot_out(node,
|
||||
&p_tdm->setting.lane_mask_out);
|
||||
if (ret < 0)
|
||||
p_tdm->setting.lane_mask_out = 0x0;
|
||||
p_tdm->setting.lane_mask_out = 0x1;
|
||||
|
||||
/* get tdm lanes oe info. if not, set to default 0 */
|
||||
ret = of_parse_tdm_lane_oe_slot_in(node,
|
||||
@@ -1701,6 +1708,28 @@ static int aml_tdm_platform_probe(struct platform_device *pdev)
|
||||
return ret;
|
||||
}
|
||||
|
||||
/* clk tree style after SM1, instead of legacy prop */
|
||||
p_tdm->mclk2pad = devm_clk_get(&pdev->dev, "mclk_pad");
|
||||
if (!IS_ERR(p_tdm->mclk2pad)) {
|
||||
ret = clk_set_parent(p_tdm->mclk2pad, p_tdm->mclk);
|
||||
if (ret) {
|
||||
dev_err(&pdev->dev, "Can't set tdm mclk_pad parent\n");
|
||||
return -EINVAL;
|
||||
}
|
||||
clk_prepare_enable(p_tdm->mclk2pad);
|
||||
p_tdm->mclk_pad = -1;
|
||||
} else {
|
||||
/* mclk pad ctrl */
|
||||
ret = of_property_read_u32(node, "mclk_pad",
|
||||
&p_tdm->mclk_pad);
|
||||
if (ret < 0) {
|
||||
/* No mclk in defalut if chip needs mclk pad mux. */
|
||||
p_tdm->mclk_pad = -1;
|
||||
dev_warn_once(&pdev->dev,
|
||||
"neither mclk_pad nor mclk2pad set\n");
|
||||
}
|
||||
}
|
||||
|
||||
/* complete mclk for tdm */
|
||||
if (get_meson_cpu_version(MESON_CPU_VERSION_LVL_MINOR) == 0xa)
|
||||
meson_clk_measure((1<<16) | 0x67);
|
||||
@@ -1723,12 +1752,6 @@ static int aml_tdm_platform_probe(struct platform_device *pdev)
|
||||
if (p_tdm->start_clk_enable == 1)
|
||||
aml_set_default_tdm_clk(p_tdm);
|
||||
|
||||
/* mclk pad ctrl */
|
||||
ret = of_property_read_u32(node, "mclk_pad",
|
||||
&p_tdm->mclk_pad);
|
||||
if (ret < 0)
|
||||
p_tdm->mclk_pad = -1; /* not use mclk in defalut. */
|
||||
|
||||
p_tdm->dev = dev;
|
||||
/* For debug to disable share buffer */
|
||||
p_tdm->en_share = 1;
|
||||
|
||||
@@ -705,39 +705,40 @@ void aml_tdmout_enable_gain(int tdmout_id, int en)
|
||||
audiobus_update_bits(reg, 0x1 << 26, !!en << 26);
|
||||
}
|
||||
|
||||
void aml_tdm_clk_pad_select(
|
||||
struct aml_audio_controller *actrl,
|
||||
int mpad, int mpad_offset, int mclk_sel,
|
||||
int tdm_index, int clk_sel)
|
||||
void aml_tdm_mclk_pad_select(struct aml_audio_controller *actrl,
|
||||
int mpad, int mpad_offset, int mclk_sel)
|
||||
{
|
||||
unsigned int reg, mask_offset, val_offset;
|
||||
|
||||
if (mpad >= 0) {
|
||||
switch (mpad) {
|
||||
case 0:
|
||||
mask_offset = 0x7 << 0;
|
||||
val_offset = mclk_sel << 0;
|
||||
break;
|
||||
case 1:
|
||||
mask_offset = 0x7 << 4;
|
||||
val_offset = mclk_sel << 4;
|
||||
break;
|
||||
default:
|
||||
mask_offset = 0;
|
||||
val_offset = 0;
|
||||
pr_info("unknown tdm mpad:%d\n", mpad);
|
||||
break;
|
||||
}
|
||||
switch (mpad) {
|
||||
case 0:
|
||||
mask_offset = 0x7 << 0;
|
||||
val_offset = mclk_sel << 0;
|
||||
break;
|
||||
case 1:
|
||||
mask_offset = 0x7 << 4;
|
||||
val_offset = mclk_sel << 4;
|
||||
break;
|
||||
default:
|
||||
mask_offset = 0x7 << 4;
|
||||
val_offset = 0;
|
||||
pr_info("unknown tdm mpad:%d\n", mpad);
|
||||
break;
|
||||
}
|
||||
|
||||
reg = EE_AUDIO_MST_PAD_CTRL0(mpad_offset);
|
||||
if (actrl)
|
||||
aml_audiobus_update_bits(actrl, reg,
|
||||
mask_offset, val_offset);
|
||||
else
|
||||
audiobus_update_bits(reg,
|
||||
mask_offset, val_offset);
|
||||
} else
|
||||
pr_warn("mclk is not configured\n");
|
||||
reg = EE_AUDIO_MST_PAD_CTRL0(mpad_offset);
|
||||
if (actrl)
|
||||
aml_audiobus_update_bits(actrl, reg,
|
||||
mask_offset, val_offset);
|
||||
else
|
||||
audiobus_update_bits(reg,
|
||||
mask_offset, val_offset);
|
||||
}
|
||||
|
||||
void aml_tdm_sclk_pad_select(struct aml_audio_controller *actrl,
|
||||
int mpad_offset, int tdm_index, int clk_sel)
|
||||
{
|
||||
unsigned int reg, mask_offset, val_offset;
|
||||
|
||||
reg = EE_AUDIO_MST_PAD_CTRL1(mpad_offset);
|
||||
switch (tdm_index) {
|
||||
|
||||
@@ -150,6 +150,10 @@ extern void aml_tdm_clk_pad_select(
|
||||
struct aml_audio_controller *actrl,
|
||||
int mpad, int mpad_offset, int mclk_sel,
|
||||
int tdm_index, int clk_sel);
|
||||
void aml_tdm_mclk_pad_select(struct aml_audio_controller *actrl,
|
||||
int mpad, int mpad_offset, int mclk_sel);
|
||||
void aml_tdm_sclk_pad_select(struct aml_audio_controller *actrl,
|
||||
int mpad_offset, int tdm_index, int clk_sel);
|
||||
|
||||
extern void i2s_to_hdmitx_ctrl(int tdm_index);
|
||||
void aml_tdm_mute_playback(
|
||||
|
||||
@@ -32,6 +32,11 @@ static const char *const audioclk_parent_names[] = {
|
||||
"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"};
|
||||
|
||||
static const char *const mclk_pad_parent_names[] = {
|
||||
"mclk_a", "mclk_b", "mclk_c",
|
||||
"mclk_d", "mclk_e", "mclk_f"
|
||||
};
|
||||
|
||||
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);
|
||||
@@ -212,6 +217,15 @@ CLOCK_COM_GATE(mclk_e, AUD_ADDR_OFFSET(EE_AUDIO_MCLK_E_CTRL(1)), 31);
|
||||
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);
|
||||
/* mclk_pad0 */
|
||||
CLOCK_COM_MUX(mclk_pad0, AUD_ADDR_OFFSET(EE_AUDIO_MST_PAD_CTRL0(1)), 0x7, 8);
|
||||
CLOCK_COM_DIV(mclk_pad0, AUD_ADDR_OFFSET(EE_AUDIO_MST_PAD_CTRL0(1)), 0, 8);
|
||||
CLOCK_COM_GATE(mclk_pad0, AUD_ADDR_OFFSET(EE_AUDIO_MST_PAD_CTRL0(1)), 15);
|
||||
/* mclk_pad1 */
|
||||
CLOCK_COM_MUX(mclk_pad1, AUD_ADDR_OFFSET(EE_AUDIO_MST_PAD_CTRL0(1)), 0x7, 24);
|
||||
CLOCK_COM_DIV(mclk_pad1, AUD_ADDR_OFFSET(EE_AUDIO_MST_PAD_CTRL0(1)), 16, 8);
|
||||
CLOCK_COM_GATE(mclk_pad1, AUD_ADDR_OFFSET(EE_AUDIO_MST_PAD_CTRL0(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);
|
||||
@@ -383,6 +397,16 @@ static int tm2_clks_init(struct clk **clks, void __iomem *iobase)
|
||||
clks[CLKID_EARCRX_DMAC] = REGISTER_CLK_COM(earcrx_dmac);
|
||||
WARN_ON(IS_ERR_OR_NULL(clks[CLKID_EARCRX_DMAC]));
|
||||
|
||||
IOMAP_COM_CLK(mclk_pad0, iobase);
|
||||
clks[CLKID_AUDIO_MCLK_PAD0] =
|
||||
REGISTER_CLK_COM_PARENTS(mclk_pad0, mclk_pad);
|
||||
WARN_ON(IS_ERR_OR_NULL(clks[CLKID_AUDIO_MCLK_PAD0]));
|
||||
|
||||
IOMAP_COM_CLK(mclk_pad1, iobase);
|
||||
clks[CLKID_AUDIO_MCLK_PAD1] =
|
||||
REGISTER_CLK_COM_PARENTS(mclk_pad1, mclk_pad);
|
||||
WARN_ON(IS_ERR_OR_NULL(clks[CLKID_AUDIO_MCLK_PAD1]));
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user