/***************************************************************************//**
* @file
* @brief Energy Aware drivers error code definitions.
*******************************************************************************
* # License
* Copyright 2018 Silicon Laboratories Inc. www.silabs.com
*******************************************************************************
*
* SPDX-License-Identifier: Zlib
*
* The licensor of this software is Silicon Laboratories Inc.
*
* This software is provided 'as-is', without any express or implied
* warranty. In no event will the authors be held liable for any damages
* arising from the use of this software.
*
* Permission is granted to anyone to use this software for any purpose,
* including commercial applications, and to alter it and redistribute it
* freely, subject to the following restrictions:
*
* 1. The origin of this software must not be misrepresented; you must not
* claim that you wrote the original software. If you use this software
* in a product, an acknowledgment in the product documentation would be
* appreciated but is not required.
* 2. Altered source versions must be plainly marked as such, and must not be
* misrepresented as being the original software.
* 3. This notice may not be removed or altered from any source distribution.
*
******************************************************************************/
#ifndef __SILICON_LABS_ECODE_H__
#define __SILICON_LABS_ECODE_H__
#include
/***************************************************************************//**
* @addtogroup ecode ECODE - Error Codes
* @details ECODE is set of error and status codes related to DMA, RTC, SPI,
* NVM, USTIMER, UARTDRV, EZRADIO, TEMP, and NVM3 drivers. These error and
* status codes are used by the above listed drivers to update the layer
* (using the driver) about an error or status.
*
* @{
******************************************************************************/
/***************************************************************************//**
* @brief Typedef for API function error code return values.
*
* @details
* Bit 24-31: Component, for example emdrv @n
* Bit 16-23: Module, for example @ref uartdrv or @ref spidrv @n
* Bit 0-15: Error code
******************************************************************************/
typedef uint32_t Ecode_t;
#define ECODE_EMDRV_BASE (0xF0000000U) ///< Base value for all EMDRV errorcodes.
#define ECODE_OK (0U) ///< Generic success return value.
#define ECODE_EMDRV_SPIDRV_BASE (ECODE_EMDRV_BASE | 0x00002000U) ///< Base value for SPIDRV error codes.
#define ECODE_EMDRV_NVM_BASE (ECODE_EMDRV_BASE | 0x00003000U) ///< Base value for NVM error codes.
#define ECODE_EMDRV_USTIMER_BASE (ECODE_EMDRV_BASE | 0x00004000U) ///< Base value for USTIMER error codes.
#define ECODE_EMDRV_UARTDRV_BASE (ECODE_EMDRV_BASE | 0x00007000U) ///< Base value for UARTDRV error codes.
#define ECODE_EMDRV_DMADRV_BASE (ECODE_EMDRV_BASE | 0x00008000U) ///< Base value for DMADRV error codes.
#define ECODE_EMDRV_EZRADIODRV_BASE (ECODE_EMDRV_BASE | 0x00009000U) ///< Base value for EZRADIODRV error codes.
#define ECODE_EMDRV_TEMPDRV_BASE (ECODE_EMDRV_BASE | 0x0000D000U) ///< Base value for TEMPDRV error codes.
#define ECODE_EMDRV_NVM3_BASE (ECODE_EMDRV_BASE | 0x0000E000U) ///< Base value for NVM3 error codes.
/** @} (end addtogroup ecode) */
#endif // __SILICON_LABS_ECODE_H__