xref: /btstack/port/renesas-ek-ra6m4a-da14531/e2-project/ra/fsp/inc/fsp_common_api.h (revision c30869498fb8e98c1408c9db0e7624f02f483b73)
1 /***********************************************************************************************************************
2  * Copyright [2020-2022] Renesas Electronics Corporation and/or its affiliates.  All Rights Reserved.
3  *
4  * This software and documentation are supplied by Renesas Electronics America Inc. and may only be used with products
5  * of Renesas Electronics Corp. and its affiliates ("Renesas").  No other uses are authorized.  Renesas products are
6  * sold pursuant to Renesas terms and conditions of sale.  Purchasers are solely responsible for the selection and use
7  * of Renesas products and Renesas assumes no liability.  No license, express or implied, to any intellectual property
8  * right is granted by Renesas. This software is protected under all applicable laws, including copyright laws. Renesas
9  * reserves the right to change or discontinue this software and/or this documentation. THE SOFTWARE AND DOCUMENTATION
10  * IS DELIVERED TO YOU "AS IS," AND RENESAS MAKES NO REPRESENTATIONS OR WARRANTIES, AND TO THE FULLEST EXTENT
11  * PERMISSIBLE UNDER APPLICABLE LAW, DISCLAIMS ALL WARRANTIES, WHETHER EXPLICITLY OR IMPLICITLY, INCLUDING WARRANTIES
12  * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, AND NONINFRINGEMENT, WITH RESPECT TO THE SOFTWARE OR
13  * DOCUMENTATION.  RENESAS SHALL HAVE NO LIABILITY ARISING OUT OF ANY SECURITY VULNERABILITY OR BREACH.  TO THE MAXIMUM
14  * EXTENT PERMITTED BY LAW, IN NO EVENT WILL RENESAS BE LIABLE TO YOU IN CONNECTION WITH THE SOFTWARE OR DOCUMENTATION
15  * (OR ANY PERSON OR ENTITY CLAIMING RIGHTS DERIVED FROM YOU) FOR ANY LOSS, DAMAGES, OR CLAIMS WHATSOEVER, INCLUDING,
16  * WITHOUT LIMITATION, ANY DIRECT, CONSEQUENTIAL, SPECIAL, INDIRECT, PUNITIVE, OR INCIDENTAL DAMAGES; ANY LOST PROFITS,
17  * OTHER ECONOMIC DAMAGE, PROPERTY DAMAGE, OR PERSONAL INJURY; AND EVEN IF RENESAS HAS BEEN ADVISED OF THE POSSIBILITY
18  * OF SUCH LOSS, DAMAGES, CLAIMS OR COSTS.
19  **********************************************************************************************************************/
20 
21 #ifndef FSP_COMMON_API_H
22 #define FSP_COMMON_API_H
23 
24 /***********************************************************************************************************************
25  * Includes
26  **********************************************************************************************************************/
27 #include <assert.h>
28 #include <stdint.h>
29 
30 /* Includes FSP version macros. */
31 #include "fsp_version.h"
32 
33 /*******************************************************************************************************************//**
34  * @ingroup RENESAS_COMMON
35  * @defgroup RENESAS_ERROR_CODES Common Error Codes
36  * All FSP modules share these common error codes.
37  * @{
38  **********************************************************************************************************************/
39 
40 /**********************************************************************************************************************
41  * Macro definitions
42  **********************************************************************************************************************/
43 
44 /** This macro is used to suppress compiler messages about a parameter not being used in a function. The nice thing
45  * about using this implementation is that it does not take any extra RAM or ROM. */
46 
47 #define FSP_PARAMETER_NOT_USED(p)    (void) ((p))
48 
49 /** Determine if a C++ compiler is being used.
50  * If so, ensure that standard C is used to process the API information.  */
51 #if defined(__cplusplus)
52  #define FSP_CPP_HEADER    extern "C" {
53  #define FSP_CPP_FOOTER    }
54 #else
55  #define FSP_CPP_HEADER
56  #define FSP_CPP_FOOTER
57 #endif
58 
59 /** FSP Header and Footer definitions */
60 #define FSP_HEADER    FSP_CPP_HEADER
61 #define FSP_FOOTER    FSP_CPP_FOOTER
62 
63 /* Common macro for FSP header files. There is also a corresponding FSP_FOOTER macro at the end of this file. */
64 FSP_HEADER
65 
66 /** Macro to be used when argument to function is ignored since function call is NSC and the parameter is statically
67  *  defined on the Secure side. */
68 #define FSP_SECURE_ARGUMENT    (NULL)
69 
70 /**********************************************************************************************************************
71  * Typedef definitions
72  **********************************************************************************************************************/
73 
74 /** Common error codes */
75 typedef enum e_fsp_err
76 {
77     FSP_SUCCESS = 0,
78 
79     FSP_ERR_ASSERTION             = 1,                      ///< A critical assertion has failed
80     FSP_ERR_INVALID_POINTER       = 2,                      ///< Pointer points to invalid memory location
81     FSP_ERR_INVALID_ARGUMENT      = 3,                      ///< Invalid input parameter
82     FSP_ERR_INVALID_CHANNEL       = 4,                      ///< Selected channel does not exist
83     FSP_ERR_INVALID_MODE          = 5,                      ///< Unsupported or incorrect mode
84     FSP_ERR_UNSUPPORTED           = 6,                      ///< Selected mode not supported by this API
85     FSP_ERR_NOT_OPEN              = 7,                      ///< Requested channel is not configured or API not open
86     FSP_ERR_IN_USE                = 8,                      ///< Channel/peripheral is running/busy
87     FSP_ERR_OUT_OF_MEMORY         = 9,                      ///< Allocate more memory in the driver's cfg.h
88     FSP_ERR_HW_LOCKED             = 10,                     ///< Hardware is locked
89     FSP_ERR_IRQ_BSP_DISABLED      = 11,                     ///< IRQ not enabled in BSP
90     FSP_ERR_OVERFLOW              = 12,                     ///< Hardware overflow
91     FSP_ERR_UNDERFLOW             = 13,                     ///< Hardware underflow
92     FSP_ERR_ALREADY_OPEN          = 14,                     ///< Requested channel is already open in a different configuration
93     FSP_ERR_APPROXIMATION         = 15,                     ///< Could not set value to exact result
94     FSP_ERR_CLAMPED               = 16,                     ///< Value had to be limited for some reason
95     FSP_ERR_INVALID_RATE          = 17,                     ///< Selected rate could not be met
96     FSP_ERR_ABORTED               = 18,                     ///< An operation was aborted
97     FSP_ERR_NOT_ENABLED           = 19,                     ///< Requested operation is not enabled
98     FSP_ERR_TIMEOUT               = 20,                     ///< Timeout error
99     FSP_ERR_INVALID_BLOCKS        = 21,                     ///< Invalid number of blocks supplied
100     FSP_ERR_INVALID_ADDRESS       = 22,                     ///< Invalid address supplied
101     FSP_ERR_INVALID_SIZE          = 23,                     ///< Invalid size/length supplied for operation
102     FSP_ERR_WRITE_FAILED          = 24,                     ///< Write operation failed
103     FSP_ERR_ERASE_FAILED          = 25,                     ///< Erase operation failed
104     FSP_ERR_INVALID_CALL          = 26,                     ///< Invalid function call is made
105     FSP_ERR_INVALID_HW_CONDITION  = 27,                     ///< Detected hardware is in invalid condition
106     FSP_ERR_INVALID_FACTORY_FLASH = 28,                     ///< Factory flash is not available on this MCU
107     FSP_ERR_INVALID_STATE         = 30,                     ///< API or command not valid in the current state
108     FSP_ERR_NOT_ERASED            = 31,                     ///< Erase verification failed
109     FSP_ERR_SECTOR_RELEASE_FAILED = 32,                     ///< Sector release failed
110     FSP_ERR_NOT_INITIALIZED       = 33,                     ///< Required initialization not complete
111     FSP_ERR_NOT_FOUND             = 34,                     ///< The requested item could not be found
112     FSP_ERR_NO_CALLBACK_MEMORY    = 35,                     ///< Non-secure callback memory not provided for non-secure callback
113     FSP_ERR_BUFFER_EMPTY          = 36,                     ///< No data available in buffer
114     FSP_ERR_INVALID_DATA          = 37,                     ///< Accuracy of data is not guaranteed
115 
116     /* Start of RTOS only error codes */
117     FSP_ERR_INTERNAL     = 100,                             ///< Internal error
118     FSP_ERR_WAIT_ABORTED = 101,                             ///< Wait aborted
119 
120     /* Start of UART specific */
121     FSP_ERR_FRAMING            = 200,                       ///< Framing error occurs
122     FSP_ERR_BREAK_DETECT       = 201,                       ///< Break signal detects
123     FSP_ERR_PARITY             = 202,                       ///< Parity error occurs
124     FSP_ERR_RXBUF_OVERFLOW     = 203,                       ///< Receive queue overflow
125     FSP_ERR_QUEUE_UNAVAILABLE  = 204,                       ///< Can't open s/w queue
126     FSP_ERR_INSUFFICIENT_SPACE = 205,                       ///< Not enough space in transmission circular buffer
127     FSP_ERR_INSUFFICIENT_DATA  = 206,                       ///< Not enough data in receive circular buffer
128 
129     /* Start of SPI specific */
130     FSP_ERR_TRANSFER_ABORTED = 300,                         ///< The data transfer was aborted.
131     FSP_ERR_MODE_FAULT       = 301,                         ///< Mode fault error.
132     FSP_ERR_READ_OVERFLOW    = 302,                         ///< Read overflow.
133     FSP_ERR_SPI_PARITY       = 303,                         ///< Parity error.
134     FSP_ERR_OVERRUN          = 304,                         ///< Overrun error.
135 
136     /* Start of CGC Specific */
137     FSP_ERR_CLOCK_INACTIVE        = 400,                    ///< Inactive clock specified as system clock.
138     FSP_ERR_CLOCK_ACTIVE          = 401,                    ///< Active clock source cannot be modified without stopping first.
139     FSP_ERR_NOT_STABILIZED        = 403,                    ///< Clock has not stabilized after its been turned on/off
140     FSP_ERR_PLL_SRC_INACTIVE      = 404,                    ///< PLL initialization attempted when PLL source is turned off
141     FSP_ERR_OSC_STOP_DET_ENABLED  = 405,                    ///< Illegal attempt to stop LOCO when Oscillation stop is enabled
142     FSP_ERR_OSC_STOP_DETECTED     = 406,                    ///< The Oscillation stop detection status flag is set
143     FSP_ERR_OSC_STOP_CLOCK_ACTIVE = 407,                    ///< Attempt to clear Oscillation Stop Detect Status with PLL/MAIN_OSC active
144     FSP_ERR_CLKOUT_EXCEEDED       = 408,                    ///< Output on target output clock pin exceeds maximum supported limit
145     FSP_ERR_USB_MODULE_ENABLED    = 409,                    ///< USB clock configure request with USB Module enabled
146     FSP_ERR_HARDWARE_TIMEOUT      = 410,                    ///< A register read or write timed out
147     FSP_ERR_LOW_VOLTAGE_MODE      = 411,                    ///< Invalid clock setting attempted in low voltage mode
148 
149     /* Start of FLASH Specific */
150     FSP_ERR_PE_FAILURE             = 500,                   ///< Unable to enter Programming mode.
151     FSP_ERR_CMD_LOCKED             = 501,                   ///< Peripheral in command locked state
152     FSP_ERR_FCLK                   = 502,                   ///< FCLK must be >= 4 MHz
153     FSP_ERR_INVALID_LINKED_ADDRESS = 503,                   ///< Function or data are linked at an invalid region of memory
154     FSP_ERR_BLANK_CHECK_FAILED     = 504,                   ///< Blank check operation failed
155 
156     /* Start of CAC Specific */
157     FSP_ERR_INVALID_CAC_REF_CLOCK = 600,                    ///< Measured clock rate < reference clock rate
158 
159     /* Start of IIRFA Specific */
160     FSP_ERR_INVALID_RESULT = 700,                           ///< The result of one or more calculations was +/- infinity.
161 
162     /* Start of GLCD Specific */
163     FSP_ERR_CLOCK_GENERATION           = 1000,              ///< Clock cannot be specified as system clock
164     FSP_ERR_INVALID_TIMING_SETTING     = 1001,              ///< Invalid timing parameter
165     FSP_ERR_INVALID_LAYER_SETTING      = 1002,              ///< Invalid layer parameter
166     FSP_ERR_INVALID_ALIGNMENT          = 1003,              ///< Invalid memory alignment found
167     FSP_ERR_INVALID_GAMMA_SETTING      = 1004,              ///< Invalid gamma correction parameter
168     FSP_ERR_INVALID_LAYER_FORMAT       = 1005,              ///< Invalid color format in layer
169     FSP_ERR_INVALID_UPDATE_TIMING      = 1006,              ///< Invalid timing for register update
170     FSP_ERR_INVALID_CLUT_ACCESS        = 1007,              ///< Invalid access to CLUT entry
171     FSP_ERR_INVALID_FADE_SETTING       = 1008,              ///< Invalid fade-in/fade-out setting
172     FSP_ERR_INVALID_BRIGHTNESS_SETTING = 1009,              ///< Invalid gamma correction parameter
173 
174     /* Start of JPEG Specific */
175     FSP_ERR_JPEG_ERR                                = 1100, ///< JPEG error
176     FSP_ERR_JPEG_SOI_NOT_DETECTED                   = 1101, ///< SOI not detected until EOI detected.
177     FSP_ERR_JPEG_SOF1_TO_SOFF_DETECTED              = 1102, ///< SOF1 to SOFF detected.
178     FSP_ERR_JPEG_UNSUPPORTED_PIXEL_FORMAT           = 1103, ///< Unprovided pixel format detected.
179     FSP_ERR_JPEG_SOF_ACCURACY_ERROR                 = 1104, ///< SOF accuracy error: other than 8 detected.
180     FSP_ERR_JPEG_DQT_ACCURACY_ERROR                 = 1105, ///< DQT accuracy error: other than 0 detected.
181     FSP_ERR_JPEG_COMPONENT_ERROR1                   = 1106, ///< Component error 1: the number of SOF0 header components detected is other than 1, 3, or 4.
182     FSP_ERR_JPEG_COMPONENT_ERROR2                   = 1107, ///< Component error 2: the number of components differs between SOF0 header and SOS.
183     FSP_ERR_JPEG_SOF0_DQT_DHT_NOT_DETECTED          = 1108, ///< SOF0, DQT, and DHT not detected when SOS detected.
184     FSP_ERR_JPEG_SOS_NOT_DETECTED                   = 1109, ///< SOS not detected: SOS not detected until EOI detected.
185     FSP_ERR_JPEG_EOI_NOT_DETECTED                   = 1110, ///< EOI not detected (default)
186     FSP_ERR_JPEG_RESTART_INTERVAL_DATA_NUMBER_ERROR = 1111, ///< Restart interval data number error detected.
187     FSP_ERR_JPEG_IMAGE_SIZE_ERROR                   = 1112, ///< Image size error detected.
188     FSP_ERR_JPEG_LAST_MCU_DATA_NUMBER_ERROR         = 1113, ///< Last MCU data number error detected.
189     FSP_ERR_JPEG_BLOCK_DATA_NUMBER_ERROR            = 1114, ///< Block data number error detected.
190     FSP_ERR_JPEG_BUFFERSIZE_NOT_ENOUGH              = 1115, ///< User provided buffer size not enough
191     FSP_ERR_JPEG_UNSUPPORTED_IMAGE_SIZE             = 1116, ///< JPEG Image size is not aligned with MCU
192 
193     /* Start of touch panel framework specific */
194     FSP_ERR_CALIBRATE_FAILED = 1200,                        ///< Calibration failed
195 
196     /* Start of IIRFA specific */
197     FSP_ERR_IIRFA_ECC_1BIT = 1300,                          ///< 1-bit ECC error detected
198     FSP_ERR_IIRFA_ECC_2BIT = 1301,                          ///< 2-bit ECC error detected
199 
200     /* Start of IP specific */
201     FSP_ERR_IP_HARDWARE_NOT_PRESENT = 1400,                 ///< Requested IP does not exist on this device
202     FSP_ERR_IP_UNIT_NOT_PRESENT     = 1401,                 ///< Requested unit does not exist on this device
203     FSP_ERR_IP_CHANNEL_NOT_PRESENT  = 1402,                 ///< Requested channel does not exist on this device
204 
205     /* Start of USB specific */
206     FSP_ERR_USB_FAILED      = 1500,
207     FSP_ERR_USB_BUSY        = 1501,
208     FSP_ERR_USB_SIZE_SHORT  = 1502,
209     FSP_ERR_USB_SIZE_OVER   = 1503,
210     FSP_ERR_USB_NOT_OPEN    = 1504,
211     FSP_ERR_USB_NOT_SUSPEND = 1505,
212     FSP_ERR_USB_PARAMETER   = 1506,
213 
214     /* Start of Message framework specific */
215     FSP_ERR_NO_MORE_BUFFER           = 2000,         ///< No more buffer found in the memory block pool
216     FSP_ERR_ILLEGAL_BUFFER_ADDRESS   = 2001,         ///< Buffer address is out of block memory pool
217     FSP_ERR_INVALID_WORKBUFFER_SIZE  = 2002,         ///< Work buffer size is invalid
218     FSP_ERR_INVALID_MSG_BUFFER_SIZE  = 2003,         ///< Message buffer size is invalid
219     FSP_ERR_TOO_MANY_BUFFERS         = 2004,         ///< Number of buffer is too many
220     FSP_ERR_NO_SUBSCRIBER_FOUND      = 2005,         ///< No message subscriber found
221     FSP_ERR_MESSAGE_QUEUE_EMPTY      = 2006,         ///< No message found in the message queue
222     FSP_ERR_MESSAGE_QUEUE_FULL       = 2007,         ///< No room for new message in the message queue
223     FSP_ERR_ILLEGAL_SUBSCRIBER_LISTS = 2008,         ///< Message subscriber lists is illegal
224     FSP_ERR_BUFFER_RELEASED          = 2009,         ///< Buffer has been released
225 
226     /* Start of 2DG Driver specific */
227     FSP_ERR_D2D_ERROR_INIT      = 3000,              ///< D/AVE 2D has an error in the initialization
228     FSP_ERR_D2D_ERROR_DEINIT    = 3001,              ///< D/AVE 2D has an error in the initialization
229     FSP_ERR_D2D_ERROR_RENDERING = 3002,              ///< D/AVE 2D has an error in the rendering
230     FSP_ERR_D2D_ERROR_SIZE      = 3003,              ///< D/AVE 2D has an error in the rendering
231 
232     /* Start of ETHER Driver specific */
233     FSP_ERR_ETHER_ERROR_NO_DATA              = 4000, ///< No Data in Receive buffer.
234     FSP_ERR_ETHER_ERROR_LINK                 = 4001, ///< ETHERC/EDMAC has an error in the Auto-negotiation
235     FSP_ERR_ETHER_ERROR_MAGIC_PACKET_MODE    = 4002, ///< As a Magic Packet is being detected, and transmission/reception is not enabled
236     FSP_ERR_ETHER_ERROR_TRANSMIT_BUFFER_FULL = 4003, ///< Transmit buffer is not empty
237     FSP_ERR_ETHER_ERROR_FILTERING            = 4004, ///< Detect multicast frame when multicast frame filtering enable
238     FSP_ERR_ETHER_ERROR_PHY_COMMUNICATION    = 4005, ///< ETHERC/EDMAC has an error in the phy communication
239     FSP_ERR_ETHER_RECEIVE_BUFFER_ACTIVE      = 4006, ///< Receive buffer is active.
240 
241     /* Start of ETHER_PHY Driver specific */
242     FSP_ERR_ETHER_PHY_ERROR_LINK = 5000,             ///< PHY is not link up.
243     FSP_ERR_ETHER_PHY_NOT_READY  = 5001,             ///< PHY has an error in the Auto-negotiation
244 
245     /* Start of BYTEQ library specific */
246     FSP_ERR_QUEUE_FULL  = 10000,                     ///< Queue is full, cannot queue another data
247     FSP_ERR_QUEUE_EMPTY = 10001,                     ///< Queue is empty, no data to dequeue
248 
249     /* Start of CTSU Driver specific */
250     FSP_ERR_CTSU_SCANNING              = 6000,       ///< Scanning.
251     FSP_ERR_CTSU_NOT_GET_DATA          = 6001,       ///< Not processed previous scan data.
252     FSP_ERR_CTSU_INCOMPLETE_TUNING     = 6002,       ///< Incomplete initial offset tuning.
253     FSP_ERR_CTSU_DIAG_NOT_YET          = 6003,       ///< Diagnosis of data collected no yet.
254     FSP_ERR_CTSU_DIAG_LDO_OVER_VOLTAGE = 6004,       ///< Diagnosis of LDO over voltage failed.
255     FSP_ERR_CTSU_DIAG_CCO_HIGH         = 6005,       ///< Diagnosis of CCO into 19.2uA failed.
256     FSP_ERR_CTSU_DIAG_CCO_LOW          = 6006,       ///< Diagnosis of CCO into 2.4uA failed.
257     FSP_ERR_CTSU_DIAG_SSCG             = 6007,       ///< Diagnosis of SSCG frequency failed.
258     FSP_ERR_CTSU_DIAG_DAC              = 6008,       ///< Diagnosis of non-touch count value failed.
259     FSP_ERR_CTSU_DIAG_OUTPUT_VOLTAGE   = 6009,       ///< Diagnosis of LDO output voltage failed.
260     FSP_ERR_CTSU_DIAG_OVER_VOLTAGE     = 6010,       ///< Diagnosis of over voltage detection circuit failed.
261     FSP_ERR_CTSU_DIAG_OVER_CURRENT     = 6011,       ///< Diagnosis of over current detection circuit failed.
262     FSP_ERR_CTSU_DIAG_LOAD_RESISTANCE  = 6012,       ///< Diagnosis of LDO internal resistance value failed.
263     FSP_ERR_CTSU_DIAG_CURRENT_SOURCE   = 6013,       ///< Diagnosis of Current source value failed.
264     FSP_ERR_CTSU_DIAG_SENSCLK_GAIN     = 6014,       ///< Diagnosis of SENSCLK frequency gain failed.
265     FSP_ERR_CTSU_DIAG_SUCLK_GAIN       = 6015,       ///< Diagnosis of SUCLK frequency gain failed.
266     FSP_ERR_CTSU_DIAG_CLOCK_RECOVERY   = 6016,       ///< Diagnosis of SUCLK clock recovery function failed.
267     FSP_ERR_CTSU_DIAG_CFC_GAIN         = 6017,       ///< Diagnosis of CFC oscillator gain failed.
268 
269     /* Start of SDMMC specific */
270     FSP_ERR_CARD_INIT_FAILED     = 40000,            ///< SD card or eMMC device failed to initialize.
271     FSP_ERR_CARD_NOT_INSERTED    = 40001,            ///< SD card not installed.
272     FSP_ERR_DEVICE_BUSY          = 40002,            ///< Device is holding DAT0 low or another operation is ongoing.
273     FSP_ERR_CARD_NOT_INITIALIZED = 40004,            ///< SD card was removed.
274     FSP_ERR_CARD_WRITE_PROTECTED = 40005,            ///< Media is write protected.
275     FSP_ERR_TRANSFER_BUSY        = 40006,            ///< Transfer in progress.
276     FSP_ERR_RESPONSE             = 40007,            ///< Card did not respond or responded with an error.
277 
278     /* Start of FX_IO specific */
279     FSP_ERR_MEDIA_FORMAT_FAILED = 50000,             ///< Media format failed.
280     FSP_ERR_MEDIA_OPEN_FAILED   = 50001,             ///< Media open failed.
281 
282     /* Start of CAN specific */
283     FSP_ERR_CAN_DATA_UNAVAILABLE   = 60000,          ///< No data available.
284     FSP_ERR_CAN_MODE_SWITCH_FAILED = 60001,          ///< Switching operation modes failed.
285     FSP_ERR_CAN_INIT_FAILED        = 60002,          ///< Hardware initialization failed.
286     FSP_ERR_CAN_TRANSMIT_NOT_READY = 60003,          ///< Transmit in progress.
287     FSP_ERR_CAN_RECEIVE_MAILBOX    = 60004,          ///< Mailbox is setup as a receive mailbox.
288     FSP_ERR_CAN_TRANSMIT_MAILBOX   = 60005,          ///< Mailbox is setup as a transmit mailbox.
289     FSP_ERR_CAN_MESSAGE_LOST       = 60006,          ///< Receive message has been overwritten or overrun.
290     FSP_ERR_CAN_TRANSMIT_FIFO_FULL = 60007,          ///< Transmit FIFO is full.
291 
292     /* Start of SF_WIFI Specific */
293     FSP_ERR_WIFI_CONFIG_FAILED    = 70000,           ///< WiFi module Configuration failed.
294     FSP_ERR_WIFI_INIT_FAILED      = 70001,           ///< WiFi module initialization failed.
295     FSP_ERR_WIFI_TRANSMIT_FAILED  = 70002,           ///< Transmission failed
296     FSP_ERR_WIFI_INVALID_MODE     = 70003,           ///< API called when provisioned in client mode
297     FSP_ERR_WIFI_FAILED           = 70004,           ///< WiFi Failed.
298     FSP_ERR_WIFI_SCAN_COMPLETE    = 70005,           ///< Wifi scan has completed.
299     FSP_ERR_WIFI_AP_NOT_CONNECTED = 70006,           ///< WiFi module is not connected to access point
300 
301     /* Start of SF_CELLULAR Specific */
302     FSP_ERR_CELLULAR_CONFIG_FAILED       = 80000,    ///< Cellular module Configuration failed.
303     FSP_ERR_CELLULAR_INIT_FAILED         = 80001,    ///< Cellular module initialization failed.
304     FSP_ERR_CELLULAR_TRANSMIT_FAILED     = 80002,    ///< Transmission failed
305     FSP_ERR_CELLULAR_FW_UPTODATE         = 80003,    ///< Firmware is uptodate
306     FSP_ERR_CELLULAR_FW_UPGRADE_FAILED   = 80004,    ///< Firmware upgrade failed
307     FSP_ERR_CELLULAR_FAILED              = 80005,    ///< Cellular Failed.
308     FSP_ERR_CELLULAR_INVALID_STATE       = 80006,    ///< API Called in invalid state.
309     FSP_ERR_CELLULAR_REGISTRATION_FAILED = 80007,    ///< Cellular Network registration failed
310 
311     /* Start of SF_BLE specific */
312     FSP_ERR_BLE_FAILED              = 90001,         ///< BLE operation failed
313     FSP_ERR_BLE_INIT_FAILED         = 90002,         ///< BLE device initialization failed
314     FSP_ERR_BLE_CONFIG_FAILED       = 90003,         ///< BLE device configuration failed
315     FSP_ERR_BLE_PRF_ALREADY_ENABLED = 90004,         ///< BLE device Profile already enabled
316     FSP_ERR_BLE_PRF_NOT_ENABLED     = 90005,         ///< BLE device not enabled
317 
318     /* Start of SF_BLE_ABS specific */
319     FSP_ERR_BLE_ABS_INVALID_OPERATION = 91001,       ///< Invalid operation is executed.
320     FSP_ERR_BLE_ABS_NOT_FOUND         = 91002,       ///< Valid data or free space is not found.
321 
322     /* Start of Crypto specific (0x10000) @note Refer to sf_cryoto_err.h for Crypto error code. */
323     FSP_ERR_CRYPTO_CONTINUE              = 0x10000,  ///< Continue executing function
324     FSP_ERR_CRYPTO_SCE_RESOURCE_CONFLICT = 0x10001,  ///< Hardware resource busy
325     FSP_ERR_CRYPTO_SCE_FAIL              = 0x10002,  ///< Internal I/O buffer is not empty
326     FSP_ERR_CRYPTO_SCE_HRK_INVALID_INDEX = 0x10003,  ///< Invalid index
327     FSP_ERR_CRYPTO_SCE_RETRY             = 0x10004,  ///< Retry
328     FSP_ERR_CRYPTO_SCE_VERIFY_FAIL       = 0x10005,  ///< Verify is failed
329     FSP_ERR_CRYPTO_SCE_ALREADY_OPEN      = 0x10006,  ///< HW SCE module is already opened
330     FSP_ERR_CRYPTO_NOT_OPEN              = 0x10007,  ///< Hardware module is not initialized
331     FSP_ERR_CRYPTO_UNKNOWN               = 0x10008,  ///< Some unknown error occurred
332     FSP_ERR_CRYPTO_NULL_POINTER          = 0x10009,  ///< Null pointer input as a parameter
333     FSP_ERR_CRYPTO_NOT_IMPLEMENTED       = 0x1000a,  ///< Algorithm/size not implemented
334     FSP_ERR_CRYPTO_RNG_INVALID_PARAM     = 0x1000b,  ///< An invalid parameter is specified
335     FSP_ERR_CRYPTO_RNG_FATAL_ERROR       = 0x1000c,  ///< A fatal error occurred
336     FSP_ERR_CRYPTO_INVALID_SIZE          = 0x1000d,  ///< Size specified is invalid
337     FSP_ERR_CRYPTO_INVALID_STATE         = 0x1000e,  ///< Function used in an valid state
338     FSP_ERR_CRYPTO_ALREADY_OPEN          = 0x1000f,  ///< control block is already opened
339     FSP_ERR_CRYPTO_INSTALL_KEY_FAILED    = 0x10010,  ///< Specified input key is invalid.
340     FSP_ERR_CRYPTO_AUTHENTICATION_FAILED = 0x10011,  ///< Authentication failed
341     FSP_ERR_CRYPTO_SCE_KEY_SET_FAIL      = 0x10012,  ///< Failure to Init Cipher
342     FSP_ERR_CRYPTO_SCE_AUTHENTICATION    = 0x10013,  ///< Authentication failed
343     FSP_ERR_CRYPTO_SCE_PARAMETER         = 0x10014,  ///< Input date is illegal.
344     FSP_ERR_CRYPTO_SCE_PROHIBIT_FUNCTION = 0x10015,  ///< An invalid function call occurred.
345 
346     /* Start of SF_CRYPTO specific */
347     FSP_ERR_CRYPTO_COMMON_NOT_OPENED      = 0x20000, ///< Crypto Framework Common is not opened
348     FSP_ERR_CRYPTO_HAL_ERROR              = 0x20001, ///< Cryoto HAL module returned an error
349     FSP_ERR_CRYPTO_KEY_BUF_NOT_ENOUGH     = 0x20002, ///< Key buffer size is not enough to generate a key
350     FSP_ERR_CRYPTO_BUF_OVERFLOW           = 0x20003, ///< Attempt to write data larger than what the buffer can hold
351     FSP_ERR_CRYPTO_INVALID_OPERATION_MODE = 0x20004, ///< Invalid operation mode.
352     FSP_ERR_MESSAGE_TOO_LONG              = 0x20005, ///< Message for RSA encryption is too long.
353     FSP_ERR_RSA_DECRYPTION_ERROR          = 0x20006, ///< RSA Decryption error.
354 
355     /** @note SF_CRYPTO APIs may return an error code starting from 0x10000 which is of Crypto module.
356      *        Refer to sf_cryoto_err.h for Crypto error codes.
357      */
358 
359     /* Start of Sensor specific */
360     FSP_ERR_SENSOR_INVALID_DATA             = 0x30000, ///< Data is invalid.
361     FSP_ERR_SENSOR_IN_STABILIZATION         = 0x30001, ///< Sensor is stabilizing.
362     FSP_ERR_SENSOR_MEASUREMENT_NOT_FINISHED = 0x30002, ///< Measurement is not finished.
363 
364     /* Start of COMMS specific */
365     FSP_ERR_COMMS_BUS_NOT_OPEN = 0x40000,              ///< Bus is not open.
366 } fsp_err_t;
367 
368 /** @} */
369 
370 /***********************************************************************************************************************
371  * Function prototypes
372  **********************************************************************************************************************/
373 
374 /* Common macro for FSP header files. There is also a corresponding FSP_HEADER macro at the top of this file. */
375 FSP_FOOTER
376 
377 #endif
378