📄 sdreg.h
字号:
#ifndef __SDREG_H__
#define __SDREG_H__
unsigned long _sdhc_get_card_type(void);
unsigned long _sdhc_get_card_capacity(void);
int sdhc_set_blklen (unsigned long blklen);
int sdhc_dev_ioctl (unsigned long base, unsigned long arg);
int sdhc_ioctl (int fd, SDHC_IOCTL_ARG_T *arg);
int sdhc_init (unsigned short* prca);
int sdhc_reg_test (unsigned long base);
int sdhc_status_test (void);
int sdhc_cmd_test (void);
int sdhc_read_scr (unsigned short rca, SCR_T *scr);
int sdhc_get_wr_blk_count (unsigned short rca, long *nblk);
int sdhc_set_width (unsigned short rca, int width);
int sdhc_erase (unsigned long cardtype, unsigned short rca, unsigned long start_addr, int nblk);
//int sdhc_detect_test ();
//int sdhc_err_test ();
//int sdhc_reset_test (unsigned long base, unsigned char reset_type);
int sdhc_card_select (unsigned short rca, unsigned short select);
int sdhc_card_init (unsigned short *rca, unsigned long *ocr, CID_T *cid, CSD_T *csd);
int sdhc_reset (unsigned char reset_type);
int io_reset (void);
int io_read_byte (int fn, unsigned long addr, unsigned char *data);
int io_write_byte (int fn, int raw, unsigned long addr, unsigned char data);
int io_read_direct (int fn, unsigned long addr, unsigned char *data, int len);
int io_write_direct (int fn, unsigned long addr, unsigned char *data, int len);
int reg_test (
unsigned long addr, // address of register
unsigned short access_size, // access size: 8 | 16 | 32
unsigned short access_type, // 1=RW, 0=RO, WO
unsigned long def_val, // default POR value
unsigned long bitmask, // reserved bit mask, 0 = all bits are valid
unsigned char *name // register string name
);
int reg_def_test (unsigned long base);
int clock_cntl (unsigned short clocks, unsigned short div, int enable);
int bus_pwr (int pwr);
int card_detect (void);
int send_cmd_SD ( unsigned short idx,
unsigned short type,
unsigned short rsp,
int data_prsnt,
int crc_check,
int idx_check,
unsigned long arg[4]);
int send_app_cmd (
unsigned short idx,
unsigned short type,
unsigned short rsp,
int crc_check,
int idx_check,
unsigned long arg[4]);
int sdhc_read_ex (
unsigned long addr,
unsigned long data,
int blklen,
long nblk,
unsigned long flags,
void *param);
int sdhc_write_ex (
unsigned long addr,
unsigned long data,
int blklen,
long nblk,
unsigned long flags,
void *param);
/*
int fifo_reset (SDHCEXT_T *);
int fifo_readback (SDHCEXT_T *ext, int n, unsigned char *data, int len);
*/
/*
int sdhc_cli (unsigned long base, char *s);
int read_cli (SDHC_T *sdhc, char *s, unsigned long nblk, unsigned long iomem);
int write_cli (SDHC_T *sdhc, char *s, unsigned long nblk, unsigned long iomem);
int sdhc_io_cli (SDHC_T *sdhc, char *p);
*/
// counter functions for timing
int counter_init (unsigned long base);
int counter_start (void);
int counter_stop (void);
int counter_reset (void);
unsigned long counter_read (void);
#if 0
int erase_data (SDHC_T *sdhc,
unsigned long addr,
int nblk);
#endif
int read_scr (unsigned short rca, SCR_T *scr);
int get_wr_blk_count (unsigned short rca, long *nblk);
int calc_dat_timeout (CSD_T *csd, int clk_div, int wr);
void decode_r1 (unsigned long);
void decode_r5 (unsigned long);
void decode_r6 (unsigned short);
void decode_csd (CSD_T *p, unsigned long cardtype);
//void decode_cid (CID_T *p, unsigned long cardtype);
//void decode_scr (SCR_T *p);
//void decode_cis (unsigned char *p, unsigned long len);
//void decode_cccr (CCCR_T *p);
//void decode_fbr (FBR_T *p);
//void decode_cardtype (unsigned long cardtype);
//void decode_reg ();
//void decode_ext (SDHCEXT_T *ext);
//void dump_data (unsigned char *p, int offset, int len);
//void dump_extension (unsigned long base);
#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -