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