A1. No, there is no I2S or DMA configuration performed by the firmware.
A2. You're asking a lot here. There is working, Open Source software available in the raspberrypi/linux GitHub repo that does what you are doing. Have you tried comparing the register state arrived at by Linux with that which your software creates? In my opinion, diff is the most powerful debugging tool.
I'm prepared to answer more specific questions about it, but this isn't a general software support or training service - you would pay a lot for that.
A3. I2S_COMP_PARAM_1 and _2 are read-only registers that describe the way the IP has been configured for the RP1 silicon. The value of 4 indicates that it supports 4 TX channels - you don't have to use them all.
A4. That destination address looks wrong. The rp1.dtsi address values are written as seen by the RP1 hardware:i.e. the I2S block sits at address 0xc0400a0000 on the RP1 internal bus. Since the DMA controller also exists on the same bus it must use the same addresses. Linux walk the DT tree, using the ranges and dma-ranges properties to translate between the various address domains.
That's enough to be getting on with.
A2. You're asking a lot here. There is working, Open Source software available in the raspberrypi/linux GitHub repo that does what you are doing. Have you tried comparing the register state arrived at by Linux with that which your software creates? In my opinion, diff is the most powerful debugging tool.
I'm prepared to answer more specific questions about it, but this isn't a general software support or training service - you would pay a lot for that.
A3. I2S_COMP_PARAM_1 and _2 are read-only registers that describe the way the IP has been configured for the RP1 silicon. The value of 4 indicates that it supports 4 TX channels - you don't have to use them all.
A4. That destination address looks wrong. The rp1.dtsi address values are written as seen by the RP1 hardware:
Code:
i2s@a0000 {reg = <0xc0 0x400a0000 0x00 0x1000>;That's enough to be getting on with.
Statistics: Posted by PhilE — Wed Jul 16, 2025 10:28 am