1 /*
2  * Copyright (c) 2024 Microchip Technology Inc.
3  *
4  * SPDX-License-Identifier: Apache-2.0
5  */
6 #ifndef _MEC5_RPMFAN_V1_H
7 #define _MEC5_RPMFAN_V1_H
8 
9 /** @addtogroup Device_Peripheral_peripherals
10   * @{
11   */
12 
13 /**
14   * @brief PWM Fan controller with algorithms (MEC_RPMFAN)
15   */
16 
17 typedef struct mec_rpmfan_regs {                /*!< (@ 0x4000A000) MEC_RPMFAN Structure                                      */
18   __IOM uint16_t  FAN_SET;                      /*!< (@ 0x00000000) RPMFAN fan setting                                         */
19   __IOM uint16_t  FAN_CFG;                      /*!< (@ 0x00000002) RPMFAN fan configuration                                   */
20   __IOM uint8_t   PWM_DIV;                      /*!< (@ 0x00000004) RPMFAN PWM divider                                         */
21   __IOM uint8_t   GAIN;                         /*!< (@ 0x00000005) RPMFAN gain                                                */
22   __IOM uint8_t   SPINUP;                       /*!< (@ 0x00000006) RPMFAN spin up                                             */
23   __IOM uint8_t   STEP;                         /*!< (@ 0x00000007) RPMFAN step                                                */
24   __IOM uint8_t   MIN_DRV;                      /*!< (@ 0x00000008) RPMFAN minimum drive                                       */
25   __IOM uint8_t   VAL_TACH_CNT;                 /*!< (@ 0x00000009) RPMFAN valid TACH count                                    */
26   __IOM uint16_t  DRV_FAIL_BAND;                /*!< (@ 0x0000000A) RPMFAN drive fail band                                     */
27   __IOM uint16_t  TACH_TARGET;                  /*!< (@ 0x0000000C) RPMFAN TACH target                                         */
28   __IOM uint16_t  TACH_RD;                      /*!< (@ 0x0000000E) RPMFAN TACH reading                                        */
29   __IOM uint8_t   DRV_BASE_FREQ;                /*!< (@ 0x00000010) RPMFAN driver base frequency                               */
30   __IOM uint8_t   FAN_STATUS;                   /*!< (@ 0x00000011) RPMFAN fan status                                          */
31 } MEC_RPMFAN_Type;                              /*!< Size = 18 (0x12)                                                          */
32 
33 /** @} */ /* End of group Device_Peripheral_peripherals */
34 
35 /** @addtogroup PosMask_peripherals
36   * @{
37   */
38 /* ========================================================  FAN_SET  ======================================================== */
39 #define MEC_RPMFAN_FAN_SET_FSET_Pos       (6UL)                     /*!< FSET (Bit 6)                                          */
40 #define MEC_RPMFAN_FAN_SET_FSET_Msk       (0xffc0UL)                /*!< FSET (Bitfield-Mask: 0x3ff)                           */
41 /* ========================================================  FAN_CFG  ======================================================== */
42 #define MEC_RPMFAN_FAN_CFG_UPDINTRV_Pos   (0UL)                     /*!< UPDINTRV (Bit 0)                                      */
43 #define MEC_RPMFAN_FAN_CFG_UPDINTRV_Msk   (0x7UL)                   /*!< UPDINTRV (Bitfield-Mask: 0x07)                        */
44 #define MEC_RPMFAN_FAN_CFG_EDGES_Pos      (3UL)                     /*!< EDGES (Bit 3)                                         */
45 #define MEC_RPMFAN_FAN_CFG_EDGES_Msk      (0x18UL)                  /*!< EDGES (Bitfield-Mask: 0x03)                           */
46 #define MEC_RPMFAN_FAN_CFG_RANGE_Pos      (5UL)                     /*!< RANGE (Bit 5)                                         */
47 #define MEC_RPMFAN_FAN_CFG_RANGE_Msk      (0x60UL)                  /*!< RANGE (Bitfield-Mask: 0x03)                           */
48 #define MEC_RPMFAN_FAN_CFG_EN_ALGO_Pos    (7UL)                     /*!< EN_ALGO (Bit 7)                                       */
49 #define MEC_RPMFAN_FAN_CFG_EN_ALGO_Msk    (0x80UL)                  /*!< EN_ALGO (Bitfield-Mask: 0x01)                         */
50 #define MEC_RPMFAN_FAN_CFG_INVPOL_Pos     (9UL)                     /*!< INVPOL (Bit 9)                                        */
51 #define MEC_RPMFAN_FAN_CFG_INVPOL_Msk     (0x200UL)                 /*!< INVPOL (Bitfield-Mask: 0x01)                          */
52 #define MEC_RPMFAN_FAN_CFG_ERR_RNG_Pos    (10UL)                    /*!< ERR_RNG (Bit 10)                                      */
53 #define MEC_RPMFAN_FAN_CFG_ERR_RNG_Msk    (0xc00UL)                 /*!< ERR_RNG (Bitfield-Mask: 0x03)                         */
54 #define MEC_RPMFAN_FAN_CFG_DERIV_Pos      (12UL)                    /*!< DERIV (Bit 12)                                        */
55 #define MEC_RPMFAN_FAN_CFG_DERIV_Msk      (0x3000UL)                /*!< DERIV (Bitfield-Mask: 0x03)                           */
56 #define MEC_RPMFAN_FAN_CFG_GLPF_Pos       (14UL)                    /*!< GLPF (Bit 14)                                         */
57 #define MEC_RPMFAN_FAN_CFG_GLPF_Msk       (0x4000UL)                /*!< GLPF (Bitfield-Mask: 0x01)                            */
58 #define MEC_RPMFAN_FAN_CFG_RRC_Pos        (15UL)                    /*!< RRC (Bit 15)                                          */
59 #define MEC_RPMFAN_FAN_CFG_RRC_Msk        (0x8000UL)                /*!< RRC (Bitfield-Mask: 0x01)                             */
60 /* ========================================================  PWM_DIV  ======================================================== */
61 /* =========================================================  GAIN  ========================================================== */
62 #define MEC_RPMFAN_GAIN_GAINP_Pos         (0UL)                     /*!< GAINP (Bit 0)                                         */
63 #define MEC_RPMFAN_GAIN_GAINP_Msk         (0x3UL)                   /*!< GAINP (Bitfield-Mask: 0x03)                           */
64 #define MEC_RPMFAN_GAIN_GAINI_Pos         (2UL)                     /*!< GAINI (Bit 2)                                         */
65 #define MEC_RPMFAN_GAIN_GAINI_Msk         (0xcUL)                   /*!< GAINI (Bitfield-Mask: 0x03)                           */
66 #define MEC_RPMFAN_GAIN_GAIND_Pos         (4UL)                     /*!< GAIND (Bit 4)                                         */
67 #define MEC_RPMFAN_GAIN_GAIND_Msk         (0x30UL)                  /*!< GAIND (Bitfield-Mask: 0x03)                           */
68 /* ========================================================  SPINUP  ========================================================= */
69 #define MEC_RPMFAN_SPINUP_SPINUPTM_Pos    (0UL)                     /*!< SPINUPTM (Bit 0)                                      */
70 #define MEC_RPMFAN_SPINUP_SPINUPTM_Msk    (0x3UL)                   /*!< SPINUPTM (Bitfield-Mask: 0x03)                        */
71 #define MEC_RPMFAN_SPINUP_SPINLVL_Pos     (2UL)                     /*!< SPINLVL (Bit 2)                                       */
72 #define MEC_RPMFAN_SPINUP_SPINLVL_Msk     (0x1cUL)                  /*!< SPINLVL (Bitfield-Mask: 0x07)                         */
73 #define MEC_RPMFAN_SPINUP_NOKICK_Pos      (5UL)                     /*!< NOKICK (Bit 5)                                        */
74 #define MEC_RPMFAN_SPINUP_NOKICK_Msk      (0x20UL)                  /*!< NOKICK (Bitfield-Mask: 0x01)                          */
75 #define MEC_RPMFAN_SPINUP_DFCNT_Pos       (6UL)                     /*!< DFCNT (Bit 6)                                         */
76 #define MEC_RPMFAN_SPINUP_DFCNT_Msk       (0xc0UL)                  /*!< DFCNT (Bitfield-Mask: 0x03)                           */
77 /* =========================================================  STEP  ========================================================== */
78 /* ========================================================  MIN_DRV  ======================================================== */
79 /* =====================================================  VAL_TACH_CNT  ====================================================== */
80 /* =====================================================  DRV_FAIL_BAND  ===================================================== */
81 #define MEC_RPMFAN_DRV_FAIL_BAND_TCNTS_Pos (3UL)                    /*!< TCNTS (Bit 3)                                         */
82 #define MEC_RPMFAN_DRV_FAIL_BAND_TCNTS_Msk (0xfff8UL)               /*!< TCNTS (Bitfield-Mask: 0x1fff)                         */
83 /* ======================================================  TACH_TARGET  ====================================================== */
84 #define MEC_RPMFAN_TACH_TARGET_TARGTV_Pos (3UL)                     /*!< TARGTV (Bit 3)                                        */
85 #define MEC_RPMFAN_TACH_TARGET_TARGTV_Msk (0xfff8UL)                /*!< TARGTV (Bitfield-Mask: 0x1fff)                        */
86 /* ========================================================  TACH_RD  ======================================================== */
87 #define MEC_RPMFAN_TACH_RD_TRD_Pos        (3UL)                     /*!< TRD (Bit 3)                                           */
88 #define MEC_RPMFAN_TACH_RD_TRD_Msk        (0xfff8UL)                /*!< TRD (Bitfield-Mask: 0x1fff)                           */
89 /* =====================================================  DRV_BASE_FREQ  ===================================================== */
90 #define MEC_RPMFAN_DRV_BASE_FREQ_FREQ_Pos (0UL)                     /*!< FREQ (Bit 0)                                          */
91 #define MEC_RPMFAN_DRV_BASE_FREQ_FREQ_Msk (0x3UL)                   /*!< FREQ (Bitfield-Mask: 0x03)                            */
92 /* ======================================================  FAN_STATUS  ======================================================= */
93 #define MEC_RPMFAN_FAN_STATUS_STALL_Pos   (0UL)                     /*!< STALL (Bit 0)                                         */
94 #define MEC_RPMFAN_FAN_STATUS_STALL_Msk   (0x1UL)                   /*!< STALL (Bitfield-Mask: 0x01)                           */
95 #define MEC_RPMFAN_FAN_STATUS_SPINUP_Pos  (1UL)                     /*!< SPINUP (Bit 1)                                        */
96 #define MEC_RPMFAN_FAN_STATUS_SPINUP_Msk  (0x2UL)                   /*!< SPINUP (Bitfield-Mask: 0x01)                          */
97 #define MEC_RPMFAN_FAN_STATUS_DRVFAIL_Pos (5UL)                     /*!< DRVFAIL (Bit 5)                                       */
98 #define MEC_RPMFAN_FAN_STATUS_DRVFAIL_Msk (0x20UL)                  /*!< DRVFAIL (Bitfield-Mask: 0x01)                         */
99 
100 /** @} */ /* End of group PosMask_peripherals */
101 
102 /** @addtogroup EnumValue_peripherals
103   * @{
104   */
105 /* ========================================================  FAN_CFG  ======================================================== */
106 /* ==========================================  MEC_RPMFAN FAN_CFG UPDINTRV [0..2]  ========================================== */
107 typedef enum {                                  /*!< MEC_RPMFAN_FAN_CFG_UPDINTRV                                              */
108   MEC_RPMFAN_FAN_CFG_UPDINTRV_100MS   = 0,     /*!< 100MS : Update fan driver every 100 ms                                    */
109   MEC_RPMFAN_FAN_CFG_UPDINTRV_200MS   = 1,     /*!< 200MS : Update fan driver every 200 ms                                    */
110   MEC_RPMFAN_FAN_CFG_UPDINTRV_300MS   = 2,     /*!< 300MS : Update fan driver every 300 ms                                    */
111   MEC_RPMFAN_FAN_CFG_UPDINTRV_400MS   = 3,     /*!< 400MS : Update fan driver every 400 ms                                    */
112   MEC_RPMFAN_FAN_CFG_UPDINTRV_500MS   = 4,     /*!< 500MS : Update fan driver every 500 ms                                    */
113   MEC_RPMFAN_FAN_CFG_UPDINTRV_800MS   = 5,     /*!< 800MS : Update fan driver every 800 ms                                    */
114   MEC_RPMFAN_FAN_CFG_UPDINTRV_1200MS  = 6,     /*!< 1200MS : Update fan driver every 1200 ms                                  */
115   MEC_RPMFAN_FAN_CFG_UPDINTRV_1600MS  = 7,     /*!< 1600MS : Update fan driver every 1600 ms                                  */
116 } MEC_RPMFAN_FAN_CFG_UPDINTRV_Enum;
117 
118 /* ===========================================  MEC_RPMFAN FAN_CFG EDGES [3..4]  ============================================ */
119 typedef enum {                                  /*!< MEC_RPMFAN_FAN_CFG_EDGES                                                 */
120   MEC_RPMFAN_FAN_CFG_EDGES_3          = 0,     /*!< 3 : Minimum of 3 edges per rotation                                       */
121   MEC_RPMFAN_FAN_CFG_EDGES_5          = 1,     /*!< 5 : Minimum of 5 edges per rotation                                       */
122   MEC_RPMFAN_FAN_CFG_EDGES_7          = 2,     /*!< 7 : Minimum of 7 edges per rotation                                       */
123   MEC_RPMFAN_FAN_CFG_EDGES_9          = 3,     /*!< 9 : Minimum of 9 edges per rotation                                       */
124 } MEC_RPMFAN_FAN_CFG_EDGES_Enum;
125 
126 /* ===========================================  MEC_RPMFAN FAN_CFG RANGE [5..6]  ============================================ */
127 typedef enum {                                  /*!< MEC_RPMFAN_FAN_CFG_RANGE                                                 */
128   MEC_RPMFAN_FAN_CFG_RANGE_MULT1      = 0,     /*!< MULT1 : Tachometer count multiplier is 1                                  */
129   MEC_RPMFAN_FAN_CFG_RANGE_MULT2      = 1,     /*!< MULT2 : Tachometer count multiplier is 2                                  */
130   MEC_RPMFAN_FAN_CFG_RANGE_MULT4      = 2,     /*!< MULT4 : Tachometer count multiplier is 4                                  */
131   MEC_RPMFAN_FAN_CFG_RANGE_MULT8      = 3,     /*!< MULT8 : Tachometer count multiplier is 8                                  */
132 } MEC_RPMFAN_FAN_CFG_RANGE_Enum;
133 
134 /* ==========================================  MEC_RPMFAN FAN_CFG EN_ALGO [7..7]  =========================================== */
135 typedef enum {                                  /*!< MEC_RPMFAN_FAN_CFG_EN_ALGO                                               */
136   MEC_RPMFAN_FAN_CFG_EN_ALGO_ON       = 1,     /*!< ON : Enable                                                               */
137 } MEC_RPMFAN_FAN_CFG_EN_ALGO_Enum;
138 
139 /* ===========================================  MEC_RPMFAN FAN_CFG INVPOL [9..9]  =========================================== */
140 typedef enum {                                  /*!< MEC_RPMFAN_FAN_CFG_INVPOL                                                */
141   MEC_RPMFAN_FAN_CFG_INVPOL_EN        = 1,     /*!< EN : Enable                                                               */
142 } MEC_RPMFAN_FAN_CFG_INVPOL_Enum;
143 
144 /* =========================================  MEC_RPMFAN FAN_CFG ERR_RNG [10..11]  ========================================== */
145 typedef enum {                                  /*!< MEC_RPMFAN_FAN_CFG_ERR_RNG                                               */
146   MEC_RPMFAN_FAN_CFG_ERR_RNG_RPM0     = 0,     /*!< RPM0 : No adjust if speed within 0 RPM of target RPM                      */
147   MEC_RPMFAN_FAN_CFG_ERR_RNG_RPM50    = 1,     /*!< RPM50 : No adjust if speed within 50 RPM of target RPM                    */
148   MEC_RPMFAN_FAN_CFG_ERR_RNG_RPM100   = 2,     /*!< RPM100 : No adjust if speed within 100 RPM of target RPM                  */
149   MEC_RPMFAN_FAN_CFG_ERR_RNG_RPM200   = 3,     /*!< RPM200 : No adjust if speed within 200 RPM of target RPM                  */
150 } MEC_RPMFAN_FAN_CFG_ERR_RNG_Enum;
151 
152 /* ==========================================  MEC_RPMFAN FAN_CFG DERIV [12..13]  =========================================== */
153 typedef enum {                                  /*!< MEC_RPMFAN_FAN_CFG_DERIV                                                 */
154   MEC_RPMFAN_FAN_CFG_DERIV_NONE       = 0,     /*!< NONE : No derivative value used                                           */
155   MEC_RPMFAN_FAN_CFG_DERIV_BASIC      = 1,     /*!< BASIC : Basic derivative computation used                                 */
156   MEC_RPMFAN_FAN_CFG_DERIV_STEP       = 2,     /*!< STEP : Step derivative computation used                                   */
157   MEC_RPMFAN_FAN_CFG_DERIV_BOTH       = 3,     /*!< BOTH : Both basic and step derivative terms used                          */
158 } MEC_RPMFAN_FAN_CFG_DERIV_Enum;
159 
160 /* ===========================================  MEC_RPMFAN FAN_CFG GLPF [14..14]  =========================================== */
161 typedef enum {                                  /*!< MEC_RPMFAN_FAN_CFG_GLPF                                                  */
162   MEC_RPMFAN_FAN_CFG_GLPF_EN          = 0,     /*!< EN : Enable                                                               */
163   MEC_RPMFAN_FAN_CFG_GLPF_DIS         = 1,     /*!< DIS : Disable                                                             */
164 } MEC_RPMFAN_FAN_CFG_GLPF_Enum;
165 
166 /* ===========================================  MEC_RPMFAN FAN_CFG RRC [15..15]  ============================================ */
167 typedef enum {                                  /*!< MEC_RPMFAN_FAN_CFG_RRC                                                   */
168   MEC_RPMFAN_FAN_CFG_RRC_EN           = 1,     /*!< EN : Enable ramp control for manual mode                                  */
169 } MEC_RPMFAN_FAN_CFG_RRC_Enum;
170 
171 /* =========================================================  GAIN  ========================================================== */
172 /* =============================================  MEC_RPMFAN GAIN GAINP [0..1]  ============================================= */
173 typedef enum {                                  /*!< MEC_RPMFAN_GAIN_GAINP                                                    */
174   MEC_RPMFAN_GAIN_GAINP_1X            = 0,     /*!< 1X : Proportional gain of 1X                                              */
175   MEC_RPMFAN_GAIN_GAINP_2X            = 1,     /*!< 2X : Proportional gain of 2X                                              */
176   MEC_RPMFAN_GAIN_GAINP_4X            = 2,     /*!< 4X : Proportional gain of 4X                                              */
177   MEC_RPMFAN_GAIN_GAINP_8X            = 3,     /*!< 8X : Proportional gain of 8X                                              */
178 } MEC_RPMFAN_GAIN_GAINP_Enum;
179 
180 /* =============================================  MEC_RPMFAN GAIN GAINI [2..3]  ============================================= */
181 typedef enum {                                  /*!< MEC_RPMFAN_GAIN_GAINI                                                    */
182   MEC_RPMFAN_GAIN_GAINI_1X            = 0,     /*!< 1X : Integral gain of 1X                                                  */
183   MEC_RPMFAN_GAIN_GAINI_2X            = 1,     /*!< 2X : Integral gain of 2X                                                  */
184   MEC_RPMFAN_GAIN_GAINI_4X            = 2,     /*!< 4X : Integral gain of 4X                                                  */
185   MEC_RPMFAN_GAIN_GAINI_8X            = 3,     /*!< 8X : Integral gain of 8X                                                  */
186 } MEC_RPMFAN_GAIN_GAINI_Enum;
187 
188 /* =============================================  MEC_RPMFAN GAIN GAIND [4..5]  ============================================= */
189 typedef enum {                                  /*!< MEC_RPMFAN_GAIN_GAIND                                                    */
190   MEC_RPMFAN_GAIN_GAIND_1X            = 0,     /*!< 1X : Derviative gain of 1X                                                */
191   MEC_RPMFAN_GAIN_GAIND_2X            = 1,     /*!< 2X : Derviative gain of 2X                                                */
192   MEC_RPMFAN_GAIN_GAIND_4X            = 2,     /*!< 4X : Derviative gain of 4X                                                */
193   MEC_RPMFAN_GAIN_GAIND_8X            = 3,     /*!< 8X : Derviative gain of 8X                                                */
194 } MEC_RPMFAN_GAIN_GAIND_Enum;
195 
196 /* ========================================================  SPINUP  ========================================================= */
197 /* ==========================================  MEC_RPMFAN SPINUP SPINUPTM [0..1]  =========================================== */
198 typedef enum {                                  /*!< MEC_RPMFAN_SPINUP_SPINUPTM                                               */
199   MEC_RPMFAN_SPINUP_SPINUPTM_250MS    = 0,     /*!< 250MS : Maximum spin up time is 250 ms                                    */
200   MEC_RPMFAN_SPINUP_SPINUPTM_500MS    = 1,     /*!< 500MS : Maximum spin up time is 500 ms                                    */
201   MEC_RPMFAN_SPINUP_SPINUPTM_1S       = 2,     /*!< 1S : Maximum spin up time is 1 second                                     */
202   MEC_RPMFAN_SPINUP_SPINUPTM_2S       = 3,     /*!< 2S : Maximum spin up time is 2 seconds                                    */
203 } MEC_RPMFAN_SPINUP_SPINUPTM_Enum;
204 
205 /* ===========================================  MEC_RPMFAN SPINUP SPINLVL [2..4]  =========================================== */
206 typedef enum {                                  /*!< MEC_RPMFAN_SPINUP_SPINLVL                                                */
207   MEC_RPMFAN_SPINUP_SPINLVL_30P       = 0,     /*!< 30P : Final spin drive level of 30 percent                                */
208   MEC_RPMFAN_SPINUP_SPINLVL_35P       = 1,     /*!< 35P : Final spin drive level of 35 percent                                */
209   MEC_RPMFAN_SPINUP_SPINLVL_40P       = 2,     /*!< 40P : Final spin drive level of 40 percent                                */
210   MEC_RPMFAN_SPINUP_SPINLVL_45P       = 3,     /*!< 45P : Final spin drive level of 45 percent                                */
211   MEC_RPMFAN_SPINUP_SPINLVL_50P       = 4,     /*!< 50P : Final spin drive level of 50 percent                                */
212   MEC_RPMFAN_SPINUP_SPINLVL_55P       = 5,     /*!< 55P : Final spin drive level of 55 percent                                */
213   MEC_RPMFAN_SPINUP_SPINLVL_60P       = 6,     /*!< 60P : Final spin drive level of 60 percent                                */
214   MEC_RPMFAN_SPINUP_SPINLVL_65P       = 7,     /*!< 65P : Final spin drive level of 65 percent                                */
215 } MEC_RPMFAN_SPINUP_SPINLVL_Enum;
216 
217 /* ===========================================  MEC_RPMFAN SPINUP NOKICK [5..5]  ============================================ */
218 typedef enum {                                  /*!< MEC_RPMFAN_SPINUP_NOKICK                                                 */
219   MEC_RPMFAN_SPINUP_NOKICK_ON         = 1,     /*!< ON : Do not drive fan to 100% during spin up                              */
220 } MEC_RPMFAN_SPINUP_NOKICK_Enum;
221 
222 /* ============================================  MEC_RPMFAN SPINUP DFCNT [6..7]  ============================================ */
223 typedef enum {                                  /*!< MEC_RPMFAN_SPINUP_DFCNT                                                  */
224   MEC_RPMFAN_SPINUP_DFCNT_NONE        = 0,     /*!< NONE : Drive fail detection disabled                                      */
225   MEC_RPMFAN_SPINUP_DFCNT_16          = 1,     /*!< 16 : Try 16 update cycles                                                 */
226   MEC_RPMFAN_SPINUP_DFCNT_32          = 2,     /*!< 32 : Try 32 update cycles                                                 */
227   MEC_RPMFAN_SPINUP_DFCNT_2S          = 3,     /*!< 2S : Try 64 update cycles                                                 */
228 } MEC_RPMFAN_SPINUP_DFCNT_Enum;
229 
230 /* =====================================================  DRV_BASE_FREQ  ===================================================== */
231 /* =========================================  MEC_RPMFAN DRV_BASE_FREQ FREQ [0..1]  ========================================= */
232 typedef enum {                                  /*!< MEC_RPMFAN_DRV_BASE_FREQ_FREQ                                            */
233   MEC_RPMFAN_DRV_BASE_FREQ_FREQ_26P8K = 0,     /*!< 26P8K : PWM base frequency of 26.8 KHz                                    */
234   MEC_RPMFAN_DRV_BASE_FREQ_FREQ_23P4K = 1,     /*!< 23P4K : PWM base frequency of 23.4 KHz                                    */
235   MEC_RPMFAN_DRV_BASE_FREQ_FREQ_4P67K = 2,     /*!< 4P67K : PWM base frequency of 4.67 KHz                                    */
236   MEC_RPMFAN_DRV_BASE_FREQ_FREQ_2P34K = 3,     /*!< 2P34K : PWM base frequency of 2.34 KHz                                    */
237 } MEC_RPMFAN_DRV_BASE_FREQ_FREQ_Enum;
238 
239 /* ======================================================  FAN_STATUS  ======================================================= */
240 /* ==========================================  MEC_RPMFAN FAN_STATUS STALL [0..0]  ========================================== */
241 typedef enum {                                  /*!< MEC_RPMFAN_FAN_STATUS_STALL                                              */
242   MEC_RPMFAN_FAN_STATUS_STALL_ACTIVE  = 1,     /*!< ACTIVE : Active                                                           */
243 } MEC_RPMFAN_FAN_STATUS_STALL_Enum;
244 
245 /* =========================================  MEC_RPMFAN FAN_STATUS SPINUP [1..1]  ========================================== */
246 typedef enum {                                  /*!< MEC_RPMFAN_FAN_STATUS_SPINUP                                             */
247   MEC_RPMFAN_FAN_STATUS_SPINUP_ACTIVE = 1,     /*!< ACTIVE : Active                                                           */
248 } MEC_RPMFAN_FAN_STATUS_SPINUP_Enum;
249 
250 /* =========================================  MEC_RPMFAN FAN_STATUS DRVFAIL [5..5]  ========================================= */
251 typedef enum {                                  /*!< MEC_RPMFAN_FAN_STATUS_DRVFAIL                                            */
252   MEC_RPMFAN_FAN_STATUS_DRVFAIL_ACTIVE = 1,    /*!< ACTIVE : Active                                                           */
253 } MEC_RPMFAN_FAN_STATUS_DRVFAIL_Enum;
254 
255 /** @} */ /* End of group EnumValue_peripherals */
256 
257 #endif /* _MEC5_RPMFAN_V1_H */
258