xref: /rk3399_rockchip-uboot/drivers/rkflash/rkflash_api.h (revision 40bd3f862c2b01e6741c2e24eaecf8665662d8f8)
1ad309a88SDingqiang Lin /*
2ad309a88SDingqiang Lin  * Copyright (c) 2018 Fuzhou Rockchip Electronics Co., Ltd
3ad309a88SDingqiang Lin  *
4ba0501acSDingqiang Lin  * SPDX-License-Identifier:	GPL-2.0
5ad309a88SDingqiang Lin  */
6ad309a88SDingqiang Lin 
7ad309a88SDingqiang Lin #ifndef __RKFLASH_API_H
8ad309a88SDingqiang Lin #define __RKFLASH_API_H
9ad309a88SDingqiang Lin 
10ba0501acSDingqiang Lin #define	FLASH_VENDOR_PART_START		8
11ba0501acSDingqiang Lin #define	FLASH_VENDOR_PART_END		39	/* 8 + 8 * 4 - 1 */
12ba0501acSDingqiang Lin 
13ad309a88SDingqiang Lin #ifdef CONFIG_RKSFC_NOR
14ad309a88SDingqiang Lin #include "sfc_nor.h"
15ad309a88SDingqiang Lin #include "sfc.h"
16ad309a88SDingqiang Lin 
17ba0501acSDingqiang Lin int rksfc_nor_init(struct udevice *udev);
18ba0501acSDingqiang Lin u32 rksfc_nor_get_capacity(struct udevice *udev);
19ba0501acSDingqiang Lin int rksfc_nor_read(struct udevice *udev, u32 sec, u32 n_sec, void *p_data);
20ba0501acSDingqiang Lin int rksfc_nor_write(struct udevice *udev,
21ba0501acSDingqiang Lin 		    u32 sec,
22ba0501acSDingqiang Lin 		    u32 n_sec,
23ba0501acSDingqiang Lin 		    const void *p_data);
24ba0501acSDingqiang Lin int rksfc_nor_vendor_read(struct blk_desc *dev_desc,
25ba0501acSDingqiang Lin 			  u32 sec,
26ba0501acSDingqiang Lin 			  u32 n_sec,
27ba0501acSDingqiang Lin 			  void *p_data);
28ba0501acSDingqiang Lin int rksfc_nor_vendor_write(struct blk_desc *dev_desc,
29ba0501acSDingqiang Lin 			   u32 sec,
30ba0501acSDingqiang Lin 			   u32 n_sec,
31ba0501acSDingqiang Lin 			   void *p_data);
32ba0501acSDingqiang Lin 
33ad309a88SDingqiang Lin #endif
34ad309a88SDingqiang Lin 
35ba0501acSDingqiang Lin #ifdef CONFIG_RKSFC_NAND
36ba0501acSDingqiang Lin #include "sfc_nand.h"
37ba0501acSDingqiang Lin #include "sfc.h"
38ba0501acSDingqiang Lin #include "rk_sftl.h"
39ba0501acSDingqiang Lin int rksfc_nand_init(struct udevice *udev);
40ba0501acSDingqiang Lin u32 rksfc_nand_get_density(struct udevice *udev);
41ba0501acSDingqiang Lin int rksfc_nand_read(struct udevice *udev, u32 index, u32 count, void *buf);
42ba0501acSDingqiang Lin int rksfc_nand_write(struct udevice *udev,
43ba0501acSDingqiang Lin 		     u32 index,
44ba0501acSDingqiang Lin 		     u32 count,
45ba0501acSDingqiang Lin 		     const void *buf);
46*40bd3f86SDingqiang Lin int rksfc_nand_vendor_read(struct blk_desc *dev_desc,
47*40bd3f86SDingqiang Lin 			   u32 sec,
48*40bd3f86SDingqiang Lin 			   u32 n_sec,
49*40bd3f86SDingqiang Lin 			   void *p_data);
50*40bd3f86SDingqiang Lin int rksfc_nand_vendor_write(struct blk_desc *dev_desc,
51*40bd3f86SDingqiang Lin 			    u32 sec,
52*40bd3f86SDingqiang Lin 			    u32 n_sec,
53*40bd3f86SDingqiang Lin 			    void *p_data);
54ba0501acSDingqiang Lin #endif
55ba0501acSDingqiang Lin 
56ba0501acSDingqiang Lin #ifdef CONFIG_RKNANDC_NAND
57ba0501acSDingqiang Lin #include "flash.h"
58ba0501acSDingqiang Lin #include "rk_sftl.h"
59ba0501acSDingqiang Lin int rknand_flash_init(struct udevice *udev);
60ba0501acSDingqiang Lin u32 rknand_flash_get_density(struct udevice *udev);
61ba0501acSDingqiang Lin int rknand_flash_read(struct udevice *udev, u32 index, u32 count, void *buf);
62ba0501acSDingqiang Lin int rknand_flash_write(struct udevice *udev,
63ba0501acSDingqiang Lin 		       u32 index,
64ba0501acSDingqiang Lin 		       u32 count,
65ba0501acSDingqiang Lin 		       const void *buf);
66*40bd3f86SDingqiang Lin int rknand_flash_vendor_read(struct blk_desc *dev_desc,
67*40bd3f86SDingqiang Lin 			     u32 sec,
68*40bd3f86SDingqiang Lin 			     u32 n_sec,
69*40bd3f86SDingqiang Lin 			     void *p_data);
70*40bd3f86SDingqiang Lin int rknand_flash_vendor_write(struct blk_desc *dev_desc,
71*40bd3f86SDingqiang Lin 			      u32 sec,
72*40bd3f86SDingqiang Lin 			      u32 n_sec,
73*40bd3f86SDingqiang Lin 			      void *p_data);
74*40bd3f86SDingqiang Lin 
75ba0501acSDingqiang Lin #endif
76ad309a88SDingqiang Lin #endif
77