summaryrefslogtreecommitdiff
path: root/arch/arm/cpu/armv8/imx8m/soc.c
diff options
context:
space:
mode:
Diffstat (limited to 'arch/arm/cpu/armv8/imx8m/soc.c')
-rw-r--r--arch/arm/cpu/armv8/imx8m/soc.c25
1 files changed, 25 insertions, 0 deletions
diff --git a/arch/arm/cpu/armv8/imx8m/soc.c b/arch/arm/cpu/armv8/imx8m/soc.c
index a644e37b46a..79cf1ead047 100644
--- a/arch/arm/cpu/armv8/imx8m/soc.c
+++ b/arch/arm/cpu/armv8/imx8m/soc.c
@@ -476,6 +476,31 @@ add_status:
nodes_path[i], "status");
}
}
+
+ const char *usb_dwc3_path = "/usb@38100000/dwc3";
+ nodeoff = fdt_path_offset(blob, usb_dwc3_path);
+ if (nodeoff >= 0) {
+ const char *speed = "high-speed";
+ printf("Found %s node\n", usb_dwc3_path);
+
+usb_modify_speed:
+
+ rc = fdt_setprop(blob, nodeoff, "maximum-speed", speed, strlen(speed) + 1);
+ if (rc) {
+ if (rc == -FDT_ERR_NOSPACE) {
+ rc = fdt_increase_size(blob, 512);
+ if (!rc)
+ goto usb_modify_speed;
+ }
+ printf("Unable to set property %s:%s, err=%s\n",
+ usb_dwc3_path, "maximum-speed", fdt_strerror(rc));
+ } else {
+ printf("Modify %s:%s = %s\n",
+ usb_dwc3_path, "maximum-speed", speed);
+ }
+ }else {
+ printf("Can't found %s node\n", usb_dwc3_path);
+ }
}
/* Disable the CPU idle for A0 chip since the HW does not support it */