/***********************************************
*****Storage config of board, for ACS use.*****
***********************************************/

#ifndef __STORAGE_H
#define __STORAGE_H

#include <linux/types.h>
#ifdef CONFIG_AML_GPT_SYNC_ENTIRE_ENTRY
#include <uuid.h>
#endif
#include <asm/arch/romboot.h>
#ifndef __ASSEMBLY__

//Partition table defines
#define NAND_PART_SIZE_FULL		-1
#define MAX_PART_NUM			16
#define	 MAX_PART_NAME_LEN		16
//#define 	SZ_1M 					0x100000

#define STORE_CODE		1
#define	STORE_CACHE		(1<<1)
#define STORE_DATA		(1<<2)

#define SPI_BOOT_FLAG		0
#define NAND_BOOT_FLAG 		1
#define EMMC_BOOT_FLAG 		2
#define CARD_BOOT_FLAG 		3
#define SPI_NAND_FLAG		4
#define SPI_EMMC_FLAG		5

#define CARD_TYPE_SHIFT		4
#define CARD_TYPE_MASK		0xf
#define CARD_TYPE_UNKNOWN	0        /* unknown */
//#define CARD_TYPE_MMC		1        /* MMC card */
//#define CARD_TYPE_SD		2        /* SD card */
#define CARD_TYPE_SDIO		3        /* SDIO card */
#define CARD_TYPE_SD_COMBO	4        /* SD combo (IO+mem) card */
#define CARD_TYPE_NON_SDIO	5        /* NON sdio device (means SD/MMC card) */

#define AML_GET_CARD_TYPE(val, port)    ((val >> (port * CARD_TYPE_SHIFT)) & CARD_TYPE_MASK)
#define AML_SET_CARD_TYPE(val, port, type)   \
    (val |= ((type & CARD_TYPE_MASK) << (port * CARD_TYPE_SHIFT)))

/* storage device */
#define STORAGE_DEV_NOSET	(0)
#define STORAGE_DEV_EMMC	(1)
#define STORAGE_DEV_NAND	(2)
#define STORAGE_DEV_SPI		(3)
#define STORAGE_DEV_SDCARD	(4)
#define STORAGE_DEV_USB		(5)

struct partitions {
	char name[MAX_PART_NAME_LEN];			/* identifier string */
	uint64_t size;			/* partition size */
	uint64_t offset;		/* offset within the master space */
	unsigned mask_flags;		/* master flags to mask out for this partition */
#ifdef CONFIG_AML_GPT_SYNC_ENTIRE_ENTRY
#if CONFIG_IS_ENABLED(PARTITION_UUIDS)
	efi_guid_t	uuid;	/* filesystem UUID as string, if exists	*/
#endif
#ifdef CONFIG_PARTITION_TYPE_GUID
	efi_guid_t	type_guid;	/* type GUID as string, if exists	*/
#endif
	gpt_entry_attributes attributes;
#endif
};

struct config_nand {
	unsigned enable_slc;
	unsigned order_ce;
	unsigned reserved[2];
};

struct config_mmc {
	unsigned type;
	unsigned port;
	unsigned reserved[2];
};

struct store_config {
	unsigned  store_device_flag;			// indicate storage devices on each board
	struct config_nand  nand_configs;			// specital config for nand
	struct config_mmc  mmc_configs;			// specital config for mmc
};

#endif
#endif
