container_of(hw, struct rt5682_priv,
                             dai_clks_hw[RT5682_DAI_WCLK_IDX]);
        struct snd_soc_component *component = rt5682->component;
-       struct clk *parent_clk;
+       struct clk_hw *parent_hw;
        const char * const clk_name = clk_hw_get_name(hw);
        int pre_div;
        unsigned int clk_pll2_out;
         *
         * It will set the codec anyway by assuming mclk is 48MHz.
         */
-       parent_clk = clk_get_parent(hw->clk);
-       if (!parent_clk)
+       parent_hw = clk_hw_get_parent(hw);
+       if (!parent_hw)
                dev_warn(component->dev,
                        "Parent mclk of wclk not acquired in driver. Please ensure mclk was provided as %d Hz.\n",
                        CLK_PLL2_FIN);