diff options
author | Sebastian Huber <sebastian.huber@embedded-brains.de> | 2017-10-06 12:03:03 +0200 |
---|---|---|
committer | Sebastian Huber <sebastian.huber@embedded-brains.de> | 2017-10-06 12:49:29 +0200 |
commit | b39cda6ca4a55070078df5ff11256c20fd8bc6de (patch) | |
tree | 486d69187c097131bebe282e761e3e67c0e11bfd | |
parent | libdl: Fix warnings (diff) | |
download | rtems-b39cda6ca4a55070078df5ff11256c20fd8bc6de.tar.bz2 |
bsp/imx: Fix I2C registration with path
Update #3090.
-rw-r--r-- | c/src/lib/libbsp/arm/imx/i2c/imx-i2c.c | 13 |
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); |