1 /*
2  * Copyright (c) 2024 Microchip Technology Inc.
3  *
4  * SPDX-License-Identifier: Apache-2.0
5  */
6 #ifndef _MEC5_BCL_V1_H
7 #define _MEC5_BCL_V1_H
8 
9 /** @addtogroup Device_Peripheral_peripherals
10   * @{
11   */
12 
13 /**
14   * @brief BC-Link controller (MEC_BCL0)
15   */
16 
17 typedef struct mec_bcl_regs {                   /*!< (@ 0x4000CD00) MEC_BCL0 Structure                                         */
18   __IOM uint32_t  STATUS;                       /*!< (@ 0x00000000) BC-Link status                                             */
19   __IOM uint32_t  DESTA;                        /*!< (@ 0x00000004) BC-Link destination address                                */
20   __IOM uint32_t  DATA;                         /*!< (@ 0x00000008) BC-Link data                                               */
21   __IOM uint32_t  CLKSEL;                       /*!< (@ 0x0000000C) BC-Link clock select                                       */
22 } MEC_BCL_Type;                                 /*!< Size = 16 (0x10)                                                          */
23 
24 /** @} */ /* End of group Device_Peripheral_peripherals */
25 
26 /** @addtogroup PosMask_peripherals
27   * @{
28   */
29 /* ========================================================  STATUS  ========================================================= */
30 #define MEC_BCL_STATUS_BUSY_Pos           (0UL)                     /*!< BUSY (Bit 0)                                          */
31 #define MEC_BCL_STATUS_BUSY_Msk           (0x1UL)                   /*!< BUSY (Bitfield-Mask: 0x01)                            */
32 #define MEC_BCL_STATUS_BCLR_IEN_Pos       (4UL)                     /*!< BCLR_IEN (Bit 4)                                      */
33 #define MEC_BCL_STATUS_BCLR_IEN_Msk       (0x10UL)                  /*!< BCLR_IEN (Bitfield-Mask: 0x01)                        */
34 #define MEC_BCL_STATUS_BERR_IEN_Pos       (5UL)                     /*!< BERR_IEN (Bit 5)                                      */
35 #define MEC_BCL_STATUS_BERR_IEN_Msk       (0x20UL)                  /*!< BERR_IEN (Bitfield-Mask: 0x01)                        */
36 #define MEC_BCL_STATUS_BCERR_Pos          (6UL)                     /*!< BCERR (Bit 6)                                         */
37 #define MEC_BCL_STATUS_BCERR_Msk          (0x40UL)                  /*!< BCERR (Bitfield-Mask: 0x01)                           */
38 #define MEC_BCL_STATUS_SRST_Pos           (7UL)                     /*!< SRST (Bit 7)                                          */
39 #define MEC_BCL_STATUS_SRST_Msk           (0x80UL)                  /*!< SRST (Bitfield-Mask: 0x01)                            */
40 /** @} */ /* End of group PosMask_peripherals */
41 
42 /** @addtogroup EnumValue_peripherals
43   * @{
44   */
45 /* ========================================================  STATUS  ========================================================= */
46 /* ==============================================  MEC_BCL STATUS BUSY [0..0]  ============================================== */
47 typedef enum {                                  /*!< MEC_BCL_STATUS_BUSY                                                      */
48   MEC_BCL_STATUS_BUSY_ACTIVE          = 1,     /*!< ACTIVE : Active                                                           */
49 } MEC_BCL_STATUS_BUSY_Enum;
50 
51 /* ============================================  MEC_BCL STATUS BCLR_IEN [4..4]  ============================================ */
52 typedef enum {                                  /*!< MEC_BCL_STATUS_BCLR_IEN                                                  */
53   MEC_BCL_STATUS_BCLR_IEN_EN          = 1,     /*!< EN : Enable                                                               */
54 } MEC_BCL_STATUS_BCLR_IEN_Enum;
55 
56 /* ============================================  MEC_BCL STATUS BERR_IEN [5..5]  ============================================ */
57 typedef enum {                                  /*!< MEC_BCL_STATUS_BERR_IEN                                                  */
58   MEC_BCL_STATUS_BERR_IEN_EN          = 1,     /*!< EN : Enable                                                               */
59 } MEC_BCL_STATUS_BERR_IEN_Enum;
60 
61 /* =============================================  MEC_BCL STATUS BCERR [6..6]  ============================================== */
62 typedef enum {                                  /*!< MEC_BCL_STATUS_BCERR                                                     */
63   MEC_BCL_STATUS_BCERR_ACTIVE         = 1,     /*!< ACTIVE : Active                                                           */
64 } MEC_BCL_STATUS_BCERR_Enum;
65 
66 /* ==============================================  MEC_BCL STATUS SRST [7..7]  ============================================== */
67 typedef enum {                                  /*!< MEC_BCL_STATUS_SRST                                                      */
68   MEC_BCL_STATUS_SRST_EN              = 1,     /*!< EN : Enable                                                               */
69 } MEC_BCL_STATUS_SRST_Enum;
70 
71 /** @} */ /* End of group EnumValue_peripherals */
72 
73 #endif /* _MEC5_BCL_V1_H */
74