xref: /rk3399_rockchip-uboot/drivers/rkflash/rkflash_api.h (revision ba0501aca290ca5c87ce48b247d37c934d6108cf)
1ad309a88SDingqiang Lin /*
2ad309a88SDingqiang Lin  * Copyright (c) 2018 Fuzhou Rockchip Electronics Co., Ltd
3ad309a88SDingqiang Lin  *
4*ba0501acSDingqiang 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 
10*ba0501acSDingqiang Lin #define	FLASH_VENDOR_PART_START		8
11*ba0501acSDingqiang Lin #define	FLASH_VENDOR_PART_END		39	/* 8 + 8 * 4 - 1 */
12*ba0501acSDingqiang Lin 
13ad309a88SDingqiang Lin #ifdef CONFIG_RKSFC_NOR
14ad309a88SDingqiang Lin #include "sfc_nor.h"
15ad309a88SDingqiang Lin #include "sfc.h"
16ad309a88SDingqiang Lin 
17*ba0501acSDingqiang Lin int rksfc_nor_init(struct udevice *udev);
18*ba0501acSDingqiang Lin u32 rksfc_nor_get_capacity(struct udevice *udev);
19*ba0501acSDingqiang Lin int rksfc_nor_read(struct udevice *udev, u32 sec, u32 n_sec, void *p_data);
20*ba0501acSDingqiang Lin int rksfc_nor_write(struct udevice *udev,
21*ba0501acSDingqiang Lin 		    u32 sec,
22*ba0501acSDingqiang Lin 		    u32 n_sec,
23*ba0501acSDingqiang Lin 		    const void *p_data);
24*ba0501acSDingqiang Lin int rksfc_nor_vendor_read(struct blk_desc *dev_desc,
25*ba0501acSDingqiang Lin 			  u32 sec,
26*ba0501acSDingqiang Lin 			  u32 n_sec,
27*ba0501acSDingqiang Lin 			  void *p_data);
28*ba0501acSDingqiang Lin int rksfc_nor_vendor_write(struct blk_desc *dev_desc,
29*ba0501acSDingqiang Lin 			   u32 sec,
30*ba0501acSDingqiang Lin 			   u32 n_sec,
31*ba0501acSDingqiang Lin 			   void *p_data);
32*ba0501acSDingqiang Lin 
33ad309a88SDingqiang Lin #endif
34ad309a88SDingqiang Lin 
35*ba0501acSDingqiang Lin #ifdef CONFIG_RKSFC_NAND
36*ba0501acSDingqiang Lin #include "sfc_nand.h"
37*ba0501acSDingqiang Lin #include "sfc.h"
38*ba0501acSDingqiang Lin #include "rk_sftl.h"
39*ba0501acSDingqiang Lin int rksfc_nand_init(struct udevice *udev);
40*ba0501acSDingqiang Lin u32 rksfc_nand_get_density(struct udevice *udev);
41*ba0501acSDingqiang Lin int rksfc_nand_read(struct udevice *udev, u32 index, u32 count, void *buf);
42*ba0501acSDingqiang Lin int rksfc_nand_write(struct udevice *udev,
43*ba0501acSDingqiang Lin 		     u32 index,
44*ba0501acSDingqiang Lin 		     u32 count,
45*ba0501acSDingqiang Lin 		     const void *buf);
46*ba0501acSDingqiang Lin #endif
47*ba0501acSDingqiang Lin 
48*ba0501acSDingqiang Lin #ifdef CONFIG_RKNANDC_NAND
49*ba0501acSDingqiang Lin #include "flash.h"
50*ba0501acSDingqiang Lin #include "rk_sftl.h"
51*ba0501acSDingqiang Lin int rknand_flash_init(struct udevice *udev);
52*ba0501acSDingqiang Lin u32 rknand_flash_get_density(struct udevice *udev);
53*ba0501acSDingqiang Lin int rknand_flash_read(struct udevice *udev, u32 index, u32 count, void *buf);
54*ba0501acSDingqiang Lin int rknand_flash_write(struct udevice *udev,
55*ba0501acSDingqiang Lin 		       u32 index,
56*ba0501acSDingqiang Lin 		       u32 count,
57*ba0501acSDingqiang Lin 		       const void *buf);
58*ba0501acSDingqiang Lin #endif
59ad309a88SDingqiang Lin #endif
60