diff mbox

[U-Boot,2/2] ARM: uniphier: fix boot mode for PH1-LD11

Message ID 1465047549-8375-2-git-send-email-yamada.masahiro@socionext.com
State Accepted
Commit 7760b49fa7fd383094dd7c5566c1382021664e95
Delegated to: Masahiro Yamada
Headers show

Commit Message

Masahiro Yamada June 4, 2016, 1:39 p.m. UTC
This function is shared between PH1-LD11 and PH1-LD20.  The difference
is the boot-mode latch for the USB boot mode.

Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com>
---

 arch/arm/mach-uniphier/boot-mode/boot-mode-ld20.c | 19 ++++++++++++++++++-
 1 file changed, 18 insertions(+), 1 deletion(-)

Comments

Masahiro Yamada June 8, 2016, 11:22 p.m. UTC | #1
2016-06-04 22:39 GMT+09:00 Masahiro Yamada <yamada.masahiro@socionext.com>:
> This function is shared between PH1-LD11 and PH1-LD20.  The difference
> is the boot-mode latch for the USB boot mode.
>
> Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com>



Applied to u-boot-uniphier/master.
diff mbox

Patch

diff --git a/arch/arm/mach-uniphier/boot-mode/boot-mode-ld20.c b/arch/arm/mach-uniphier/boot-mode/boot-mode-ld20.c
index 96a1270..24255a0 100644
--- a/arch/arm/mach-uniphier/boot-mode/boot-mode-ld20.c
+++ b/arch/arm/mach-uniphier/boot-mode/boot-mode-ld20.c
@@ -9,6 +9,7 @@ 
 #include <linux/io.h>
 
 #include "../sg-regs.h"
+#include "../soc-info.h"
 #include "boot-device.h"
 
 static struct boot_device_info boot_device_table[] = {
@@ -54,8 +55,24 @@  static int get_boot_mode_sel(void)
 u32 uniphier_ld20_boot_device(void)
 {
 	int boot_mode;
+	u32 usb_boot_mask;
 
-	if (~readl(SG_PINMON0) & 0x00000780)
+	switch (uniphier_get_soc_type()) {
+#if defined(CONFIG_ARCH_UNIPHIER_LD11)
+	case SOC_UNIPHIER_LD11:
+		usb_boot_mask = 0x00000080;
+		break;
+#endif
+#if defined(CONFIG_ARCH_UNIPHIER_LD20)
+	case SOC_UNIPHIER_LD20:
+		usb_boot_mask = 0x00000780;
+		break;
+#endif
+	default:
+		BUG();
+	}
+
+	if (~readl(SG_PINMON0) & usb_boot_mask)
 		return BOOT_DEVICE_USB;
 
 	boot_mode = get_boot_mode_sel();