xref: /freebsd/sys/contrib/device-tree/Bindings/sound/qcom,q6dsp-lpass-ports.yaml (revision 7ef62cebc2f965b0f640263e179276928885e33d)
18cc087a1SEmmanuel Vadot# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
28cc087a1SEmmanuel Vadot%YAML 1.2
38cc087a1SEmmanuel Vadot---
48cc087a1SEmmanuel Vadot$id: "http://devicetree.org/schemas/sound/qcom,q6dsp-lpass-ports.yaml#"
58cc087a1SEmmanuel Vadot$schema: "http://devicetree.org/meta-schemas/core.yaml#"
68cc087a1SEmmanuel Vadot
78cc087a1SEmmanuel Vadottitle: Qualcomm DSP LPASS(Low Power Audio SubSystem) Audio Ports binding
88cc087a1SEmmanuel Vadot
98cc087a1SEmmanuel Vadotmaintainers:
108cc087a1SEmmanuel Vadot  - Srinivas Kandagatla <srinivas.kandagatla@linaro.org>
118cc087a1SEmmanuel Vadot
128cc087a1SEmmanuel Vadotdescription: |
138cc087a1SEmmanuel Vadot  This binding describes the Qualcomm DSP LPASS Audio ports
148cc087a1SEmmanuel Vadot
158cc087a1SEmmanuel Vadotproperties:
168cc087a1SEmmanuel Vadot  compatible:
178cc087a1SEmmanuel Vadot    enum:
188cc087a1SEmmanuel Vadot      - qcom,q6afe-dais
198cc087a1SEmmanuel Vadot      - qcom,q6apm-lpass-dais
208cc087a1SEmmanuel Vadot
218cc087a1SEmmanuel Vadot  '#sound-dai-cells':
228cc087a1SEmmanuel Vadot    const: 1
238cc087a1SEmmanuel Vadot
248cc087a1SEmmanuel Vadot  '#address-cells':
258cc087a1SEmmanuel Vadot    const: 1
268cc087a1SEmmanuel Vadot
278cc087a1SEmmanuel Vadot  '#size-cells':
288cc087a1SEmmanuel Vadot    const: 0
298cc087a1SEmmanuel Vadot
308cc087a1SEmmanuel Vadot#Digital Audio Interfaces
318cc087a1SEmmanuel VadotpatternProperties:
328cc087a1SEmmanuel Vadot  '^dai@[0-9]+$':
338cc087a1SEmmanuel Vadot    type: object
348cc087a1SEmmanuel Vadot    description:
358cc087a1SEmmanuel Vadot      Q6DSP Digital Audio Interfaces.
368cc087a1SEmmanuel Vadot
378cc087a1SEmmanuel Vadot    properties:
388cc087a1SEmmanuel Vadot      reg:
398cc087a1SEmmanuel Vadot        description:
408cc087a1SEmmanuel Vadot          Digital Audio Interface ID
418cc087a1SEmmanuel Vadot
428cc087a1SEmmanuel Vadot      qcom,sd-lines:
438cc087a1SEmmanuel Vadot        $ref: /schemas/types.yaml#/definitions/uint32-array
448cc087a1SEmmanuel Vadot        description:
458cc087a1SEmmanuel Vadot          List of serial data lines used by this dai.should be one or more of the 0-3 sd lines.
468cc087a1SEmmanuel Vadot        minItems: 1
478cc087a1SEmmanuel Vadot        maxItems: 4
488cc087a1SEmmanuel Vadot        uniqueItems: true
498cc087a1SEmmanuel Vadot        items:
508cc087a1SEmmanuel Vadot          minimum: 0
518cc087a1SEmmanuel Vadot          maximum: 3
528cc087a1SEmmanuel Vadot
538cc087a1SEmmanuel Vadot      qcom,tdm-sync-mode:
548cc087a1SEmmanuel Vadot        $ref: /schemas/types.yaml#/definitions/uint32
558cc087a1SEmmanuel Vadot        enum: [0, 1, 2]
568cc087a1SEmmanuel Vadot        description:
578cc087a1SEmmanuel Vadot          TDM Synchronization mode
588cc087a1SEmmanuel Vadot            0 = Short sync bit mode
598cc087a1SEmmanuel Vadot            1 = Long sync mode
608cc087a1SEmmanuel Vadot            2 = Short sync slot mode
618cc087a1SEmmanuel Vadot
628cc087a1SEmmanuel Vadot      qcom,tdm-sync-src:
638cc087a1SEmmanuel Vadot        $ref: /schemas/types.yaml#/definitions/uint32
648cc087a1SEmmanuel Vadot        enum: [0, 1]
658cc087a1SEmmanuel Vadot        description:
668cc087a1SEmmanuel Vadot          TDM Synchronization source
678cc087a1SEmmanuel Vadot            0 = External source
688cc087a1SEmmanuel Vadot            1 = Internal source
698cc087a1SEmmanuel Vadot
708cc087a1SEmmanuel Vadot      qcom,tdm-data-out:
718cc087a1SEmmanuel Vadot        $ref: /schemas/types.yaml#/definitions/uint32
728cc087a1SEmmanuel Vadot        enum: [0, 1]
738cc087a1SEmmanuel Vadot        description:
748cc087a1SEmmanuel Vadot          TDM Data out signal to drive with other masters
758cc087a1SEmmanuel Vadot            0 = Disable
768cc087a1SEmmanuel Vadot            1 = Enable
778cc087a1SEmmanuel Vadot
788cc087a1SEmmanuel Vadot      qcom,tdm-invert-sync:
798cc087a1SEmmanuel Vadot        $ref: /schemas/types.yaml#/definitions/uint32
808cc087a1SEmmanuel Vadot        enum: [0, 1]
818cc087a1SEmmanuel Vadot        description:
828cc087a1SEmmanuel Vadot          TDM Invert the sync
838cc087a1SEmmanuel Vadot            0 = Normal
848cc087a1SEmmanuel Vadot            1 = Invert
858cc087a1SEmmanuel Vadot
868cc087a1SEmmanuel Vadot      qcom,tdm-data-delay:
878cc087a1SEmmanuel Vadot        $ref: /schemas/types.yaml#/definitions/uint32
888cc087a1SEmmanuel Vadot        enum: [0, 1, 2]
898cc087a1SEmmanuel Vadot        description:
908cc087a1SEmmanuel Vadot          TDM Number of bit clock to delay data
918cc087a1SEmmanuel Vadot            0 = 0 bit clock cycle
928cc087a1SEmmanuel Vadot            1 = 1 bit clock cycle
938cc087a1SEmmanuel Vadot            2 = 2 bit clock cycle
948cc087a1SEmmanuel Vadot
958cc087a1SEmmanuel Vadot      qcom,tdm-data-align:
968cc087a1SEmmanuel Vadot        $ref: /schemas/types.yaml#/definitions/uint32
978cc087a1SEmmanuel Vadot        enum: [0, 1]
988cc087a1SEmmanuel Vadot        description:
998cc087a1SEmmanuel Vadot          Indicate how data is packed within the slot. For example, 32 slot
1008cc087a1SEmmanuel Vadot          width in case of sample bit width is 24TDM Invert the sync.
1018cc087a1SEmmanuel Vadot            0 = MSB
1028cc087a1SEmmanuel Vadot            1 = LSB
1038cc087a1SEmmanuel Vadot
1048cc087a1SEmmanuel Vadot    required:
1058cc087a1SEmmanuel Vadot      - reg
1068cc087a1SEmmanuel Vadot
1078cc087a1SEmmanuel Vadot    allOf:
1088cc087a1SEmmanuel Vadot      - if:
1098cc087a1SEmmanuel Vadot          properties:
1108cc087a1SEmmanuel Vadot            reg:
1118cc087a1SEmmanuel Vadot              contains:
1128cc087a1SEmmanuel Vadot                # TDM DAI ID range from PRIMARY_TDM_RX_0 - QUINARY_TDM_TX_7
1138cc087a1SEmmanuel Vadot                items:
1148cc087a1SEmmanuel Vadot                  minimum: 24
1158cc087a1SEmmanuel Vadot                  maximum: 103
1168cc087a1SEmmanuel Vadot        then:
1178cc087a1SEmmanuel Vadot          required:
1188cc087a1SEmmanuel Vadot            - qcom,tdm-sync-mode
1198cc087a1SEmmanuel Vadot            - qcom,tdm-sync-src
1208cc087a1SEmmanuel Vadot            - qcom,tdm-data-out
1218cc087a1SEmmanuel Vadot            - qcom,tdm-invert-sync
1228cc087a1SEmmanuel Vadot            - qcom,tdm-data-delay
1238cc087a1SEmmanuel Vadot            - qcom,tdm-data-align
1248cc087a1SEmmanuel Vadot
1258cc087a1SEmmanuel Vadot      - if:
1268cc087a1SEmmanuel Vadot          properties:
1278cc087a1SEmmanuel Vadot            reg:
1288cc087a1SEmmanuel Vadot              contains:
1298cc087a1SEmmanuel Vadot                # MI2S DAI ID range PRIMARY_MI2S_RX - QUATERNARY_MI2S_TX and
1308cc087a1SEmmanuel Vadot                # QUINARY_MI2S_RX - QUINARY_MI2S_TX
1318cc087a1SEmmanuel Vadot                items:
1328cc087a1SEmmanuel Vadot                  oneOf:
1338cc087a1SEmmanuel Vadot                    - minimum: 16
1348cc087a1SEmmanuel Vadot                      maximum: 23
1358cc087a1SEmmanuel Vadot                    - minimum: 127
1368cc087a1SEmmanuel Vadot                      maximum: 128
1378cc087a1SEmmanuel Vadot        then:
1388cc087a1SEmmanuel Vadot          required:
1398cc087a1SEmmanuel Vadot            - qcom,sd-lines
1408cc087a1SEmmanuel Vadot
1418cc087a1SEmmanuel Vadot    additionalProperties: false
1428cc087a1SEmmanuel Vadot
1438cc087a1SEmmanuel Vadotrequired:
1448cc087a1SEmmanuel Vadot  - compatible
1458cc087a1SEmmanuel Vadot  - "#sound-dai-cells"
1468cc087a1SEmmanuel Vadot  - "#address-cells"
1478cc087a1SEmmanuel Vadot  - "#size-cells"
1488cc087a1SEmmanuel Vadot
1498cc087a1SEmmanuel VadotadditionalProperties: false
1508cc087a1SEmmanuel Vadot
1518cc087a1SEmmanuel Vadotexamples:
1528cc087a1SEmmanuel Vadot  - |
1538cc087a1SEmmanuel Vadot    #include <dt-bindings/soc/qcom,apr.h>
1548cc087a1SEmmanuel Vadot    #include <dt-bindings/sound/qcom,q6afe.h>
1558cc087a1SEmmanuel Vadot    apr {
156*7ef62cebSEmmanuel Vadot        compatible = "qcom,apr-v2";
1578cc087a1SEmmanuel Vadot        #address-cells = <1>;
1588cc087a1SEmmanuel Vadot        #size-cells = <0>;
159*7ef62cebSEmmanuel Vadot        qcom,domain = <APR_DOMAIN_ADSP>;
160*7ef62cebSEmmanuel Vadot
161*7ef62cebSEmmanuel Vadot        service@4 {
162*7ef62cebSEmmanuel Vadot            compatible = "qcom,q6afe";
1638cc087a1SEmmanuel Vadot            reg = <APR_SVC_AFE>;
164*7ef62cebSEmmanuel Vadot            qcom,protection-domain = "avs/audio", "msm/adsp/audio_pd";
165*7ef62cebSEmmanuel Vadot
166*7ef62cebSEmmanuel Vadot            dais {
1678cc087a1SEmmanuel Vadot                compatible = "qcom,q6afe-dais";
1688cc087a1SEmmanuel Vadot                #address-cells = <1>;
1698cc087a1SEmmanuel Vadot                #size-cells = <0>;
1708cc087a1SEmmanuel Vadot                #sound-dai-cells = <1>;
1718cc087a1SEmmanuel Vadot
1728cc087a1SEmmanuel Vadot                dai@22 {
1738cc087a1SEmmanuel Vadot                    reg = <QUATERNARY_MI2S_RX>;
1748cc087a1SEmmanuel Vadot                    qcom,sd-lines = <0 1 2 3>;
1758cc087a1SEmmanuel Vadot                };
1768cc087a1SEmmanuel Vadot            };
1778cc087a1SEmmanuel Vadot        };
1788cc087a1SEmmanuel Vadot    };
1798cc087a1SEmmanuel Vadot  - |
1808cc087a1SEmmanuel Vadot    #include <dt-bindings/soc/qcom,gpr.h>
1818cc087a1SEmmanuel Vadot    gpr {
1828cc087a1SEmmanuel Vadot        compatible = "qcom,gpr";
1838cc087a1SEmmanuel Vadot        #address-cells = <1>;
1848cc087a1SEmmanuel Vadot        #size-cells = <0>;
1858cc087a1SEmmanuel Vadot        qcom,domain = <GPR_DOMAIN_ID_ADSP>;
186*7ef62cebSEmmanuel Vadot
1878cc087a1SEmmanuel Vadot        service@1 {
1888cc087a1SEmmanuel Vadot            compatible = "qcom,q6apm";
1898cc087a1SEmmanuel Vadot            reg = <GPR_APM_MODULE_IID>;
190*7ef62cebSEmmanuel Vadot
191*7ef62cebSEmmanuel Vadot            dais {
1928cc087a1SEmmanuel Vadot                compatible = "qcom,q6apm-lpass-dais";
1938cc087a1SEmmanuel Vadot                #address-cells = <1>;
1948cc087a1SEmmanuel Vadot                #size-cells = <0>;
1958cc087a1SEmmanuel Vadot                #sound-dai-cells = <1>;
1968cc087a1SEmmanuel Vadot
1978cc087a1SEmmanuel Vadot                dai@22 {
1988cc087a1SEmmanuel Vadot                    reg = <QUATERNARY_MI2S_RX>;
1998cc087a1SEmmanuel Vadot                    qcom,sd-lines = <0 1 2 3>;
2008cc087a1SEmmanuel Vadot                };
2018cc087a1SEmmanuel Vadot            };
2028cc087a1SEmmanuel Vadot        };
2038cc087a1SEmmanuel Vadot    };
204