ARM: uniphier: do not run harmful code for USB boot mode of LD11 ES3
authorMasahiro Yamada <yamada.masahiro@socionext.com>
Thu, 27 Oct 2016 14:47:06 +0000 (23:47 +0900)
committerMasahiro Yamada <yamada.masahiro@socionext.com>
Sat, 29 Oct 2016 08:24:30 +0000 (17:24 +0900)
The USB boot without the stand-by MPU is available on ES3 or later
of LD11 SoC, but the code in this if-conditional block must not be
run when booting from USB.  Check if the boot device is USB, and
skip the code in the case.

Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com>
arch/arm/mach-uniphier/clk/clk-ld11.c

index ca8737d2ff4db9447fcf8b8cba64625331d22691..58069cbf15655458cf3f19c41c15ea22fc73d668 100644 (file)
@@ -5,18 +5,20 @@
  */
 
 #include <common.h>
+#include <spl.h>
 #include <linux/bitops.h>
 #include <linux/io.h>
 
+#include "../boot-mode/boot-device.h"
 #include "../init.h"
 #include "../sc64-regs.h"
 #include "../sg-regs.h"
 
 void uniphier_ld11_clk_init(void)
 {
-       if (readl(SG_PINMON0) & BIT(27)) {
-               /* if booted without stand-by MPU */
-
+       /* if booted from a device other than USB, without stand-by MPU */
+       if ((readl(SG_PINMON0) & BIT(27)) &&
+           spl_boot_device_raw() != BOOT_DEVICE_USB) {
                writel(1, SG_ETPHYPSHUT);
                writel(1, SG_ETPHYCNT);