On 08/03/2024 08:49, Xingyu Wu wrote:
- starfive,pdm-modulex:
- $ref: /schemas/types.yaml#/definitions/uint32
- enum: [0, 1]
- description:
The module x will be using in PDM controller. Default use module 0.
This is an index of the block instance? If so, then it's not allowed. Otherwise I don't understand the description.
No, this is just one instance. The PDM have two internal and independent
modules or called channels.
They can be configured and used separately, and the user can choose which
channel to use.
Do the modulex differ? Why different boards would choose one over another?
They are same. The choice between them is base on the match with I2S. The DMA data channel of hardware between them is fixed linked: PDM module 0 --> I2S channel 0, PDM module 1 --> I2S channel 1 I2S uses higher-number channels first for capture (like channel 1), so PDM should skips module 0 and uses module 1. Oh, I just thought of a way to fix them that change the priority of I2S channel to use lower-number channels first and PDM need not skip module0.
Best regards, Xingyu Wu