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