Thank you for responding, Mr. Avalos.
Our primary target is to set up the RT1020-EVK as a USB microphone. But for the ease of studying the other capabilities on the USB bus, we have chosen to experiment with a USB composite device.
We have indeed built the unmodified version of the dev_composite_hid_audio_unified_lite project. By feeding an 1kHz sinewave into the 3.5mm socket on the RT1020-EVK, we have successfully captured 16-bit samples of the sinewave at 48kHz on the left channel. (The right channel on the WM8960 codec takes its input from the onboard microphone on the EVK.) So far so good then.
So as to realise our design goal of capturing and delivering the 24-bit samples at 48kHz, we have identified the following actions to be taken:
1. Configure the WM8960 codec to produce 24-bit samples at 48kHz.
2. Resize the sample buffers to accommodate 3 bytes per sample.
3. Adjust the clocks to ensure that 48kHz 24-bit samples are delivered at exactly the right rate via the Audio SAI.
4. Configure the USB device descriptor to deliver 24-bit samples to the USB host PC.
For (1), the modification in "wm8960Config" appears straightforward.
For (2) and (4), we have a working solution where each audio sample is delivered in 4-byte words (where each 24-bit sample occupies the most significant 3 bytes, and the bottom byte padded with 0). We have filled the sample buffer with a static sinewave pattern in 24-bit precision to simulate an ideal 24-bit codec, and this sinewave was perfectly captured on the host PC.
However, for step (3), we do not appear to have sufficient understanding of how the audio clock and SAI are related. By increasing the Audio PLL frequency to 883.20MHz from the original 786.48MHz, we can see that 24-bit samples from the WM8960 codec can be transferred over SAI to the RT1021.
When we examine these 24-bit samples which were delivered to the host PC, the purity of the 1kHz sinewave fell short of expectation in terms of THD.
Let me apologize for the long write-up.