
19 Aug
2019
19 Aug
'19
1:28 p.m.
On 8/19/19 8:10 AM, Sherry Sun wrote:
Add the USB3 host driver for NXP imx8 platform, and the cadence IP is in it. The USB3 host driver support DM mode, it will probe USB3 host node in dts.
Signed-off-by: Sherry Sun sherry.sun@nxp.com
[...]
+static void xhci_imx8_get_reg_addr(struct udevice *dev) +{
- imx8_data.usb3_ctrl_base =
(void __iomem *)devfdt_get_addr_index(dev, 0);
- imx8_data.usb3_core_base =
(void __iomem *)devfdt_get_addr_index(dev, 4);
+}
Inline this.
Also, look at drivers/mtd/renesas_rpc_hf.c to handle both 32bit and 64bit DTs with multiple "reg" entries.
[...]
+static const struct udevice_id xhci_usb_ids[] = {
- { .compatible = "cdns,usb3-host", },
https://lore.kernel.org/patchwork/patch/1059917/ would suggest that cdns,usb3-1.0.0 is the compatible. But I might be wrong.
- { }
+};
+U_BOOT_DRIVER(xhci_imx8) = {
- .name = "xhci_imx8",
- .id = UCLASS_USB,
- .of_match = xhci_usb_ids,
- .probe = xhci_imx8_probe,
- .remove = xhci_imx8_remove,
- .ops = &xhci_usb_ops,
- .platdata_auto_alloc_size = sizeof(struct usb_platdata),
- .priv_auto_alloc_size = sizeof(struct xhci_ctrl),
- .flags = DM_FLAG_ALLOC_PRIV_DMA,
I think you also need DM_FLAG_OS_PREPARE to trigger .remove before booting Linux, but I might be wrong. Please check that.