> 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