clk: si570: Migrate to clk_hw based OF and registration APIs
authorStephen Boyd <stephen.boyd@linaro.org>
Wed, 1 Jun 2016 23:15:28 +0000 (16:15 -0700)
committerStephen Boyd <sboyd@codeaurora.org>
Thu, 25 Aug 2016 00:30:01 +0000 (17:30 -0700)
Now that we have clk_hw based provider APIs to register clks, we
can get rid of struct clk pointers while registering clks in
these drivers, allowing us to move closer to a clear split of
consumer and provider clk APIs.

Cc: Guenter Roeck <linux@roeck-us.net>
Cc: Sören Brinkmann <soren.brinkmann@xilinx.com>
Signed-off-by: Stephen Boyd <stephen.boyd@linaro.org>
Signed-off-by: Stephen Boyd <sboyd@codeaurora.org>
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;