Lines Matching +full:clk +full:- +full:output +full:- +full:sel

1 // SPDX-License-Identifier: (GPL-2.0 OR MIT)
11 #include <linux/clk.h>
17 #include <sound/soc-dai.h>
19 #include "axg-fifo.h"
41 regmap_update_bits(fifo->map, FIFO_CTRL1, in g12a_frddr_dai_prepare()
43 regmap_update_bits(fifo->map, FIFO_CTRL1, in g12a_frddr_dai_prepare()
45 regmap_update_bits(fifo->map, FIFO_CTRL1, in g12a_frddr_dai_prepare()
61 depth = min(period, fifo->depth); in axg_frddr_dai_hw_params()
62 val = (depth / AXG_FIFO_BURST) - 1; in axg_frddr_dai_hw_params()
63 regmap_update_bits(fifo->map, FIFO_CTRL1, CTRL1_FRDDR_DEPTH, in axg_frddr_dai_hw_params()
76 ret = clk_prepare_enable(fifo->pclk); in axg_frddr_dai_startup()
81 regmap_update_bits(fifo->map, FIFO_CTRL0, CTRL0_FRDDR_PP_MODE, 0); in axg_frddr_dai_startup()
91 clk_disable_unprepare(fifo->pclk); in axg_frddr_dai_shutdown()
129 SOC_DAPM_ENUM("Output Sink", axg_frddr_sel_enum);
132 SND_SOC_DAPM_DEMUX("SINK SEL", SND_SOC_NOPM, 0, 0,
145 { "SINK SEL", NULL, "Playback" },
146 { "OUT 0", "OUT 0", "SINK SEL" },
147 { "OUT 1", "OUT 1", "SINK SEL" },
148 { "OUT 2", "OUT 2", "SINK SEL" },
149 { "OUT 3", "OUT 3", "SINK SEL" },
150 { "OUT 4", "OUT 4", "SINK SEL" },
151 { "OUT 5", "OUT 5", "SINK SEL" },
152 { "OUT 6", "OUT 6", "SINK SEL" },
153 { "OUT 7", "OUT 7", "SINK SEL" },
206 SOC_DAPM_ENUM("Output Src 1", g12a_frddr_sel1_enum);
208 SOC_DAPM_ENUM("Output Src 2", g12a_frddr_sel2_enum);
210 SOC_DAPM_ENUM("Output Src 3", g12a_frddr_sel3_enum);
232 SND_SOC_DAPM_DEMUX("SINK 1 SEL", SND_SOC_NOPM, 0, 0,
234 SND_SOC_DAPM_DEMUX("SINK 2 SEL", SND_SOC_NOPM, 0, 0,
236 SND_SOC_DAPM_DEMUX("SINK 3 SEL", SND_SOC_NOPM, 0, 0,
255 { "SINK 1 SEL", NULL, "SRC 1 EN" },
256 { "SINK 2 SEL", NULL, "SRC 2 EN" },
257 { "SINK 3 SEL", NULL, "SRC 3 EN" },
258 { "OUT 0", "OUT 0", "SINK 1 SEL" },
259 { "OUT 1", "OUT 1", "SINK 1 SEL" },
260 { "OUT 2", "OUT 2", "SINK 1 SEL" },
261 { "OUT 3", "OUT 3", "SINK 1 SEL" },
262 { "OUT 4", "OUT 4", "SINK 1 SEL" },
263 { "OUT 5", "OUT 5", "SINK 1 SEL" },
264 { "OUT 6", "OUT 6", "SINK 1 SEL" },
265 { "OUT 7", "OUT 7", "SINK 1 SEL" },
266 { "OUT 0", "OUT 0", "SINK 2 SEL" },
267 { "OUT 1", "OUT 1", "SINK 2 SEL" },
268 { "OUT 2", "OUT 2", "SINK 2 SEL" },
269 { "OUT 3", "OUT 3", "SINK 2 SEL" },
270 { "OUT 4", "OUT 4", "SINK 2 SEL" },
271 { "OUT 5", "OUT 5", "SINK 2 SEL" },
272 { "OUT 6", "OUT 6", "SINK 2 SEL" },
273 { "OUT 7", "OUT 7", "SINK 2 SEL" },
274 { "OUT 0", "OUT 0", "SINK 3 SEL" },
275 { "OUT 1", "OUT 1", "SINK 3 SEL" },
276 { "OUT 2", "OUT 2", "SINK 3 SEL" },
277 { "OUT 3", "OUT 3", "SINK 3 SEL" },
278 { "OUT 4", "OUT 4", "SINK 3 SEL" },
279 { "OUT 5", "OUT 5", "SINK 3 SEL" },
280 { "OUT 6", "OUT 6", "SINK 3 SEL" },
281 { "OUT 7", "OUT 7", "SINK 3 SEL" },
304 /* On SM1, the output selection in on CTRL2 */
323 SOC_DAPM_ENUM("Output Src 1", sm1_frddr_sel1_enum);
325 SOC_DAPM_ENUM("Output Src 2", sm1_frddr_sel2_enum);
327 SOC_DAPM_ENUM("Output Src 3", sm1_frddr_sel3_enum);
339 SND_SOC_DAPM_DEMUX("SINK 1 SEL", SND_SOC_NOPM, 0, 0,
341 SND_SOC_DAPM_DEMUX("SINK 2 SEL", SND_SOC_NOPM, 0, 0,
343 SND_SOC_DAPM_DEMUX("SINK 3 SEL", SND_SOC_NOPM, 0, 0,
377 .compatible = "amlogic,axg-frddr",
380 .compatible = "amlogic,g12a-frddr",
383 .compatible = "amlogic,sm1-frddr",
392 .name = "axg-frddr",