aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMasahiro Yamada <yamada.masahiro@socionext.com>2016-06-04 22:39:09 +0900
committerMasahiro Yamada <yamada.masahiro@socionext.com>2016-06-09 08:17:59 +0900
commit7760b49fa7fd383094dd7c5566c1382021664e95 (patch)
tree058b6f20b02d20a1ebbdbc32ff85e0b3cb0c0ab7
parentadb3928f152796e275f0535759796422d91f4709 (diff)
downloadu-boot-7760b49fa7fd383094dd7c5566c1382021664e95.zip
u-boot-7760b49fa7fd383094dd7c5566c1382021664e95.tar.gz
u-boot-7760b49fa7fd383094dd7c5566c1382021664e95.tar.bz2
ARM: uniphier: fix boot mode for PH1-LD11
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>
-rw-r--r--arch/arm/mach-uniphier/boot-mode/boot-mode-ld20.c19
1 files changed, 18 insertions, 1 deletions
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..24255a0f 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();