diff options
author | Stephen Boyd <stephen.boyd@linaro.org> | 2016-06-01 19:15:28 -0400 |
---|---|---|
committer | Stephen Boyd <sboyd@codeaurora.org> | 2016-08-24 20:30:01 -0400 |
commit | a340dae9de5df79d1d09ab7eae6cb8bbeb77b996 (patch) | |
tree | 339fd13c1d86cf72d1cc8c2758fb3ef2625e3172 /drivers/clk | |
parent | 4d89c3d54e0b2d0edea0ab5cf62fd464a0473bad (diff) |
clk: si570: Migrate to clk_hw based OF and registration APIs
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>
Diffstat (limited to 'drivers/clk')
-rw-r--r-- | drivers/clk/clk-si570.c | 13 |
1 files changed, 6 insertions, 7 deletions
diff --git a/drivers/clk/clk-si570.c b/drivers/clk/clk-si570.c index d56648521a95..646af1d1898d 100644 --- a/drivers/clk/clk-si570.c +++ b/drivers/clk/clk-si570.c | |||
@@ -408,7 +408,6 @@ static int si570_probe(struct i2c_client *client, | |||
408 | { | 408 | { |
409 | struct clk_si570 *data; | 409 | struct clk_si570 *data; |
410 | struct clk_init_data init; | 410 | struct clk_init_data init; |
411 | struct clk *clk; | ||
412 | u32 initial_fout, factory_fout, stability; | 411 | u32 initial_fout, factory_fout, stability; |
413 | int err; | 412 | int err; |
414 | enum clk_si570_variant variant = id->driver_data; | 413 | enum clk_si570_variant variant = id->driver_data; |
@@ -462,13 +461,13 @@ static int si570_probe(struct i2c_client *client, | |||
462 | if (err) | 461 | if (err) |
463 | return err; | 462 | return err; |
464 | 463 | ||
465 | clk = devm_clk_register(&client->dev, &data->hw); | 464 | err = devm_clk_hw_register(&client->dev, &data->hw); |
466 | if (IS_ERR(clk)) { | 465 | if (err) { |
467 | dev_err(&client->dev, "clock registration failed\n"); | 466 | dev_err(&client->dev, "clock registration failed\n"); |
468 | return PTR_ERR(clk); | 467 | return err; |
469 | } | 468 | } |
470 | err = of_clk_add_provider(client->dev.of_node, of_clk_src_simple_get, | 469 | err = of_clk_add_hw_provider(client->dev.of_node, of_clk_hw_simple_get, |
471 | clk); | 470 | &data->hw); |
472 | if (err) { | 471 | if (err) { |
473 | dev_err(&client->dev, "unable to add clk provider\n"); | 472 | dev_err(&client->dev, "unable to add clk provider\n"); |
474 | return err; | 473 | return err; |
@@ -477,7 +476,7 @@ static int si570_probe(struct i2c_client *client, | |||
477 | /* Read the requested initial output frequency from device tree */ | 476 | /* Read the requested initial output frequency from device tree */ |
478 | if (!of_property_read_u32(client->dev.of_node, "clock-frequency", | 477 | if (!of_property_read_u32(client->dev.of_node, "clock-frequency", |
479 | &initial_fout)) { | 478 | &initial_fout)) { |
480 | err = clk_set_rate(clk, initial_fout); | 479 | err = clk_set_rate(data->hw.clk, initial_fout); |
481 | if (err) { | 480 | if (err) { |
482 | of_clk_del_provider(client->dev.of_node); | 481 | of_clk_del_provider(client->dev.of_node); |
483 | return err; | 482 | return err; |