Unverified Commit f72ebecd authored by Herve Codina's avatar Herve Codina Committed by Mark Brown
Browse files

dt-bindings: sound: Add support for QMC audio



The QMC (QUICC mutichannel controller) is a controller
present in some PowerQUICC SoC such as MPC885.
The QMC audio is an ASoC component that uses the QMC
controller to transfer the audio data.

Signed-off-by: default avatarHerve Codina <herve.codina@bootlin.com>
Reviewed-by: default avatarKrzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
Reviewed-by: default avatarChristophe Leroy <christophe.leroy@csgroup.eu>
Link: https://lore.kernel.org/r/20230217145645.1768659-9-herve.codina@bootlin.com


Signed-off-by: default avatarMark Brown <broonie@kernel.org>
parent db12f7bb
Loading
Loading
Loading
Loading
+117 −0
Original line number Diff line number Diff line
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/sound/fsl,qmc-audio.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#

title: QMC audio

maintainers:
  - Herve Codina <herve.codina@bootlin.com>

description: |
  The QMC audio is an ASoC component which uses QMC (QUICC Multichannel
  Controller) channels to transfer the audio data.
  It provides as many DAI as the number of QMC channel used.

allOf:
  - $ref: dai-common.yaml#

properties:
  compatible:
    const: fsl,qmc-audio

  '#address-cells':
    const: 1
  '#size-cells':
    const: 0
  '#sound-dai-cells':
    const: 1

patternProperties:
  '^dai@([0-9]|[1-5][0-9]|6[0-3])$':
    description:
      A DAI managed by this controller
    type: object

    properties:
      reg:
        minimum: 0
        maximum: 63
        description:
          The DAI number

      fsl,qmc-chan:
        $ref: /schemas/types.yaml#/definitions/phandle-array
        items:
          - items:
              - description: phandle to QMC node
              - description: Channel number
        description:
          Should be a phandle/number pair. The phandle to QMC node and the QMC
          channel to use for this DAI.

    required:
      - reg
      - fsl,qmc-chan

required:
  - compatible
  - '#address-cells'
  - '#size-cells'
  - '#sound-dai-cells'

additionalProperties: false

examples:
  - |
    audio_controller: audio-controller {
        compatible = "fsl,qmc-audio";
        #address-cells = <1>;
        #size-cells = <0>;
        #sound-dai-cells = <1>;
        dai@16 {
            reg = <16>;
            fsl,qmc-chan = <&qmc 16>;
        };
        dai@17 {
            reg = <17>;
            fsl,qmc-chan = <&qmc 17>;
        };
    };

    sound {
        compatible = "simple-audio-card";
        #address-cells = <1>;
        #size-cells = <0>;
        simple-audio-card,dai-link@0 {
            reg = <0>;
            format = "dsp_b";
            cpu {
                sound-dai = <&audio_controller 16>;
            };
            codec {
                sound-dai = <&codec1>;
                dai-tdm-slot-num = <4>;
                dai-tdm-slot-width = <8>;
                /* TS 3, 5, 7, 9 */
                dai-tdm-slot-tx-mask = <0 0 0 1 0 1 0 1 0 1>;
                dai-tdm-slot-rx-mask = <0 0 0 1 0 1 0 1 0 1>;
            };
        };
        simple-audio-card,dai-link@1 {
            reg = <1>;
            format = "dsp_b";
            cpu {
                sound-dai = <&audio_controller 17>;
            };
            codec {
                sound-dai = <&codec2>;
                dai-tdm-slot-num = <4>;
                dai-tdm-slot-width = <8>;
                /* TS 2, 4, 6, 8 */
                dai-tdm-slot-tx-mask = <0 0 1 0 1 0 1 0 1>;
                dai-tdm-slot-rx-mask = <0 0 1 0 1 0 1 0 1>;
            };
        };
    };