Hi all,
I have am335x processor connected to a PCM Codec (sound card: TI PCM3168a) through McASPs.
The PCM Codec is config to run at 16kHz, 24bit/data sample (padded to 32bits, so each sample is clocked as 32bits with a depth of 24bits).
Since the data format from the sound card (PCM Codec) is 32bits/sample, this "big" size per sample of Audio data are captured by McASP and transfer to the kernel, then transfer to user space through ALSA interface.
I am trying to find a way to config McASP and/or ALSA to convert this sample size to 16 bits before passing them to user space.
Is this something someone at TI can help me with?
here is how i have defined the soc_dai_driver for this sound card kernel driver i have created under the kernel tree /sound/soc/codecs/ pcm3168.c
static struct snd_soc_dai_driver pcm3168_dai = {
.name = DRV_NAME,
.playback = {
.stream_name = "Playback",
.channels_min = 8,
.channels_max = 8,
.rates = 16000,
.formats = SNDRV_PCM_FMTBIT_S32_LE,
},
.capture = {
.stream_name = "Capture",
.channels_min = 8,
.channels_max = 8,
.rates = 16000,
.formats = SNDRV_PCM_FMTBIT_S32_LE,
},
};