xref: /OK3568_Linux_fs/kernel/drivers/mtd/rknand/api_flash.h (revision 4882a59341e53eb6f0b4789bf948001014eff981)
1 /* SPDX-License-Identifier: GPL-2.0 */
2 /********************************************************************************
3 *********************************************************************************
4 			COPYRIGHT (c)   2004 BY ROCK-CHIP FUZHOU
5 				--  ALL RIGHTS RESERVED  --
6 
7 File Name:  api_flash.h
8 Author:     XUESHAN LIN
9 Created:    1st Dec 2008
10 Modified:
11 Revision:   1.00
12 Modify log:
13             1.01    ����FtlClose�ӿں���    2009.10.15  lxs
14 ********************************************************************************
15 ********************************************************************************/
16 #ifndef _API_FLASH_H
17 #define _API_FLASH_H
18 
19 //1����ԭ������
20 /***************************************************************************
21 ��������:FTL��FLASH��ʼ��
22 ��ڲ���:��
23 ���ڲ���:
24         0=��������
25         1=ӳ������, ��ǿ�Ƶ͸�
26         2=flash��ʼ��ʧ��,������Ӳ�������Ҫ���й̼�����
27         ����ֵ:�ڲ�����, ����������ʹ��
28 ˵    ��:�ϵ�ֻ�����һ�γ�ʼ������
29 ***************************************************************************/
30 extern int FtlInit(unsigned int nandcBaseAddr,unsigned char pageRemapEn);
31 extern int FTLInit_WithoutPageRemap(void);
32 extern int FTLInit(void);
33 
34 
35 /***************************************************************************
36 ��������:��ȡFLASH��������
37 ��ڲ���:
38         DISK_NAND_CODE:�̼���
39         DISK_NAND_DATA:ϵͳ������
40         DISK_NAND_USER:�û���
41 ���ڲ���:������������
42 ˵    ��:
43 ***************************************************************************/
44 extern unsigned int FtlGetCapacity(unsigned char LUN);
45 
46 /***************************************************************************
47 ��������:�������ӿ�
48 ��ڲ���:LUN=�߼�������, Index=��ʼ������ַ, buf=���ݻ�����, nSec=������
49 ���ڲ���:0=��ȡ��ȷ; ��0=��ȡ����, ���ݲ�����
50 ���ú���:
51 ˵    ��:
52 ***************************************************************************/
53 extern int FtlRead(unsigned char LUN, unsigned int Index, unsigned int nSec, void *buf);
54 
55 /***************************************************************************
56 ��������:д�����ӿ�
57 ��ڲ���:LUN=�߼�������, Index=��ʼ������ַ, buf=���ݻ�����, nSec=������
58 ���ڲ���:0=��ȷд��; ��0=д����ʧ��, ����û�б���ȷд��
59 ���ú���:
60 ˵    ��:
61 ***************************************************************************/
62 extern int FtlWrite(unsigned char LUN, unsigned int Index, unsigned int nSec, void *buf);
63 
64 /***************************************************************************
65 ��������:MLC FLASH����ˢ��
66 ��ڲ���:
67 ���ڲ���:
68 ���ú���:
69 ˵    ��:��ϵͳIDLE/�ڱȽϼ��ж�����ʱ(��A-B���š�Ƶ������Դ��)���øú���,
70 				 �ܼ�ʱ������Ƶ�����ж���������,����ִ��ʱ����ܽϳ�(����ms������s)
71 ***************************************************************************/
72 extern	void    FlashRefreshHook(void);
73 
74 /***************************************************************************
75 ��������:AHB��Ƶ����ʱ��Ҫ���ô˽ӿ�������FLASHʱ��
76 ��ڲ���:AHBnKHz=��Ƶ(AHB)
77 ���ڲ���:
78 ���ú���:
79 ***************************************************************************/
80 extern	void    FlashTimingCfg(unsigned int AHBnKHz);
81 
82 /***************************************************************************
83 ��������:FTL �رգ��ػ�ʱ����
84 ��ڲ���:��
85 ���ڲ���:��
86 ˵    ��:�ػ�ʱ��������д�ļ��������������
87 ***************************************************************************/
88 extern	void  FtlClose(void);
89 
90 /***************************************************************************
91 ��������:FTL ��ʱ�ص�������ϵͳ1S���ҵ���һ��
92 ��ڲ���:��
93 ���ڲ���:��
94 ˵    ��:FTL��һЩCACHE�ڶ�ʱ�л�дflash
95 ***************************************************************************/
96 extern	void  FtlTimeHook(void);
97 
98 /***************************************************************************
99 ��������:��ȡ flash page ��С���Ա����濪����,
100 ��ڲ���:��
101 ���ڲ���:page��С��sector��λ
102 ���ú���:
103 ˵��: ��Ҫ��FTLInit��ſ���
104 ***************************************************************************/
105 extern	int   FlashGetPageSize(void);
106 
107 /***************************************************************************
108 ��������:AHB��Ƶ����ʱ��Ҫ���ô˽ӿ�������FLASHʱ��
109 ��ڲ���:AHBnMHz=��Ƶ(AHB)
110 ���ڲ���:
111 ���ú���:
112 ***************************************************************************/
113 extern	void    FlashTimingCfg(unsigned int AHBnKHz);
114 
115 /***************************************************************************
116 ��������:ϵͳ��д������
117 ��ڲ���:
118 ���ڲ���:
119 ���ú���:
120 ***************************************************************************/
121 extern void FtlFlashSysProtSetOn(void);
122 
123 /***************************************************************************
124 ��������:ϵͳ��д����
125 ��ڲ���:
126 ���ڲ���:
127 ���ú���:
128 ***************************************************************************/
129 extern void FtlFlashSysProtSetOff(void);
130 
131 /***************************************************************************
132 ��������:����ϵͳ�̣�����ʱʹ��
133 ��ڲ���:
134 ���ڲ���:
135 ���ú���:
136 ***************************************************************************/
137 extern void FtlLowFormatSysDisk(void);
138 
139 extern int FtlWriteImage(unsigned int Index, unsigned int nSec, void *buf);
140 /***************************************************************************
141 ��������:�����л����cache д��cache ��
142 ��ڲ���:
143 ���ڲ���:
144 ���ú���:
145 ***************************************************************************/
146 extern void	FtlCacheDelayWriteALL(void);
147 
148 /***************************************************************************
149 ��������:���ô���д������ַ��
150 ��ڲ���:LBA��ַ��С��LBA�ĵ�ַд����
151 ���ڲ���:
152 ���ú���:
153 ***************************************************************************/
154 void FtlSetSysProtAddr(int LBA);
155 
156 
157 /***************************************************************************
158 ��������:��ȡFLASH��������
159 ��ڲ���:�̷�
160 ���ڲ���:����,������Ϊ��λ
161 ���ú���:
162 ***************************************************************************/
163 int FtlGetPageZoneCapacity(void);
164 
165 /***************************************************************************
166 ��������:��������
167 ��ڲ���:Index=������, nSec=������
168 ���ڲ���:�����������ڻ�����buf��
169 ���ú���:
170 ***************************************************************************/
171 int FtlPageWrite(int Index, int nSec, void *buf);
172 
173 
174 /***************************************************************************
175 ��������:��������
176 ��ڲ���:Index=������, nSec=������
177 ���ڲ���:�����������ڻ�����buf��
178 ���ú���:
179 ***************************************************************************/
180 int FtlPageRead(int Index, int nSec, void *buf);
181 
182 
183 /***************************************************************************
184 ��������:��ȡ SN sector��Ϣ
185 ��ڲ���:pbuf
186 ���ڲ���:
187 ���ú���:
188 ע����Ϣ����Ҫ��flash �������غ���ܵ��ã�pbuf��С��Ҫ���ڵ���512 bytes��������ϢΪ512
189           bytes��
190 ***************************************************************************/
191 char GetSNSectorInfo(char * pbuf);
192 
193 
194 extern int NandInit(void);
195 extern int NandRead(unsigned int Index, unsigned int nSec, void * buf) ;
196 extern int NandWriteImage(unsigned int Index, unsigned int nSec, void * buf);
197 extern int NandWrite(unsigned int Index, unsigned int nSec, void * buf) ;
198 extern int NandDeInit(void) ;
199 extern int NandForceDeInit(void);
200 extern unsigned int NandGetCapacity(void);
201 extern void NandSetSysProtAddr(unsigned int SysImageWriteEndAdd);
202 extern void FtlDelayWriteCacheEn(unsigned int en);
203 #endif
204