18c2ecf20Sopenharmony_ciQualcomm Audio Front End (Q6AFE) binding 28c2ecf20Sopenharmony_ci 38c2ecf20Sopenharmony_ciAFE is one of the APR audio service on Q6DSP 48c2ecf20Sopenharmony_ciPlease refer to qcom,apr.txt for details of the common apr service bindings 58c2ecf20Sopenharmony_ciused by all apr services. Must contain the following properties. 68c2ecf20Sopenharmony_ci 78c2ecf20Sopenharmony_ci- compatible: 88c2ecf20Sopenharmony_ci Usage: required 98c2ecf20Sopenharmony_ci Value type: <stringlist> 108c2ecf20Sopenharmony_ci Definition: must be "qcom,q6afe-v<MAJOR-NUMBER>.<MINOR-NUMBER>" 118c2ecf20Sopenharmony_ci Or "qcom,q6afe" where the version number can be queried 128c2ecf20Sopenharmony_ci from DSP. 138c2ecf20Sopenharmony_ci example "qcom,q6afe" 148c2ecf20Sopenharmony_ci 158c2ecf20Sopenharmony_ci= AFE DAIs (Digial Audio Interface) 168c2ecf20Sopenharmony_ci"dais" subnode of the AFE node. It represents afe dais, each afe dai is a 178c2ecf20Sopenharmony_cisubnode of "dais" representing board specific dai setup. 188c2ecf20Sopenharmony_ci"dais" node should have following properties followed by dai children. 198c2ecf20Sopenharmony_ci 208c2ecf20Sopenharmony_ci- compatible: 218c2ecf20Sopenharmony_ci Usage: required 228c2ecf20Sopenharmony_ci Value type: <stringlist> 238c2ecf20Sopenharmony_ci Definition: must be "qcom,q6afe-dais" 248c2ecf20Sopenharmony_ci 258c2ecf20Sopenharmony_ci- #sound-dai-cells 268c2ecf20Sopenharmony_ci Usage: required 278c2ecf20Sopenharmony_ci Value type: <u32> 288c2ecf20Sopenharmony_ci Definition: Must be 1 298c2ecf20Sopenharmony_ci 308c2ecf20Sopenharmony_ci- #address-cells 318c2ecf20Sopenharmony_ci Usage: required 328c2ecf20Sopenharmony_ci Value type: <u32> 338c2ecf20Sopenharmony_ci Definition: Must be 1 348c2ecf20Sopenharmony_ci 358c2ecf20Sopenharmony_ci- #size-cells 368c2ecf20Sopenharmony_ci Usage: required 378c2ecf20Sopenharmony_ci Value type: <u32> 388c2ecf20Sopenharmony_ci Definition: Must be 0 398c2ecf20Sopenharmony_ci 408c2ecf20Sopenharmony_ci== AFE DAI is subnode of "dais" and represent a dai, it includes board specific 418c2ecf20Sopenharmony_ciconfiguration of each dai. Must contain the following properties. 428c2ecf20Sopenharmony_ci 438c2ecf20Sopenharmony_ci- reg 448c2ecf20Sopenharmony_ci Usage: required 458c2ecf20Sopenharmony_ci Value type: <u32> 468c2ecf20Sopenharmony_ci Definition: Must be dai id 478c2ecf20Sopenharmony_ci 488c2ecf20Sopenharmony_ci- qcom,sd-lines 498c2ecf20Sopenharmony_ci Usage: required for mi2s interface 508c2ecf20Sopenharmony_ci Value type: <prop-encoded-array> 518c2ecf20Sopenharmony_ci Definition: Must be list of serial data lines used by this dai. 528c2ecf20Sopenharmony_ci should be one or more of the 0-3 sd lines. 538c2ecf20Sopenharmony_ci 548c2ecf20Sopenharmony_ci - qcom,tdm-sync-mode: 558c2ecf20Sopenharmony_ci Usage: required for tdm interface 568c2ecf20Sopenharmony_ci Value type: <prop-encoded-array> 578c2ecf20Sopenharmony_ci Definition: Synchronization mode. 588c2ecf20Sopenharmony_ci 0 - Short sync bit mode 598c2ecf20Sopenharmony_ci 1 - Long sync mode 608c2ecf20Sopenharmony_ci 2 - Short sync slot mode 618c2ecf20Sopenharmony_ci 628c2ecf20Sopenharmony_ci - qcom,tdm-sync-src: 638c2ecf20Sopenharmony_ci Usage: required for tdm interface 648c2ecf20Sopenharmony_ci Value type: <prop-encoded-array> 658c2ecf20Sopenharmony_ci Definition: Synchronization source. 668c2ecf20Sopenharmony_ci 0 - External source 678c2ecf20Sopenharmony_ci 1 - Internal source 688c2ecf20Sopenharmony_ci 698c2ecf20Sopenharmony_ci - qcom,tdm-data-out: 708c2ecf20Sopenharmony_ci Usage: required for tdm interface 718c2ecf20Sopenharmony_ci Value type: <prop-encoded-array> 728c2ecf20Sopenharmony_ci Definition: Data out signal to drive with other masters. 738c2ecf20Sopenharmony_ci 0 - Disable 748c2ecf20Sopenharmony_ci 1 - Enable 758c2ecf20Sopenharmony_ci 768c2ecf20Sopenharmony_ci - qcom,tdm-invert-sync: 778c2ecf20Sopenharmony_ci Usage: required for tdm interface 788c2ecf20Sopenharmony_ci Value type: <prop-encoded-array> 798c2ecf20Sopenharmony_ci Definition: Invert the sync. 808c2ecf20Sopenharmony_ci 0 - Normal 818c2ecf20Sopenharmony_ci 1 - Invert 828c2ecf20Sopenharmony_ci 838c2ecf20Sopenharmony_ci - qcom,tdm-data-delay: 848c2ecf20Sopenharmony_ci Usage: required for tdm interface 858c2ecf20Sopenharmony_ci Value type: <prop-encoded-array> 868c2ecf20Sopenharmony_ci Definition: Number of bit clock to delay data 878c2ecf20Sopenharmony_ci with respect to sync edge. 888c2ecf20Sopenharmony_ci 0 - 0 bit clock cycle 898c2ecf20Sopenharmony_ci 1 - 1 bit clock cycle 908c2ecf20Sopenharmony_ci 2 - 2 bit clock cycle 918c2ecf20Sopenharmony_ci 928c2ecf20Sopenharmony_ci - qcom,tdm-data-align: 938c2ecf20Sopenharmony_ci Usage: required for tdm interface 948c2ecf20Sopenharmony_ci Value type: <prop-encoded-array> 958c2ecf20Sopenharmony_ci Definition: Indicate how data is packed 968c2ecf20Sopenharmony_ci within the slot. For example, 32 slot width in case of 978c2ecf20Sopenharmony_ci sample bit width is 24. 988c2ecf20Sopenharmony_ci 0 - MSB 998c2ecf20Sopenharmony_ci 1 - LSB 1008c2ecf20Sopenharmony_ci 1018c2ecf20Sopenharmony_ci= AFE CLOCKSS 1028c2ecf20Sopenharmony_ci"clocks" subnode of the AFE node. It represents q6afe clocks 1038c2ecf20Sopenharmony_ci"clocks" node should have following properties. 1048c2ecf20Sopenharmony_ci- compatible: 1058c2ecf20Sopenharmony_ci Usage: required 1068c2ecf20Sopenharmony_ci Value type: <stringlist> 1078c2ecf20Sopenharmony_ci Definition: must be "qcom,q6afe-clocks" 1088c2ecf20Sopenharmony_ci 1098c2ecf20Sopenharmony_ci- #clock-cells: 1108c2ecf20Sopenharmony_ci Usage: required 1118c2ecf20Sopenharmony_ci Value type: <u32> 1128c2ecf20Sopenharmony_ci Definition: Must be 2. Clock Id followed by 1138c2ecf20Sopenharmony_ci below valid clock coupling attributes. 1148c2ecf20Sopenharmony_ci 1 - for no coupled clock 1158c2ecf20Sopenharmony_ci 2 - for dividend of the coupled clock 1168c2ecf20Sopenharmony_ci 3 - for divisor of the coupled clock 1178c2ecf20Sopenharmony_ci 4 - for inverted and no couple clock 1188c2ecf20Sopenharmony_ci 1198c2ecf20Sopenharmony_ci= EXAMPLE 1208c2ecf20Sopenharmony_ci 1218c2ecf20Sopenharmony_ciapr-service@4 { 1228c2ecf20Sopenharmony_ci compatible = "qcom,q6afe"; 1238c2ecf20Sopenharmony_ci reg = <APR_SVC_AFE>; 1248c2ecf20Sopenharmony_ci 1258c2ecf20Sopenharmony_ci dais { 1268c2ecf20Sopenharmony_ci compatible = "qcom,q6afe-dais"; 1278c2ecf20Sopenharmony_ci #sound-dai-cells = <1>; 1288c2ecf20Sopenharmony_ci #address-cells = <1>; 1298c2ecf20Sopenharmony_ci #size-cells = <0>; 1308c2ecf20Sopenharmony_ci 1318c2ecf20Sopenharmony_ci dai@1 { 1328c2ecf20Sopenharmony_ci reg = <HDMI_RX>; 1338c2ecf20Sopenharmony_ci }; 1348c2ecf20Sopenharmony_ci 1358c2ecf20Sopenharmony_ci dai@24 { 1368c2ecf20Sopenharmony_ci reg = <PRIMARY_TDM_RX_0>; 1378c2ecf20Sopenharmony_ci qcom,tdm-sync-mode = <1>: 1388c2ecf20Sopenharmony_ci qcom,tdm-sync-src = <1>; 1398c2ecf20Sopenharmony_ci qcom,tdm-data-out = <0>; 1408c2ecf20Sopenharmony_ci qcom,tdm-invert-sync = <1>; 1418c2ecf20Sopenharmony_ci qcom,tdm-data-delay = <1>; 1428c2ecf20Sopenharmony_ci qcom,tdm-data-align = <0>; 1438c2ecf20Sopenharmony_ci 1448c2ecf20Sopenharmony_ci }; 1458c2ecf20Sopenharmony_ci 1468c2ecf20Sopenharmony_ci dai@25 { 1478c2ecf20Sopenharmony_ci reg = <PRIMARY_TDM_TX_0>; 1488c2ecf20Sopenharmony_ci qcom,tdm-sync-mode = <1>: 1498c2ecf20Sopenharmony_ci qcom,tdm-sync-src = <1>; 1508c2ecf20Sopenharmony_ci qcom,tdm-data-out = <0>; 1518c2ecf20Sopenharmony_ci qcom,tdm-invert-sync = <1>; 1528c2ecf20Sopenharmony_ci qcom,tdm-data-delay <1>: 1538c2ecf20Sopenharmony_ci qcom,tdm-data-align = <0>; 1548c2ecf20Sopenharmony_ci }; 1558c2ecf20Sopenharmony_ci 1568c2ecf20Sopenharmony_ci dai@16 { 1578c2ecf20Sopenharmony_ci reg = <PRIMARY_MI2S_RX>; 1588c2ecf20Sopenharmony_ci qcom,sd-lines = <0 2>; 1598c2ecf20Sopenharmony_ci }; 1608c2ecf20Sopenharmony_ci 1618c2ecf20Sopenharmony_ci dai@17 { 1628c2ecf20Sopenharmony_ci reg = <PRIMARY_MI2S_TX>; 1638c2ecf20Sopenharmony_ci qcom,sd-lines = <1>; 1648c2ecf20Sopenharmony_ci }; 1658c2ecf20Sopenharmony_ci 1668c2ecf20Sopenharmony_ci dai@18 { 1678c2ecf20Sopenharmony_ci reg = <SECONDARY_MI2S_RX>; 1688c2ecf20Sopenharmony_ci qcom,sd-lines = <0 3>; 1698c2ecf20Sopenharmony_ci }; 1708c2ecf20Sopenharmony_ci 1718c2ecf20Sopenharmony_ci dai@19 { 1728c2ecf20Sopenharmony_ci reg = <SECONDARY_MI2S_TX>; 1738c2ecf20Sopenharmony_ci qcom,sd-lines = <1>; 1748c2ecf20Sopenharmony_ci }; 1758c2ecf20Sopenharmony_ci 1768c2ecf20Sopenharmony_ci dai@20 { 1778c2ecf20Sopenharmony_ci reg = <TERTIARY_MI2S_RX>; 1788c2ecf20Sopenharmony_ci qcom,sd-lines = <1 3>; 1798c2ecf20Sopenharmony_ci }; 1808c2ecf20Sopenharmony_ci 1818c2ecf20Sopenharmony_ci dai@21 { 1828c2ecf20Sopenharmony_ci reg = <TERTIARY_MI2S_TX>; 1838c2ecf20Sopenharmony_ci qcom,sd-lines = <0>; 1848c2ecf20Sopenharmony_ci }; 1858c2ecf20Sopenharmony_ci 1868c2ecf20Sopenharmony_ci dai@22 { 1878c2ecf20Sopenharmony_ci reg = <QUATERNARY_MI2S_RX>; 1888c2ecf20Sopenharmony_ci qcom,sd-lines = <0>; 1898c2ecf20Sopenharmony_ci }; 1908c2ecf20Sopenharmony_ci 1918c2ecf20Sopenharmony_ci dai@23 { 1928c2ecf20Sopenharmony_ci reg = <QUATERNARY_MI2S_TX>; 1938c2ecf20Sopenharmony_ci qcom,sd-lines = <1>; 1948c2ecf20Sopenharmony_ci }; 1958c2ecf20Sopenharmony_ci }; 1968c2ecf20Sopenharmony_ci 1978c2ecf20Sopenharmony_ci clocks { 1988c2ecf20Sopenharmony_ci compatible = "qcom,q6afe-clocks"; 1998c2ecf20Sopenharmony_ci #clock-cells = <2>; 2008c2ecf20Sopenharmony_ci }; 2018c2ecf20Sopenharmony_ci}; 202