控制MCLK实际输出的配置为codec中第2~5行的配置,
&dummy_codec {
status = "okay";
clocks = <&cru SCLK_I2S0_8CH_TX_OUT>;
clock-names = "mclk";
pinctrl-names = "default";
pinctrl-0 = <&i2s_8ch_0_mclk>;
};
其中SCLK_I2S0_8CH_TX_OUT
需要根据所选的I2S通道的时钟SCLK_I2S0_8CH_TX
在rk3308-cru.h
中找到带有***_OUT
的宏定义配置
i2s_8ch_0: i2s@ff300000 {
...
clocks = <&cru SCLK_I2S0_8CH_TX>, <&cru SCLK_I2S0_8CH_RX>, <&cru HCLK_I2S0_8CH>,
<&cru SCLK_I2S0_8CH_TX_SRC>,
<&cru SCLK_I2S0_8CH_RX_SRC>,
<&cru PLL_VPLL0>,
<&cru PLL_VPLL1>;
...
}
I2S通道的DTS无需特别配置
&i2s_8ch_0 {
status = "okay";
#sound-dai-cells = <0>;
rockchip,clk-trcm = <1>;
pinctrl-names = "default";
rockchip,bclk-fs= <32>;
pinctrl-0 = <&i2s_8ch_0_sclktx
&i2s_8ch_0_lrcktx
&i2s_8ch_0_sdi0
&i2s_8ch_0_mclk>;
};