Commit 527541f9 authored by Liam Girdwood's avatar Liam Girdwood Committed by Jaroslav Kysela

[ALSA] ASoC DAI capabilities labelling

This patch suggested by Takashi changes the DAI capabilities definitions
in pxa-i2s.c, at91rm9200-i2s.c, wm8731.c, wm8750.c and wm9712.c to use a
label = value style.
Signed-off-by: default avatarLiam Girdwood <liam.girdwood@wolfsonmicro.com>
Signed-off-by: default avatarTakashi Iwai <tiwai@suse.de>
Signed-off-by: default avatarJaroslav Kysela <perex@suse.cz>
parent c07584c8
...@@ -51,24 +51,52 @@ ...@@ -51,24 +51,52 @@
static struct snd_soc_dai_mode at91rm9200_i2s[] = { static struct snd_soc_dai_mode at91rm9200_i2s[] = {
/* 8k: BCLK = (MCLK/10) = (60MHz/50) = 1.2MHz */ /* 8k: BCLK = (MCLK/10) = (60MHz/50) = 1.2MHz */
{ AT91RM9200_I2S_DAIFMT, SND_SOC_DAITDM_LRDW(0,0), {
SNDRV_PCM_FMTBIT_S16_LE, SNDRV_PCM_RATE_8000, AT91RM9200_I2S_DIR, .fmt = AT91RM9200_I2S_DAIFMT,
SND_SOC_DAI_BFS_DIV, 1500, SND_SOC_FSBD(10), (25 << 16 | 74) }, .pcmfmt = SNDRV_PCM_FMTBIT_S16_LE,
.pcmrate = SNDRV_PCM_RATE_8000,
.pcmdir = AT91RM9200_I2S_DIR,
.flags = SND_SOC_DAI_BFS_DIV,
.fs = 1500,
.bfs = SND_SOC_FSBD(10),
.priv = (25 << 16 | 74),
},
/* 16k: BCLK = (MCLK/3) ~= (60MHz/14) = 4.285714MHz */ /* 16k: BCLK = (MCLK/3) ~= (60MHz/14) = 4.285714MHz */
{ AT91RM9200_I2S_DAIFMT, SND_SOC_DAITDM_LRDW(0,0), {
SNDRV_PCM_FMTBIT_S16_LE, SNDRV_PCM_RATE_16000, AT91RM9200_I2S_DIR, .fmt = AT91RM9200_I2S_DAIFMT,
SND_SOC_DAI_BFS_DIV, 750, SND_SOC_FSBD(3) , (7 << 16 | 133) }, .pcmfmt = SNDRV_PCM_FMTBIT_S16_LE,
.pcmrate = SNDRV_PCM_RATE_16000,
.pcmdir = AT91RM9200_I2S_DIR,
.flags = SND_SOC_DAI_BFS_DIV,
.fs = 750,
.bfs = SND_SOC_FSBD(3),
.flags (7 << 16 | 133),
},
/* 24k: BCLK = (MCLK/10) = (60MHz/50) = 1.2MHz */ /* 24k: BCLK = (MCLK/10) = (60MHz/50) = 1.2MHz */
{ AT91RM9200_I2S_DAIFMT, SND_SOC_DAITDM_LRDW(0,0), {
SNDRV_PCM_FMTBIT_S16_LE, SNDRV_PCM_RATE_22050, AT91RM9200_I2S_DIR, .fmt = AT91RM9200_I2S_DAIFMT,
SND_SOC_DAI_BFS_DIV, 500, SND_SOC_FSBD(10), (25 << 16 | 24) }, .pcmfmt = SNDRV_PCM_FMTBIT_S16_LE,
.pcmrate = SNDRV_PCM_RATE_22050,
.pcmdir = AT91RM9200_I2S_DIR,
.flags = SND_SOC_DAI_BFS_DIV,
.fs = 500,
.bfs = SND_SOC_FSBD(10),
.priv = (25 << 16 | 24),
},
/* 48kHz: BCLK = (MCLK/5) ~= (60MHz/26) = 2.3076923MHz */ /* 48kHz: BCLK = (MCLK/5) ~= (60MHz/26) = 2.3076923MHz */
{ AT91RM9200_I2S_DAIFMT, SND_SOC_DAITDM_LRDW(0,0), {
SNDRV_PCM_FMTBIT_S16_LE, SNDRV_PCM_RATE_48000, AT91RM9200_I2S_DIR, .fmt = AT91RM9200_I2S_DAIFMT,
SND_SOC_DAI_BFS_DIV, 250, SND_SOC_FSBD(5), (13 << 16 | 23) }, .pcmfmt = SNDRV_PCM_FMTBIT_S16_LE,
.pcmrate = SNDRV_PCM_RATE_48000,
.pcmdir = AT91RM9200_I2S_DIR,
.flags = SND_SOC_DAI_BFS_DIV,
.fs = 250,
.bfs SND_SOC_FSBD(5),
.priv = (13 << 16 | 23),
},
}; };
......
...@@ -85,74 +85,160 @@ static const u16 wm8731_reg[WM8731_CACHEREGNUM] = { ...@@ -85,74 +85,160 @@ static const u16 wm8731_reg[WM8731_CACHEREGNUM] = {
static struct snd_soc_dai_mode wm8731_modes[] = { static struct snd_soc_dai_mode wm8731_modes[] = {
/* codec frame and clock master modes */ /* codec frame and clock master modes */
/* 8k */ /* 8k */
{WM8731_DAIFMT | SND_SOC_DAIFMT_CBM_CFM, SND_SOC_DAITDM_LRDW(0,0), {
WM8731_HIFI_BITS, SNDRV_PCM_RATE_8000, WM8731_DIR, 0, .fmt = WM8731_DAIFMT | SND_SOC_DAIFMT_CBM_CFM,
1536, SND_SOC_FSB(64)}, .pcmfmt = WM8731_HIFI_BITS,
{WM8731_DAIFMT | SND_SOC_DAIFMT_CBM_CFM, SND_SOC_DAITDM_LRDW(0,0), .pcmrate = SNDRV_PCM_RATE_8000,
WM8731_HIFI_BITS, SNDRV_PCM_RATE_8000, WM8731_DIR, 0, .pcmdir = WM8731_DIR,
2304, SND_SOC_FSB(64)}, .fs = 1536,
{WM8731_DAIFMT | SND_SOC_DAIFMT_CBM_CFM, SND_SOC_DAITDM_LRDW(0,0), .bfs = SND_SOC_FSB(64),
WM8731_HIFI_BITS, SNDRV_PCM_RATE_8000, WM8731_DIR, 0, },
1408, SND_SOC_FSB(64)}, {
{WM8731_DAIFMT | SND_SOC_DAIFMT_CBM_CFM, SND_SOC_DAITDM_LRDW(0,0), .fmt = WM8731_DAIFMT | SND_SOC_DAIFMT_CBM_CFM,
WM8731_HIFI_BITS, SNDRV_PCM_RATE_8000, WM8731_DIR, 0, .pcmfmt = WM8731_HIFI_BITS,
2112, SND_SOC_FSB(64)}, .pcmrate = SNDRV_PCM_RATE_8000,
.pcmdir = WM8731_DIR,
.fs = 2304,
.bfs = SND_SOC_FSB(64),
},
{
.fmt = WM8731_DAIFMT | SND_SOC_DAIFMT_CBM_CFM,
.pcmfmt = WM8731_HIFI_BITS,
.pcmrate = SNDRV_PCM_RATE_8000,
.pcmdir = WM8731_DIR,
.fs = 1408,
.bfs = SND_SOC_FSB(64),
},
{
.fmt = WM8731_DAIFMT | SND_SOC_DAIFMT_CBM_CFM,
.pcmfmt = WM8731_HIFI_BITS,
.pcmrate = SNDRV_PCM_RATE_8000,
.pcmdir = WM8731_DIR,
.fs = 2112,
.bfs = SND_SOC_FSB(64),
},
/* 32k */ /* 32k */
{WM8731_DAIFMT | SND_SOC_DAIFMT_CBM_CFM, SND_SOC_DAITDM_LRDW(0,0), {
WM8731_HIFI_BITS, SNDRV_PCM_RATE_32000, WM8731_DIR, 0, .fmt = WM8731_DAIFMT | SND_SOC_DAIFMT_CBM_CFM,
384, SND_SOC_FSB(64)}, .pcmfmt = WM8731_HIFI_BITS,
{WM8731_DAIFMT | SND_SOC_DAIFMT_CBM_CFM, SND_SOC_DAITDM_LRDW(0,0), .pcmrate = SNDRV_PCM_RATE_32000,
WM8731_HIFI_BITS, SNDRV_PCM_RATE_32000, WM8731_DIR, 0, .pcmdir = WM8731_DIR,
576, SND_SOC_FSB(64)}, .fs = 384,
.bfs = SND_SOC_FSB(64),
},
{
.fmt = WM8731_DAIFMT | SND_SOC_DAIFMT_CBM_CFM,
.pcmfmt = WM8731_HIFI_BITS,
.pcmrate = SNDRV_PCM_RATE_32000,
.pcmdir = WM8731_DIR,
.fs = 576,
.bfs = SND_SOC_FSB(64),
},
/* 44.1k & 48k */ /* 44.1k & 48k */
{WM8731_DAIFMT | SND_SOC_DAIFMT_CBM_CFM, SND_SOC_DAITDM_LRDW(0,0), {
WM8731_HIFI_BITS, SNDRV_PCM_RATE_44100 | SNDRV_PCM_RATE_48000, .fmt = WM8731_DAIFMT | SND_SOC_DAIFMT_CBM_CFM,
WM8731_DIR, 0, 256, SND_SOC_FSB(64)}, .pcmfmt = WM8731_HIFI_BITS,
{WM8731_DAIFMT | SND_SOC_DAIFMT_CBM_CFM, SND_SOC_DAITDM_LRDW(0,0), .pcmrate = SNDRV_PCM_RATE_44100 | SNDRV_PCM_RATE_48000,
WM8731_HIFI_BITS, SNDRV_PCM_RATE_44100 | SNDRV_PCM_RATE_48000, .pcmdir = WM8731_DIR,
WM8731_DIR, 0, 384, SND_SOC_FSB(64)}, .fs = 256,
.bfs = SND_SOC_FSB(64),
},
{
.fmt = WM8731_DAIFMT | SND_SOC_DAIFMT_CBM_CFM,
.pcmfmt = WM8731_HIFI_BITS,
.pcmrate = SNDRV_PCM_RATE_44100 | SNDRV_PCM_RATE_48000,
.pcmdir = WM8731_DIR,
.fs = 384,
.bfs = SND_SOC_FSB(64),
},
/* 88.2 & 96k */ /* 88.2 & 96k */
{WM8731_DAIFMT | SND_SOC_DAIFMT_CBM_CFM, SND_SOC_DAITDM_LRDW(0,0), {
WM8731_HIFI_BITS, SNDRV_PCM_RATE_88200 | SNDRV_PCM_RATE_96000, .fmt = WM8731_DAIFMT | SND_SOC_DAIFMT_CBM_CFM,
WM8731_DIR, 0, 128, SND_SOC_FSB(64)}, .pcmfmt = WM8731_HIFI_BITS,
{WM8731_DAIFMT | SND_SOC_DAIFMT_CBM_CFM, SND_SOC_DAITDM_LRDW(0,0), .pcmrate = SNDRV_PCM_RATE_88200 | SNDRV_PCM_RATE_96000,
WM8731_HIFI_BITS, SNDRV_PCM_RATE_88200 | SNDRV_PCM_RATE_96000, .pcmdir = WM8731_DIR,
WM8731_DIR, 0, 192, SND_SOC_FSB(64)}, .fs = 128,
.bfs = SND_SOC_FSB(64),
},
{
.fmt = WM8731_DAIFMT | SND_SOC_DAIFMT_CBM_CFM,
.pcmfmt = WM8731_HIFI_BITS,
.pcmrate = SNDRV_PCM_RATE_88200 | SNDRV_PCM_RATE_96000,
.pcmdir = WM8731_DIR,
.fs = 192,
.bfs = SND_SOC_FSB(64),
},
/* USB codec frame and clock master modes */ /* USB codec frame and clock master modes */
/* 8k */ /* 8k */
{WM8731_DAIFMT | SND_SOC_DAIFMT_CBM_CFM, SND_SOC_DAITDM_LRDW(0,0), {
WM8731_HIFI_BITS, SNDRV_PCM_RATE_8000, WM8731_DIR, .fmt = WM8731_DAIFMT | SND_SOC_DAIFMT_CBM_CFM,
SND_SOC_DAI_BFS_DIV, 1500, SND_SOC_FSBD(1)}, .pcmfmt = WM8731_HIFI_BITS,
.pcmrate = SNDRV_PCM_RATE_8000,
.pcmdir = WM8731_DIR,
.flags = SND_SOC_DAI_BFS_DIV,
.fs = 1500,
.bfs = SND_SOC_FSBD(1),
},
/* 44.1k */ /* 44.1k */
{WM8731_DAIFMT | SND_SOC_DAIFMT_CBM_CFM, SND_SOC_DAITDM_LRDW(0,0), {
WM8731_HIFI_BITS, SNDRV_PCM_RATE_44100, WM8731_DIR, .fmt = WM8731_DAIFMT | SND_SOC_DAIFMT_CBM_CFM,
SND_SOC_DAI_BFS_DIV, 272, SND_SOC_FSBD(1)}, .pcmfmt = WM8731_HIFI_BITS,
.pcmrate = SNDRV_PCM_RATE_44100,
.pcmdir = WM8731_DIR,
.flags = SND_SOC_DAI_BFS_DIV,
.fs = 272,
.bfs = SND_SOC_FSBD(1),
},
/* 48k */ /* 48k */
{WM8731_DAIFMT | SND_SOC_DAIFMT_CBM_CFM, SND_SOC_DAITDM_LRDW(0,0), {
WM8731_HIFI_BITS, SNDRV_PCM_RATE_48000, WM8731_DIR, .fmt = WM8731_DAIFMT | SND_SOC_DAIFMT_CBM_CFM,
SND_SOC_DAI_BFS_DIV, 250, SND_SOC_FSBD(1)}, .pcmfmt = WM8731_HIFI_BITS,
.pcmrate = SNDRV_PCM_RATE_48000,
.pcmdir = WM8731_DIR,
.flags = SND_SOC_DAI_BFS_DIV,
.fs = 250,
.bfs = SND_SOC_FSBD(1),
},
/* 88.2k */ /* 88.2k */
{WM8731_DAIFMT | SND_SOC_DAIFMT_CBM_CFM, SND_SOC_DAITDM_LRDW(0,0), {
WM8731_HIFI_BITS, SNDRV_PCM_RATE_88200, WM8731_DIR, .fmt = WM8731_DAIFMT | SND_SOC_DAIFMT_CBM_CFM,
SND_SOC_DAI_BFS_DIV, 136, SND_SOC_FSBD(1)}, .pcmfmt = WM8731_HIFI_BITS,
.pcmrate = SNDRV_PCM_RATE_88200,
.pcmdir = WM8731_DIR,
.flags = SND_SOC_DAI_BFS_DIV,
.fs = 136,
.bfs = SND_SOC_FSBD(1),
},
/* 96k */ /* 96k */
{WM8731_DAIFMT | SND_SOC_DAIFMT_CBM_CFM, SND_SOC_DAITDM_LRDW(0,0), {
WM8731_HIFI_BITS, SNDRV_PCM_RATE_96000, WM8731_DIR, .fmt = WM8731_DAIFMT | SND_SOC_DAIFMT_CBM_CFM,
SND_SOC_DAI_BFS_DIV, 125, SND_SOC_FSBD(1)}, .pcmfmt = WM8731_HIFI_BITS,
.pcmrate = SNDRV_PCM_RATE_96000,
.pcmdir = WM8731_DIR,
.flags = SND_SOC_DAI_BFS_DIV,
.fs = 125,
.bfs = SND_SOC_FSBD(1),
},
/* codec frame and clock slave modes */ /* codec frame and clock slave modes */
{WM8731_DAIFMT | SND_SOC_DAIFMT_CBS_CFS, SND_SOC_DAITDM_LRDW(0,0), {
WM8731_HIFI_BITS, WM8731_RATES, WM8731_DIR, SND_SOC_DAI_BFS_DIV, .fmt = WM8731_DAIFMT | SND_SOC_DAIFMT_CBS_CFS,
SND_SOC_FS_ALL, SND_SOC_FSBD_ALL}, .pcmfmt = WM8731_HIFI_BITS,
.pcmrate = WM8731_RATES,
.pcmdir = WM8731_DIR,
.flags = SND_SOC_DAI_BFS_DIV,
.fs = SND_SOC_FS_ALL,
.bfs = SND_SOC_FSBD_ALL,
},
}; };
/* /*
......
This diff is collapsed.
...@@ -44,8 +44,11 @@ static int ac97_write(struct snd_soc_codec *codec, ...@@ -44,8 +44,11 @@ static int ac97_write(struct snd_soc_codec *codec,
/* may need to expand this */ /* may need to expand this */
static struct snd_soc_dai_mode ac97_modes[] = { static struct snd_soc_dai_mode ac97_modes[] = {
{0, 0, SNDRV_PCM_FMTBIT_S16_LE, AC97_RATES}, {
{0, 0, SNDRV_PCM_FMTBIT_S18_3LE, AC97_RATES}, .pcmfmt = SNDRV_PCM_FMTBIT_S16_LE | SNDRV_PCM_FMTBIT_S18_3LE,
.pcmrate = AC97_RATES,
.pcmdir = AC97_DIR,
},
}; };
/* /*
......
...@@ -58,30 +58,77 @@ static struct pxa_i2s_port pxa_i2s; ...@@ -58,30 +58,77 @@ static struct pxa_i2s_port pxa_i2s;
/* priv is divider */ /* priv is divider */
static struct snd_soc_dai_mode pxa2xx_i2s_modes[] = { static struct snd_soc_dai_mode pxa2xx_i2s_modes[] = {
/* pxa2xx I2S frame and clock master modes */ /* pxa2xx I2S frame and clock master modes */
{PXA_I2S_DAIFMT | SND_SOC_DAIFMT_CBS_CFS, SND_SOC_DAITDM_LRDW(0,0), {
SNDRV_PCM_FMTBIT_S16_LE, SNDRV_PCM_RATE_8000, PXA_I2S_DIR, .fmt = PXA_I2S_DAIFMT | SND_SOC_DAIFMT_CBS_CFS,
SND_SOC_DAI_BFS_DIV, 256, SND_SOC_FSBD(4), 0x48}, .pcmfmt = SNDRV_PCM_FMTBIT_S16_LE,
{PXA_I2S_DAIFMT | SND_SOC_DAIFMT_CBS_CFS, SND_SOC_DAITDM_LRDW(0,0), .pcmrate = SNDRV_PCM_RATE_8000,
SNDRV_PCM_FMTBIT_S16_LE, SNDRV_PCM_RATE_11025, PXA_I2S_DIR, .pcmdir = PXA_I2S_DIR,
SND_SOC_DAI_BFS_DIV, 256, SND_SOC_FSBD(4), 0x34}, .flags = SND_SOC_DAI_BFS_DIV,
{PXA_I2S_DAIFMT | SND_SOC_DAIFMT_CBS_CFS, SND_SOC_DAITDM_LRDW(0,0), .fs = 256,
SNDRV_PCM_FMTBIT_S16_LE, SNDRV_PCM_RATE_16000, PXA_I2S_DIR, .bfs = SND_SOC_FSBD(4),
SND_SOC_DAI_BFS_DIV, 256, SND_SOC_FSBD(4), 0x24}, .priv = 0x48,
{PXA_I2S_DAIFMT | SND_SOC_DAIFMT_CBS_CFS, SND_SOC_DAITDM_LRDW(0,0), },
SNDRV_PCM_FMTBIT_S16_LE, SNDRV_PCM_RATE_22050, PXA_I2S_DIR, {
SND_SOC_DAI_BFS_DIV, 256, SND_SOC_FSBD(4), 0x1a}, .fmt = PXA_I2S_DAIFMT | SND_SOC_DAIFMT_CBS_CFS,
{PXA_I2S_DAIFMT | SND_SOC_DAIFMT_CBS_CFS, SND_SOC_DAITDM_LRDW(0,0), .pcmfmt = SNDRV_PCM_FMTBIT_S16_LE,
SNDRV_PCM_FMTBIT_S16_LE, SNDRV_PCM_RATE_44100, PXA_I2S_DIR, .pcmrate = SNDRV_PCM_RATE_11025,
SND_SOC_DAI_BFS_DIV, 256, SND_SOC_FSBD(4), 0xd}, .pcmdir = PXA_I2S_DIR,
{PXA_I2S_DAIFMT | SND_SOC_DAIFMT_CBS_CFS, SND_SOC_DAITDM_LRDW(0,0), .flags = SND_SOC_DAI_BFS_DIV,
SNDRV_PCM_FMTBIT_S16_LE, SNDRV_PCM_RATE_48000, PXA_I2S_DIR, .fs = 256,
SND_SOC_DAI_BFS_DIV, 256, SND_SOC_FSBD(4), 0xc}, .bfs = SND_SOC_FSBD(4),
.priv = 0x34,
},
{
.fmt = PXA_I2S_DAIFMT | SND_SOC_DAIFMT_CBS_CFS,
.pcmfmt = SNDRV_PCM_FMTBIT_S16_LE,
.pcmrate = SNDRV_PCM_RATE_16000,
.pcmdir = PXA_I2S_DIR,
.flags = SND_SOC_DAI_BFS_DIV,
.fs = 256,
.bfs = SND_SOC_FSBD(4),
.priv = 0x24,
},
{
.fmt = PXA_I2S_DAIFMT | SND_SOC_DAIFMT_CBS_CFS,
.pcmfmt = SNDRV_PCM_FMTBIT_S16_LE,
.pcmrate = SNDRV_PCM_RATE_22050,
.pcmdir = PXA_I2S_DIR,
.flags = SND_SOC_DAI_BFS_DIV,
.fs = 256,
.bfs = SND_SOC_FSBD(4),
.priv = 0x1a,
},
{
.fmt = PXA_I2S_DAIFMT | SND_SOC_DAIFMT_CBS_CFS,
.pcmfmt = SNDRV_PCM_FMTBIT_S16_LE,
.pcmrate = SNDRV_PCM_RATE_44100,
.pcmdir = PXA_I2S_DIR,
.flags = SND_SOC_DAI_BFS_DIV,
.fs = 256,
.bfs = SND_SOC_FSBD(4),
.priv = 0xd,
},
{
.fmt = PXA_I2S_DAIFMT | SND_SOC_DAIFMT_CBS_CFS,
.pcmfmt = SNDRV_PCM_FMTBIT_S16_LE,
.pcmrate = SNDRV_PCM_RATE_48000,
.pcmdir = PXA_I2S_DIR,
.flags = SND_SOC_DAI_BFS_DIV,
.fs = 256,
.bfs = SND_SOC_FSBD(4),
.priv = 0xc,
},
/* pxa2xx I2S frame master and clock slave mode */ /* pxa2xx I2S frame master and clock slave mode */
{PXA_I2S_DAIFMT | SND_SOC_DAIFMT_CBM_CFS, SND_SOC_DAITDM_LRDW(0,0), {
SNDRV_PCM_FMTBIT_S16_LE, PXA_I2S_RATES, PXA_I2S_DIR, 0, .fmt = PXA_I2S_DAIFMT | SND_SOC_DAIFMT_CBM_CFS,
SND_SOC_FS_ALL, SND_SOC_FSB(64), 0x48}, .pcmfmt = SNDRV_PCM_FMTBIT_S16_LE,
.pcmrate = PXA_I2S_RATES,
.pcmdir = PXA_I2S_DIR,
.fs = SND_SOC_FS_ALL,
.bfs = SND_SOC_FSB(64),
.priv = 0x48,
},
}; };
static struct pxa2xx_pcm_dma_params pxa2xx_i2s_pcm_stereo_out = { static struct pxa2xx_pcm_dma_params pxa2xx_i2s_pcm_stereo_out = {
......
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