The configuration of DTS is as follows:
&sai3 {
pinctrl-names = "default";
pinctrl-0 = <&pinctrl_sai3>;
assigned-clocks = <&clk IMX8MP_CLK_SAI3>;
assigned-clock-parents = <&clk IMX8MP_AUDIO_PLL1_OUT>;
assigned-clock-rates = <12288000>;
clocks = <&audio_blk_ctrl IMX8MP_CLK_AUDIO_BLK_CTRL_SAI3_IPG>, <&clk IMX8MP_CLK_DUMMY>,
<&audio_blk_ctrl IMX8MP_CLK_AUDIO_BLK_CTRL_SAI3_MCLK1>, <&clk IMX8MP_CLK_DUMMY>,
<&clk IMX8MP_CLK_DUMMY>;
clock-names = "bus", "mclk0", "mclk1", "mclk2", "mclk3";
fsl,sai-mclk-direction-output;
status = "okay";
};
audio_blk_ctrl: audio-blk-ctrl@30e20000 {
compatible = "fsl,imx8mp-audio-blk-ctrl", "syscon";
reg = <0x30e20000 0x50C>;
power-domains = <&audiomix_pd>;
#clock-cells = <1>;
#reset-cells = <1>;
assigned-clocks = <&audio_blk_ctrl IMX8MP_CLK_AUDIO_BLK_CTRL_SAI_PLL_BYPASS>;
assigned-clock-parents = <&audio_blk_ctrl IMX8MP_CLK_AUDIO_BLK_CTRL_SAI_PLL>;
status = "okay";
};
but prompt that clk cannot be obtained when SAI driver is executing
[ 2.477906] fsl-sai 30c20000.sai: failed to get bus clock: -517
[ 2.482558] random: fast init done
[ 2.485956] fsl-sai 30c30000.sai: failed to get bus clock: -517
When the SAI driver executes the probe function, audio_ blk_ Ctrl has not yet executed the probe function
[ 2.668045] start imx_blk_ctrl_probe
[ 2.673761] start imx_blk_ctrl_probe
[ 2.682468] start imx_blk_ctrl_probe
I tried to convert the module_ platform_ Change driver to arch_ Initcall but no effect
static int __init imx_blk_ctrl_init(void)
{
return platform_driver_register(&imx_blk_ctrl_driver);
}
arch_initcall(imx_blk_ctrl_init);
//module_platform_driver(imx_blk_ctrl_driver);
May I ask if there is any way to solve this problem,thanks!