Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 47075
b: refs/heads/master
c: 527541f
h: refs/heads/master
i:
  47073: ccc0e09
  47071: 4278766
v: v3
  • Loading branch information
Liam Girdwood authored and Jaroslav Kysela committed Feb 9, 2007
1 parent fd66e2d commit 3f52fd1
Show file tree
Hide file tree
Showing 6 changed files with 484 additions and 168 deletions.
2 changes: 1 addition & 1 deletion [refs]
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
---
refs/heads/master: c07584c83287ae5a13cc836f69a1d824ad068c66
refs/heads/master: 527541f9a8a83eedb4d732657dbfdcd2c4ca8bb4
52 changes: 40 additions & 12 deletions trunk/sound/soc/at91/at91rm9200-i2s.c
Original file line number Diff line number Diff line change
Expand Up @@ -51,24 +51,52 @@
static struct snd_soc_dai_mode at91rm9200_i2s[] = {

/* 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,
SND_SOC_DAI_BFS_DIV, 1500, SND_SOC_FSBD(10), (25 << 16 | 74) },
{
.fmt = AT91RM9200_I2S_DAIFMT,
.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 */
{ AT91RM9200_I2S_DAIFMT, SND_SOC_DAITDM_LRDW(0,0),
SNDRV_PCM_FMTBIT_S16_LE, SNDRV_PCM_RATE_16000, AT91RM9200_I2S_DIR,
SND_SOC_DAI_BFS_DIV, 750, SND_SOC_FSBD(3) , (7 << 16 | 133) },
{
.fmt = AT91RM9200_I2S_DAIFMT,
.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 */
{ AT91RM9200_I2S_DAIFMT, SND_SOC_DAITDM_LRDW(0,0),
SNDRV_PCM_FMTBIT_S16_LE, SNDRV_PCM_RATE_22050, AT91RM9200_I2S_DIR,
SND_SOC_DAI_BFS_DIV, 500, SND_SOC_FSBD(10), (25 << 16 | 24) },
{
.fmt = AT91RM9200_I2S_DAIFMT,
.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 */
{ AT91RM9200_I2S_DAIFMT, SND_SOC_DAITDM_LRDW(0,0),
SNDRV_PCM_FMTBIT_S16_LE, SNDRV_PCM_RATE_48000, AT91RM9200_I2S_DIR,
SND_SOC_DAI_BFS_DIV, 250, SND_SOC_FSBD(5), (13 << 16 | 23) },
{
.fmt = AT91RM9200_I2S_DAIFMT,
.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),
},
};


Expand Down
184 changes: 135 additions & 49 deletions trunk/sound/soc/codecs/wm8731.c
Original file line number Diff line number Diff line change
Expand Up @@ -85,74 +85,160 @@ static const u16 wm8731_reg[WM8731_CACHEREGNUM] = {
static struct snd_soc_dai_mode wm8731_modes[] = {
/* codec frame and clock master modes */
/* 8k */
{WM8731_DAIFMT | SND_SOC_DAIFMT_CBM_CFM, SND_SOC_DAITDM_LRDW(0,0),
WM8731_HIFI_BITS, SNDRV_PCM_RATE_8000, WM8731_DIR, 0,
1536, SND_SOC_FSB(64)},
{WM8731_DAIFMT | SND_SOC_DAIFMT_CBM_CFM, SND_SOC_DAITDM_LRDW(0,0),
WM8731_HIFI_BITS, SNDRV_PCM_RATE_8000, WM8731_DIR, 0,
2304, SND_SOC_FSB(64)},
{WM8731_DAIFMT | SND_SOC_DAIFMT_CBM_CFM, SND_SOC_DAITDM_LRDW(0,0),
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),
WM8731_HIFI_BITS, SNDRV_PCM_RATE_8000, WM8731_DIR, 0,
2112, 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 = 1536,
.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 = 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 */
{WM8731_DAIFMT | SND_SOC_DAIFMT_CBM_CFM, SND_SOC_DAITDM_LRDW(0,0),
WM8731_HIFI_BITS, SNDRV_PCM_RATE_32000, WM8731_DIR, 0,
384, SND_SOC_FSB(64)},
{WM8731_DAIFMT | SND_SOC_DAIFMT_CBM_CFM, SND_SOC_DAITDM_LRDW(0,0),
WM8731_HIFI_BITS, SNDRV_PCM_RATE_32000, WM8731_DIR, 0,
576, 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 = 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 */
{WM8731_DAIFMT | SND_SOC_DAIFMT_CBM_CFM, SND_SOC_DAITDM_LRDW(0,0),
WM8731_HIFI_BITS, SNDRV_PCM_RATE_44100 | SNDRV_PCM_RATE_48000,
WM8731_DIR, 0, 256, SND_SOC_FSB(64)},
{WM8731_DAIFMT | SND_SOC_DAIFMT_CBM_CFM, SND_SOC_DAITDM_LRDW(0,0),
WM8731_HIFI_BITS, SNDRV_PCM_RATE_44100 | SNDRV_PCM_RATE_48000,
WM8731_DIR, 0, 384, 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 = 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 */
{WM8731_DAIFMT | SND_SOC_DAIFMT_CBM_CFM, SND_SOC_DAITDM_LRDW(0,0),
WM8731_HIFI_BITS, SNDRV_PCM_RATE_88200 | SNDRV_PCM_RATE_96000,
WM8731_DIR, 0, 128, SND_SOC_FSB(64)},
{WM8731_DAIFMT | SND_SOC_DAIFMT_CBM_CFM, SND_SOC_DAITDM_LRDW(0,0),
WM8731_HIFI_BITS, SNDRV_PCM_RATE_88200 | SNDRV_PCM_RATE_96000,
WM8731_DIR, 0, 192, 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 = 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 */
/* 8k */
{WM8731_DAIFMT | SND_SOC_DAIFMT_CBM_CFM, SND_SOC_DAITDM_LRDW(0,0),
WM8731_HIFI_BITS, SNDRV_PCM_RATE_8000, WM8731_DIR,
SND_SOC_DAI_BFS_DIV, 1500, SND_SOC_FSBD(1)},
{
.fmt = WM8731_DAIFMT | SND_SOC_DAIFMT_CBM_CFM,
.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 */
{WM8731_DAIFMT | SND_SOC_DAIFMT_CBM_CFM, SND_SOC_DAITDM_LRDW(0,0),
WM8731_HIFI_BITS, SNDRV_PCM_RATE_44100, WM8731_DIR,
SND_SOC_DAI_BFS_DIV, 272, SND_SOC_FSBD(1)},
{
.fmt = WM8731_DAIFMT | SND_SOC_DAIFMT_CBM_CFM,
.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 */
{WM8731_DAIFMT | SND_SOC_DAIFMT_CBM_CFM, SND_SOC_DAITDM_LRDW(0,0),
WM8731_HIFI_BITS, SNDRV_PCM_RATE_48000, WM8731_DIR,
SND_SOC_DAI_BFS_DIV, 250, SND_SOC_FSBD(1)},
{
.fmt = WM8731_DAIFMT | SND_SOC_DAIFMT_CBM_CFM,
.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 */
{WM8731_DAIFMT | SND_SOC_DAIFMT_CBM_CFM, SND_SOC_DAITDM_LRDW(0,0),
WM8731_HIFI_BITS, SNDRV_PCM_RATE_88200, WM8731_DIR,
SND_SOC_DAI_BFS_DIV, 136, SND_SOC_FSBD(1)},
{
.fmt = WM8731_DAIFMT | SND_SOC_DAIFMT_CBM_CFM,
.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 */
{WM8731_DAIFMT | SND_SOC_DAIFMT_CBM_CFM, SND_SOC_DAITDM_LRDW(0,0),
WM8731_HIFI_BITS, SNDRV_PCM_RATE_96000, WM8731_DIR,
SND_SOC_DAI_BFS_DIV, 125, SND_SOC_FSBD(1)},
{
.fmt = WM8731_DAIFMT | SND_SOC_DAIFMT_CBM_CFM,
.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 */
{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,
SND_SOC_FS_ALL, SND_SOC_FSBD_ALL},
{
.fmt = WM8731_DAIFMT | SND_SOC_DAIFMT_CBS_CFS,
.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,
},
};

/*
Expand Down
Loading

0 comments on commit 3f52fd1

Please sign in to comment.