if (err) {
                        dev_err(&client->dev,
                                "output %u registration failed\n", i);
-                       goto cleanup;
+                       goto free_clk_names;
                }
                if (config[i].always_on)
                        clk_prepare(data->clk[i].hw.clk);
                        data);
        if (err) {
                dev_err(&client->dev, "unable to add clk provider\n");
-               goto cleanup;
+               goto free_clk_names;
        }
 
        if (initialization_required) {
                regcache_cache_only(data->regmap, false);
                err = regcache_sync(data->regmap);
                if (err < 0)
-                       goto cleanup;
+                       goto free_clk_names;
 
                err = si5341_finalize_defaults(data);
                if (err < 0)
-                       goto cleanup;
+                       goto free_clk_names;
        }
 
        /* wait for device to report input clock present and PLL lock */
               10000, 250000);
        if (err) {
                dev_err(&client->dev, "Error waiting for input clock or PLL lock\n");
-               goto cleanup;
+               goto free_clk_names;
        }
 
        /* clear sticky alarm bits from initialization */
        err = regmap_write(data->regmap, SI5341_STATUS_STICKY, 0);
        if (err) {
                dev_err(&client->dev, "unable to clear sticky status\n");
-               goto cleanup;
+               goto free_clk_names;
        }
 
        err = sysfs_create_files(&client->dev.kobj, si5341_attributes);
-       if (err) {
+       if (err)
                dev_err(&client->dev, "unable to create sysfs files\n");
-               goto cleanup;
-       }
 
 free_clk_names:
        /* Free the names, clk framework makes copies */