1 /*
2  * Copyright (C) 2012 Boundary Devices Inc.
3  *
4  * SPDX-License-Identifier:	GPL-2.0+
5  */
6 
7 #ifndef _ASM_BOOT_MODE_H
8 #define _ASM_BOOT_MODE_H
9 #define MAKE_CFGVAL(cfg1, cfg2, cfg3, cfg4) \
10 	((cfg4) << 24) | ((cfg3) << 16) | ((cfg2) << 8) | (cfg1)
11 
12 enum boot_device {
13 	WEIM_NOR_BOOT,
14 	ONE_NAND_BOOT,
15 	PATA_BOOT,
16 	SATA_BOOT,
17 	I2C_BOOT,
18 	SPI_NOR_BOOT,
19 	SD1_BOOT,
20 	SD2_BOOT,
21 	SD3_BOOT,
22 	SD4_BOOT,
23 	MMC1_BOOT,
24 	MMC2_BOOT,
25 	MMC3_BOOT,
26 	MMC4_BOOT,
27 	NAND_BOOT,
28 	QSPI_BOOT,
29 	UNKNOWN_BOOT,
30 	BOOT_DEV_NUM = UNKNOWN_BOOT,
31 };
32 
33 struct boot_mode {
34 	const char *name;
35 	unsigned cfg_val;
36 };
37 
38 void add_board_boot_modes(const struct boot_mode *p);
39 void boot_mode_apply(unsigned cfg_val);
40 extern const struct boot_mode soc_boot_modes[];
41 #endif
42