Commit c5f4823b authored by Zidan Wang's avatar Zidan Wang Committed by Mark Brown

ASoC: fsl_sai: add 12kHz, 24kHz, 176.4kHz and 192kHz sample rate support

Normally we don't support 12kHz, 24kHz in audio driver, alsa didn't
have formal definition of 12kHz, 24kHz, but alsa supply a way to
support these sample rates. And add 176.4kHz and 192kHz support.
Signed-off-by: default avatarZidan Wang <zidan.wang@freescale.com>
Signed-off-by: default avatarMark Brown <broonie@kernel.org>
parent c3ecef21
...@@ -27,6 +27,17 @@ ...@@ -27,6 +27,17 @@
#define FSL_SAI_FLAGS (FSL_SAI_CSR_SEIE |\ #define FSL_SAI_FLAGS (FSL_SAI_CSR_SEIE |\
FSL_SAI_CSR_FEIE) FSL_SAI_CSR_FEIE)
static u32 fsl_sai_rates[] = {
8000, 11025, 12000, 16000, 22050,
24000, 32000, 44100, 48000, 64000,
88200, 96000, 176400, 192000
};
static struct snd_pcm_hw_constraint_list fsl_sai_rate_constraints = {
.count = ARRAY_SIZE(fsl_sai_rates),
.list = fsl_sai_rates,
};
static irqreturn_t fsl_sai_isr(int irq, void *devid) static irqreturn_t fsl_sai_isr(int irq, void *devid)
{ {
struct fsl_sai *sai = (struct fsl_sai *)devid; struct fsl_sai *sai = (struct fsl_sai *)devid;
...@@ -519,7 +530,10 @@ static int fsl_sai_startup(struct snd_pcm_substream *substream, ...@@ -519,7 +530,10 @@ static int fsl_sai_startup(struct snd_pcm_substream *substream,
regmap_update_bits(sai->regmap, FSL_SAI_xCR3(tx), FSL_SAI_CR3_TRCE, regmap_update_bits(sai->regmap, FSL_SAI_xCR3(tx), FSL_SAI_CR3_TRCE,
FSL_SAI_CR3_TRCE); FSL_SAI_CR3_TRCE);
return 0; ret = snd_pcm_hw_constraint_list(substream->runtime, 0,
SNDRV_PCM_HW_PARAM_RATE, &fsl_sai_rate_constraints);
return ret;
} }
static void fsl_sai_shutdown(struct snd_pcm_substream *substream, static void fsl_sai_shutdown(struct snd_pcm_substream *substream,
...@@ -573,14 +587,18 @@ static struct snd_soc_dai_driver fsl_sai_dai = { ...@@ -573,14 +587,18 @@ static struct snd_soc_dai_driver fsl_sai_dai = {
.stream_name = "CPU-Playback", .stream_name = "CPU-Playback",
.channels_min = 1, .channels_min = 1,
.channels_max = 2, .channels_max = 2,
.rates = SNDRV_PCM_RATE_8000_96000, .rate_min = 8000,
.rate_max = 192000,
.rates = SNDRV_PCM_RATE_KNOT,
.formats = FSL_SAI_FORMATS, .formats = FSL_SAI_FORMATS,
}, },
.capture = { .capture = {
.stream_name = "CPU-Capture", .stream_name = "CPU-Capture",
.channels_min = 1, .channels_min = 1,
.channels_max = 2, .channels_max = 2,
.rates = SNDRV_PCM_RATE_8000_96000, .rate_min = 8000,
.rate_max = 192000,
.rates = SNDRV_PCM_RATE_KNOT,
.formats = FSL_SAI_FORMATS, .formats = FSL_SAI_FORMATS,
}, },
.ops = &fsl_sai_pcm_dai_ops, .ops = &fsl_sai_pcm_dai_ops,
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment