1f72ebecdSHerve Codina# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) 2f72ebecdSHerve Codina%YAML 1.2 3f72ebecdSHerve Codina--- 4f72ebecdSHerve Codina$id: http://devicetree.org/schemas/sound/fsl,qmc-audio.yaml# 5f72ebecdSHerve Codina$schema: http://devicetree.org/meta-schemas/core.yaml# 6f72ebecdSHerve Codina 7f72ebecdSHerve Codinatitle: QMC audio 8f72ebecdSHerve Codina 9f72ebecdSHerve Codinamaintainers: 10f72ebecdSHerve Codina - Herve Codina <herve.codina@bootlin.com> 11f72ebecdSHerve Codina 12f72ebecdSHerve Codinadescription: | 13f72ebecdSHerve Codina The QMC audio is an ASoC component which uses QMC (QUICC Multichannel 14f72ebecdSHerve Codina Controller) channels to transfer the audio data. 15*fb601316SHerve Codina It provides several DAIs. For each DAI, the DAI is working in interleaved mode 16*fb601316SHerve Codina if only one QMC channel is used by the DAI or it is working in non-interleaved 17*fb601316SHerve Codina mode if several QMC channels are used by the DAI. 18f72ebecdSHerve Codina 19f72ebecdSHerve CodinaallOf: 20f72ebecdSHerve Codina - $ref: dai-common.yaml# 21f72ebecdSHerve Codina 22f72ebecdSHerve Codinaproperties: 23f72ebecdSHerve Codina compatible: 24f72ebecdSHerve Codina const: fsl,qmc-audio 25f72ebecdSHerve Codina 26f72ebecdSHerve Codina '#address-cells': 27f72ebecdSHerve Codina const: 1 28f72ebecdSHerve Codina '#size-cells': 29f72ebecdSHerve Codina const: 0 30f72ebecdSHerve Codina '#sound-dai-cells': 31f72ebecdSHerve Codina const: 1 32f72ebecdSHerve Codina 33f72ebecdSHerve CodinapatternProperties: 34f72ebecdSHerve Codina '^dai@([0-9]|[1-5][0-9]|6[0-3])$': 35f72ebecdSHerve Codina description: 36f72ebecdSHerve Codina A DAI managed by this controller 37f72ebecdSHerve Codina type: object 387b71da59SRob Herring additionalProperties: false 39f72ebecdSHerve Codina 40f72ebecdSHerve Codina properties: 41f72ebecdSHerve Codina reg: 42f72ebecdSHerve Codina minimum: 0 43f72ebecdSHerve Codina maximum: 63 44f72ebecdSHerve Codina description: 45f72ebecdSHerve Codina The DAI number 46f72ebecdSHerve Codina 47f72ebecdSHerve Codina fsl,qmc-chan: 48f72ebecdSHerve Codina $ref: /schemas/types.yaml#/definitions/phandle-array 49f72ebecdSHerve Codina items: 50*fb601316SHerve Codina items: 51f72ebecdSHerve Codina - description: phandle to QMC node 52f72ebecdSHerve Codina - description: Channel number 53*fb601316SHerve Codina minItems: 1 54f72ebecdSHerve Codina description: 55*fb601316SHerve Codina Should be a phandle/number pair list. The list of phandle to QMC node 56*fb601316SHerve Codina and the QMC channel pair to use for this DAI. 57*fb601316SHerve Codina If only one phandle/number pair is provided, this DAI works in 58*fb601316SHerve Codina interleaved mode, i.e. audio channels for this DAI are interleaved in 59*fb601316SHerve Codina the QMC channel. If more than one pair is provided, this DAI works 60*fb601316SHerve Codina in non-interleave mode. In that case the first audio channel uses the 61*fb601316SHerve Codina the first QMC channel, the second audio channel uses the second QMC 62*fb601316SHerve Codina channel, etc... 63f72ebecdSHerve Codina 64f72ebecdSHerve Codina required: 65f72ebecdSHerve Codina - reg 66f72ebecdSHerve Codina - fsl,qmc-chan 67f72ebecdSHerve Codina 68f72ebecdSHerve Codinarequired: 69f72ebecdSHerve Codina - compatible 70f72ebecdSHerve Codina - '#address-cells' 71f72ebecdSHerve Codina - '#size-cells' 72f72ebecdSHerve Codina - '#sound-dai-cells' 73f72ebecdSHerve Codina 74f72ebecdSHerve CodinaadditionalProperties: false 75f72ebecdSHerve Codina 76f72ebecdSHerve Codinaexamples: 77f72ebecdSHerve Codina - | 78f72ebecdSHerve Codina audio_controller: audio-controller { 79f72ebecdSHerve Codina compatible = "fsl,qmc-audio"; 80f72ebecdSHerve Codina #address-cells = <1>; 81f72ebecdSHerve Codina #size-cells = <0>; 82f72ebecdSHerve Codina #sound-dai-cells = <1>; 83f72ebecdSHerve Codina dai@16 { 84f72ebecdSHerve Codina reg = <16>; 85f72ebecdSHerve Codina fsl,qmc-chan = <&qmc 16>; 86f72ebecdSHerve Codina }; 87f72ebecdSHerve Codina dai@17 { 88f72ebecdSHerve Codina reg = <17>; 89f72ebecdSHerve Codina fsl,qmc-chan = <&qmc 17>; 90f72ebecdSHerve Codina }; 91*fb601316SHerve Codina dai@18 { 92*fb601316SHerve Codina reg = <18>; 93*fb601316SHerve Codina /* Non-interleaved mode */ 94*fb601316SHerve Codina fsl,qmc-chan = <&qmc 18>, <&qmc 19>; 95*fb601316SHerve Codina }; 96f72ebecdSHerve Codina }; 97f72ebecdSHerve Codina 98f72ebecdSHerve Codina sound { 99f72ebecdSHerve Codina compatible = "simple-audio-card"; 100f72ebecdSHerve Codina #address-cells = <1>; 101f72ebecdSHerve Codina #size-cells = <0>; 102f72ebecdSHerve Codina simple-audio-card,dai-link@0 { 103f72ebecdSHerve Codina reg = <0>; 104f72ebecdSHerve Codina format = "dsp_b"; 105f72ebecdSHerve Codina cpu { 106f72ebecdSHerve Codina sound-dai = <&audio_controller 16>; 107f72ebecdSHerve Codina }; 108f72ebecdSHerve Codina codec { 109f72ebecdSHerve Codina sound-dai = <&codec1>; 110f72ebecdSHerve Codina dai-tdm-slot-num = <4>; 111f72ebecdSHerve Codina dai-tdm-slot-width = <8>; 112f72ebecdSHerve Codina /* TS 3, 5, 7, 9 */ 113f72ebecdSHerve Codina dai-tdm-slot-tx-mask = <0 0 0 1 0 1 0 1 0 1>; 114f72ebecdSHerve Codina dai-tdm-slot-rx-mask = <0 0 0 1 0 1 0 1 0 1>; 115f72ebecdSHerve Codina }; 116f72ebecdSHerve Codina }; 117f72ebecdSHerve Codina simple-audio-card,dai-link@1 { 118f72ebecdSHerve Codina reg = <1>; 119f72ebecdSHerve Codina format = "dsp_b"; 120f72ebecdSHerve Codina cpu { 121f72ebecdSHerve Codina sound-dai = <&audio_controller 17>; 122f72ebecdSHerve Codina }; 123f72ebecdSHerve Codina codec { 124f72ebecdSHerve Codina sound-dai = <&codec2>; 125f72ebecdSHerve Codina dai-tdm-slot-num = <4>; 126f72ebecdSHerve Codina dai-tdm-slot-width = <8>; 127f72ebecdSHerve Codina /* TS 2, 4, 6, 8 */ 128f72ebecdSHerve Codina dai-tdm-slot-tx-mask = <0 0 1 0 1 0 1 0 1>; 129f72ebecdSHerve Codina dai-tdm-slot-rx-mask = <0 0 1 0 1 0 1 0 1>; 130f72ebecdSHerve Codina }; 131f72ebecdSHerve Codina }; 132*fb601316SHerve Codina simple-audio-card,dai-link@2 { 133*fb601316SHerve Codina reg = <2>; 134*fb601316SHerve Codina format = "dsp_b"; 135*fb601316SHerve Codina cpu { 136*fb601316SHerve Codina sound-dai = <&audio_controller 18>; 137*fb601316SHerve Codina }; 138*fb601316SHerve Codina codec { 139*fb601316SHerve Codina sound-dai = <&codec3>; 140*fb601316SHerve Codina dai-tdm-slot-num = <2>; 141*fb601316SHerve Codina dai-tdm-slot-width = <8>; 142*fb601316SHerve Codina /* TS 9, 10 */ 143*fb601316SHerve Codina dai-tdm-slot-tx-mask = <0 0 0 0 0 0 0 0 0 1 1>; 144*fb601316SHerve Codina dai-tdm-slot-rx-mask = <0 0 0 0 0 0 0 0 0 1 1>; 145*fb601316SHerve Codina }; 146*fb601316SHerve Codina }; 147f72ebecdSHerve Codina }; 148