Hi,weidong,
如果使用的解码芯片是不带I2C或者SPI控制的芯片,那驱动程序应该怎样去写呢?
Hi,
之所以dts能够加载这个driver,说明linux里有这个driver了,不用再写了。
你只要用就行了。上面这些东西,你根据情况,加到你的dts里,复用引脚适当修改就行了。
weidong
Hi,
在我们的i.MX8MP dts中支持了bt autio,你可以参考这些配置。
arch/arm64/boot/dts/freescale/imx8mp-evk.dts文件中,可以看到。
--------------------------------------------------------------------------
/ {
......
bt_sco_codec: bt_sco_codec {
#sound-dai-cells = <1>;
compatible = "linux,bt-sco";
};
sound-bt-sco {
compatible = "simple-audio-card";
simple-audio-card,name = "bt-sco-audio";
simple-audio-card,format = "dsp_a";
simple-audio-card,bitclock-inversion;
simple-audio-card,frame-master = <&btcpu>;
simple-audio-card,bitclock-master = <&btcpu>;
btcpu: simple-audio-card,cpu {
sound-dai = <&sai2>;
dai-tdm-slot-num = <2>;
dai-tdm-slot-width = <16>;
};
simple-audio-card,codec {
sound-dai = <&bt_sco_codec 1>;
};
};
......
}
&iomuxc {
......
pinctrl_sai2: sai2grp {
fsl,pins = <
MX8MP_IOMUXC_SAI2_TXC__AUDIOMIX_SAI2_TX_BCLK 0xd6
MX8MP_IOMUXC_SAI2_TXFS__AUDIOMIX_SAI2_TX_SYNC 0xd6
MX8MP_IOMUXC_SAI2_TXD0__AUDIOMIX_SAI2_TX_DATA00 0xd6
MX8MP_IOMUXC_SAI2_RXD0__AUDIOMIX_SAI2_RX_DATA00 0xd6
>;
};
......
}
&sai2 {
#sound-dai-cells = <0>;
pinctrl-names = "default";
pinctrl-0 = <&pinctrl_sai2>;
assigned-clocks = <&clk IMX8MP_CLK_SAI2>;
assigned-clock-parents = <&clk IMX8MP_AUDIO_PLL1_OUT>;
assigned-clock-rates = <12288000>;
status = "okay";
};
--------------------------------------------------------------
以上来自L5.4.70_2.3.0 BSP,5.4.24, 5.4.47, 5.10.35,5.10.52,等都支持
Have a good day!
Regards,
weidong
Hi,weidong
请问linux,bt-sco这个程序应该参考哪个程序编写呢?