struct device *dev = &pdev->dev;
        struct snd_soc_dai_driver *dai_drv;
        struct axg_tdm_iface *iface;
-       int ret, i;
+       int i;
 
        iface = devm_kzalloc(dev, sizeof(*iface), GFP_KERNEL);
        if (!iface)
         * At this point, ignore the error if mclk is missing. We'll
         * throw an error if the cpu dai is master and mclk is missing
         */
-       iface->mclk = devm_clk_get(dev, "mclk");
-       if (IS_ERR(iface->mclk)) {
-               ret = PTR_ERR(iface->mclk);
-               if (ret == -ENOENT)
-                       iface->mclk = NULL;
-               else
-                       return dev_err_probe(dev, ret, "failed to get mclk\n");
-       }
+       iface->mclk = devm_clk_get_optional(dev, "mclk");
+       if (IS_ERR(iface->mclk))
+               return dev_err_probe(dev, PTR_ERR(iface->mclk), "failed to get mclk\n");
 
        return devm_snd_soc_register_component(dev,
                                        &axg_tdm_iface_component_drv, dai_drv,