增加所有文件
This commit is contained in:
73
middleware/disk/disk_mmc.h
Normal file
73
middleware/disk/disk_mmc.h
Normal file
@@ -0,0 +1,73 @@
|
||||
/**
|
||||
* @file disk_mmc.h
|
||||
*
|
||||
* Copyright (c) 2021 Semidrive Semiconductor.
|
||||
* All rights reserved.
|
||||
*
|
||||
* Description:
|
||||
*
|
||||
* Revision History:
|
||||
* -----------------
|
||||
*/
|
||||
|
||||
#ifndef DISK_MMC_H_
|
||||
#define DISK_MMC_H_
|
||||
|
||||
#include <disk.h>
|
||||
#include <lib/list.h>
|
||||
#include <stdlib.h>
|
||||
#include <string.h>
|
||||
#include <types.h>
|
||||
|
||||
/**
|
||||
* @brief disk mmc ioctl cmds.
|
||||
*/
|
||||
typedef enum {
|
||||
MMC_IOCTL_PON = 0x1, /* mmc ioctl Power Off Notification */
|
||||
} disk_mmc_ioctl_cmd;
|
||||
|
||||
typedef enum {
|
||||
MMC_IOCTL_NO_PON = 0x0,
|
||||
MMC_IOCTL_PON_ON = 0x1,
|
||||
MMC_IOCTL_PON_OFF_SHORT = 0x2,
|
||||
MMC_IOCTL_PON_OFF_LONG = 0x3,
|
||||
MMC_IOCTL_PON_SLEEP = 0x4,
|
||||
} disk_mmc_ioctl_pon_value;
|
||||
|
||||
struct disk_mmc_config {
|
||||
/* disk device name */
|
||||
char *disk_name;
|
||||
|
||||
/* disk attribute */
|
||||
disk_size_t disk_size;
|
||||
uint32_t erase_size;
|
||||
/* write & read sector size */
|
||||
uint32_t sector_size;
|
||||
uint32_t scr_data_erase;
|
||||
|
||||
/* mmc device ops API */
|
||||
/* write & read:addr is block addr,count is block num */
|
||||
/* erase & read:addr is block addr,size is len */
|
||||
void *mmc_dev;
|
||||
int (*mmc_read)(void *mmc_dev, uint8_t *dst, block_t block,
|
||||
block_count_t count);
|
||||
int (*mmc_write)(void *mmc_dev, const uint8_t *src, block_t block,
|
||||
block_count_t count);
|
||||
int (*mmc_erase)(void *mmc_dev, block_t block, block_count_t count);
|
||||
int (*mmc_pon)(void *mmc_dev, uint32_t pon_type);
|
||||
};
|
||||
|
||||
struct disk_mmc_info {
|
||||
uint8_t *buff_sector;
|
||||
uint32_t buff_size;
|
||||
QueueHandle_t disk_mmc_mutex;
|
||||
uint32_t mmc_max_xfer_size;
|
||||
struct disk_mmc_config config;
|
||||
struct disk_info info;
|
||||
// struct disk_cache_noop cache_noop;
|
||||
};
|
||||
|
||||
int register_mmc_disk(struct disk_mmc_info *mmc_info);
|
||||
int unregister_mmc_disk(struct disk_mmc_info *mmc_info);
|
||||
|
||||
#endif /* DISK_MMC_H_ */
|
||||
Reference in New Issue
Block a user