summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSebastian Huber <sebastian.huber@embedded-brains.de>2017-10-06 12:03:03 +0200
committerSebastian Huber <sebastian.huber@embedded-brains.de>2017-10-06 12:49:29 +0200
commitb39cda6ca4a55070078df5ff11256c20fd8bc6de (patch)
tree486d69187c097131bebe282e761e3e67c0e11bfd
parentlibdl: Fix warnings (diff)
downloadrtems-b39cda6ca4a55070078df5ff11256c20fd8bc6de.tar.bz2
bsp/imx: Fix I2C registration with path
Update #3090.
-rw-r--r--c/src/lib/libbsp/arm/imx/i2c/imx-i2c.c13
1 files changed, 9 insertions, 4 deletions
diff --git a/c/src/lib/libbsp/arm/imx/i2c/imx-i2c.c b/c/src/lib/libbsp/arm/imx/i2c/imx-i2c.c
index eec1a2e497..7633c7a487 100644
--- a/c/src/lib/libbsp/arm/imx/i2c/imx-i2c.c
+++ b/c/src/lib/libbsp/arm/imx/i2c/imx-i2c.c
@@ -400,17 +400,23 @@ static int imx_i2c_init(imx_i2c_bus *bus)
return 0;
}
-int i2c_bus_register_imx(const char *bus_path, const char *alias)
+int i2c_bus_register_imx(const char *bus_path, const char *alias_or_path)
{
const void *fdt;
+ const char *path;
int node;
imx_i2c_bus *bus;
int eno;
fdt = bsp_fdt_get();
- alias = fdt_get_alias(fdt, alias);
+ path = fdt_get_alias(fdt, alias_or_path);
- if (alias == NULL) {
+ if (path == NULL) {
+ path = alias_or_path;
+ }
+
+ node = fdt_path_offset(fdt, path);
+ if (node < 0) {
rtems_set_errno_and_return_minus_one(ENXIO);
}
@@ -419,7 +425,6 @@ int i2c_bus_register_imx(const char *bus_path, const char *alias)
return -1;
}
- node = fdt_path_offset(fdt, alias);
bus->regs = imx_get_reg_of_node(fdt, node);
bus->irq = imx_get_irq_of_node(fdt, node, 0);