diff --git a/board/qca/arm/ipq9574/ipq9574.c b/board/qca/arm/ipq9574/ipq9574.c index b051ac4428..f3347ca81f 100644 --- a/board/qca/arm/ipq9574/ipq9574.c +++ b/board/qca/arm/ipq9574/ipq9574.c @@ -284,6 +284,12 @@ void board_usb_deinit(int id) int nodeoff; char node_name[8]; + if(readl(EUD_EUD_EN2)) + /* + * Eud enable skipping deinit part + */ + return; + snprintf(node_name, sizeof(node_name), "usb%d", id); nodeoff = fdt_path_offset(gd->fdt_blob, node_name); if (fdtdec_get_int(gd->fdt_blob, nodeoff, "qcom,emulation", 0)) @@ -505,6 +511,11 @@ int ipq_board_usb_init(void) int i, nodeoff; char node_name[8]; + if(readl(EUD_EUD_EN2)) { + printf("USB: EUD Enable, skipping initialization\n"); + return 0; + } + for (i = 0; i < CONFIG_USB_MAX_CONTROLLER_COUNT; i++) { snprintf(node_name, sizeof(node_name), "usb%d", i); nodeoff = fdt_path_offset(gd->fdt_blob, node_name); diff --git a/board/qca/arm/ipq9574/ipq9574.h b/board/qca/arm/ipq9574/ipq9574.h index 3ecbcea82a..215bd782d4 100644 --- a/board/qca/arm/ipq9574/ipq9574.h +++ b/board/qca/arm/ipq9574/ipq9574.h @@ -238,6 +238,11 @@ __weak void board_pcie_clock_init(int id) {} unsigned int __invoke_psci_fn_smc(unsigned int, unsigned int, unsigned int, unsigned int); +/* + * Eud register + */ +#define EUD_EUD_EN2 0x7A000 + /** * Number of RAM partition entries which are usable by APPS. */