aboutsummaryrefslogtreecommitdiffstats
path: root/mpm/lib/mykonos/adi/mykonos_debug/t_mykonos_dbgjesd.h
diff options
context:
space:
mode:
authorMartin Braun <martin.braun@ettus.com>2017-03-08 09:28:55 -0800
committerMartin Braun <martin.braun@ettus.com>2017-12-22 15:03:44 -0800
commit1a4348038d0eb57d53475074dca49e8192aeb2d7 (patch)
tree04c8e87fa9c95d2702aac410f6fb271461acb9bb /mpm/lib/mykonos/adi/mykonos_debug/t_mykonos_dbgjesd.h
parentfc8cd827f6b16b9c8c354a216889e6a9d7f37456 (diff)
downloaduhd-1a4348038d0eb57d53475074dca49e8192aeb2d7.tar.gz
uhd-1a4348038d0eb57d53475074dca49e8192aeb2d7.tar.bz2
uhd-1a4348038d0eb57d53475074dca49e8192aeb2d7.zip
Initial commit for N3xx development.
- Creates mpm/ subdirectory - First pass at hardware daemon/MPM - New code for LMK04828, AD9371 - spidev integration Contributions by: Martin Braun <martin.braun@ettus.com> Derek Kozel <derek.kozel@ettus.com> Mark Meserve <mark.meserve@ni.com> Andrej Rode <andrej.rode@ettus.com>
Diffstat (limited to 'mpm/lib/mykonos/adi/mykonos_debug/t_mykonos_dbgjesd.h')
-rw-r--r--mpm/lib/mykonos/adi/mykonos_debug/t_mykonos_dbgjesd.h160
1 files changed, 160 insertions, 0 deletions
diff --git a/mpm/lib/mykonos/adi/mykonos_debug/t_mykonos_dbgjesd.h b/mpm/lib/mykonos/adi/mykonos_debug/t_mykonos_dbgjesd.h
new file mode 100644
index 000000000..da98c56e1
--- /dev/null
+++ b/mpm/lib/mykonos/adi/mykonos_debug/t_mykonos_dbgjesd.h
@@ -0,0 +1,160 @@
+/*!
+ * \file t_mykonos_dbgjesd.h
+ *
+ * \brief Contains definitions and structure declarations for mykonos_dbgjesd.c
+ *
+ * Mykonos API version: 1.3.1.3534
+ */
+
+#ifndef T_MYKONOS_DBGJESD_H_
+#define T_MYKONOS_DBGJESD_H_
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#include "common.h"
+
+/**
+ * \brief Enum of unique error codes from the Mykonos DBG API functions.
+ * Each error condition in the library should get its own enum value to allow
+ * easy debug of errors.
+ */
+typedef enum
+{
+ MYKONOS_ERR_DBG_OK = 0,
+ MYKONOS_ERR_DBG_FAIL = 1,
+ MYKONOS_ERR_DBG_ILLEGAL_LANE_NUMBER,
+ MYKONOS_ERR_DBG_ILLEGAL_ERROR_TYPE,
+ MYKONOS_ERR_DBG_ILLEGAL_ERROR_SELECTED,
+ MYKONOS_ERR_DBG_ILLEGAL_JESD_CORE,
+ MYKONOS_ERR_DBG_ILLEGAL_DATA_POINTER,
+ MYKONOS_ERR_DBG_NULL_PARM,
+ MYKONOS_ERR_DBG_ERROR_SYNC_MASK,
+ MYKONOS_ERR_DBG_ERROR_IRQ_MASK,
+ MYKONOS_ERR_DBG_ERROR_THRESHOLD,
+
+ MYKONOS_ERR_DBG_ILLEGAL_FRAMER_PATTERN,
+ MYKONOS_ERR_DBG_ILLEGAL_ENABLE,
+ MYKONOS_ERR_DBG_PATTERN_GEN_NOT_ENABLED,
+ MYKONOS_ERR_DBG_ILLEGAL_TOGGLE,
+ MYKONOS_ERR_DBG_PATTERN_GEN_NULL_PATTERN,
+ MYKONOS_ERR_DBG_PATTERN_GEN_NULL_ENABLE,
+ MYKONOS_ERR_DBG_PATTERN_GEN_NULL_TOGGLE,
+
+ MYKONOS_ERR_DBG_ZERO_DATA_INV_LANE,
+ MYKONOS_ERR_DBG_ZERO_DATA_LANE_NULL,
+
+ MYKONOS_ERR_DBG_FRAMER_SEL_BASE_ADD_NULL,
+ MYKONOS_ERR_DBG_FRAMER_ILLEGAL_JESD_CORE,
+
+ MYKONOS_ERR_DBG_NUMBER_OF_ERRORS
+} mykonosDbgErr_t;
+
+/**
+ * \brief Enum to select Jesd core
+ */
+typedef enum
+{
+ MYK_FRAMER = 0, /*!< Framer for the main receive channel */
+ MYK_DEFRAMER = 1, /*!< Deframer for Tx channel */
+ MYK_OBS_FRAMER = 2 /*!< Framer for the observation channel */
+} mykonos_jesdcore_t;
+
+/**
+ * \brief Enum to set the Lane
+ */
+typedef enum
+{
+ MYK_LANE_0 = 0, /*!< Lane 0 */
+ MYK_LANE_1 = 1, /*!< Lane 1 */
+ MYK_LANE_2 = 2, /*!< Lane 2 */
+ MYK_LANE_3 = 3, /*!< Lane 3 */
+} mykonosLaneSel_t;
+
+/**
+ * \brief Enum to set the Lane
+ */
+typedef enum
+{
+ MYK_BAD_DISP_CNTR = 0, /*!< Bad disparity */
+ MYK_NIT_CNTR = 1, /*!< Not in table */
+ MYK_UEKC_CNTR = 2, /*!< Unexpected K character */
+} mykonosCtrSel_t;
+
+/**
+ * \brief Enum for the IRQ mask
+ */
+typedef enum
+{
+ MYK_SYNC_BADDISP = 0x04, /*!< Bad disparity mask enable */
+ MYK_SYNC_NIT = 0x02, /*!< Not in table */
+ MYK_SYNC_UEKC = 0x01, /*!< Unexpected K character */
+} mykonosSyncMasks_t;
+
+/**
+ * \brief Enum for the IRQ mask
+ */
+typedef enum
+{
+ MYK_IRQ_CMM = 0x08, /*!< Configuration mismatch mask enable */
+ MYK_IRQ_BADDISP = 0x04, /*!< Bad disparity mask enable */
+ MYK_IRQ_NIT = 0x02, /*!< Not in table */
+ MYK_IRQ_UEKC = 0x01, /*!< Unexpected K character */
+} mykonosIrqMasks_t;
+
+/**
+ * \brief Enum for the error handling type
+ */
+typedef enum
+{
+ MYK_CLEAR = 1, /*!< Clear error handling type */
+ MYK_RESET = 2, /*!< Reset error handling type */
+ MYK_CLEAR_RESET = 3, /*!< Clear and Reset error handling type */
+} mykonosHandleType_t;
+
+/**
+ * \brief Enum for the error type
+ */
+typedef enum
+{
+ MYK_CMM = 0x7B, /*!< configuration mismatch */
+ MYK_BADDISP = 0x6D, /*!< Bad disparity */
+ MYK_NIT = 0x6E, /*!< Not in table */
+ MYK_UEKC = 0x6F, /*!< Unexpected K character */
+} mykonosErrType_t;
+
+/**
+ * \brief Data structure to hold the error counters per a given lane
+ */
+typedef struct
+{
+ uint8_t badDispCntr; /*!< bad disparity counter can 0-255 */
+ uint8_t nitCntr; /*!< not in table counter can 0-255 */
+ uint8_t uekcCntr; /*!< unexpected K character counter can 0-255 */
+} mykonosLaneErr_t;
+
+/**
+ * \brief Data structure to hold the deframer status
+ */
+typedef struct
+{
+ uint8_t deframerStatus; /*!< deframer status see deframer status function */
+ uint8_t deframerStatus2; /*!< deframer status2 see function MYKONOS_deframerRd2Stat(...)*/
+ uint8_t fifoDepth; /*!< fifo depth */
+ uint8_t phaseOffsetLFMC_sysref; /*!< phase offset might not be needed*/
+ uint8_t fifoFullEMpty; /*!< fifo full/empty */
+ mykonosLaneErr_t lane0; /*!< Lane 0 errors */
+ mykonosLaneErr_t lane1; /*!< Lane 1 errors */
+ mykonosLaneErr_t lane2; /*!< Lane 2 errors */
+ mykonosLaneErr_t lane3; /*!< Lane 3 errors */
+ uint8_t irqMask; /*!< Mask for IRQ generation */
+ uint8_t errCntrMax; /*!< Max error counters */
+ uint8_t enabledLanes; /*!< Lanes that are enabled */
+} mykonosDeframerStatus_t;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* T_MYKONOS_DBGJESD_H_ */