summaryrefslogtreecommitdiff
path: root/drivers
diff options
context:
space:
mode:
authorMarkus Schneider-Pargmann (TI.com) <[email protected]>2026-02-09 10:24:37 +0100
committerTom Rini <[email protected]>2026-03-06 08:15:43 -0600
commit9bf19639a76a35cf63a0b7293dc4cf9d9294f526 (patch)
tree4821100dbe25a9466bdaac74be4fe9e0da989fbb /drivers
parentc0ca147ac6228949a6d6497531c9f2f4a0dc6c67 (diff)
usb: musb-new: Relative ctrl_mod address parsing
For the upstream DT the ctrl_mod node is using a relative register address which is not translated by the current code. Make address parsing understand relative addresses. Reviewed-by: Mattijs Korpershoek <[email protected]> Signed-off-by: Markus Schneider-Pargmann (TI.com) <[email protected]> Reviewed-by: Marek Vasut <[email protected]>
Diffstat (limited to 'drivers')
-rw-r--r--drivers/usb/musb-new/ti-musb.c10
1 files changed, 5 insertions, 5 deletions
diff --git a/drivers/usb/musb-new/ti-musb.c b/drivers/usb/musb-new/ti-musb.c
index bcd31adba52..75dc2dc1874 100644
--- a/drivers/usb/musb-new/ti-musb.c
+++ b/drivers/usb/musb-new/ti-musb.c
@@ -83,17 +83,17 @@ static int ti_musb_of_to_plat(struct udevice *dev)
struct ti_musb_plat *plat = dev_get_plat(dev);
const void *fdt = gd->fdt_blob;
int node = dev_of_offset(dev);
- int phys;
- int ctrl_mod;
+ ofnode phys_node;
+ ofnode ctrl_mod_node;
int usb_index;
int ret;
struct musb_hdrc_config *musb_config;
plat->base = devfdt_get_addr_index_ptr(dev, 1);
- phys = fdtdec_lookup_phandle(fdt, node, "phys");
- ctrl_mod = fdtdec_lookup_phandle(fdt, phys, "ti,ctrl_mod");
- plat->ctrl_mod_base = (void *)fdtdec_get_addr(fdt, ctrl_mod, "reg");
+ phys_node = ofnode_get_by_phandle(dev_read_u32_default(dev, "phys", 0));
+ ctrl_mod_node = ofnode_get_by_phandle(ofnode_read_u32_default(phys_node, "ti,ctrl_mod", 0));
+ plat->ctrl_mod_base = (void *)ofnode_get_addr(ctrl_mod_node);
usb_index = ti_musb_get_usb_index(node);
switch (usb_index) {
case 1: