diff options
Diffstat (limited to 'sound/soc/at91/at91rm9200-i2s.c')
-rw-r--r-- | sound/soc/at91/at91rm9200-i2s.c | 52 |
1 files changed, 40 insertions, 12 deletions
diff --git a/sound/soc/at91/at91rm9200-i2s.c b/sound/soc/at91/at91rm9200-i2s.c index 044a774b4301..91f1daa44f19 100644 --- a/sound/soc/at91/at91rm9200-i2s.c +++ b/sound/soc/at91/at91rm9200-i2s.c | |||
@@ -51,24 +51,52 @@ | |||
51 | static struct snd_soc_dai_mode at91rm9200_i2s[] = { | 51 | static struct snd_soc_dai_mode at91rm9200_i2s[] = { |
52 | 52 | ||
53 | /* 8k: BCLK = (MCLK/10) = (60MHz/50) = 1.2MHz */ | 53 | /* 8k: BCLK = (MCLK/10) = (60MHz/50) = 1.2MHz */ |
54 | { AT91RM9200_I2S_DAIFMT, SND_SOC_DAITDM_LRDW(0,0), | 54 | { |
55 | SNDRV_PCM_FMTBIT_S16_LE, SNDRV_PCM_RATE_8000, AT91RM9200_I2S_DIR, | 55 | .fmt = AT91RM9200_I2S_DAIFMT, |
56 | SND_SOC_DAI_BFS_DIV, 1500, SND_SOC_FSBD(10), (25 << 16 | 74) }, | 56 | .pcmfmt = SNDRV_PCM_FMTBIT_S16_LE, |
57 | .pcmrate = SNDRV_PCM_RATE_8000, | ||
58 | .pcmdir = AT91RM9200_I2S_DIR, | ||
59 | .flags = SND_SOC_DAI_BFS_DIV, | ||
60 | .fs = 1500, | ||
61 | .bfs = SND_SOC_FSBD(10), | ||
62 | .priv = (25 << 16 | 74), | ||
63 | }, | ||
57 | 64 | ||
58 | /* 16k: BCLK = (MCLK/3) ~= (60MHz/14) = 4.285714MHz */ | 65 | /* 16k: BCLK = (MCLK/3) ~= (60MHz/14) = 4.285714MHz */ |
59 | { AT91RM9200_I2S_DAIFMT, SND_SOC_DAITDM_LRDW(0,0), | 66 | { |
60 | SNDRV_PCM_FMTBIT_S16_LE, SNDRV_PCM_RATE_16000, AT91RM9200_I2S_DIR, | 67 | .fmt = AT91RM9200_I2S_DAIFMT, |
61 | SND_SOC_DAI_BFS_DIV, 750, SND_SOC_FSBD(3) , (7 << 16 | 133) }, | 68 | .pcmfmt = SNDRV_PCM_FMTBIT_S16_LE, |
69 | .pcmrate = SNDRV_PCM_RATE_16000, | ||
70 | .pcmdir = AT91RM9200_I2S_DIR, | ||
71 | .flags = SND_SOC_DAI_BFS_DIV, | ||
72 | .fs = 750, | ||
73 | .bfs = SND_SOC_FSBD(3), | ||
74 | .flags (7 << 16 | 133), | ||
75 | }, | ||
62 | 76 | ||
63 | /* 24k: BCLK = (MCLK/10) = (60MHz/50) = 1.2MHz */ | 77 | /* 24k: BCLK = (MCLK/10) = (60MHz/50) = 1.2MHz */ |
64 | { AT91RM9200_I2S_DAIFMT, SND_SOC_DAITDM_LRDW(0,0), | 78 | { |
65 | SNDRV_PCM_FMTBIT_S16_LE, SNDRV_PCM_RATE_22050, AT91RM9200_I2S_DIR, | 79 | .fmt = AT91RM9200_I2S_DAIFMT, |
66 | SND_SOC_DAI_BFS_DIV, 500, SND_SOC_FSBD(10), (25 << 16 | 24) }, | 80 | .pcmfmt = SNDRV_PCM_FMTBIT_S16_LE, |
81 | .pcmrate = SNDRV_PCM_RATE_22050, | ||
82 | .pcmdir = AT91RM9200_I2S_DIR, | ||
83 | .flags = SND_SOC_DAI_BFS_DIV, | ||
84 | .fs = 500, | ||
85 | .bfs = SND_SOC_FSBD(10), | ||
86 | .priv = (25 << 16 | 24), | ||
87 | }, | ||
67 | 88 | ||
68 | /* 48kHz: BCLK = (MCLK/5) ~= (60MHz/26) = 2.3076923MHz */ | 89 | /* 48kHz: BCLK = (MCLK/5) ~= (60MHz/26) = 2.3076923MHz */ |
69 | { AT91RM9200_I2S_DAIFMT, SND_SOC_DAITDM_LRDW(0,0), | 90 | { |
70 | SNDRV_PCM_FMTBIT_S16_LE, SNDRV_PCM_RATE_48000, AT91RM9200_I2S_DIR, | 91 | .fmt = AT91RM9200_I2S_DAIFMT, |
71 | SND_SOC_DAI_BFS_DIV, 250, SND_SOC_FSBD(5), (13 << 16 | 23) }, | 92 | .pcmfmt = SNDRV_PCM_FMTBIT_S16_LE, |
93 | .pcmrate = SNDRV_PCM_RATE_48000, | ||
94 | .pcmdir = AT91RM9200_I2S_DIR, | ||
95 | .flags = SND_SOC_DAI_BFS_DIV, | ||
96 | .fs = 250, | ||
97 | .bfs SND_SOC_FSBD(5), | ||
98 | .priv = (13 << 16 | 23), | ||
99 | }, | ||
72 | }; | 100 | }; |
73 | 101 | ||
74 | 102 | ||