usb: phy: isp1301: Deduplicate of_find_i2c_device_by_node()
authorAndy Shevchenko <andriy.shevchenko@linux.intel.com>
Fri, 21 May 2021 14:52:43 +0000 (17:52 +0300)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Mon, 24 May 2021 13:27:17 +0000 (15:27 +0200)
The driver is using open-coded variant of of_find_i2c_device_by_node().
Replace it by the actual call to the above mentioned API.

Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
Link: https://lore.kernel.org/r/20210521145243.87911-1-andriy.shevchenko@linux.intel.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/usb/phy/phy-isp1301.c

index 6cf6fbd..ad3d57f 100644 (file)
@@ -142,24 +142,17 @@ static struct i2c_driver isp1301_driver = {
 
 module_i2c_driver(isp1301_driver);
 
-static int match(struct device *dev, const void *data)
-{
-       const struct device_node *node = (const struct device_node *)data;
-       return (dev->of_node == node) &&
-               (dev->driver == &isp1301_driver.driver);
-}
-
 struct i2c_client *isp1301_get_client(struct device_node *node)
 {
-       if (node) { /* reference of ISP1301 I2C node via DT */
-               struct device *dev = bus_find_device(&i2c_bus_type, NULL,
-                                                    node, match);
-               if (!dev)
-                       return NULL;
-               return to_i2c_client(dev);
-       } else { /* non-DT: only one ISP1301 chip supported */
-               return isp1301_i2c_client;
-       }
+       struct i2c_client *client;
+
+       /* reference of ISP1301 I2C node via DT */
+       client = of_find_i2c_device_by_node(node);
+       if (client)
+               return client;
+
+       /* non-DT: only one ISP1301 chip supported */
+       return isp1301_i2c_client;
 }
 EXPORT_SYMBOL_GPL(isp1301_get_client);