drm/rockchip: add rk3399 vop big csc support
[firefly-linux-kernel-4.4.55.git] / drivers / mtd / rknand / api_flash.h
1 /********************************************************************************\r
2 *********************************************************************************\r
3                         COPYRIGHT (c)   2004 BY ROCK-CHIP FUZHOU\r
4                                 --  ALL RIGHTS RESERVED  --\r
5 \r
6 File Name:  api_flash.h\r
7 Author:     XUESHAN LIN\r
8 Created:    1st Dec 2008\r
9 Modified:\r
10 Revision:   1.00\r
11 Modify log:\r
12             1.01    Ôö¼ÓFtlClose½Ó¿Úº¯Êý    2009.10.15  lxs\r
13 ********************************************************************************\r
14 ********************************************************************************/\r
15 #ifndef _API_FLASH_H\r
16 #define _API_FLASH_H\r
17 \r
18 //1º¯ÊýÔ­ÐÍÉùÃ÷\r
19 /***************************************************************************\r
20 º¯ÊýÃèÊö:FTLºÍFLASH³õʼ»¯\r
21 Èë¿Ú²ÎÊý:ÎÞ\r
22 ³ö¿Ú²ÎÊý:\r
23         0=Õý³£·µ»Ø \r
24         1=Ó³Éä±í³ö´í, ±»Ç¿ÖƵ͸ñ\r
25         2=flash³õʼ»¯Ê§°Ü,¿ÉÄÜÊÇÓ²¼þ´íÎó»òÒª½øÐй̼þÉý¼¶\r
26         ÆäËüÖµ:ÄÚ²¿´íÎó, ¸ÃÇý¶¯²»¿ÉʹÓÃ\r
27 ˵    Ã÷:ÉϵçÖ»Ðèµ÷ÓÃÒ»´Î³õʼ»¯¼´¿É\r
28 ***************************************************************************/\r
29 extern int FtlInit(unsigned int nandcBaseAddr,unsigned char pageRemapEn);\r
30 extern int FTLInit_WithoutPageRemap(void);\r
31 extern int FTLInit(void);\r
32 \r
33 \r
34 /***************************************************************************\r
35 º¯ÊýÃèÊö:»ñÈ¡FLASH´ÅÅÌÈÝÁ¿\r
36 Èë¿Ú²ÎÊý:\r
37         DISK_NAND_CODE:¹Ì¼þÅÌ\r
38         DISK_NAND_DATA:ϵͳ²ÎÊýÅÌ\r
39         DISK_NAND_USER:Óû§ÅÌ\r
40 ³ö¿Ú²ÎÊý:´ÅÅÌ×ÜÉÈÇøÊý\r
41 ˵    Ã÷:\r
42 ***************************************************************************/\r
43 extern unsigned int FtlGetCapacity(unsigned char LUN);\r
44 \r
45 /***************************************************************************\r
46 º¯ÊýÃèÊö:¶ÁÉÈÇø½Ó¿Ú\r
47 Èë¿Ú²ÎÊý:LUN=Âß¼­·ÖÇøºÅ, Index=ÆðʼÉÈÇøµØÖ·, buf=Êý¾Ý»º³åÇø, nSec=ÉÈÇøÊý\r
48 ³ö¿Ú²ÎÊý:0=¶ÁÈ¡ÕýÈ·; ·Ç0=¶ÁÈ¡³ö´í, Êý¾Ý²»¿ÉÓÃ\r
49 µ÷Óú¯Êý:\r
50 ˵    Ã÷:\r
51 ***************************************************************************/\r
52 extern int FtlRead(unsigned char LUN, unsigned int Index, unsigned int nSec, void *buf);\r
53 \r
54 /***************************************************************************\r
55 º¯ÊýÃèÊö:дÉÈÇø½Ó¿Ú\r
56 Èë¿Ú²ÎÊý:LUN=Âß¼­·ÖÇøºÅ, Index=ÆðʼÉÈÇøµØÖ·, buf=Êý¾Ý»º³åÇø, nSec=ÉÈÇøÊý\r
57 ³ö¿Ú²ÎÊý:0=ÕýȷдÈë; ·Ç0=д²Ù×÷ʧ°Ü, Êý¾ÝûÓб»ÕýȷдÈë\r
58 µ÷Óú¯Êý:\r
59 ˵    Ã÷:\r
60 ***************************************************************************/\r
61 extern int FtlWrite(unsigned char LUN, unsigned int Index, unsigned int nSec, void *buf);\r
62 \r
63 /***************************************************************************\r
64 º¯ÊýÃèÊö:MLC FLASHÊý¾ÝË¢ÐÂ\r
65 Èë¿Ú²ÎÊý:\r
66 ³ö¿Ú²ÎÊý:\r
67 µ÷Óú¯Êý:\r
68 ˵    Ã÷:ÔÚϵͳIDLE/ÔڱȽϼ¯ÖжÁÊý¾Ýʱ(ÈçA-B²¥·Å¡¢Æµ·±¶Á×ÊÔ´µÈ)µ÷Óøú¯Êý, \r
69                                  Äܼ°Ê±ÐÞÕý±»Æµ·±¼¯ÖжÁ»µµÄÊý¾Ý,º¯ÊýÖ´ÐÐʱ¼ä¿ÉÄܽϳ¤(¼¸°ÙmsÉõÖÁ¼¸s)\r
70 ***************************************************************************/\r
71 extern  void    FlashRefreshHook(void);\r
72 \r
73 /***************************************************************************\r
74 º¯ÊýÃèÊö:AHBÖ÷Ƶ¸üÐÂʱÐèÒªµ÷Óô˽ӿÚÀ´ÅäÖÃFLASHʱÐò\r
75 Èë¿Ú²ÎÊý:AHBnKHz=Ö÷Ƶ(AHB)\r
76 ³ö¿Ú²ÎÊý:\r
77 µ÷Óú¯Êý:\r
78 ***************************************************************************/\r
79 extern  void    FlashTimingCfg(unsigned int AHBnKHz);\r
80 \r
81 /***************************************************************************\r
82 º¯ÊýÃèÊö:FTL ¹Ø±Õ£¬¹Ø»úʱµ÷ÓÃ\r
83 Èë¿Ú²ÎÊý:ÎÞ\r
84 ³ö¿Ú²ÎÊý:ÎÞ\r
85 ˵    Ã÷:¹Ø»úʱ£¬ÔÚËùÓÐдÎļþ²Ù×÷½áÊøºóµ÷ÓÃ\r
86 ***************************************************************************/\r
87 extern  void  FtlClose(void);\r
88 \r
89 /***************************************************************************\r
90 º¯ÊýÃèÊö:FTL ¶¨Ê±»Øµ÷º¯Êý£¬ÏµÍ³1S×óÓÒµ÷ÓÃÒ»´Î\r
91 Èë¿Ú²ÎÊý:ÎÞ\r
92 ³ö¿Ú²ÎÊý:ÎÞ\r
93 ˵    Ã÷:FTLÖÐһЩCACHEÔÚ¶¨Ê±ÖлØдflash\r
94 ***************************************************************************/\r
95 extern  void  FtlTimeHook(void);\r
96 \r
97 /***************************************************************************\r
98 º¯ÊýÃèÊö:»ñÈ¡ flash page ´óС£¬ÒÔ±ãÍâÃ濪»º³å,\r
99 Èë¿Ú²ÎÊý:ÎÞ\r
100 ³ö¿Ú²ÎÊý:page´óС£¬sectorµ¥Î»\r
101 µ÷Óú¯Êý:\r
102 ˵Ã÷: ÐèÒªÔÚFTLInitºó²Å¿ÉÓÃ\r
103 ***************************************************************************/\r
104 extern  int   FlashGetPageSize(void);\r
105 \r
106 /***************************************************************************\r
107 º¯ÊýÃèÊö:AHBÖ÷Ƶ¸üÐÂʱÐèÒªµ÷Óô˽ӿÚÀ´ÅäÖÃFLASHʱÐò\r
108 Èë¿Ú²ÎÊý:AHBnMHz=Ö÷Ƶ(AHB)\r
109 ³ö¿Ú²ÎÊý:\r
110 µ÷Óú¯Êý:\r
111 ***************************************************************************/\r
112 extern  void    FlashTimingCfg(unsigned int AHBnKHz);\r
113 \r
114 /***************************************************************************\r
115 º¯ÊýÃèÊö:ϵͳÅÌд²»ÔÊÐí\r
116 Èë¿Ú²ÎÊý:\r
117 ³ö¿Ú²ÎÊý:\r
118 µ÷Óú¯Êý:\r
119 ***************************************************************************/\r
120 extern void FtlFlashSysProtSetOn(void);\r
121 \r
122 /***************************************************************************\r
123 º¯ÊýÃèÊö:ϵͳÅÌдÔÊÐí\r
124 Èë¿Ú²ÎÊý:\r
125 ³ö¿Ú²ÎÊý:\r
126 µ÷Óú¯Êý:\r
127 ***************************************************************************/\r
128 extern void FtlFlashSysProtSetOff(void);\r
129 \r
130 /***************************************************************************\r
131 º¯ÊýÃèÊö:²Á³ýϵͳÅÌ£¬Éý¼¶Ê±Ê¹ÓÃ\r
132 Èë¿Ú²ÎÊý:\r
133 ³ö¿Ú²ÎÊý:\r
134 µ÷Óú¯Êý:\r
135 ***************************************************************************/\r
136 extern void FtlLowFormatSysDisk(void);\r
137 \r
138 extern int FtlWriteImage(unsigned int Index, unsigned int nSec, void *buf);\r
139 /***************************************************************************\r
140 º¯ÊýÃèÊö:½«ËùÓлº´æµÄcache Ð´µ½cache ¿é\r
141 Èë¿Ú²ÎÊý:\r
142 ³ö¿Ú²ÎÊý:\r
143 µ÷Óú¯Êý:\r
144 ***************************************************************************/\r
145 extern void     FtlCacheDelayWriteALL(void);\r
146 \r
147 /***************************************************************************\r
148 º¯ÊýÃèÊö:ÉèÖôÅÅÌд±£»¤µØÖ·£¬\r
149 Èë¿Ú²ÎÊý:LBAµØÖ·£¬Ð¡ÓÚLBAµÄµØַд±£»¤\r
150 ³ö¿Ú²ÎÊý:\r
151 µ÷Óú¯Êý:\r
152 ***************************************************************************/\r
153 void FtlSetSysProtAddr(int LBA);\r
154 \r
155 \r
156 /***************************************************************************\r
157 º¯ÊýÃèÊö:»ñÈ¡FLASH´ÅÅÌÈÝÁ¿\r
158 Èë¿Ú²ÎÊý:ÅÌ·û\r
159 ³ö¿Ú²ÎÊý:ÈÝÁ¿,ÒÔÉÈÇøΪµ¥Î»\r
160 µ÷Óú¯Êý:\r
161 ***************************************************************************/\r
162 int FtlGetPageZoneCapacity(void);\r
163 \r
164 /***************************************************************************\r
165 º¯ÊýÃèÊö:¶Á¶àÉÈÇø\r
166 Èë¿Ú²ÎÊý:Index=ÉÈÇøºÅ, nSec=ÉÈÇøÊý\r
167 ³ö¿Ú²ÎÊý:¶Áµ½µÄÊý¾ÝÔÚ»º³åÇøbufÖÐ\r
168 µ÷Óú¯Êý:\r
169 ***************************************************************************/\r
170 int FtlPageWrite(int Index, int nSec, void *buf);\r
171 \r
172 \r
173 /***************************************************************************\r
174 º¯ÊýÃèÊö:¶Á¶àÉÈÇø\r
175 Èë¿Ú²ÎÊý:Index=ÉÈÇøºÅ, nSec=ÉÈÇøÊý\r
176 ³ö¿Ú²ÎÊý:¶Áµ½µÄÊý¾ÝÔÚ»º³åÇøbufÖÐ\r
177 µ÷Óú¯Êý:\r
178 ***************************************************************************/\r
179 int FtlPageRead(int Index, int nSec, void *buf);\r
180 \r
181 \r
182 /***************************************************************************\r
183 º¯ÊýÃèÊö:¶ÁÈ¡ SN sectorÐÅÏ¢\r
184 Èë¿Ú²ÎÊý:pbuf\r
185 ³ö¿Ú²ÎÊý:\r
186 µ÷Óú¯Êý:\r
187 ×¢ÒâÐÅÏ¢£ºÐèÒªÔÚflash Çý¶¯¼ÓÔغó²ÅÄܵ÷Óã¬pbuf´óСÐèÒª´óÓÚµÈÓÚ512 bytes£¬·µ»ØÐÅϢΪ512\r
188           bytes¡£\r
189 ***************************************************************************/\r
190 char GetSNSectorInfo(char * pbuf);\r
191 \r
192 \r
193 extern int NandInit(void);\r
194 extern int NandRead(unsigned int Index, unsigned int nSec, void * buf) ;\r
195 extern int NandWriteImage(unsigned int Index, unsigned int nSec, void * buf);\r
196 extern int NandWrite(unsigned int Index, unsigned int nSec, void * buf) ;\r
197 extern int NandDeInit(void) ;\r
198 extern int NandForceDeInit(void);\r
199 extern unsigned int NandGetCapacity(void); \r
200 extern void NandSetSysProtAddr(unsigned int SysImageWriteEndAdd);\r
201 extern void FtlDelayWriteCacheEn(unsigned int en);\r
202 #endif\r