master/slave配置
您可在DTS中配置CPU_DAI和Codec,分别对应master或slave。以下代码块为一个示例:
linux/arch/riscv/boot/dts/starfive/codecs/sf_es8316.dtsi
&sound7 {
/* i2s + es8316 */
simple-audio-card,dai-link@0 {
reg = <0>;
format = "i2s";
bitclock-master = <&sndes8316>;
frame-master = <&sndes8316>;
mclk-fs = <256>;
status = "okay";
sndi2srx1: cpu0 {
sound-dai = <&i2srx_3ch>;
};
sndi2stx1: cpu1 {
sound-dai = <&i2stx_4ch1>;
};
sndes8316: codec {
sound-dai = <&es8316>;
};
};
};在以上示例代码中,您可以得知bitclock-master和frame-master的属性,这两个属性就是配置该声卡的master或slave,该属性指向的设备(CPU_DAI或Codec),则作为时钟的提供者(master),而另一个设备自动就变成slave。由于I2Smaster自身的硬件限制,没有时钟IO输出,且已作为HDMI
Audio的CPU_DAI,因此在ES8316声卡中,是以Codec ES8316作为master,I2S则作为slave。
