Porting Dialog DA7212 audio codec with APQ8016

Hi support team,

We are porting Dialog DA7212 codec with APQ8016 on Linux platform.

We have some following queries before start porting.

  1. Which i2s we can use with external codec for playback and record.
  2. Please share the software changes require for external codec.
  3. How to configure i2s in device tree for playback and record (we are confused between primary, secondary, tertiary, Quaternary).

Thanks,
Arjun

Have you read this guide?

Hi Danielt,

Thanks for response i am read that guide and it’s really helpful. but i have below queries

  1. According to document LS expansion i2s( External Primary MI2S) is only support playback. so which i2s am i using for both playback and record using external codec?
  2. Enabling ext. primary i2s in device tree and make change in sound/soc/qcom/apq8016_sbc.c as per document. By default internal codec will be used. so how to configure/enable external codec?

Thanks,
Arjun

Hi Danielt,

Thanks for response i am read that guide and it’s really helpful. but i have below queries

  1. According to document LS expansion i2s( External Primary MI2S) is only support playback. so which i2s am i using for both playback and record using external codec?

AFAIK this cannot be supported on DB410C since pins that are capable of
full duplex are routed to the HDMI bridge (and the external secondary
MI2S is routable from amixer out-of-the-box for this reason).

  1. Enabling ext. primary i2s in device tree and make change in sound/soc/qcom/apq8016_sbc.c as per document. By default internal codec will be used. so how to configure/enable external codec?

I think the mixer commands at the bottom of the document are there to
change the default!

Note that the Linaro Debian for DB410C releases should ship with
various ALSA use-cases already described. Normally pulseaudio handles
these but you can also explore them using the alsaucm command:
https://manpages.debian.org/unstable/alsa-utils/alsaucm.1.en.html

I believe that it is technically possible to connect i2s input via the LS header on the DB410c, however, the DI pin on the header is not connected. The signal that would otherwise be attached there is routed to a different pin on the LS header. You can use the SoC manual and schematics to find where that pin is physically connected.

If your goal is to build a mezzanine board, then I’d suggest selecting an SBC that actually has I2S-DI attached, such as Hikey960. If your goal is to build a completely custom board with APQ8016, then finding that pin and provisioning it for I2S-DI would be a reasonable choice.

If your goal is just to have an i2s “sound card”, then you may also look at I2S Mezzanine | GroupGets – but note that it won’t support i2s input on the DB410c either, unless you find that pin and jump it to the DI pin.