public inbox for linux-i2c@vger.kernel.org
 help / color / mirror / Atom feed
* [PATCH v1] i2c: icy: Don't use software node when it's an overkill
@ 2020-04-08 16:52 Andy Shevchenko
  2020-04-08 21:24 ` Max Staudt
  0 siblings, 1 reply; 6+ messages in thread
From: Andy Shevchenko @ 2020-04-08 16:52 UTC (permalink / raw)
  To: Wolfram Sang, linux-i2c; +Cc: Andy Shevchenko, Max Staudt, Geert Uytterhoeven

There is no evidence, including commit message of the original change,
that software node should be used in the simple case where we would like
to instantiate an I²C client from board info. Board info contains a member
to pass device properties for long time. Let's use a simple way over
the complicated software node approach.

Fixes: 724041ae15ed ("i2c: icy: Add LTC2990 present on 2019 board revision")
Cc: Max Staudt <max@enpas.org>
Cc: Geert Uytterhoeven <geert@linux-m68k.org>
Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
---
 drivers/i2c/busses/i2c-icy.c | 23 ++++-------------------
 1 file changed, 4 insertions(+), 19 deletions(-)

diff --git a/drivers/i2c/busses/i2c-icy.c b/drivers/i2c/busses/i2c-icy.c
index 271470f4d8a9..ce68c436f06e 100644
--- a/drivers/i2c/busses/i2c-icy.c
+++ b/drivers/i2c/busses/i2c-icy.c
@@ -53,7 +53,7 @@ struct icy_i2c {
 
 	void __iomem *reg_s0;
 	void __iomem *reg_s1;
-	struct fwnode_handle *ltc2990_fwnode;
+
 	struct i2c_client *ltc2990_client;
 };
 
@@ -109,7 +109,7 @@ static unsigned short const icy_ltc2990_addresses[] = {
  */
 static const u32 icy_ltc2990_meas_mode[] = {0, 3};
 
-static const struct property_entry icy_ltc2990_props[] = {
+static const struct property_entry icy_ltc2990_properties[] = {
 	PROPERTY_ENTRY_U32_ARRAY("lltc,meas-mode", icy_ltc2990_meas_mode),
 	{ }
 };
@@ -122,6 +122,7 @@ static int icy_probe(struct zorro_dev *z,
 	struct fwnode_handle *new_fwnode;
 	struct i2c_board_info ltc2990_info = {
 		.type		= "ltc2990",
+		.properties	= icy_ltc2990_properties,
 	};
 
 	i2c = devm_kzalloc(&z->dev, sizeof(*i2c), GFP_KERNEL);
@@ -173,25 +174,10 @@ static int icy_probe(struct zorro_dev *z,
 	 *
 	 * See property_entry above for in1, in2, temp3.
 	 */
-	new_fwnode = fwnode_create_software_node(icy_ltc2990_props, NULL);
-	if (IS_ERR(new_fwnode)) {
-		dev_info(&z->dev, "Failed to create fwnode for LTC2990, error: %ld\n",
-			 PTR_ERR(new_fwnode));
-	} else {
-		/*
-		 * Store the fwnode so we can destroy it on .remove().
-		 * Only store it on success, as fwnode_remove_software_node()
-		 * is NULL safe, but not PTR_ERR safe.
-		 */
-		i2c->ltc2990_fwnode = new_fwnode;
-		ltc2990_info.fwnode = new_fwnode;
-
-		i2c->ltc2990_client =
-			i2c_new_scanned_device(&i2c->adapter,
+	i2c->ltc2990_client = i2c_new_scanned_device(&i2c->adapter,
 					       &ltc2990_info,
 					       icy_ltc2990_addresses,
 					       NULL);
-	}
 
 	return 0;
 }
@@ -201,7 +187,6 @@ static void icy_remove(struct zorro_dev *z)
 	struct icy_i2c *i2c = dev_get_drvdata(&z->dev);
 
 	i2c_unregister_device(i2c->ltc2990_client);
-	fwnode_remove_software_node(i2c->ltc2990_fwnode);
 
 	i2c_del_adapter(&i2c->adapter);
 }
-- 
2.25.1


^ permalink raw reply related	[flat|nested] 6+ messages in thread

end of thread, other threads:[~2020-04-14 14:54 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2020-04-08 16:52 [PATCH v1] i2c: icy: Don't use software node when it's an overkill Andy Shevchenko
2020-04-08 21:24 ` Max Staudt
2020-04-09 10:37   ` Andy Shevchenko
2020-04-09 12:16     ` Heikki Krogerus
2020-04-09 23:51       ` Max Staudt
2020-04-14 14:54         ` Heikki Krogerus

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox