]> git.ipfire.org Git - people/ms/u-boot.git/commitdiff
armv8: fsl: Enable USB only when SYSCLK is 100 MHz
authorSriram Dash <sriram.dash@nxp.com>
Mon, 3 Oct 2016 10:54:46 +0000 (16:24 +0530)
committerYork Sun <york.sun@nxp.com>
Thu, 6 Oct 2016 16:59:02 +0000 (09:59 -0700)
SYSCLK is used as a reference clock for USB. When the USB controller
is used, SYSCLK must meet the additional requirement of 100 MHz.

Signed-off-by: Sriram Dash <sriram.dash@nxp.com>
Reviewed-by: York Sun <york.sun@nxp.com>
arch/arm/cpu/armv8/fsl-layerscape/fdt.c

index 40d6a761e8703a31312627f7ba003351c3db4e95..1a8321b0e4064d9c7f780b18e72d72cd286b2528 100644 (file)
@@ -108,6 +108,24 @@ remove_psci_node:
 }
 #endif
 
+void fsl_fdt_disable_usb(void *blob)
+{
+       int off;
+       /*
+        * SYSCLK is used as a reference clock for USB. When the USB
+        * controller is used, SYSCLK must meet the additional requirement
+        * of 100 MHz.
+        */
+       if (CONFIG_SYS_CLK_FREQ != 100000000) {
+               off = fdt_node_offset_by_compatible(blob, -1, "snps,dwc3");
+               while (off != -FDT_ERR_NOTFOUND) {
+                       fdt_status_disabled(blob, off);
+                       off = fdt_node_offset_by_compatible(blob, off,
+                                                           "snps,dwc3");
+               }
+       }
+}
+
 void ft_cpu_setup(void *blob, bd_t *bd)
 {
 #ifdef CONFIG_FSL_LSCH2
@@ -150,4 +168,6 @@ void ft_cpu_setup(void *blob, bd_t *bd)
 #ifdef CONFIG_SYS_DPAA_FMAN
        fdt_fixup_fman_firmware(blob);
 #endif
+       fsl_fdt_disable_usb(blob);
+
 }