Skip to content

Commit bda7339

Browse files
larsclausenbebarino
authored andcommitted
clk: si570: Use managed of_clk_add_hw_provider()
Use the managed `devm_of_clk_add_hw_provider()` instead of `of_clk_add_hw_provider()`. This makes sure the provider gets automatically removed on unbind and allows to completely eliminate the drivers `remove()` callback. Signed-off-by: Lars-Peter Clausen <lars@metafoo.de> Link: https://lore.kernel.org/r/20230410014502.27929-9-lars@metafoo.de Signed-off-by: Stephen Boyd <sboyd@kernel.org>
1 parent a7f3b67 commit bda7339

File tree

1 file changed

+3
-11
lines changed

1 file changed

+3
-11
lines changed

drivers/clk/clk-si570.c

Lines changed: 3 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -474,8 +474,8 @@ static int si570_probe(struct i2c_client *client)
474474
dev_err(&client->dev, "clock registration failed\n");
475475
return err;
476476
}
477-
err = of_clk_add_hw_provider(client->dev.of_node, of_clk_hw_simple_get,
478-
&data->hw);
477+
err = devm_of_clk_add_hw_provider(&client->dev, of_clk_hw_simple_get,
478+
&data->hw);
479479
if (err) {
480480
dev_err(&client->dev, "unable to add clk provider\n");
481481
return err;
@@ -485,10 +485,8 @@ static int si570_probe(struct i2c_client *client)
485485
if (!of_property_read_u32(client->dev.of_node, "clock-frequency",
486486
&initial_fout)) {
487487
err = clk_set_rate(data->hw.clk, initial_fout);
488-
if (err) {
489-
of_clk_del_provider(client->dev.of_node);
488+
if (err)
490489
return err;
491-
}
492490
}
493491

494492
/* Display a message indicating that we've successfully registered */
@@ -498,11 +496,6 @@ static int si570_probe(struct i2c_client *client)
498496
return 0;
499497
}
500498

501-
static void si570_remove(struct i2c_client *client)
502-
{
503-
of_clk_del_provider(client->dev.of_node);
504-
}
505-
506499
static const struct of_device_id clk_si570_of_match[] = {
507500
{ .compatible = "silabs,si570" },
508501
{ .compatible = "silabs,si571" },
@@ -518,7 +511,6 @@ static struct i2c_driver si570_driver = {
518511
.of_match_table = clk_si570_of_match,
519512
},
520513
.probe_new = si570_probe,
521-
.remove = si570_remove,
522514
.id_table = si570_id,
523515
};
524516
module_i2c_driver(si570_driver);

0 commit comments

Comments
 (0)