diff options
author | Moise Gergaud <moise.gergaud@st.com> | 2016-04-07 11:25:32 +0200 |
---|---|---|
committer | Mark Brown <broonie@kernel.org> | 2016-04-12 02:58:59 +0100 |
commit | 9a00a3e9fea1ea5affa7bea971299d3a5832daad (patch) | |
tree | f9a8c0baf0a04529fe484200ed05d01228be070c /sound | |
parent | 5295a0dc31d5261ff64406ece25e8d9e91530d2e (diff) | |
download | linux-9a00a3e9fea1ea5affa7bea971299d3a5832daad.tar.gz linux-9a00a3e9fea1ea5affa7bea971299d3a5832daad.tar.bz2 linux-9a00a3e9fea1ea5affa7bea971299d3a5832daad.zip |
ASoC: sti: define tdm type & default tdm hw config
Signed-off-by: Moise Gergaud <moise.gergaud@st.com>
Acked-by: Arnaud Pouliquen <arnaud.pouliquen@st.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
Diffstat (limited to 'sound')
-rw-r--r-- | sound/soc/sti/uniperif.h | 28 |
1 files changed, 27 insertions, 1 deletions
diff --git a/sound/soc/sti/uniperif.h b/sound/soc/sti/uniperif.h index 75116ab3cbc0..750eb5a07e6c 100644 --- a/sound/soc/sti/uniperif.h +++ b/sound/soc/sti/uniperif.h @@ -1228,6 +1228,9 @@ #define UNIPERIF_TYPE_IS_IEC958(p) \ (UNIPERIF_TYPE_IS_HDMI(p) || \ UNIPERIF_TYPE_IS_SPDIF(p)) +#define UNIPERIF_TYPE_IS_TDM(p) \ + ((p)->info->type == SND_ST_UNIPERIF_TYPE_TDM) + /* * Uniperipheral IP revisions */ @@ -1249,7 +1252,8 @@ enum uniperif_type { SND_ST_UNIPERIF_TYPE_NONE, SND_ST_UNIPERIF_TYPE_HDMI, SND_ST_UNIPERIF_TYPE_PCM, - SND_ST_UNIPERIF_TYPE_SPDIF + SND_ST_UNIPERIF_TYPE_SPDIF, + SND_ST_UNIPERIF_TYPE_TDM }; enum uniperif_state { @@ -1330,6 +1334,28 @@ struct sti_uniperiph_data { struct sti_uniperiph_dai dai_data; }; +static const struct snd_pcm_hardware uni_tdm_hw = { + .info = SNDRV_PCM_INFO_INTERLEAVED | SNDRV_PCM_INFO_BLOCK_TRANSFER | + SNDRV_PCM_INFO_PAUSE | SNDRV_PCM_INFO_MMAP | + SNDRV_PCM_INFO_MMAP_VALID, + + .formats = SNDRV_PCM_FMTBIT_S32_LE | SNDRV_PCM_FMTBIT_S16_LE, + + .rates = SNDRV_PCM_RATE_CONTINUOUS, + .rate_min = 8000, + .rate_max = 48000, + + .channels_min = 1, + .channels_max = 32, + + .periods_min = 2, + .periods_max = 10, + + .period_bytes_min = 128, + .period_bytes_max = 64 * PAGE_SIZE, + .buffer_bytes_max = 256 * PAGE_SIZE +}; + /* uniperiph player*/ int uni_player_init(struct platform_device *pdev, struct uniperif *uni_player); |