bsp/imx: Fix I2C registration with path

Update #3090.
This commit is contained in:
Sebastian Huber
2017-10-06 12:03:03 +02:00
parent 8bdbefedd5
commit b39cda6ca4

View File

@@ -400,17 +400,23 @@ static int imx_i2c_init(imx_i2c_bus *bus)
return 0; 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 void *fdt;
const char *path;
int node; int node;
imx_i2c_bus *bus; imx_i2c_bus *bus;
int eno; int eno;
fdt = bsp_fdt_get(); 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); 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; return -1;
} }
node = fdt_path_offset(fdt, alias);
bus->regs = imx_get_reg_of_node(fdt, node); bus->regs = imx_get_reg_of_node(fdt, node);
bus->irq = imx_get_irq_of_node(fdt, node, 0); bus->irq = imx_get_irq_of_node(fdt, node, 0);