Re: [PATCH v2 2/5] ASoC: dt-bindings: fsl,easrc: add ports binding for multiple conversion paths
Frank Li <[email protected]>
| Newsgroups | dev.linux.lists.imx,org.infradead.lists.linux-arm-kernel,org.kernel.vger.linux-devicetree,org.kernel.vger.linux-kernel,org.kernel.vger.linux-sound,org.ozlabs.lists.linuxppc-dev |
|---|---|
| Message-ID | <amGZxZPs1gvPcMeF@SMW015318> |
On Thu, Jul 23, 2026 at 10:23:10AM +0800, [email protected] wrote: > From: Shengjiu Wang <[email protected]> > > The i.MX EASRC hardware supports up to four conversion contexts > (A, B, C, D). Add a ports container property to the binding to allow > each independent conversion path to be represented as an individual > audio-graph port: > > port@0 -- conversion path 0 > port@1 -- conversion path 1 > port@2 -- conversion path 2 > port@3 -- conversion path 3 > > Each sub-port references audio-graph-port.yaml and follows the standard > audio-graph binding conventions. Contexts are allocated dynamically at > stream open time; each active stream direction (playback or capture) on > a port consumes one hardware context. > > Signed-off-by: Shengjiu Wang <[email protected]> > --- > .../devicetree/bindings/sound/fsl,easrc.yaml | 68 +++++++++++++++++++ > 1 file changed, 68 insertions(+) > > diff --git a/Documentation/devicetree/bindings/sound/fsl,easrc.yaml b/Documentation/devicetree/bindings/sound/fsl,easrc.yaml > index d5727f8bfb0b..e6d7cae5983d 100644 > --- a/Documentation/devicetree/bindings/sound/fsl,easrc.yaml > +++ b/Documentation/devicetree/bindings/sound/fsl,easrc.yaml > @@ -55,6 +55,14 @@ properties: > - const: imx/easrc/easrc-imx8mn.bin > description: The coefficient table for the filters > > + ports: > + $ref: /schemas/graph.yaml#/properties/ports > + patternProperties: > + "^port@[0-3]$": > + $ref: audio-graph-port.yaml# > + unevaluatedProperties: false > + description: port for an independent conversion path > + > fsl,asrc-rate: > $ref: /schemas/types.yaml#/definitions/uint32 > minimum: 8000 > @@ -107,3 +115,63 @@ examples: > fsl,asrc-rate = <8000>; > fsl,asrc-format = <2>; > }; > + > + - | > + #include <dt-bindings/interrupt-controller/arm-gic.h> > + #include <dt-bindings/clock/imx8mn-clock.h> > + > + easrc1: easrc@300c0000 { Needn't label in example. > + compatible = "fsl,imx8mn-easrc"; > + reg = <0x300c0000 0x10000>; > + interrupts = <GIC_SPI 122 IRQ_TYPE_LEVEL_HIGH>; > + clocks = <&clk IMX8MN_CLK_ASRC_ROOT>; > + clock-names = "mem"; > + dmas = <&sdma2 16 23 0> , <&sdma2 17 23 0>, > + <&sdma2 18 23 0> , <&sdma2 19 23 0>, > + <&sdma2 20 23 0> , <&sdma2 21 23 0>, > + <&sdma2 22 23 0> , <&sdma2 23 23 0>; > + dma-names = "ctx0_rx", "ctx0_tx", > + "ctx1_rx", "ctx1_tx", > + "ctx2_rx", "ctx2_tx", > + "ctx3_rx", "ctx3_tx"; > + firmware-name = "imx/easrc/easrc-imx8mn.bin"; > + fsl,asrc-rate = <8000>; > + fsl,asrc-format = <2>; > + > + ports { > + #address-cells = <1>; > + #size-cells = <0>; > + > + port@0 { > + reg = <0>; > + playback-only; > + easrc1_endpoint0: endpoint { Needn't label. Frank > + remote-endpoint = <&fe00_ep>; > + }; > + }; > + > + port@1 { > + reg = <1>; > + playback-only; > + easrc1_endpoint1: endpoint { > + remote-endpoint = <&fe01_ep>; > + }; > + }; > + > + port@2 { > + reg = <2>; > + capture-only; > + easrc1_endpoint2: endpoint { > + remote-endpoint = <&fe02_ep>; > + }; > + }; > + > + port@3 { > + reg = <3>; > + capture-only; > + easrc1_endpoint3: endpoint { > + remote-endpoint = <&fe03_ep>; > + }; > + }; > + }; > + }; > -- > 2.34.1 > >