Hi,
This seems to be one of the cases where chatgpt doesn't get it quite
right and just makes stuff up.
Generally you still need a simple driver for you codec that at least
specifies which formats and rates are supported. But this can be a
really simple driver, doesn't have to do anything other than registering
the codec.
On 5/30/25 14:47, Steve Broshar wrote:
Thanks for the help. I learned that to output I2S to a slave device, I shouldn't need a device-specific driver; that built-in drivers are all I need. I thought that was going to be easy to setup, but I have no luck with it. The boot log contains: platform sound-auditon: deferred probe pending
I have been working with chatgpt extensively as it seems you do too. It has a deep understanding of the linux kernel codebase. But, so far I cannot get the device to initialize (probe). Do you agree that I should be able to avoid the use of a device-specific driver? Do you see any issues in the device tree below?
Here's the device tree setup:
&sai2 {
#sound-dai-cells = <0>;
pinctrl-names = "default";
pinctrl-0 = <&pinctrl_sai2>;
assigned-clocks = <&clk IMX8MN_CLK_SAI2>;
assigned-clock-parents = <&clk IMX8MN_AUDIO_PLL1_OUT>;
assigned-clock-rates = <24576000>;
fsl,sai-mclk-direction-output;
status = "okay";
};
pinctrl_sai2: sai2grp {
fsl,pins = <
MX8MN_IOMUXC_SAI2_TXC_SAI2_TX_BCLK 0xd6
MX8MN_IOMUXC_SAI2_TXFS_SAI2_TX_SYNC 0xd6
MX8MN_IOMUXC_SAI2_TXD0_SAI2_TX_DATA0 0xd6
//MX8MN_IOMUXC_SAI2_RXD0_SAI2_RX_DATA0 0xd6
MX8MN_IOMUXC_SAI2_MCLK_SAI2_MCLK 0xd6
>;
};
// Compton audio output does not require a device-specific codec; the built-in, dummy driver is sufficient
codec_auditon: codec-snd-doc-dummy {
compatible = "linux,snd-soc-dummy";
#sound-dai-cells = <0>;
};
// audio output for Compton can be accomplished via the built-in simple-audio-card driver
// since only need to stream I2S; device (ADAU1467) does not require setup/control
sound-auditon {
// specify the built-in simple sound card driver
compatible = "simple-audio-card";
// description that shows in userland; i.e. via 'aplay -l'
// auditon: a quantum of sound ;)
simple-audio-card,name = "auditon";
// specify stream format
// supported options: i2s, right_j, left_j, dsp_a, dsp_b, ac97, pdm, msb, lsb
//simple-audio-card,format = "i2s"; // with i2s, boot log shows: deferred probe pending and no device is setup
simple-audio-card,format = "dsp_a";
// assign CPU as master for bit-clock
simple-audio-card,bitclock-master = <&cpu_link_auditon>;
// assign CPU as master for frame-clock
simple-audio-card,frame-master = <&cpu_link_auditon>;
status = "okay";
cpu_link_auditon: simple-audio-card,cpu {
sound-dai = <&sai2>;
dai-tdm-slot-num = <2>; // 2=>stereo
dai-tdm-slot-width = <32>; // bits per slot
};
simple-audio-card,codec {
sound-dai = <&codec_auditon>;
};
};
Thanks in advance.
Steve Broshar
Palmer Wireless Medtech