diff options
author | Masahiro Yamada <yamada.masahiro@socionext.com> | 2016-06-04 22:39:09 +0900 |
---|---|---|
committer | Masahiro Yamada <yamada.masahiro@socionext.com> | 2016-06-09 08:17:59 +0900 |
commit | 7760b49fa7fd383094dd7c5566c1382021664e95 (patch) | |
tree | 058b6f20b02d20a1ebbdbc32ff85e0b3cb0c0ab7 | |
parent | adb3928f152796e275f0535759796422d91f4709 (diff) | |
download | u-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.c | 19 |
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(); |