text: /*
   * Copyright (C) 2012 Boundary Devices Inc.
   *
   * SPDX-License-Identifier:	GPL-2.0+
   */
  
  #ifndef _ASM_BOOT_MODE_H
  #define _ASM_BOOT_MODE_H
  #define MAKE_CFGVAL(cfg1, cfg2, cfg3, cfg4) \
  	((cfg4) << 24) | ((cfg3) << 16) | ((cfg2) << 8) | (cfg1)
  
  enum boot_device {
  	WEIM_NOR_BOOT,
  	ONE_NAND_BOOT,
  	PATA_BOOT,
  	SATA_BOOT,
  	I2C_BOOT,
  	SPI_NOR_BOOT,
  	SD1_BOOT,
  	SD2_BOOT,
  	SD3_BOOT,
  	SD4_BOOT,
  	MMC1_BOOT,
  	MMC2_BOOT,
  	MMC3_BOOT,
  	MMC4_BOOT,
  	NAND_BOOT,
  	QSPI_BOOT,
  	UNKNOWN_BOOT,
  	BOOT_DEV_NUM = UNKNOWN_BOOT,
  };
  
  struct boot_mode {
  	const char *name;
  	unsigned cfg_val;
  };
  
  void add_board_boot_modes(const struct boot_mode *p);
  void boot_mode_apply(unsigned cfg_val);
  extern const struct boot_mode soc_boot_modes[];
  #endif
  