rockchip: Init driver otg_data for rk3288 usb phy

RK3288 needs to init the otg_data in board level to make the phy driver
work.

Signed-off-by: Kever Yang <kever.yang@rock-chips.com>
This commit is contained in:
Kever Yang 2019-10-16 17:13:32 +08:00
parent e76943ca6f
commit 17224b325f

View File

@ -82,6 +82,34 @@ int board_usb_init(int index, enum usb_init_type init)
}
otg_data.regs_otg = ofnode_get_addr(node);
#ifdef CONFIG_ROCKCHIP_RK3288
int ret;
u32 phandle, offset;
ofnode phy_node;
ret = ofnode_read_u32(node, "phys", &phandle);
if (ret)
return ret;
node = ofnode_get_by_phandle(phandle);
if (!ofnode_valid(node)) {
debug("Not found usb phy device\n");
return -ENODEV;
}
phy_node = ofnode_get_parent(node);
if (!ofnode_valid(node)) {
debug("Not found usb phy device\n");
return -ENODEV;
}
otg_data.phy_of_node = phy_node;
ret = ofnode_read_u32(node, "reg", &offset);
if (ret)
return ret;
otg_data.regs_phy = offset +
(u32)syscon_get_first_range(ROCKCHIP_SYSCON_GRF);
#endif
return dwc2_udc_probe(&otg_data);
}