Skip to content

Commit bde458b

Browse files
Shuai Liakiernan
authored andcommitted
audio: optimize DDR fifo management
PD#150616: optimize audio DDR FIFO management driver. Previously, we need to set DDR num and DDR IRQ number in each audio devices. This commit add one DDR manager which manipulate all the ddr num and irq stuffs. Make other audio driver easy to use it by simple interface. Change-Id: Ie9688e651a4eff6fd4135811c50aa343e89580fe Signed-off-by: Shuai Li <[email protected]>
1 parent f24afe3 commit bde458b

File tree

18 files changed

+237
-453
lines changed

18 files changed

+237
-453
lines changed

arch/arm64/boot/dts/amlogic/axg_a113d_skt.dts

Lines changed: 2 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -762,16 +762,10 @@
762762
#sound-dai-cells = <0>;
763763
dai-tdm-lane-slot-mask = <1>;
764764
dai-tdm-clk-sel = <0>;
765-
tdm_from_ddr = <0>;
766-
tdm_to_ddr = <0>;
767765
clocks = <&clkc CLKID_MPLL0>;
768766
//&clkaudio CLKID_AUDIO_TDMOUTA
769767
//&clkaudio CLKID_AUDIO_MCLK_A>;
770768
clock-names = "mpll0", "gate", "mclk";
771-
interrupts =
772-
<GIC_SPI 84 IRQ_TYPE_EDGE_RISING
773-
GIC_SPI 88 IRQ_TYPE_EDGE_RISING>;
774-
interrupt-names = "tdmin", "tdmout";
775769
pinctrl-names = "tdm_pins";
776770
pinctrl-0 = <&tdmout_a &tdmin_a>;
777771
};
@@ -781,14 +775,8 @@
781775
#sound-dai-cells = <0>;
782776
dai-tdm-lane-slot-mask = <1 1 1 1>;
783777
dai-tdm-clk-sel = <1>;
784-
tdm_from_ddr = <1>;
785-
tdm_to_ddr = <1>;
786778
clocks = <&clkc CLKID_MPLL1>;
787779
clock-names = "mpll1";
788-
interrupts =
789-
<GIC_SPI 85 IRQ_TYPE_EDGE_RISING
790-
GIC_SPI 89 IRQ_TYPE_EDGE_RISING>;
791-
interrupt-names = "tdmin", "tdmout";
792780
pinctrl-names = "tdm_pins";
793781
pinctrl-0 = <&tdmb_mclk &tdmout_b>;
794782
};
@@ -799,23 +787,15 @@
799787
dai-tdm-lane-slot-mask-in = <0 1 0 0>;
800788
dai-tdm-lane-slot-mask-out = <1 0 1 1>;
801789
dai-tdm-clk-sel = <2>;
802-
tdm_from_ddr = <2>;
803-
tdm_to_ddr = <2>;
804790
clocks = <&clkc CLKID_MPLL2>;
805791
clock-names = "mpll2";
806-
interrupts =
807-
<GIC_SPI 86 IRQ_TYPE_EDGE_RISING
808-
GIC_SPI 90 IRQ_TYPE_EDGE_RISING>;
809-
interrupt-names = "tdmin", "tdmout";
810792
pinctrl-names = "tdm_pins";
811793
pinctrl-0 = <&tdmc_mclk &tdmout_c>;// &tdmin_c>;
812794
};
813795

814796
aml_spdif: spdif {
815797
compatible = "amlogic, snd-spdif";
816798
#sound-dai-cells = <0>;
817-
spdif_from_ddr = <0>;
818-
spdif_to_ddr = <0>;
819799
clocks = <&clkc CLKID_MPLL0
820800
&clkc CLKID_FCLK_DIV4
821801
&clkaudio CLKID_AUDIO_SPDIFIN
@@ -825,26 +805,21 @@
825805
clock-names = "sysclk", "fixed_clk", "gate_spdifin",
826806
"gate_spdifout", "clk_spdifin", "clk_spdifout";
827807
interrupts =
828-
<GIC_SPI 87 IRQ_TYPE_EDGE_RISING
829-
GIC_SPI 84 IRQ_TYPE_EDGE_RISING
830-
GIC_SPI 88 IRQ_TYPE_EDGE_RISING>;
808+
<GIC_SPI 87 IRQ_TYPE_EDGE_RISING>;
831809

832-
interrupt-names = "irq_spdifin", "irq_toddr", "irq_frddr";
810+
interrupt-names = "irq_spdifin";
833811
pinctrl-names = "spdif_pins";
834812
pinctrl-0 = <&spdifout &spdifin>;
835813
status = "okay";
836814
};
837815
aml_pdm: pdm {
838816
compatible = "amlogic, snd-pdm";
839817
#sound-dai-cells = <0>;
840-
to_ddr = <2>;
841818
clocks = <&clkaudio CLKID_AUDIO_PDM
842819
&clkc CLKID_MPLL3
843820
&clkaudio CLKID_AUDIO_PDMIN0
844821
&clkaudio CLKID_AUDIO_PDMIN1>;
845822
clock-names = "gate", "pll_clk", "pdm_dclk", "pdm_sysclk";
846-
interrupts = <GIC_SPI 86 IRQ_TYPE_EDGE_RISING>;
847-
interrupt-names = "pdmin_irq";
848823
pinctrl-names = "pdm_pins";
849824
pinctrl-0 = <&pdmin>;
850825
filter_mode = <1>; /* mode 0~4, defalut:1 */

arch/arm64/boot/dts/amlogic/axg_a113x_skt.dts

Lines changed: 2 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -762,16 +762,10 @@
762762
dai-tdm-lane-slot-mask = <1 1 1 1>;
763763
/* select tdm lr/bclk src, see aml_axg_tdm.c */
764764
dai-tdm-clk-sel = <0>;
765-
tdm_from_ddr = <0>;
766-
tdm_to_ddr = <0>;
767765
clocks = <&clkc CLKID_MPLL0>;
768766
//&clkaudio CLKID_AUDIO_TDMOUTA
769767
//&clkaudio CLKID_AUDIO_MCLK_A>;
770768
clock-names = "mpll0", "gate", "mclk";
771-
interrupts =
772-
<GIC_SPI 84 IRQ_TYPE_EDGE_RISING
773-
GIC_SPI 88 IRQ_TYPE_EDGE_RISING>;
774-
interrupt-names = "tdmin", "tdmout";
775769
pinctrl-names = "tdm_pins";
776770
pinctrl-0 = <&tdmin_a &tdmout_a>;
777771
};
@@ -782,14 +776,8 @@
782776
dai-tdm-lane-slot-mask-out = <1 0>;
783777
dai-tdm-lane-slot-mask-in = <0 1>;
784778
dai-tdm-clk-sel = <2>;
785-
tdm_from_ddr = <1>;
786-
tdm_to_ddr = <1>;
787779
clocks = <&clkc CLKID_MPLL1>;
788780
clock-names = "mpll1";
789-
interrupts =
790-
<GIC_SPI 85 IRQ_TYPE_EDGE_RISING
791-
GIC_SPI 89 IRQ_TYPE_EDGE_RISING>;
792-
interrupt-names = "tdmin", "tdmout";
793781
pinctrl-names = "tdm_pins";
794782
pinctrl-0 = <&tdmb_mclk &tdmout_b &tdmin_b>;
795783
};
@@ -800,23 +788,15 @@
800788
dai-tdm-lane-slot-mask-out = <1 0>;
801789
dai-tdm-lane-slot-mask-in = <0 1>;
802790
dai-tdm-clk-sel = <2>;
803-
tdm_from_ddr = <2>;
804-
tdm_to_ddr = <2>;
805791
clocks = <&clkc CLKID_MPLL2>;
806792
clock-names = "mpll2";
807-
interrupts =
808-
<GIC_SPI 86 IRQ_TYPE_EDGE_RISING
809-
GIC_SPI 90 IRQ_TYPE_EDGE_RISING>;
810-
interrupt-names = "tdmin", "tdmout";
811793
pinctrl-names = "tdm_pins";
812794
pinctrl-0 = <&tdmc_mclk &tdmout_c &tdmin_c>;
813795
};
814796

815797
aml_spdif: spdif {
816798
compatible = "amlogic, snd-spdif";
817799
#sound-dai-cells = <0>;
818-
spdif_from_ddr = <0>;
819-
spdif_to_ddr = <0>;
820800
clocks = <&clkc CLKID_MPLL0
821801
&clkc CLKID_FCLK_DIV4
822802
&clkaudio CLKID_AUDIO_SPDIFIN
@@ -826,11 +806,9 @@
826806
clock-names = "sysclk", "fixed_clk", "gate_spdifin",
827807
"gate_spdifout", "clk_spdifin", "clk_spdifout";
828808
interrupts =
829-
<GIC_SPI 87 IRQ_TYPE_EDGE_RISING
830-
GIC_SPI 84 IRQ_TYPE_EDGE_RISING
831-
GIC_SPI 88 IRQ_TYPE_EDGE_RISING>;
809+
<GIC_SPI 87 IRQ_TYPE_EDGE_RISING>;
832810

833-
interrupt-names = "irq_spdifin", "irq_toddr", "irq_frddr";
811+
interrupt-names = "irq_spdifin";
834812
pinctrl-names = "spdif_pins";
835813
pinctrl-0 = <&spdifout &spdifin>;
836814
status = "disabled";
@@ -839,14 +817,11 @@
839817
aml_pdm: pdm {
840818
compatible = "amlogic, snd-pdm";
841819
#sound-dai-cells = <0>;
842-
to_ddr = <2>;
843820
clocks = <&clkaudio CLKID_AUDIO_PDM
844821
&clkc CLKID_MPLL3
845822
&clkaudio CLKID_AUDIO_PDMIN0
846823
&clkaudio CLKID_AUDIO_PDMIN1>;
847824
clock-names = "gate", "pll_clk", "pdm_dclk", "pdm_sysclk";
848-
interrupts = <GIC_SPI 86 IRQ_TYPE_EDGE_RISING>;
849-
interrupt-names = "pdmin_irq";
850825
pinctrl-names = "pdm_pins";
851826
pinctrl-0 = <&pdmin>;
852827
filter_mode = <1>; /* mode 0~4, defalut:1 */

arch/arm64/boot/dts/amlogic/axg_s400.dts

Lines changed: 2 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -935,16 +935,10 @@
935935
dai-tdm-lane-slot-mask-in = <1 0>;
936936
dai-tdm-lane-slot-mask-out = <0 1>;
937937
dai-tdm-clk-sel = <0>;
938-
tdm_from_ddr = <0>;
939-
tdm_to_ddr = <0>;
940938
clocks = <&clkc CLKID_MPLL0>;
941939
//&clkaudio CLKID_AUDIO_TDMOUTA
942940
//&clkaudio CLKID_AUDIO_MCLK_A>;
943941
clock-names = "mpll0", "gate", "mclk";
944-
interrupts =
945-
<GIC_SPI 84 IRQ_TYPE_EDGE_RISING
946-
GIC_SPI 88 IRQ_TYPE_EDGE_RISING>;
947-
interrupt-names = "tdmin", "tdmout";
948942
pinctrl-names = "tdm_pins";
949943
pinctrl-0 = <&tdmout_a &tdmin_a &tdmout_a_data>;
950944
};
@@ -954,14 +948,8 @@
954948
#sound-dai-cells = <0>;
955949
dai-tdm-lane-slot-mask-in = <1 1 1 1>;
956950
dai-tdm-clk-sel = <1>;
957-
tdm_from_ddr = <1>;
958-
tdm_to_ddr = <1>;
959951
clocks = <&clkc CLKID_MPLL1>;
960952
clock-names = "mpll1";
961-
interrupts =
962-
<GIC_SPI 85 IRQ_TYPE_EDGE_RISING
963-
GIC_SPI 89 IRQ_TYPE_EDGE_RISING>;
964-
interrupt-names = "tdmin", "tdmout";
965953
pinctrl-names = "tdm_pins";
966954
pinctrl-0 = <&tdmb_mclk &tdmout_b &tdmin_b>;
967955
};
@@ -972,23 +960,15 @@
972960
dai-tdm-lane-slot-mask-in = <0 1 0 0>;
973961
dai-tdm-lane-slot-mask-out = <1 0 1 1>;
974962
dai-tdm-clk-sel = <2>;
975-
tdm_from_ddr = <2>;
976-
tdm_to_ddr = <2>;
977963
clocks = <&clkc CLKID_MPLL2>;
978964
clock-names = "mpll2";
979-
interrupts =
980-
<GIC_SPI 86 IRQ_TYPE_EDGE_RISING
981-
GIC_SPI 90 IRQ_TYPE_EDGE_RISING>;
982-
interrupt-names = "tdmin", "tdmout";
983965
pinctrl-names = "tdm_pins";
984966
pinctrl-0 = <&tdmc_mclk &tdmout_c &tdmin_c>;
985967
};
986968

987969
aml_spdif: spdif {
988970
compatible = "amlogic, snd-spdif";
989971
#sound-dai-cells = <0>;
990-
spdif_from_ddr = <0>;
991-
spdif_to_ddr = <0>;
992972
clocks = <&clkc CLKID_MPLL0
993973
&clkc CLKID_FCLK_DIV4
994974
&clkaudio CLKID_AUDIO_SPDIFIN
@@ -998,26 +978,21 @@
998978
clock-names = "sysclk", "fixed_clk", "gate_spdifin",
999979
"gate_spdifout", "clk_spdifin", "clk_spdifout";
1000980
interrupts =
1001-
<GIC_SPI 87 IRQ_TYPE_EDGE_RISING
1002-
GIC_SPI 84 IRQ_TYPE_EDGE_RISING
1003-
GIC_SPI 88 IRQ_TYPE_EDGE_RISING>;
981+
<GIC_SPI 87 IRQ_TYPE_EDGE_RISING>;
1004982

1005-
interrupt-names = "irq_spdifin", "irq_toddr", "irq_frddr";
983+
interrupt-names = "irq_spdifin";
1006984
pinctrl-names = "spdif_pins";
1007985
pinctrl-0 = <&spdifout &spdifin>;
1008986
status = "okay";
1009987
};
1010988
aml_pdm: pdm {
1011989
compatible = "amlogic, snd-pdm";
1012990
#sound-dai-cells = <0>;
1013-
to_ddr = <2>;
1014991
clocks = <&clkaudio CLKID_AUDIO_PDM
1015992
&clkc CLKID_MPLL3
1016993
&clkaudio CLKID_AUDIO_PDMIN0
1017994
&clkaudio CLKID_AUDIO_PDMIN1>;
1018995
clock-names = "gate", "pll_clk", "pdm_dclk", "pdm_sysclk";
1019-
interrupts = <GIC_SPI 86 IRQ_TYPE_EDGE_RISING>;
1020-
interrupt-names = "pdmin_irq";
1021996
pinctrl-names = "pdm_pins";
1022997
pinctrl-0 = <&pdmin>;
1023998
filter_mode = <1>; /* mode 0~4, defalut:1 */

arch/arm64/boot/dts/amlogic/axg_s400_v03.dts

Lines changed: 2 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -935,16 +935,10 @@
935935
dai-tdm-lane-slot-mask-in = <1 0>;
936936
dai-tdm-lane-slot-mask-out = <0 1>;
937937
dai-tdm-clk-sel = <0>;
938-
tdm_from_ddr = <0>;
939-
tdm_to_ddr = <0>;
940938
clocks = <&clkc CLKID_MPLL0>;
941939
//&clkaudio CLKID_AUDIO_TDMOUTA
942940
//&clkaudio CLKID_AUDIO_MCLK_A>;
943941
clock-names = "mpll0", "gate", "mclk";
944-
interrupts =
945-
<GIC_SPI 84 IRQ_TYPE_EDGE_RISING
946-
GIC_SPI 88 IRQ_TYPE_EDGE_RISING>;
947-
interrupt-names = "tdmin", "tdmout";
948942
pinctrl-names = "tdm_pins";
949943
pinctrl-0 = <&tdmout_a &tdmin_a &tdmout_a_data>;
950944
};
@@ -955,14 +949,8 @@
955949
/*dai-tdm-lane-slot-mask-in = <1 1 1 1>;*/
956950
dai-tdm-lane-slot-mask-in = <0 0 0 1>;
957951
dai-tdm-clk-sel = <1>;
958-
tdm_from_ddr = <1>;
959-
tdm_to_ddr = <1>;
960952
clocks = <&clkc CLKID_MPLL1>;
961953
clock-names = "mpll1";
962-
interrupts =
963-
<GIC_SPI 85 IRQ_TYPE_EDGE_RISING
964-
GIC_SPI 89 IRQ_TYPE_EDGE_RISING>;
965-
interrupt-names = "tdmin", "tdmout";
966954
pinctrl-names = "tdm_pins";
967955
pinctrl-0 = <&tdmb_mclk &tdmout_b &tdmin_b>;
968956
};
@@ -973,23 +961,15 @@
973961
dai-tdm-lane-slot-mask-in = <0 1 0 0>;
974962
dai-tdm-lane-slot-mask-out = <0 0 1 1>;
975963
dai-tdm-clk-sel = <2>;
976-
tdm_from_ddr = <2>;
977-
tdm_to_ddr = <2>;
978964
clocks = <&clkc CLKID_MPLL2>;
979965
clock-names = "mpll2";
980-
interrupts =
981-
<GIC_SPI 86 IRQ_TYPE_EDGE_RISING
982-
GIC_SPI 90 IRQ_TYPE_EDGE_RISING>;
983-
interrupt-names = "tdmin", "tdmout";
984966
pinctrl-names = "tdm_pins";
985967
pinctrl-0 = <&tdmc_mclk &tdmout_c &tdmin_c>;
986968
};
987969

988970
aml_spdif: spdif {
989971
compatible = "amlogic, snd-spdif";
990972
#sound-dai-cells = <0>;
991-
spdif_from_ddr = <0>;
992-
spdif_to_ddr = <0>;
993973
clocks = <&clkc CLKID_MPLL0
994974
&clkc CLKID_FCLK_DIV4
995975
&clkaudio CLKID_AUDIO_SPDIFIN
@@ -999,26 +979,21 @@
999979
clock-names = "sysclk", "fixed_clk", "gate_spdifin",
1000980
"gate_spdifout", "clk_spdifin", "clk_spdifout";
1001981
interrupts =
1002-
<GIC_SPI 87 IRQ_TYPE_EDGE_RISING
1003-
GIC_SPI 84 IRQ_TYPE_EDGE_RISING
1004-
GIC_SPI 88 IRQ_TYPE_EDGE_RISING>;
982+
<GIC_SPI 87 IRQ_TYPE_EDGE_RISING>;
1005983

1006-
interrupt-names = "irq_spdifin", "irq_toddr", "irq_frddr";
984+
interrupt-names = "irq_spdifin";
1007985
pinctrl-names = "spdif_pins";
1008986
pinctrl-0 = <&spdifout &spdifin>;
1009987
status = "okay";
1010988
};
1011989
aml_pdm: pdm {
1012990
compatible = "amlogic, snd-pdm";
1013991
#sound-dai-cells = <0>;
1014-
to_ddr = <2>;
1015992
clocks = <&clkaudio CLKID_AUDIO_PDM
1016993
&clkc CLKID_MPLL3
1017994
&clkaudio CLKID_AUDIO_PDMIN0
1018995
&clkaudio CLKID_AUDIO_PDMIN1>;
1019996
clock-names = "gate", "pll_clk", "pdm_dclk", "pdm_sysclk";
1020-
interrupts = <GIC_SPI 86 IRQ_TYPE_EDGE_RISING>;
1021-
interrupt-names = "pdmin_irq";
1022997
pinctrl-names = "pdm_pins";
1023998
pinctrl-0 = <&pdmin>;
1024999
filter_mode = <1>; /* mode 0~4, defalut:1 */

0 commit comments

Comments
 (0)