diff --git a/board/qca/arm/ipq5018/ipq5018.c b/board/qca/arm/ipq5018/ipq5018.c index 5eb92e3625..4bcbf5255f 100644 --- a/board/qca/arm/ipq5018/ipq5018.c +++ b/board/qca/arm/ipq5018/ipq5018.c @@ -1077,6 +1077,13 @@ void board_usb_deinit(int id) { int nodeoff, ssphy; 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)) @@ -1244,12 +1251,17 @@ int ipq_board_usb_init(void) int i, nodeoff, ssphy; char node_name[8]; + if(readl(EUD_EUD_EN2)) { + printf("USB: EUD Enable, skipping initialization\n"); + return 0; + } + for (i=0; ifdt_blob, node_name); if (nodeoff < 0){ printf("USB: Node Not found, skipping initialization\n"); - return -1; + return 0; } ssphy = fdtdec_get_int(gd->fdt_blob, nodeoff, "ssphy", 0); diff --git a/board/qca/arm/ipq5018/ipq5018.h b/board/qca/arm/ipq5018/ipq5018.h index e8512ccde6..b6fcaa9799 100644 --- a/board/qca/arm/ipq5018/ipq5018.h +++ b/board/qca/arm/ipq5018/ipq5018.h @@ -19,6 +19,11 @@ #include #include "phy.h" +/* + * Eud register + */ +#define EUD_EUD_EN2 0x0005A000 + #define MSM_SDC1_BASE 0x7800000 #define MSM_SDC1_SDHCI_BASE 0x7804000