Merge remote-tracking branch 'u-boot/master' into 'u-boot-arm/master'
[oweals/u-boot.git] / arch / arm / mach-at91 / spl.c
1 /*
2  * Copyright (C) 2013 Atmel Corporation
3  *                    Bo Shen <voice.shen@atmel.com>
4  *
5  * SPDX-License-Identifier:     GPL-2.0+
6  */
7
8 #include <common.h>
9 #include <asm/io.h>
10 #include <asm/arch/at91_common.h>
11 #include <asm/arch/at91_wdt.h>
12 #include <asm/arch/clk.h>
13 #include <spl.h>
14
15 #if defined(CONFIG_AT91SAM9_WATCHDOG)
16 void at91_disable_wdt(void) { }
17 #else
18 void at91_disable_wdt(void)
19 {
20         struct at91_wdt *wdt = (struct at91_wdt *)ATMEL_BASE_WDT;
21
22         writel(AT91_WDT_MR_WDDIS, &wdt->mr);
23 }
24 #endif
25
26 u32 spl_boot_device(void)
27 {
28 #ifdef CONFIG_SYS_USE_MMC
29         return BOOT_DEVICE_MMC1;
30 #elif CONFIG_SYS_USE_NANDFLASH
31         return BOOT_DEVICE_NAND;
32 #elif CONFIG_SYS_USE_SERIALFLASH
33         return BOOT_DEVICE_SPI;
34 #endif
35         return BOOT_DEVICE_NONE;
36 }
37
38 u32 spl_boot_mode(void)
39 {
40         switch (spl_boot_device()) {
41 #ifdef CONFIG_SYS_USE_MMC
42         case BOOT_DEVICE_MMC1:
43                 return MMCSD_MODE_FS;
44                 break;
45 #endif
46         case BOOT_DEVICE_NONE:
47         default:
48                 hang();
49         }
50 }