Merge branch 'parisc-4.9-1' of git://git.kernel.org/pub/scm/linux/kernel/git/deller...
[cascardo/linux.git] / drivers / clk / clk-si570.c
index d566485..646af1d 100644 (file)
@@ -408,7 +408,6 @@ static int si570_probe(struct i2c_client *client,
 {
        struct clk_si570 *data;
        struct clk_init_data init;
-       struct clk *clk;
        u32 initial_fout, factory_fout, stability;
        int err;
        enum clk_si570_variant variant = id->driver_data;
@@ -462,13 +461,13 @@ static int si570_probe(struct i2c_client *client,
        if (err)
                return err;
 
-       clk = devm_clk_register(&client->dev, &data->hw);
-       if (IS_ERR(clk)) {
+       err = devm_clk_hw_register(&client->dev, &data->hw);
+       if (err) {
                dev_err(&client->dev, "clock registration failed\n");
-               return PTR_ERR(clk);
+               return err;
        }
-       err = of_clk_add_provider(client->dev.of_node, of_clk_src_simple_get,
-                       clk);
+       err = of_clk_add_hw_provider(client->dev.of_node, of_clk_hw_simple_get,
+                                    &data->hw);
        if (err) {
                dev_err(&client->dev, "unable to add clk provider\n");
                return err;
@@ -477,7 +476,7 @@ static int si570_probe(struct i2c_client *client,
        /* Read the requested initial output frequency from device tree */
        if (!of_property_read_u32(client->dev.of_node, "clock-frequency",
                                &initial_fout)) {
-               err = clk_set_rate(clk, initial_fout);
+               err = clk_set_rate(data->hw.clk, initial_fout);
                if (err) {
                        of_clk_del_provider(client->dev.of_node);
                        return err;