1 /******************************************************************************* 2 * @file rsi_error.h 3 ******************************************************************************* 4 * # License 5 * <b>Copyright 2024 Silicon Laboratories Inc. www.silabs.com</b> 6 ******************************************************************************* 7 * 8 * SPDX-License-Identifier: Zlib 9 * 10 * The licensor of this software is Silicon Laboratories Inc. 11 * 12 * This software is provided 'as-is', without any express or implied 13 * warranty. In no event will the authors be held liable for any damages 14 * arising from the use of this software. 15 * 16 * Permission is granted to anyone to use this software for any purpose, 17 * including commercial applications, and to alter it and redistribute it 18 * freely, subject to the following restrictions: 19 * 20 * 1. The origin of this software must not be misrepresented; you must not 21 * claim that you wrote the original software. If you use this software 22 * in a product, an acknowledgment in the product documentation would be 23 * appreciated but is not required. 24 * 2. Altered source versions must be plainly marked as such, and must not be 25 * misrepresented as being the original software. 26 * 3. This notice may not be removed or altered from any source distribution. 27 * 28 ******************************************************************************/ 29 30 #include <stdint.h> 31 32 #ifndef __RSI_ERROR_H__ 33 #define __RSI_ERROR_H__ 34 35 #ifdef __cplusplus 36 extern "C" { 37 #endif 38 39 typedef enum errnoCode { 40 RSI_FAIL = -1, 41 RSI_OK = 0, 42 INVALID_PARAMETERS = 1, 43 44 /*USART error codes*/ 45 ERROR_USART_BASE = 0x100, 46 ERROR_USART_CALLBACK_ERR = ERROR_USART_BASE + 1, 47 ERROR_USART_NOT_SUPPORTED = ERROR_USART_CALLBACK_ERR + 1, 48 49 /* GPDMA error codes */ 50 ERROR_GPDMA_BASE = 0x200, 51 ERROR_GPDMA_INVALIDCHNLNUM = ERROR_GPDMA_BASE + 1, 52 ERROR_GPDMA_FLW_CTRL = ERROR_GPDMA_INVALIDCHNLNUM + 1, 53 ERROR_GPDMA_BURST = ERROR_GPDMA_FLW_CTRL + 1, 54 ERROR_GPDMA_SRC_ADDR = ERROR_GPDMA_BURST + 1, 55 ERROR_GPDMA_DST_ADDR = ERROR_GPDMA_SRC_ADDR + 1, 56 NOERR_GPDMA_FLAG_SET = ERROR_GPDMA_DST_ADDR + 1, 57 ERROR_GPDMA_INVALID_EVENT = NOERR_GPDMA_FLAG_SET + 1, 58 ERROR_GPDMA_INVALID_XFERMODE = ERROR_GPDMA_INVALID_EVENT + 1, 59 ERROR_GPDMA_INVALID_TRANS_LEN = ERROR_GPDMA_INVALID_XFERMODE + 1, 60 ERROR_GPDMA_INVALID_ARG = ERROR_GPDMA_INVALID_TRANS_LEN + 1, 61 ERROR_GPDMA_CHNL_BUSY = ERROR_GPDMA_INVALID_ARG + 1, 62 ERROR_GPDMA_NOT_ALIGNMENT = ERROR_GPDMA_CHNL_BUSY + 1, 63 ERROR_GPDMA_QUEUE_EMPTY = ERROR_GPDMA_NOT_ALIGNMENT + 1, 64 ERROR_GPDMA_GENERAL = ERROR_GPDMA_QUEUE_EMPTY + 1, 65 66 /* UDMA error codes */ 67 ERROR_UDMA_BASE = 0x300, 68 ERROR_UDMA_INVALIDCHNLNUM = ERROR_UDMA_BASE + 1, 69 ERROR_UDMA_CTRL_BASE_INVALID = ERROR_UDMA_INVALIDCHNLNUM + 1, 70 ERROR_UDMA_INVALID_XFERMODE = ERROR_UDMA_CTRL_BASE_INVALID + 1, 71 ERROR_UDMA_INVALID_TRANS_LEN = ERROR_UDMA_INVALID_XFERMODE + 1, 72 ERROR_UDMA_INVALID_ARG = ERROR_UDMA_INVALID_TRANS_LEN + 1, 73 ERROR_UDMA_SRC_ADDR = ERROR_UDMA_INVALID_ARG + 1, 74 ERROR_UDMA_DST_ADDR = ERROR_UDMA_SRC_ADDR + 1, 75 ERROR_UDMA_CHNL_BUSY = ERROR_UDMA_DST_ADDR + 1, 76 77 /* I2C error codes */ 78 ERROR_I2C_BASE = 0x400, 79 ERROR_I2C_INVALID_ARG = ERROR_I2C_BASE + 1, 80 ERROR_I2CS_UNKNOWN = ERROR_I2C_INVALID_ARG + 1, 81 ERROR_I2C_SPIKE_LOGIC = ERROR_I2CS_UNKNOWN + 1, 82 ERROR_I2C_IGNORE_GC_OR_START = ERROR_I2C_SPIKE_LOGIC + 1, 83 ERROR_I2C_STATUS_FLAG_NOT_SET = ERROR_I2C_IGNORE_GC_OR_START + 1, 84 ERROR_I2C_BUSY_FLAG = ERROR_I2C_STATUS_FLAG_NOT_SET + 1, 85 ERROR_I2C_MST_BUSY_FLAG = ERROR_I2C_BUSY_FLAG + 1, 86 ERROR_I2C_SLV_BUSY_FLAG = ERROR_I2C_MST_BUSY_FLAG + 1, 87 ERROR_I2C_SLV_DIS_WHILE_BUSY = ERROR_I2C_SLV_BUSY_FLAG + 1, 88 ERROR_I2C_MST_XFER_ABORT = ERROR_I2C_SLV_DIS_WHILE_BUSY + 1, 89 ERROR_I2C_MST_TX_CMD_BLOCK = ERROR_I2C_MST_XFER_ABORT + 1, 90 ERROR_I2C_SLV_RX_DATA_LOST = ERROR_I2C_MST_TX_CMD_BLOCK + 1, 91 ERROR_I2C_NO_TX_DATA = ERROR_I2C_SLV_RX_DATA_LOST + 1, 92 ERROR_I2C_NO_INTR_FLAG = ERROR_I2C_NO_TX_DATA + 1, 93 ERROR_I2C_ERROR_FLAG_NONE = ERROR_I2C_NO_INTR_FLAG + 1, 94 ERROR_I2C_INVALID_CB = ERROR_I2C_ERROR_FLAG_NONE + 1, 95 ERROR_I2C_INVALID_POINTER = ERROR_I2C_INVALID_CB + 1, 96 ERROR_I2C_GENERAL_FAILURE = ERROR_I2C_INVALID_POINTER + 1, 97 ERROR_I2C_TXABORT = ERROR_I2C_GENERAL_FAILURE + 1, 98 ERROR_I2C_SCL_STUCK_ATLOW = ERROR_I2C_TXABORT + 1, 99 ERROR_I2C_MST_ON_HOLD = ERROR_I2C_SCL_STUCK_ATLOW + 1, 100 ERROR_I2C_BUFFER_OVERFLOW = ERROR_I2C_MST_ON_HOLD + 1, 101 ERROR_I2C_BUFFER_UNDERFLOW = ERROR_I2C_BUFFER_OVERFLOW + 1, 102 103 /* I2S error codes */ 104 ERROR_I2S_BASE = 0x500, 105 ERROR_I2S_INVALID_ARG = ERROR_I2S_BASE + 1, 106 ERROR_I2S_INVALID_RES = ERROR_I2S_INVALID_ARG + 1, 107 ERROR_I2S_INVALID_LENGTH = ERROR_I2S_INVALID_RES + 1, 108 ERROR_I2S_BUSY = ERROR_I2S_INVALID_LENGTH + 1, 109 ERROR_I2S_TXOVERRUN = ERROR_I2S_BUSY + 1, 110 ERROR_I2S_RXOVERRUN = ERROR_I2S_TXOVERRUN + 1, 111 ERROR_I2S_TXCOMPLETE = ERROR_I2S_RXOVERRUN + 1, 112 ERROR_I2S_RXCOMPLETE = ERROR_I2S_TXCOMPLETE + 1, 113 114 /* UART error codes */ 115 ERROR_UART_BASE = 0x600, 116 ERROR_UART_INVALID_ARG = ERROR_UART_BASE + 1, 117 ERROR_UART_INVALID_RES = ERROR_UART_INVALID_ARG + 1, 118 119 /* PWM error codes */ 120 ERROR_PWM_BASE = 0x700, 121 ERROR_PWM_INVALID_CHNLNUM = ERROR_PWM_BASE + 1, 122 ERROR_PWM_INVALID_PWMOUT = ERROR_PWM_INVALID_CHNLNUM + 1, 123 ERROR_PWM_NO_INTR = ERROR_PWM_INVALID_PWMOUT + 1, 124 ERROR_PWM_INVALID_ARG = ERROR_PWM_NO_INTR + 1, 125 126 /* Timers error codes */ 127 ERROR_TIMER_BASE = 0x800, 128 ERROR_INVAL_TIMER_NUM = ERROR_TIMER_BASE + 1, 129 ERROR_INVAL_TIMER_MODE = ERROR_INVAL_TIMER_NUM + 1, 130 ERROR_INVAL_TIMERTYPE = ERROR_INVAL_TIMER_MODE + 1, 131 ERROR_INVAL_COUNTER_DIR = ERROR_INVAL_TIMERTYPE + 1, 132 133 /* SCT error codes */ 134 ERROR_CT_BASE = 0x900, 135 ERROR_CT_INVALID_COUNTER_NUM = ERROR_CT_BASE + 1, 136 ERROR_CT_INVALID_ARG = ERROR_CT_INVALID_COUNTER_NUM + 1, 137 138 /* EFUSE ERROR CODES */ 139 ERROR_EFUSE_BASE = 0xA00, 140 ERROR_EFUSE_INVALID_WRITE_ADDRESS = ERROR_EFUSE_BASE + 1, 141 ERROR_EFUSE_INVALID_WRITE_BIT_POSITION = ERROR_EFUSE_INVALID_WRITE_ADDRESS + 1, 142 ERROR_EFUSE_INVALID_PARAMETERS = ERROR_EFUSE_INVALID_WRITE_BIT_POSITION + 1, 143 144 /* CCI ERROR CODES */ 145 ERROR_CCI_BASE_ADDRESS = 0xB00, 146 ERROR_CCI_INIT_FAIL = ERROR_CCI_BASE_ADDRESS + 1, 147 ERROR_CCI_ADDRESS_ERR = ERROR_CCI_INIT_FAIL + 1, 148 149 /* QEI ERROR CODES */ 150 ERROR_QEI_BASE = 0xC00, 151 ERROR_INVALID_WRITE_ADDRESS = ERROR_QEI_BASE + 1, 152 ERROR_INVALID_WRITE_BIT_POSITION = ERROR_INVALID_WRITE_ADDRESS + 1, 153 ERROR_INVALID_PARAMETERS = ERROR_INVALID_WRITE_BIT_POSITION + 1, 154 155 /* SDIO ERROR CODES */ 156 ERROR_SSDIO_BASE_ADDRESS = 0xD00, /*!< SDIO Error base address */ 157 ERROR_SSDIO_INIT_FAIL = ERROR_SSDIO_BASE_ADDRESS + 1, 158 ERROR_SSDIO_ADDRESS_ERR = ERROR_SSDIO_INIT_FAIL + 1, 159 ERROR_SSDIO_INVALID_FN = ERROR_SSDIO_ADDRESS_ERR + 1, 160 ERROR_SSDIO_INVALID_PARAM = ERROR_SSDIO_INVALID_FN + 1, 161 162 /* SPI ERROR CODES*/ 163 ERROR_SSPI_BASE_ADDRESS = 0xE00, 164 ERROR_SSPI_INIT_FAIL = ERROR_SSPI_BASE_ADDRESS + 1, 165 ERROR_SSPI_ADDRESS_ERR = ERROR_SSPI_INIT_FAIL + 1, 166 ERROR_SSPI_CB_ERROR = ERROR_SSPI_ADDRESS_ERR + 1, 167 168 /* ETHERNET ERROR CODES */ 169 ERROR_ETH_BASE_ADDRESS = 0xF00, 170 ERROR_ETH_INIT_FAIL = ERROR_ETH_BASE_ADDRESS + 1, 171 ERROR_ETH_PARAM = ERROR_ETH_INIT_FAIL + 1, 172 ERROR_ETH_NULL = ERROR_ETH_PARAM + 1, 173 ERR_DMA_NOT_ALIGNMENT = ERROR_ETH_NULL + 1, 174 ERROR_ETH_CALLBACK_ERR = ERR_DMA_NOT_ALIGNMENT + 1, 175 176 /*CAN ERROR CODES*/ 177 ERROR_CAN_BASE = 0x1000, 178 ERROR_CAN_INVALID_PARAMETERS = ERROR_CAN_BASE + 1, 179 ERROR_CAN_INVALID_TIMING_PARAMETERS = ERROR_CAN_INVALID_PARAMETERS + 1, 180 ERROR_CAN_OPERATION_IN_PROGRESS = ERROR_CAN_INVALID_TIMING_PARAMETERS + 1, 181 182 /*GSPI ERROR CODES*/ 183 ERROR_GSPI_BASE = 0x1100, 184 ERROR_GSPI_INVALID_ARG = ERROR_GSPI_BASE + 1, 185 ERROR_GSPI_INVALID_LENGTH = ERROR_GSPI_BASE + 2, 186 ERROR_GSPI_BUSY = ERROR_GSPI_BASE + 3, 187 ERROR_GSPI_READ_DONE = ERROR_GSPI_BASE + 4, 188 ERROR_GSPI_IDLE = ERROR_GSPI_BASE + 5, 189 ERROR_GSPI_TX_DONE = ERROR_GSPI_BASE + 6, 190 191 /*SSI ERROR CODES*/ 192 ERROR_SSI_BASE = 0x1200, 193 ERROR_SSI_INVALID_ARG = ERROR_SSI_BASE + 1, 194 ERROR_SSI_BUSY = ERROR_SSI_BASE + 2, 195 ERROR_SSI_IDLE = ERROR_SSI_BASE + 3, 196 TRANSFER_COMPLETE = ERROR_SSI_BASE + 4, 197 READ_COMPLETED = ERROR_SSI_BASE + 5, 198 199 /*SSI ERROR CODES*/ 200 ERROR_CRC_BASE = 0x1300, 201 ERROR_CRC_INVALID_ARG = ERROR_CRC_BASE + 1, 202 203 /*SSI ERROR CODES*/ 204 ERROR_RNG_BASE = 0x1400, 205 ERROR_RNG_INVALID_ARG = ERROR_RNG_BASE + 1, 206 207 /*NPSS ERROR CODES*/ 208 ERROR_BOD_BASE = 0x1500, 209 ERROR_PS_BASE = ERROR_BOD_BASE + 1, 210 ERROR_BOD_INVALID_PARAMETERS = ERROR_PS_BASE + 1, 211 ERROR_PS_INVALID_PARAMETERS = ERROR_BOD_INVALID_PARAMETERS + 1, 212 ERROR_PS_INVALID_STATE = ERROR_PS_INVALID_PARAMETERS + 1, 213 214 /*TIME PERIOD*/ 215 ERROR_TIMEPERIOD_BASE = 0x1600, 216 ERROR_TIME_PERIOD_PARAMETERS = ERROR_TIMEPERIOD_BASE + 1, 217 ERROR_TIME_PERIOD_RC_CALIB_NOT_DONE = ERROR_TIME_PERIOD_PARAMETERS + 1, 218 ERROR_CAL_INVALID_PARAMETERS = ERROR_TIME_PERIOD_RC_CALIB_NOT_DONE + 1, 219 220 /*M4SS CLOCKS */ 221 ERROR_M4SS_CLK_BASE = 0x1700, 222 ERROR_CLOCK_NOT_ENABLED = ERROR_M4SS_CLK_BASE + 1, 223 ERROR_INVALID_INPUT_FREQUENCY = ERROR_CLOCK_NOT_ENABLED + 1, 224 225 /*ULPSS CLOCKS */ 226 ERROR_ULPCLK_BASE = 1800, 227 ERROR_ULPCLK_INVALID_PARAMETERS = ERROR_ULPCLK_BASE + 1, 228 229 ERROR_SIO_BASE = 0x1900, 230 ERROR_SIO_I2C_NO_ACK = ERROR_SIO_BASE + 1, 231 232 /* ULPSS FIM */ 233 ERROR_FIM_BASE = 0x2000, 234 ERROR_FIM_MATRIX_INVALID_ARG = ERROR_FIM_BASE + 1, 235 236 /* AUX ADC */ 237 ERROR_NO_MULTI_CHNL_ENABLE = 0x2100, 238 NO_MODE_SET = ERROR_NO_MULTI_CHNL_ENABLE + 1, 239 ERROR_PING_PONG_ADDR_MATCH = ERROR_NO_MULTI_CHNL_ENABLE + 2, 240 ERROR_ADC_INVALID_ARG = ERROR_NO_MULTI_CHNL_ENABLE + 3, 241 INVALID_SAMPLING_RATE = ERROR_NO_MULTI_CHNL_ENABLE + 4, 242 INVALID_AUX_REF_VOLTAGE = ERROR_NO_MULTI_CHNL_ENABLE + 5, 243 INVALID_SAMPLE_LENGTH = ERROR_NO_MULTI_CHNL_ENABLE + 6, 244 INVALID_ADC_CHANNEL_ENABLE = ERROR_NO_MULTI_CHNL_ENABLE + 6, 245 246 /* AUX DAC */ 247 ERROR_NO_PAD_SEL = 0x2200, 248 ERROR_FREQ_VAL = ERROR_NO_PAD_SEL + 1, 249 250 /*SDMEM*/ 251 ERROR_ACCESS_RIGHTS = 0x2300, 252 ERROR_ADDR_ALIGHMENGT = ERROR_ACCESS_RIGHTS + 1, 253 ERROR_SMIH = ERROR_ADDR_ALIGHMENGT + 1, 254 ERROR_INAVLID_MODE = ERROR_SMIH + 1, 255 ERROR_OPERATION_INPROGRESS = ERROR_INAVLID_MODE + 1, 256 ERROR_NOT_READY = ERROR_OPERATION_INPROGRESS + 1, 257 ERROR_UNINITIALIZED = ERROR_NOT_READY + 1, 258 ERROR_BUFFER_FULL = ERROR_UNINITIALIZED + 1, 259 ERROR_TIMEOUT = ERROR_BUFFER_FULL + 1, 260 CARD_NOT_READY_OP = ERROR_TIMEOUT + 1, 261 CARD_TYPE_MEMCARD = CARD_NOT_READY_OP + 1, 262 } rsi_error_t; 263 264 #ifdef __cplusplus 265 } 266 #endif 267 268 #endif // __RSI_ERROR_H__ 269 270 /*END OF FILE */ 271