亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? mmc_protocol.h

?? spi driver for sd /mmc card
?? H
字號:
/* * Header for MultiMediaCard (MMC) * * Copyright 2002 Hewlett-Packard Company * * Use consistent with the GNU GPL is permitted, * provided that this copyright notice is * preserved in its entirety in all copies and derived works. * * HEWLETT-PACKARD COMPANY MAKES NO WARRANTIES, EXPRESSED OR IMPLIED, * AS TO THE USEFULNESS OR CORRECTNESS OF THIS CODE OR ITS * FITNESS FOR ANY PARTICULAR PURPOSE. * * Many thanks to Alessandro Rubini and Jonathan Corbet! * * Based strongly on code by: * * Author: Yong-iL Joh <tolkien@mizi.com> * Date  : $Date: 2002/10/03 05:21:14 $  * * Author:  Andrew Christian *          15 May 2002 *//* * SD Cards protocol implemented * * Copyright 2003 MontaVista Software Inc. * Author: MontaVista Software, Inc. *	   source@mvista.com * *  This program is free software; you can redistribute	 it and/or modify it *  under  the terms of	 the GNU General  Public License as published by the *  Free Software Foundation;  either version 2 of the	License, or (at your *  option) any later version. * *  THIS  SOFTWARE  IS PROVIDED	  ``AS	IS'' AND   ANY	EXPRESS OR IMPLIED *  WARRANTIES,	  INCLUDING, BUT NOT  LIMITED  TO, THE IMPLIED WARRANTIES OF *  MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.  IN *  NO	EVENT  SHALL   THE AUTHOR  BE	 LIABLE FOR ANY	  DIRECT, INDIRECT, *  INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT *  NOT LIMITED	  TO, PROCUREMENT OF  SUBSTITUTE GOODS	OR SERVICES; LOSS OF *  USE, DATA,	OR PROFITS; OR	BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON *  ANY THEORY OF LIABILITY, WHETHER IN	 CONTRACT, STRICT LIABILITY, OR TORT *  (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF *  THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. * *  You should have received a copy of the  GNU General Public License along *  with this program; if not, write  to the Free Software Foundation, Inc., *  675 Mass Ave, Cambridge, MA 02139, USA. *//*  * Copyright (C) 2005 Motorola, Inc. * - modified to support SD ver2.0 protocol. */#ifndef MMC_MMC_PROTOCOL_H#define MMC_MMC_PROTOCOL_H#include <linux/types.h>#include <linux/delay.h>#include <linux/config.h>/* Standard MMC clock speeds */#ifdef CONFIG_ARCH_OMAP1610#define MMC_CLOCK_SLOW    100000      /* 100 kHz for initial setup */#else#define MMC_CLOCK_SLOW    400000      /* 400 kHz for initial setup */#endif#define MMC_CLOCK_FAST  20000000      /* 20 MHz for maximum for normal operation */#define SD_CLOCK_FAST   24000000      /* 24 MHz for SD Cards */ /* User Specific IOCTL Command */#define IOCMMCSETCLKRATE	_IOW('I', 0x0f01, int)#define IOCMMCGETCARDCID	_IOR('I', 0x0f02, int)#define IOCMMCGETCARDCSD	_IOR('I', 0x0f03, int)#define IOCMMCLOCKCARD		_IOW('I', 0x0f04, int)#define IOCMMCGETCARDSTATUS	_IOR('I', 0x0f05, int)#define IOCMMCGETCARDTYPE       _IOR('I', 0x0f06, int)      /* get card type:MMC/SD */#define IOCMMCSETENABLE         _IOW('I', 0x0f07, int)      /* set driver enable after plugged out*/#define IOCSETERROR             _IOW('I', 0x0f08, int)      /* for fs panic test */#define IOCMMCGETSIZE		_IOR('I', 0x0f09, int)      /* get card capacity */#define IOCMMCEXIST		_IOR('I', 0x0f10, int)/* Extra MMC commands for state control *//* Use negative numbers to disambiguate */#define MMC_CIM_RESET            -1/* Standard MMC commands (3.1)           type  argument     response */   /* class 1 */#define	MMC_GO_IDLE_STATE         0   /* bc                          */#define MMC_SEND_OP_COND          1   /* bcr  [31:0] OCR         R3  */#define MMC_ALL_SEND_CID          2   /* bcr                     R2  */#define MMC_SET_RELATIVE_ADDR     3   /* ac   [31:16] RCA        R1  */#define MMC_SET_DSR               4   /* bc   [31:16] RCA            */#define MMC_SELECT_CARD           7   /* ac   [31:16] RCA        R1  */#define MMC_SEND_CSD              9   /* ac   [31:16] RCA        R2  */#define MMC_SEND_CID             10   /* ac   [31:16] RCA        R2  */#define MMC_READ_DAT_UNTIL_STOP  11   /* adtc [31:0] dadr        R1  */#define MMC_STOP_TRANSMISSION    12   /* ac                      R1b */#define MMC_SEND_STATUS	         13   /* ac   [31:16] RCA        R1  */#define MMC_GO_INACTIVE_STATE    15   /* ac   [31:16] RCA            */  /* class 2 */#define MMC_SET_BLOCKLEN         16   /* ac   [31:0] block len   R1  */#define MMC_READ_SINGLE_BLOCK    17   /* adtc [31:0] data addr   R1  */#define MMC_READ_MULTIPLE_BLOCK  18   /* adtc [31:0] data addr   R1  */  /* class 3 */#define MMC_WRITE_DAT_UNTIL_STOP 20   /* adtc [31:0] data addr   R1  */  /* class 4 */#define MMC_SET_BLOCK_COUNT      23   /* adtc [31:0] data addr   R1  */#define MMC_WRITE_BLOCK          24   /* adtc [31:0] data addr   R1  */#define MMC_WRITE_MULTIPLE_BLOCK 25   /* adtc                    R1  */#define MMC_PROGRAM_CID          26   /* adtc                    R1  */#define MMC_PROGRAM_CSD          27   /* adtc                    R1  */  /* class 6 */#define MMC_SET_WRITE_PROT       28   /* ac   [31:0] data addr   R1b */#define MMC_CLR_WRITE_PROT       29   /* ac   [31:0] data addr   R1b */#define MMC_SEND_WRITE_PROT      30   /* adtc [31:0] wpdata addr R1  */  /* class 5 */#define MMC_ERASE_GROUP_START    35   /* ac   [31:0] data addr   R1  */#define MMC_ERASE_GROUP_END      36   /* ac   [31:0] data addr   R1  */#define MMC_ERASE                37   /* ac                      R1b */  /* class 9 */#define MMC_FAST_IO              39   /* ac   <Complex>          R4  */#define MMC_GO_IRQ_STATE         40   /* bcr                     R5  */  /* class 7 */#define MMC_LOCK_UNLOCK          42   /* adtc                    R1b */  /* class 8 */#define MMC_APP_CMD              55   /* ac   [31:16] RCA        R1  */#define MMC_GEN_CMD              56   /* adtc [0] RD/WR          R1b */  /* SD class */#define SD_SEND_OP_COND          41   /* bcr  [31:0] OCR         R3  */#define SET_BUS_WIDTH            6    /* ac   [1:0] bus width    R1  */    #define SEND_SCR                 51   /* adtc [31:0] staff       R1  */   /* Don't change the order of these; they are used in dispatch tables */enum mmc_rsp_t {	RESPONSE_NONE   = 0,	RESPONSE_R1     = 1,	RESPONSE_R1B    = 2,	RESPONSE_R2_CID = 3,	RESPONSE_R2_CSD  = 4,	RESPONSE_R3      = 5,	RESPONSE_R4      = 6,	RESPONSE_R5      = 7,        RESPONSE_R6      = 8,};/*  MMC status in R1  Type  	e : error bit	s : status bit	r : detected and set for the actual command response	x : detected and set during command execution. the host must poll            the card by sending status command in order to read these bits.  Clear condition  	a : according to the card state	b : always related to the previous command. Reception of            a valid command will clear it (with a delay of one command)	c : clear by read */#define R1_OUT_OF_RANGE		(1 << 31)	/* er, c */#define R1_ADDRESS_ERROR	(1 << 30)	/* erx, c */#define R1_BLOCK_LEN_ERROR	(1 << 29)	/* er, c */#define R1_ERASE_SEQ_ERROR      (1 << 28)	/* er, c */#define R1_ERASE_PARAM		(1 << 27)	/* ex, c */#define R1_WP_VIOLATION		(1 << 26)	/* erx, c */#define R1_CARD_IS_LOCKED	(1 << 25)	/* sx, a */#define R1_LOCK_UNLOCK_FAILED	(1 << 24)	/* erx, c */#define R1_COM_CRC_ERROR	(1 << 23)	/* er, b */#define R1_ILLEGAL_COMMAND	(1 << 22)	/* er, b */#define R1_CARD_ECC_FAILED	(1 << 21)	/* ex, c */#define R1_CC_ERROR		(1 << 20)	/* erx, c */#define R1_ERROR		(1 << 19)	/* erx, c */#define R1_UNDERRUN		(1 << 18)	/* ex, c */#define R1_OVERRUN		(1 << 17)	/* ex, c */#define R1_CID_CSD_OVERWRITE	(1 << 16)	/* erx, c, CID/CSD overwrite */#define R1_WP_ERASE_SKIP	(1 << 15)	/* sx, c */#define R1_CARD_ECC_DISABLED	(1 << 14)	/* sx, a */#define R1_ERASE_RESET		(1 << 13)	/* sr, c */#define R1_STATUS(x)            (x & 0xFFFFE000)#define R1_CURRENT_STATE(x)    	((x & 0x00001E00) >> 9)	/* sx, b (4 bits) */#define R1_READY_FOR_DATA	(1 << 8)	/* sx, a */#define R1_APP_CMD		(1 << 7)	/* sr, c */enum card_state {	CARD_STATE_EMPTY = -1,	CARD_STATE_IDLE	 = 0,	CARD_STATE_READY = 1,	CARD_STATE_IDENT = 2,	CARD_STATE_STBY	 = 3,	CARD_STATE_TRAN	 = 4,	CARD_STATE_DATA	 = 5,	CARD_STATE_RCV	 = 6,	CARD_STATE_PRG	 = 7,	CARD_STATE_DIS	 = 8,};/* These are unpacked versions of the actual responses */struct mmc_response_r1 {	u8  cmd;	u32 status;};struct mmc_cid {	u8  mid;	u16 oid;	u8  pnm[7];   // Product name (we null-terminate)	u8  prv;	u32 psn;	u8  mdt;};struct mmc_csd {	u8  csd_structure;	u8  spec_vers;	u8  taac;	u8  nsac;	u8  tran_speed;	u16 ccc;	u8  read_bl_len;	u8  read_bl_partial;	u8  write_blk_misalign;	u8  read_blk_misalign;	u8  dsr_imp;	u16 c_size;	u8  vdd_r_curr_min;	u8  vdd_r_curr_max;	u8  vdd_w_curr_min;	u8  vdd_w_curr_max;	u8  c_size_mult;	union {		struct { /* MMC system specification version 3.1 */			u8  erase_grp_size;  			u8  erase_grp_mult; 		} v31;		struct { /* MMC system specification version 2.2 */			u8  sector_size;			u8  erase_grp_size;		} v22;	} erase;	u8  wp_grp_size;	u8  wp_grp_enable;	u8  default_ecc;	u8  r2w_factor;	u8  write_bl_len;	u8  write_bl_partial;	u8  file_format_grp;	u8  copy;	u8  perm_write_protect;	u8  tmp_write_protect;	u8  file_format;	u8  ecc;};struct mmc_response_r3 {  	u32 ocr;}; #define MMC_VDD_145_150	0x00000001	/* VDD voltage 1.45 - 1.50 */#define MMC_VDD_150_155	0x00000002	/* VDD voltage 1.50 - 1.55 */#define MMC_VDD_155_160	0x00000004	/* VDD voltage 1.55 - 1.60 */#define MMC_VDD_160_165	0x00000008	/* VDD voltage 1.60 - 1.65 */#define MMC_VDD_165_170	0x00000010	/* VDD voltage 1.65 - 1.70 */#define MMC_VDD_17_18	0x00000020	/* VDD voltage 1.7 - 1.8 */#define MMC_VDD_18_19	0x00000040	/* VDD voltage 1.8 - 1.9 */#define MMC_VDD_19_20	0x00000080	/* VDD voltage 1.9 - 2.0 */#define MMC_VDD_20_21	0x00000100	/* VDD voltage 2.0 ~ 2.1 */#define MMC_VDD_21_22	0x00000200	/* VDD voltage 2.1 ~ 2.2 */#define MMC_VDD_22_23	0x00000400	/* VDD voltage 2.2 ~ 2.3 */#define MMC_VDD_23_24	0x00000800	/* VDD voltage 2.3 ~ 2.4 */#define MMC_VDD_24_25	0x00001000	/* VDD voltage 2.4 ~ 2.5 */#define MMC_VDD_25_26	0x00002000	/* VDD voltage 2.5 ~ 2.6 */#define MMC_VDD_26_27	0x00004000	/* VDD voltage 2.6 ~ 2.7 */#define MMC_VDD_27_28	0x00008000	/* VDD voltage 2.7 ~ 2.8 */#define MMC_VDD_28_29	0x00010000	/* VDD voltage 2.8 ~ 2.9 */#define MMC_VDD_29_30	0x00020000	/* VDD voltage 2.9 ~ 3.0 */#define MMC_VDD_30_31	0x00040000	/* VDD voltage 3.0 ~ 3.1 */#define MMC_VDD_31_32	0x00080000	/* VDD voltage 3.1 ~ 3.2 */#define MMC_VDD_32_33	0x00100000	/* VDD voltage 3.2 ~ 3.3 */#define MMC_VDD_33_34	0x00200000	/* VDD voltage 3.3 ~ 3.4 */#define MMC_VDD_34_35	0x00400000	/* VDD voltage 3.4 ~ 3.5 */#define MMC_VDD_35_36	0x00800000	/* VDD voltage 3.5 ~ 3.6 */#define MMC_CARD_BUSY	0x80000000	/* Card Power up status bit *//* CSD field definitions */ #define CSD_STRUCT_VER_1_0  0           /* Valid for system specification 1.0 - 1.2 */#define CSD_STRUCT_VER_1_1  1           /* Valid for system specification 1.4 - 2.2 */#define CSD_STRUCT_VER_1_2  2           /* Valid for system specification 3.1       */#define CSD_SPEC_VER_0      0           /* Implements system specification 1.0 - 1.2 */#define CSD_SPEC_VER_1      1           /* Implements system specification 1.4 */#define CSD_SPEC_VER_2      2           /* Implements system specification 2.0 - 2.2 */#define CSD_SPEC_VER_3      3           /* Implements system specification 3.1 */#ifdef CONFIG_MMC_DEBUG#ifndef CONFIG_MMC_DEBUG_VERBOSE#define CONFIG_MMC_DEBUG_VERBOSE 3#endifextern int g_mmc_debug;#define DEBUG(n, args...) \	if (n <=  g_mmc_debug) {	\		printk(KERN_INFO __FUNCTION__ args);	\	}#define START_DEBUG(n) do { if (n <= g_mmc_debug)#define END_DEBUG      } while (0)#else#define DEBUG(n, args...)#define START_DEBUG(n)#define END_DEBUG#endif /* CONFIG_MMC_DEBUG */#endif  /* MMC_MMC_PROTOCOL_H */

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国内精品免费**视频| 麻豆精品视频在线观看免费 | 久久99国产精品久久| 久久久久久免费网| 欧美在线色视频| 成人黄动漫网站免费app| 日韩国产欧美在线视频| 国产精品成人免费精品自在线观看| 这里只有精品视频在线观看| 91啪亚洲精品| 国产成人免费在线观看不卡| 麻豆91精品视频| 亚洲成人动漫在线免费观看| 亚洲柠檬福利资源导航| 国产午夜亚洲精品午夜鲁丝片| 欧美精品色一区二区三区| 色女孩综合影院| 不卡的av在线播放| 国产黑丝在线一区二区三区| 六月丁香综合在线视频| 婷婷丁香久久五月婷婷| 一区二区三区成人| 自拍偷在线精品自拍偷无码专区| 国产婷婷色一区二区三区四区 | 亚洲日本在线看| 国产精品女主播av| 久久久91精品国产一区二区精品| 精品捆绑美女sm三区| 精品国产3级a| 精品久久久网站| 久久先锋影音av鲁色资源网| 日韩一级黄色大片| 欧美一级一级性生活免费录像| 欧美精品视频www在线观看| 精品视频1区2区| 欧美天堂亚洲电影院在线播放| 91在线porny国产在线看| 播五月开心婷婷综合| 成年人网站91| 99r国产精品| 91首页免费视频| 欧美专区日韩专区| 欧美四级电影网| 在线成人免费观看| 欧美一区二区三区四区在线观看| 宅男在线国产精品| 日韩视频免费观看高清完整版 | 国产亚洲一区字幕| 久久色中文字幕| 日本一区二区免费在线观看视频 | 日韩一卡二卡三卡四卡| 欧美精品一区二区三区蜜桃| 欧美精品一区二区三区四区| 亚洲国产精品黑人久久久| 国产精品日韩成人| 亚洲视频狠狠干| 亚洲第一主播视频| 人人超碰91尤物精品国产| 美女国产一区二区| 国产精品18久久久久久久久久久久| 国产毛片精品一区| 99在线精品观看| 色综合久久综合网欧美综合网| 欧美视频精品在线观看| 日韩一卡二卡三卡国产欧美| 国产欧美综合色| 亚洲综合色区另类av| 日本欧美一区二区三区| 国产另类ts人妖一区二区| 99re亚洲国产精品| 欧美日韩和欧美的一区二区| 欧美精品一区二区不卡| 综合久久综合久久| 天堂影院一区二区| 国产福利一区在线观看| 欧美自拍偷拍午夜视频| 2023国产一二三区日本精品2022| |精品福利一区二区三区| 亚洲va韩国va欧美va| 国产乱国产乱300精品| 91国偷自产一区二区使用方法| 宅男在线国产精品| 中文字幕一区二区三区av| 青青国产91久久久久久| av在线播放不卡| 91精品国产综合久久精品 | 亚洲色图欧美激情| 久久国产精品露脸对白| 色婷婷综合久久久中文字幕| 欧美大黄免费观看| 一区二区三区日韩精品| 国产九九视频一区二区三区| 欧美性色黄大片| 国产女主播视频一区二区| 视频一区国产视频| 色狠狠色狠狠综合| 国产亚洲精品资源在线26u| 亚洲成人第一页| 北岛玲一区二区三区四区 | 亚洲一级片在线观看| 国产一区91精品张津瑜| 欧美日韩中文字幕一区| 中文字幕乱码亚洲精品一区| 日本aⅴ亚洲精品中文乱码| 日本道色综合久久| 国产欧美一区二区精品忘忧草| 午夜激情综合网| 色欧美日韩亚洲| 欧美激情在线看| 国产一区二区三区蝌蚪| 欧美精三区欧美精三区| 一区二区三区欧美视频| 成人永久看片免费视频天堂| 日韩久久免费av| 天堂久久一区二区三区| 日本韩国欧美在线| 亚洲色图另类专区| 成a人片亚洲日本久久| 久久久久久久久久久久久女国产乱| 天天色综合天天| 欧美日韩一区二区三区四区 | 亚洲人成网站在线| 不卡av在线网| 国产精品成人一区二区艾草| 成人亚洲一区二区一| 欧美精品一区二区三区久久久| 美女视频免费一区| 日韩一区二区在线观看视频| 亚洲va欧美va人人爽| 欧美日韩一级片在线观看| 亚洲一区二区偷拍精品| 91麻豆精东视频| 亚洲精品第1页| 日本久久电影网| 亚洲综合色丁香婷婷六月图片| 91黄色免费看| 午夜欧美电影在线观看| 制服丝袜在线91| 青青草成人在线观看| 日韩一区二区麻豆国产| 看电视剧不卡顿的网站| 欧美电影免费观看高清完整版在线 | 884aa四虎影成人精品一区| 亚洲第一福利视频在线| 欧美人狂配大交3d怪物一区| 午夜影院久久久| 欧美一区2区视频在线观看| 看电视剧不卡顿的网站| 久久精品夜色噜噜亚洲a∨| 懂色av中文一区二区三区| 国产精品欧美一级免费| 色综合 综合色| 婷婷综合久久一区二区三区| 日韩丝袜情趣美女图片| 国产成人aaa| 亚洲男人电影天堂| 欧美日韩成人在线一区| 久久超碰97中文字幕| 国产欧美日韩三级| 91一区二区三区在线播放| 亚洲第一精品在线| 精品国产免费久久| 成人a级免费电影| 亚洲高清视频的网址| 日韩欧美高清在线| 成人动漫一区二区| 亚洲电影中文字幕在线观看| 日韩欧美你懂的| 成人黄页毛片网站| 亚洲高清中文字幕| 久久精品视频网| 欧美视频完全免费看| 黄页网站大全一区二区| 综合久久久久综合| 日韩三级视频中文字幕| 成人黄色大片在线观看| 午夜精品久久久久久久| 国产视频一区在线播放| 欧美日韩中文国产| 国产91精品欧美| 丝袜亚洲另类丝袜在线| 国产亚洲欧美在线| 欧美乱妇23p| 国产成人在线色| 日韩中文欧美在线| 亚洲视频在线观看一区| 91精品国产91久久久久久一区二区| 成人影视亚洲图片在线| 日本午夜精品视频在线观看 | 日本麻豆一区二区三区视频| 国产精品久久久久久久久晋中 | 91国产精品成人| 国产真实乱偷精品视频免| 亚洲一区中文在线| 国产日韩亚洲欧美综合| 91精品国产91久久久久久一区二区| 99天天综合性| 国产一区二区电影| 天堂在线亚洲视频| 一区二区国产视频|