I2S sound output on Low Speed Expansion Connector


#1

I am running linaro (not android). Version details –
Linux linaro-developer 4.4.9-linaro-lt-qcom #1 SMP PREEMPT Thu Jun 30 21:34:48 UTC 2016 aarch64 GNU/Linux

I am trying to get I2S sound output on the PCM/I2S pins on the low speed expansion connector -
16 PCM_FS LS_EXP_MI2S_WS (APQ GPIO_110)
18 PCM_CLK LS_EXP_MI2S_SCK (APQ GPIO_113) (ALPS_INT)
20 PCM_DO LS_EXP_MI2S_DATA0 (APQ GPIO_114)

Any suggestions on what the aplay command should look like?
I tried
aplay -D hw:0,0 /usr/share/sounds/alsa/Front_Left.wav

and I got the following error -
aplay: set_params:1239: Channels count non available

I also tried a plain aplay without arguments -
aplay /usr/share/sounds/alsa/Front_Left.wav

There were no errors, but I could not see any activity on the PCM lines.

Regards
Bharath


#2

Dear 96boards team,

Please can you provide your suggestions. I am running into the exact same issue.
Looking forward to your response.

Regards,
Amit


#3

I don’t have a full answer (I don’t have a DB410C near me right now) but I can offer some clues about aplay!

Firstly try plughw:0,0… this will enable some of the ALSA lib automatic adaptations (like sample rate converison and channel doubling of a mono stream). It can also be worth switching to speaker-test to generate the audio (you will be able to select sampling rate and number of channels using command line parameters). Finally use aplay -l to list the PCM playbacks. If memory serves DB410C has three of them and you’ll need to find the right one.

PS If you do get is working then please post about it… reports of known working approachs are really helpful especially on infrequently used features like I2S.


#4

I’ve the very same problem as described by @ajeetbharath just above.
Actually I’ve posted a similar question yesterday:
Capture I2S signals.
Got reply from @Mani: “working on a guide to route I2S signals on LS expansion header”.

The only difference is that i’m able to “aplay” my WAV file (as mentioned by @danielt: “try plughw”) however still can’t capture noting on the I2S pins using scope.

Ronen


#5

@Ronen We need to do pinmux setting for Primary I2S lines and also need to set Speaker Mux accordingly. I’m working on the guide for that, will let you know once it is available.

Thanks,
Mani