clk: si5351: use i2c_match_id and simple i2c probe
authorStephen Kitt <steve@sk2.org>
Thu, 7 Apr 2022 15:18:28 +0000 (17:18 +0200)
committerStephen Boyd <sboyd@kernel.org>
Sat, 23 Apr 2022 02:28:08 +0000 (19:28 -0700)
As part of the ongoing i2c transition to the simple probe
("probe_new"), this patch uses i2c_match_id to retrieve the
driver_data for the probed device. The id parameter is thus no longer
necessary and the simple probe can be used instead.

Signed-off-by: Stephen Kitt <steve@sk2.org>
Link: https://lore.kernel.org/r/20220407151831.2371706-8-steve@sk2.org
Reviewed-by: Wolfram Sang <wsa+renesas@sang-engineering.com>
Signed-off-by: Stephen Boyd <sboyd@kernel.org>
drivers/clk/clk-si5351.c

index 93fa8c9e11be004e64a3736249633d568d82bfe4..b9f088c4ba2f54f458307979d0ef57f74f618e0b 100644 (file)
@@ -1367,9 +1367,18 @@ si53351_of_clk_get(struct of_phandle_args *clkspec, void *data)
 }
 #endif /* CONFIG_OF */
 
-static int si5351_i2c_probe(struct i2c_client *client,
-                           const struct i2c_device_id *id)
+static const struct i2c_device_id si5351_i2c_ids[] = {
+       { "si5351a", SI5351_VARIANT_A },
+       { "si5351a-msop", SI5351_VARIANT_A3 },
+       { "si5351b", SI5351_VARIANT_B },
+       { "si5351c", SI5351_VARIANT_C },
+       { }
+};
+MODULE_DEVICE_TABLE(i2c, si5351_i2c_ids);
+
+static int si5351_i2c_probe(struct i2c_client *client)
 {
+       const struct i2c_device_id *id = i2c_match_id(si5351_i2c_ids, client);
        enum si5351_variant variant = (enum si5351_variant)id->driver_data;
        struct si5351_platform_data *pdata;
        struct si5351_driver_data *drvdata;
@@ -1649,21 +1658,12 @@ static int si5351_i2c_remove(struct i2c_client *client)
        return 0;
 }
 
-static const struct i2c_device_id si5351_i2c_ids[] = {
-       { "si5351a", SI5351_VARIANT_A },
-       { "si5351a-msop", SI5351_VARIANT_A3 },
-       { "si5351b", SI5351_VARIANT_B },
-       { "si5351c", SI5351_VARIANT_C },
-       { }
-};
-MODULE_DEVICE_TABLE(i2c, si5351_i2c_ids);
-
 static struct i2c_driver si5351_driver = {
        .driver = {
                .name = "si5351",
                .of_match_table = of_match_ptr(si5351_dt_ids),
        },
-       .probe = si5351_i2c_probe,
+       .probe_new = si5351_i2c_probe,
        .remove = si5351_i2c_remove,
        .id_table = si5351_i2c_ids,
 };