]> git.ipfire.org Git - thirdparty/linux.git/commitdiff
arm64: dts: imx952-evk: Add bt-sco sound card support
authorShengjiu Wang <shengjiu.wang@nxp.com>
Mon, 16 Mar 2026 02:14:38 +0000 (10:14 +0800)
committerFrank Li <Frank.Li@nxp.com>
Fri, 27 Mar 2026 13:52:58 +0000 (09:52 -0400)
Add bt-sco sound card, which is used by BT HFP case.
It supports wb profile as default.

Signed-off-by: Shengjiu Wang <shengjiu.wang@nxp.com>
Reviewed-by: Daniel Baluta <daniel.baluta@nxp.com>
Signed-off-by: Frank Li <Frank.Li@nxp.com>
arch/arm64/boot/dts/freescale/imx952-evk.dts

index ef0058b98573f8c71e9701e9f5647745a69cc1bf..2615fbb631453dad078caa2f06f4608cda23674c 100644 (file)
                spi6 = &lpspi7;
        };
 
+       bt_sco_codec: audio-codec-bt-sco {
+               #sound-dai-cells = <1>;
+               compatible = "linux,bt-sco";
+       };
+
        chosen {
                stdout-path = &lpuart1;
        };
                enable-active-high;
        };
 
+       sound-bt-sco {
+               compatible = "simple-audio-card";
+               simple-audio-card,bitclock-inversion;
+               simple-audio-card,bitclock-master = <&btcpu>;
+               simple-audio-card,format = "dsp_a";
+               simple-audio-card,frame-master = <&btcpu>;
+               simple-audio-card,name = "bt-sco-audio";
+
+               simple-audio-card,codec {
+                       sound-dai = <&bt_sco_codec 1>;
+               };
+
+               btcpu: simple-audio-card,cpu {
+                       dai-tdm-slot-num = <2>;
+                       dai-tdm-slot-width = <16>;
+                       sound-dai = <&sai1>;
+               };
+       };
+
        sound-wm8962 {
                compatible = "fsl,imx-audio-wm8962";
                audio-asrc = <&asrc1>;
        status = "okay";
 };
 
+&sai1 {
+       assigned-clocks = <&scmi_clk IMX952_CLK_AUDIOPLL1_VCO>,
+                         <&scmi_clk IMX952_CLK_AUDIOPLL2_VCO>,
+                         <&scmi_clk IMX952_CLK_AUDIOPLL1>,
+                         <&scmi_clk IMX952_CLK_AUDIOPLL2>,
+                         <&scmi_clk IMX952_CLK_SAI1>;
+       assigned-clock-parents = <0>, <0>, <0>, <0>,
+                                <&scmi_clk IMX952_CLK_AUDIOPLL1>;
+       assigned-clock-rates = <3932160000>, <3612672000>,
+                              <393216000>, <361267200>, <12288000>;
+       pinctrl-0 = <&pinctrl_sai1>;
+       pinctrl-1 = <&pinctrl_sai1_sleep>;
+       pinctrl-names = "default", "sleep";
+       fsl,sai-mclk-direction-output;
+       status = "okay";
+};
+
 &sai3 {
        assigned-clocks = <&scmi_clk IMX952_CLK_AUDIOPLL1_VCO>,
                          <&scmi_clk IMX952_CLK_AUDIOPLL2_VCO>,
                >;
        };
 
+       pinctrl_sai1: sai1grp {
+               fsl,pins = <
+                       IMX952_PAD_SAI1_RXD0__AONMIX_TOP_SAI1_RX_DATA_0         0x31e
+                       IMX952_PAD_SAI1_TXC__AONMIX_TOP_SAI1_TX_BCLK            0x31e
+                       IMX952_PAD_SAI1_TXFS__AONMIX_TOP_SAI1_TX_SYNC           0x31e
+                       IMX952_PAD_SAI1_TXD0__AONMIX_TOP_SAI1_TX_DATA_0         0x31e
+               >;
+       };
+
+       pinctrl_sai1_sleep: sai1sleepgrp {
+               fsl,pins = <
+                       IMX952_PAD_SAI1_RXD0__AONMIX_TOP_GPIO1_IO_14            0x51e
+                       IMX952_PAD_SAI1_TXC__AONMIX_TOP_GPIO1_IO_12             0x51e
+                       IMX952_PAD_SAI1_TXFS__AONMIX_TOP_GPIO1_IO_11            0x51e
+                       IMX952_PAD_SAI1_TXD0__AONMIX_TOP_GPIO1_IO_13            0x51e
+               >;
+       };
+
        pinctrl_sai3: sai3grp {
                fsl,pins = <
                        IMX952_PAD_GPIO_IO17__WAKEUPMIX_TOP_SAI3_MCLK                   0x31e