xref: /openbmc/u-boot/arch/arm/mach-at91/spl.c (revision c5f18a0b)
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 || CONFIG_SYS_USE_SPIFLASH
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 }
51