Hello again,
I got no answers last time I posted this
So, the meta-questions are * Should I be asking somewhere else? * Should I be reading something else to find my answers? * Is there a better way to ask these questions?
thanks
On 21/10/20 10:50 pm, Eliot Blennerhassett wrote:
Greetings,
First the basic questions, so you can quickly stop reading if this is not your thing. Background details follow. Specific answers, or pointers to relevant reading both appreciated.
- How do I force a DAI clock to keep running even when no audio is
streaming? Can I do this with DT, or some runtime switch? OR how do I disable dapm so everything is powered on all the time?
- Two devices: one DAC, one dumb digital audio transmitter both
connected to same serial audio data - how to model the second one in DT (or not)? it has some settings needed after clock starts, must keep clock running.
I have host CPU imx8mm
DAI is sound/soc/fsl/fsl_sai.c
The codec is sound/soc/codecs/ak4458.c
The digital audio transmitter is CS8406 (no driver yet?).
Both the above are connected to the same DAI signals (MCLK, TXC, TXFS, TXD)
--------. imx8mm | | SAI *======+======[ ak4458 ] | I [ ]->Line_Out I2C2 *------I--+---[ ] --------' I | I `---[ cs8406 ] "======[ ]->iec958_out
CS8406 needs MCLK before it can be configured, and loses config if clock stops. Currently it is configured via I2C from userspace, but this is completely unaware of stream stop/start. Is there a way to hook into stream state events so that this setup can be done after the MCLK starts before audio starts?
I desire for no discontinuity in analog or digital outputs as streams stop and start.
I have read Documentation/sound/soc/dapm.rst and its brothers. Documentation/devicetree/* is there elsewhere I should read to get a newbies intro to this stuff?
It must be about 8 years since I did any ALSA development, and then I wasn't in the ASoC space, so quite a learning curve here.
many thanks