Re: [PATCH v3 1/5] ASoC: dt-bindings: fsl,imx-asrc: update port binding to support multiple paths

From: Frank Li

Date: Wed Aug 05 2026 - 13:11:43 EST


On Wed, Aug 05, 2026 at 02:57:59PM +0800, Shengjiu Wang wrote:
> On Tue, Aug 4, 2026 at 10:39 PM Frank Li <Frank.li@xxxxxxxxxxx> wrote:
> >
> > On Tue, Aug 04, 2026 at 06:02:14PM +0800, shengjiu.wang@xxxxxxxxxxx wrote:
> > > From: Shengjiu Wang <shengjiu.wang@xxxxxxx>
> > >
> > > The i.MX ASRC hardware supports up to three conversion pairs (A, B, C).
> > > The existing binding exposed only a single generic audio-graph port,
> > > which cannot represent independent conversion paths when multiple pairs
> > > are in use simultaneously.
> > >
> > > Add a ports container that enumerates up to three sub-ports, each
> > > representing an independent conversion path:
> > > port@0 -- conversion path 0
> > > port@1 -- conversion path 1
> > > port@2 -- conversion path 2
> > >
> > > Each sub-port references audio-graph-port.yaml as before. Hardware pairs
> > > are allocated dynamically at stream open time; each active stream
> > > direction (playback or capture) on a port consumes one hardware pair.
> > >
> > > For backwards compatibility, keep the old single port property but mark
> > > it deprecated. A schema constraint (not: required: [port, ports]) ensures
> > > that both forms cannot be used at the same time. The binding example is
> > > updated to show the preferred ports form.
> > >
> > > No existing upstream DTS file for fsl,imx-asrc uses the previously
> > > documented single 'port' node, so this change does not break any
> > > in-tree device tree.
> >
> > if no existing upstream DTS file use it, you can direct replace with ports
>
> That is to avoid any downstream use of the 'port', so not directly replace it.

Does downstream strictly run DTB_CHECK ?

Frank

>
> best regards
> Shengjiu Wang
>
> >
> > Frank
> >
> > >
> > > Signed-off-by: Shengjiu Wang <shengjiu.wang@xxxxxxx>
> > > ---
> > > .../bindings/sound/fsl,imx-asrc.yaml | 45 ++++++++++++++++---
> > > 1 file changed, 40 insertions(+), 5 deletions(-)
> > >
> > > diff --git a/Documentation/devicetree/bindings/sound/fsl,imx-asrc.yaml b/Documentation/devicetree/bindings/sound/fsl,imx-asrc.yaml
> > > index 608defc93c1e..67d2826eef3f 100644
> > > --- a/Documentation/devicetree/bindings/sound/fsl,imx-asrc.yaml
> > > +++ b/Documentation/devicetree/bindings/sound/fsl,imx-asrc.yaml
> > > @@ -78,9 +78,19 @@ properties:
> > > power-domains:
> > > maxItems: 1
> > >
> > > + ports:
> > > + $ref: /schemas/graph.yaml#/properties/ports
> > > + patternProperties:
> > > + "^port@[0-2]$":
> > > + $ref: audio-graph-port.yaml#
> > > + unevaluatedProperties: false
> > > + description: port for an independent conversion path
> > > +
> > > port:
> > > $ref: audio-graph-port.yaml#
> > > unevaluatedProperties: false
> > > + deprecated: true
> > > + description: deprecated, use ports instead
> > >
> > > fsl,asrc-rate:
> > > $ref: /schemas/types.yaml#/definitions/uint32
> > > @@ -125,6 +135,10 @@ required:
> > > - fsl,asrc-width
> > >
> > > allOf:
> > > + - not:
> > > + required:
> > > + - port
> > > + - ports
> > > - $ref: dai-common.yaml#
> > > - if:
> > > properties:
> > > @@ -180,11 +194,32 @@ examples:
> > > fsl,asrc-rate = <48000>;
> > > fsl,asrc-width = <16>;
> > >
> > > - port {
> > > - playback-only;
> > > + ports {
> > > + #address-cells = <1>;
> > > + #size-cells = <0>;
> > > +
> > > + port@0 {
> > > + reg = <0>;
> > > + playback-only;
> > > + endpoint {
> > > + remote-endpoint = <&fe00_ep>;
> > > + };
> > > + };
> > > +
> > > + port@1 {
> > > + reg = <1>;
> > > + capture-only;
> > > + endpoint {
> > > + remote-endpoint = <&fe01_ep>;
> > > + };
> > > + };
> > >
> > > - asrc_endpoint: endpoint {
> > > - remote-endpoint = <&fe00_ep>;
> > > + port@2 {
> > > + reg = <2>;
> > > + capture-only;
> > > + endpoint {
> > > + remote-endpoint = <&fe02_ep>;
> > > + };
> > > };
> > > - };
> > > + };
> > > };
> > > --
> > > 2.34.1
> > >
> > >