(I'm not with my board at the moment - if I need to share my code, I'll have to edit this post or post a new one at a later time)
I didn't realize how complicated I2S setup on the Pi is.
I've been trying to write C code for using the PCM interface on the Pi with DMA controllers. I have verified using a test program that my DMA functions work correctly, and I have set all the bits in the PCM registers as described by the BCM2835 manual.
However, I'm not getting any signal on the PCM_OUT pin during runtime, nor does it look like the DMA is reading any new data from the FIFO. Additionally, when I print the value of the PCM_CS register during runtime, I see that bits are getting un-set or re-set during runtime (such as disabling the DREQ bit), even when I'm not explicitly re-assigning the register in my code.
I'm not very familiar with kernels - are there processes on the Pi that by default are using the PCM interface, that could be interfering with my C program? Is there an easy way to find out? I've heard about having to possibly re-compile the kernel, but I'm not sure what that means or where to even start.