mirror of
				https://github.com/mfulz/qmk_firmware.git
				synced 2025-11-03 23:02:34 +01:00 
			
		
		
		
	
		
			
				
	
	
		
			68 lines
		
	
	
		
			1.7 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			68 lines
		
	
	
		
			1.7 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
/*-----------------------------------------------------------------------
 | 
						|
/  Low level disk interface module include file
 | 
						|
/-----------------------------------------------------------------------*/
 | 
						|
 | 
						|
#ifndef _DISKIO
 | 
						|
 | 
						|
#define _READONLY	0	/* 1: Read-only mode */
 | 
						|
#define _USE_IOCTL	1
 | 
						|
 | 
						|
#include "integer.h"
 | 
						|
 | 
						|
#include "../DataflashManager.h"
 | 
						|
 | 
						|
 | 
						|
/* Status of Disk Functions */
 | 
						|
typedef BYTE	DSTATUS;
 | 
						|
 | 
						|
/* Results of Disk Functions */
 | 
						|
typedef enum {
 | 
						|
	RES_OK = 0,		/* 0: Successful */
 | 
						|
	RES_ERROR,		/* 1: R/W Error */
 | 
						|
	RES_WRPRT,		/* 2: Write Protected */
 | 
						|
	RES_NOTRDY,		/* 3: Not Ready */
 | 
						|
	RES_PARERR		/* 4: Invalid Parameter */
 | 
						|
} DRESULT;
 | 
						|
 | 
						|
 | 
						|
/*---------------------------------------*/
 | 
						|
/* Prototypes for disk control functions */
 | 
						|
 | 
						|
DSTATUS disk_initialize (BYTE);
 | 
						|
DSTATUS disk_status (BYTE);
 | 
						|
DRESULT disk_read (BYTE, BYTE*, DWORD, BYTE);
 | 
						|
#if	_READONLY == 0
 | 
						|
DRESULT disk_write (BYTE, const BYTE*, DWORD, BYTE);
 | 
						|
#endif
 | 
						|
DRESULT disk_ioctl (BYTE, BYTE, void*);
 | 
						|
 | 
						|
 | 
						|
/* Disk Status Bits (DSTATUS) */
 | 
						|
 | 
						|
#define STA_NOINIT		0x01	/* Drive not initialized */
 | 
						|
#define STA_NODISK		0x02	/* No medium in the drive */
 | 
						|
#define STA_PROTECT		0x04	/* Write protected */
 | 
						|
 | 
						|
/* Generic command */
 | 
						|
#define CTRL_SYNC			0	/* Mandatory for write functions */
 | 
						|
#define GET_SECTOR_COUNT	1	/* Mandatory for only f_mkfs() */
 | 
						|
#define GET_SECTOR_SIZE		2	/* Mandatory for multiple sector size cfg */
 | 
						|
#define GET_BLOCK_SIZE		3	/* Mandatory for only f_mkfs() */
 | 
						|
#define CTRL_POWER			4
 | 
						|
#define CTRL_LOCK			5
 | 
						|
#define CTRL_EJECT			6
 | 
						|
/* MMC/SDC command */
 | 
						|
#define MMC_GET_TYPE		10
 | 
						|
#define MMC_GET_CSD			11
 | 
						|
#define MMC_GET_CID			12
 | 
						|
#define MMC_GET_OCR			13
 | 
						|
#define MMC_GET_SDSTAT		14
 | 
						|
/* ATA/CF command */
 | 
						|
#define ATA_GET_REV			20
 | 
						|
#define ATA_GET_MODEL		21
 | 
						|
#define ATA_GET_SN			22
 | 
						|
 | 
						|
#define _DISKIO
 | 
						|
#endif
 | 
						|
 |