Tool/software:
Hello,
I'm doing a bring-up of three PCMD3180 codecs in a daisy-chain on a Variscite i.MX8M Nano, targeting an 8 and 12-channel TDM stream (48kHz, 32-bit) on a single SAI data line.
I've successfully brought up a single "HEAD" codec and can get 4 distinct channels of audio using my custom overlay and in-flight configuration script (amixer
+ i2cset
). During this successful capture, the DEV_STS1
register (0x77) correctly reads 0xE0
(Active with PDM on).
The problem is when I try to enable the 8 or 12-channel daisy-chain. My script correctly configures the unique slot mapping, SDIN pins, and secondary SDOUT routing for all codecs. However, the capture is silent.
A live register dump during the 8 or 12-channel capture attempt shows that the downstream "MID" and "TAIL" codecs are not fully activating. Their DEV_STS1
registers read 0xC0
(Active but PDM channels off), even though their power and input enable registers are correctly set.
My question is: What could cause the downstream codecs in a daisy-chain to refuse to enter the fully active state (MODE_STS=7
)? Is there a specific register write or initialization sequence required for the daisy-chain that I might be missing?
Any guidance would be greatly appreciated.