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