Lines Matching +full:fifo +full:- +full:depth +full:- +full:bits
1 // SPDX-License-Identifier: (GPL-2.0 OR MIT)
14 #include <sound/soc-dai.h>
16 #include "axg-fifo.h"
38 struct axg_fifo *fifo = snd_soc_dai_get_drvdata(dai); in axg_toddr_dai_hw_params() local
50 type = 0; /* 8 samples of 8 bits */ in axg_toddr_dai_hw_params()
53 type = 2; /* 4 samples of 16 bits - right justified */ in axg_toddr_dai_hw_params()
56 type = 4; /* 2 samples of 32 bits - right justified */ in axg_toddr_dai_hw_params()
59 return -EINVAL; in axg_toddr_dai_hw_params()
64 regmap_update_bits(fifo->map, FIFO_CTRL0, in axg_toddr_dai_hw_params()
70 CTRL0_TODDR_LSB_POS(msb - (width - 1))); in axg_toddr_dai_hw_params()
78 struct axg_fifo *fifo = snd_soc_dai_get_drvdata(dai); in axg_toddr_dai_startup() local
82 /* Enable pclk to access registers and clock the fifo ip */ in axg_toddr_dai_startup()
83 ret = clk_prepare_enable(fifo->pclk); in axg_toddr_dai_startup()
87 /* Select orginal data - resampling not supported ATM */ in axg_toddr_dai_startup()
88 regmap_update_bits(fifo->map, FIFO_CTRL0, CTRL0_TODDR_SEL_RESAMPLE, 0); in axg_toddr_dai_startup()
91 regmap_update_bits(fifo->map, FIFO_CTRL0, CTRL0_TODDR_EXT_SIGNED, in axg_toddr_dai_startup()
95 regmap_update_bits(fifo->map, FIFO_CTRL0, CTRL0_TODDR_PP_MODE, 0); in axg_toddr_dai_startup()
97 /* TODDR does not have a configurable fifo depth */ in axg_toddr_dai_startup()
98 fifo_threshold = AXG_FIFO_MIN_CNT - 1; in axg_toddr_dai_startup()
99 regmap_update_bits(fifo->map, FIFO_CTRL1, CTRL1_THRESHOLD_MASK, in axg_toddr_dai_startup()
108 struct axg_fifo *fifo = snd_soc_dai_get_drvdata(dai); in axg_toddr_dai_shutdown() local
110 clk_disable_unprepare(fifo->pclk); in axg_toddr_dai_shutdown()
182 .compatible = "amlogic,axg-toddr",
191 .name = "axg-toddr",
197 MODULE_DESCRIPTION("Amlogic AXG capture fifo driver");