[v1,2/2] i2c: use "dev-name" device tree property to override device name

Message ID 20210407185039.621248-3-varmam@google.com
State New
Headers show
  • Override device name using DT "dev-name" property
Related show

Commit Message

Manish Varma April 7, 2021, 6:50 p.m.
Since the dev_name field of i2c_board_info is not set while instantiating
an I2C device, they are named like <adapter_id>-<device_addr>, unless
they are instantiated through ACPI.

These coded names are less desirable in some situations as they will vary
across systems with different hardware configurations, and even also on
the same system as the adapter_id may change with change in the order
of i2c bus enumeration (i.e. due to device tree modifications).

These device names are further used by other modules like "system wakeup
events framework" to assign the name of wakeup_source. So overall this
causes somewhat difficult to interpret device and wakeup source names,
and hence presents difficulties debuging issues at multiple levels.

This change addresses above mentioned problem by setting dev_name field
based on value assigned to an optional "dev-name" property of device
tree (if present). And as a result of this, i2c_dev_set_name() should now
use the actual device name instead of made up one.

Signed-off-by: Manish Varma <varmam@google.com>
 drivers/i2c/i2c-core-of.c | 2 ++
 1 file changed, 2 insertions(+)


diff --git a/drivers/i2c/i2c-core-of.c b/drivers/i2c/i2c-core-of.c
index 3ed74aa4b44b..d7a85a9cc499 100644
--- a/drivers/i2c/i2c-core-of.c
+++ b/drivers/i2c/i2c-core-of.c
@@ -58,6 +58,8 @@  int of_i2c_get_board_info(struct device *dev, struct device_node *node,
 	if (of_get_property(node, "wakeup-source", NULL))
 		info->flags |= I2C_CLIENT_WAKE;
+	of_property_read_string(node, "dev-name", &(info->dev_name));
 	return 0;