回复: 回复: [PATCH v1 1/2] dt-bindings: ASoC: Add PDM controller for the StarFive JH8100 SoC

From: Xingyu Wu
Date: Fri Mar 08 2024 - 04:53:55 EST


> 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