1 /**
2   ******************************************************************************
3   * @file    bl602_sflah_ext.h
4   * @version V1.0
5   * @date
6   * @brief   This file is the standard driver header file
7   ******************************************************************************
8   * @attention
9   *
10   * <h2><center>&copy; COPYRIGHT(c) 2020 Bouffalo Lab</center></h2>
11   *
12   * Redistribution and use in source and binary forms, with or without modification,
13   * are permitted provided that the following conditions are met:
14   *   1. Redistributions of source code must retain the above copyright notice,
15   *      this list of conditions and the following disclaimer.
16   *   2. Redistributions in binary form must reproduce the above copyright notice,
17   *      this list of conditions and the following disclaimer in the documentation
18   *      and/or other materials provided with the distribution.
19   *   3. Neither the name of Bouffalo Lab nor the names of its contributors
20   *      may be used to endorse or promote products derived from this software
21   *      without specific prior written permission.
22   *
23   * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
24   * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
25   * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
26   * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
27   * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
28   * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
29   * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
30   * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
31   * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
32   * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
33   *
34   ******************************************************************************
35   */
36 #ifndef __BL602_SFLAH_EXT_H__
37 #define __BL602_SFLAH_EXT_H__
38 
39 #include "bflb_sflash.h"
40 #include "bl602_common.h"
41 
42 /** @addtogroup  BL602_Peripheral_Driver
43  *  @{
44  */
45 
46 /** @addtogroup  SFLAH_EXT
47  *  @{
48  */
49 
50 /** @defgroup  SFLAH_EXT_Public_Types
51  *  @{
52  */
53 
54 /*@} end of group SFLAH_EXT_Public_Types */
55 
56 /** @defgroup  SFLAH_EXT_Public_Constants
57  *  @{
58  */
59 
60 /*@} end of group SFLAH_EXT_Public_Constants */
61 
62 /** @defgroup  SFLAH_EXT_Public_Macros
63  *  @{
64  */
65 
66 /*@} end of group SFLAH_EXT_Public_Macros */
67 
68 /** @defgroup  SFLAH_EXT_Public_Functions
69  *  @{
70  */
71 int bflb_sflash_restore_from_powerdown(spi_flash_cfg_type *p_flash_cfg, uint8_t flash_cont_read, uint8_t bank);
72 int bflb_sflash_rcv_enable(spi_flash_cfg_type *p_flash_cfg, uint8_t r_cmd, uint8_t w_cmd, uint8_t bit_pos);
73 int bflb_sflash_erase_security_register(spi_flash_cfg_type *p_flash_cfg, struct sflash_sec_reg_cfg *p_sec_reg_cfg);
74 int bflb_sflash_program_security_register(spi_flash_cfg_type *p_flash_cfg,
75                                           struct sflash_sec_reg_cfg *p_sec_reg_cfg);
76 int bflb_sflash_read_security_register(struct sflash_sec_reg_cfg *p_sec_reg_cfg);
77 int bflb_sflash_clear_status_register(spi_flash_cfg_type *p_flash_cfg);
78 int bflb_sflash_cache_enable_set(uint8_t way_disable);
79 int bflb_sflash_cache_flush(void);
80 
81 /*@} end of group SFLAH_EXT_Public_Functions */
82 
83 /*@} end of group SFLAH_EXT */
84 
85 /*@} end of group BL602_Peripheral_Driver */
86 
87 #endif /* __BL602_SFLAH_EXT_H__ */
88