0

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!

0 Answers0