]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
arm64: dts: imx943-evk: add bt-sco sound card support
authorShengjiu Wang <shengjiu.wang@nxp.com>
Wed, 28 May 2025 01:58:36 +0000 (09:58 +0800)
committerShawn Guo <shawnguo@kernel.org>
Mon, 30 Jun 2025 03:30:40 +0000 (11:30 +0800)
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: Frank Li <Frank.Li@nxp.com>
Signed-off-by: Shawn Guo <shawnguo@kernel.org>
arch/arm64/boot/dts/freescale/imx943-evk.dts

index da08aaa959043c902d44682017ac16a1a89e91ec..85cec644dd92675a6cca65a4129095da8b14ae15 100644 (file)
                serial0 = &lpuart1;
        };
 
+       bt_sco_codec: bt-sco-codec {
+               compatible = "linux,bt-sco";
+               #sound-dai-cells = <1>;
+       };
+
        chosen {
                stdout-path = &lpuart1;
        };
                };
        };
 
+       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 = <&sai3>;
+               };
+       };
+
        sound-wm8962 {
                compatible = "fsl,imx-audio-wm8962";
                audio-codec = <&wm8962>;
                                #gpio-cells = <2>;
                                gpio-controller;
 
+                               sai3-sel-hog {
+                                       gpios = <11 GPIO_ACTIVE_HIGH>;
+                                       gpio-hog;
+                                       output-high;
+                               };
+
                                /* eMMC IOMUX selection */
                                sd1-sel-hog {
                                        gpios = <0 GPIO_ACTIVE_HIGH>;
        status = "okay";
 };
 
+&sai3 {
+       assigned-clocks = <&scmi_clk IMX94_CLK_AUDIOPLL1_VCO>,
+                         <&scmi_clk IMX94_CLK_AUDIOPLL2_VCO>,
+                         <&scmi_clk IMX94_CLK_AUDIOPLL1>,
+                         <&scmi_clk IMX94_CLK_AUDIOPLL2>,
+                         <&scmi_clk IMX94_CLK_SAI3>;
+       assigned-clock-parents = <0>, <0>, <0>, <0>,
+                                <&scmi_clk IMX94_CLK_AUDIOPLL1>;
+       assigned-clock-rates = <3932160000>,
+                              <3612672000>, <393216000>,
+                              <361267200>, <12288000>;
+       pinctrl-0 = <&pinctrl_sai3>;
+       pinctrl-names = "default";
+       fsl,sai-mclk-direction-output;
+       status = "okay";
+};
+
 &scmi_iomuxc {
 
        pinctrl_ioexpander_int2: ioexpanderint2grp {
                >;
        };
 
+       pinctrl_sai3: sai3grp {
+               fsl,pins = <
+                       IMX94_PAD_GPIO_IO42__SAI3_TX_BCLK       0x31e
+                       IMX94_PAD_GPIO_IO56__SAI3_TX_SYNC       0x31e
+                       IMX94_PAD_GPIO_IO46__SAI3_RX_DATA0      0x31e
+                       IMX94_PAD_GPIO_IO47__SAI3_TX_DATA0      0x31e
+               >;
+       };
+
        pinctrl_uart1: uart1grp {
                fsl,pins = <
                        IMX94_PAD_UART1_TXD__LPUART1_TX         0x31e