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. 15fb601316SHerve Codina It provides several DAIs. For each DAI, the DAI is working in interleaved mode 16fb601316SHerve Codina if only one QMC channel is used by the DAI or it is working in non-interleaved 17fb601316SHerve 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: 50fb601316SHerve Codina items: 51f72ebecdSHerve Codina - description: phandle to QMC node 52f72ebecdSHerve Codina - description: Channel number 53fb601316SHerve Codina minItems: 1 54f72ebecdSHerve Codina description: 55fb601316SHerve Codina Should be a phandle/number pair list. The list of phandle to QMC node 56fb601316SHerve Codina and the QMC channel pair to use for this DAI. 57fb601316SHerve Codina If only one phandle/number pair is provided, this DAI works in 58fb601316SHerve Codina interleaved mode, i.e. audio channels for this DAI are interleaved in 59fb601316SHerve Codina the QMC channel. If more than one pair is provided, this DAI works 60fb601316SHerve Codina in non-interleave mode. In that case the first audio channel uses the 61fb601316SHerve Codina the first QMC channel, the second audio channel uses the second QMC 62fb601316SHerve 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 }; 91fb601316SHerve Codina dai@18 { 92fb601316SHerve Codina reg = <18>; 93fb601316SHerve Codina /* Non-interleaved mode */ 94fb601316SHerve Codina fsl,qmc-chan = <&qmc 18>, <&qmc 19>; 95fb601316SHerve 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 }; 132fb601316SHerve Codina simple-audio-card,dai-link@2 { 133fb601316SHerve Codina reg = <2>; 134fb601316SHerve Codina format = "dsp_b"; 135fb601316SHerve Codina cpu { 136fb601316SHerve Codina sound-dai = <&audio_controller 18>; 137fb601316SHerve Codina }; 138fb601316SHerve Codina codec { 139fb601316SHerve Codina sound-dai = <&codec3>; 140fb601316SHerve Codina dai-tdm-slot-num = <2>; 141fb601316SHerve Codina dai-tdm-slot-width = <8>; 142fb601316SHerve Codina /* TS 9, 10 */ 143fb601316SHerve Codina dai-tdm-slot-tx-mask = <0 0 0 0 0 0 0 0 0 1 1>; 144fb601316SHerve Codina dai-tdm-slot-rx-mask = <0 0 0 0 0 0 0 0 0 1 1>; 145fb601316SHerve Codina }; 146fb601316SHerve Codina }; 147f72ebecdSHerve Codina }; 148