I have an rk3588-based SBC. I need to output audio via I2S (specifically its I2S1 output). However, there is no “codec” device which Linux knows about; the system which receives the I2S sound is completely separate.
It is my understanding that for ALSA to let me play audio, I need a codec devicetree node. However, since there is no actual codec hardware that Linux should care about, I guess I need some kind of dummy node. How can I do this?
Enabling the i2s1 node is simple enough with a devicetree overlay:
&i2s1_8ch {
status = "okay";
};
However, I can’t get the codec to show up. This is what I’ve tried so far (but I really have no idea what I’m doing):
&{/} {
dummy_sound: sound {
compatible = "simple-audio-card";
simple-audio-card,name = "Dummy Audio Card";
simple-audio-card,format = "i2s";
simple-audio-card,cpu {
sound-dai = <&i2s1_8ch>;
};
simple-audio-card,codec {
sound-dai = <&dummy_codec>;
};
dummy_codec: codec {
compatible = "linux,snd-soc-dummy";
};
};
};