48 #ifndef ti_dl_dl_mathacl__include 49 #define ti_dl_dl_mathacl__include 54 #include <ti/devices/msp/msp.h> 57 #ifdef __MSPM0_HAS_MATHACL__ 72 #define DL_MATHACL_STATUS_UNDERFLOW (MATHACL_STATUS_UF_UNDERFLOW) 77 #define DL_MATHACL_STATUS_UF_MASK (MATHACL_STATUS_UF_MASK) 82 #define DL_MATHACL_STATUS_OVERFLOW (MATHACL_STATUS_OVF_OVERFLOW) 87 #define DL_MATHACL_STATUS_OVF_MASK (MATHACL_STATUS_OVF_MASK) 92 #define DL_MATHACL_STATUS_ERR_DIVBY0 (MATHACL_STATUS_ERR_DIVBY0) 97 #define DL_MATHACL_STATUS_ERR_MASK (MATHACL_STATUS_ERR_MASK) 102 #define DL_MathACL_startSinCosOperation(MATHACL, config, op) DL_MathACL_configOperation(MATHACL, config, op, 0) 107 #define DL_MathACL_startArcTan2Operation(MATHACL, config, x, y) DL_MathACL_configOperation(MATHACL, config, x, y) 112 #define DL_MathACL_startArcTanOperation(MATHACL, config, x) DL_MathACL_configOperation(MATHACL, config, x, 0) 117 #define DL_MathACL_startDivOperation(MATHACL, config, num, den) DL_MathACL_configOperation(MATHACL, config, num, den) 122 #define DL_MathACL_startSqrtOperation(MATHACL, config, sqrt) DL_MathACL_configOperation(MATHACL, config, sqrt, 0) 127 #define DL_MathACL_startMpyOperation(MATHACL, config, multicand, multiplier) DL_MathACL_configOperation(MATHACL, config, multicand, multiplier) 271 mathacl->GPRCM.PWREN =
272 MATHACL_PWREN_KEY_UNLOCK_W | MATHACL_PWREN_ENABLE_ENABLE;
287 mathacl->GPRCM.PWREN =
288 MATHACL_PWREN_KEY_UNLOCK_W | MATHACL_PWREN_ENABLE_DISABLE;
309 return ((mathacl->GPRCM.PWREN & MATHACL_PWREN_ENABLE_MASK) ==
310 MATHACL_PWREN_ENABLE_ENABLE);
320 mathacl->GPRCM.RSTCTL =
321 MATHACL_RSTCTL_RESETASSERT_ASSERT | MATHACL_RSTCTL_KEY_UNLOCK_W;
335 return (mathacl->GPRCM.STAT & MATHACL_STAT_RESETSTKY_MASK) ==
336 MATHACL_STAT_RESETSTKY_RESET;
354 mathacl->CTL |= MATHACL_CTL_SATEN_ENABLE;
367 mathacl->CTL &= ~(MATHACL_CTL_SATEN_MASK);
380 const MATHACL_Regs *mathacl)
383 (mathacl->CTL & MATHACL_CTL_SATEN_MASK) == MATHACL_CTL_SATEN_ENABLE);
395 MATHACL_Regs *mathacl, uint32_t op)
409 MATHACL_Regs *mathacl, uint32_t op)
423 return mathacl->RES1;
436 return mathacl->RES2;
449 return mathacl->STATUS;
463 mathacl->STATUSCLR |= MATHACL_STATUSCLR_CLR_OVF_CLR;
477 mathacl->STATUSCLR |= MATHACL_STATUSCLR_CLR_UF_CLR;
491 mathacl->STATUSCLR |= MATHACL_STATUSCLR_CLR_ERR_CLR;
502 while ((mathacl->STATUS & MATHACL_STATUS_BUSY_MASK) ==
503 MATHACL_STATUS_BUSY_NOTDONE) {
Definition: dl_mathacl.h:225
__STATIC_INLINE void DL_MathACL_clearOverflowStatus(MATHACL_Regs *mathacl)
Clear the overflow status bit.
Definition: dl_mathacl.h:461
Definition: dl_mathacl.h:158
Definition: dl_mathacl.h:215
uint32_t scaleFactor
Definition: dl_mathacl.h:255
Definition: dl_mathacl.h:203
Definition: dl_mathacl.h:227
__STATIC_INLINE void DL_MathACL_setOperandTwo(MATHACL_Regs *mathacl, uint32_t op)
Load Operand two into the math accelerator.
Definition: dl_mathacl.h:408
Definition: dl_mathacl.h:151
Definition: dl_mathacl.h:185
__STATIC_INLINE void DL_MathACL_clearUnderflowStatus(MATHACL_Regs *mathacl)
Clear the underflow status bit.
Definition: dl_mathacl.h:475
Definition: dl_mathacl.h:171
Definition: dl_mathacl.h:237
Definition: dl_mathacl.h:140
Definition: dl_mathacl.h:181
Definition: dl_mathacl.h:239
__STATIC_INLINE void DL_MathACL_disablePower(MATHACL_Regs *mathacl)
Disables the Peripheral Write Enable (PWREN) register for the MATHACL.
Definition: dl_mathacl.h:285
Definition: dl_mathacl.h:205
Definition: dl_mathacl.h:213
Definition: dl_mathacl.h:153
__STATIC_INLINE void DL_MathACL_disableSaturation(MATHACL_Regs *mathacl)
Disable saturation.
Definition: dl_mathacl.h:365
Definition: dl_mathacl.h:142
__STATIC_INLINE uint32_t DL_MathACL_getStatus(const MATHACL_Regs *mathacl)
Returns MATHACL operation status.
Definition: dl_mathacl.h:447
Definition: dl_mathacl.h:177
Definition: dl_mathacl.h:201
DL_MATHACL_Q_TYPE qType
Definition: dl_mathacl.h:257
__STATIC_INLINE uint32_t DL_MathACL_getResultOne(const MATHACL_Regs *mathacl)
Returns MATHACL result one register.
Definition: dl_mathacl.h:421
Definition: dl_mathacl.h:221
Definition: dl_mathacl.h:195
__STATIC_INLINE void DL_MathACL_reset(MATHACL_Regs *mathacl)
Resets the MATHACL module.
Definition: dl_mathacl.h:318
Definition: dl_mathacl.h:175
Definition: dl_mathacl.h:173
Definition: dl_mathacl.h:183
Definition: dl_mathacl.h:189
Definition: dl_mathacl.h:149
__STATIC_INLINE void DL_MathACL_enablePower(MATHACL_Regs *mathacl)
Enables the Peripheral Write Enable (PWREN) register for the MATHACL.
Definition: dl_mathacl.h:269
Definition: dl_mathacl.h:191
DL_MATHACL_OPSIGN
Definition: dl_mathacl.h:235
__STATIC_INLINE void DL_MathACL_clearResultTwo(MATHACL_Regs *mathacl)
Clears the RES2 register.
Definition: dl_mathacl.h:550
DL_MATHACL_OP_TYPE
Definition: dl_mathacl.h:134
Definition: dl_mathacl.h:193
Definition: dl_mathacl.h:163
__STATIC_INLINE void DL_MathACL_clearResults(MATHACL_Regs *mathacl)
Clears the RES1 and RES2 registers.
Definition: dl_mathacl.h:563
__STATIC_INLINE bool DL_MathACL_isSaturationEnabled(const MATHACL_Regs *mathacl)
Returns if saturation is enabled.
Definition: dl_mathacl.h:379
Definition: dl_mathacl.h:187
Definition: dl_mathacl.h:219
Definition: dl_mathacl.h:179
Definition: dl_mathacl.h:197
Definition: dl_mathacl.h:207
DL_MATHACL_Q_TYPE
Definition: dl_mathacl.h:167
Configuration struct for DL_MathACL_configOperation.
Definition: dl_mathacl.h:245
Definition: dl_mathacl.h:199
Definition: dl_mathacl.h:231
__STATIC_INLINE void DL_MathACL_clearErrorStatus(MATHACL_Regs *mathacl)
Clear the error status bit.
Definition: dl_mathacl.h:489
Definition: dl_mathacl.h:209
__STATIC_INLINE void DL_MathACL_enableSaturation(MATHACL_Regs *mathacl)
Enable saturation.
Definition: dl_mathacl.h:352
Definition: dl_mathacl.h:138
Definition: dl_mathacl.h:169
__STATIC_INLINE void DL_MathACL_setOperandOne(MATHACL_Regs *mathacl, uint32_t op)
Load Operand one into the math accelerator.
Definition: dl_mathacl.h:394
__STATIC_INLINE void DL_MathACL_waitForOperation(const MATHACL_Regs *mathacl)
Block until MATHACL_STATUS_BUSY_DONE is active in MATHACL.
Definition: dl_mathacl.h:500
__STATIC_INLINE void DL_MathACL_clearResultOne(MATHACL_Regs *mathacl)
Clears the RES1 register.
Definition: dl_mathacl.h:537
__STATIC_INLINE bool DL_MathACL_isPowerEnabled(MATHACL_Regs *mathacl)
Returns if the Peripheral Write Enable (PWREN) register for the MATHACL is enabled.
Definition: dl_mathacl.h:307
__STATIC_INLINE uint32_t DL_MathACL_getResultTwo(const MATHACL_Regs *mathacl)
Returns MATHACL result two register.
Definition: dl_mathacl.h:434
Definition: dl_mathacl.h:217
__STATIC_INLINE bool DL_MathACL_isReset(const MATHACL_Regs *mathacl)
Returns if MATHACL peripheral was reset.
Definition: dl_mathacl.h:333
Definition: dl_mathacl.h:211
void DL_MathACL_configOperation(MATHACL_Regs *mathacl, const DL_MathACL_operationConfig *opConfig, uint32_t op1, uint32_t op2)
Configure and execute a Math accelerator operation.
Definition: dl_mathacl.h:136
uint32_t iterations
Definition: dl_mathacl.h:252
Definition: dl_mathacl.h:223
Definition: dl_mathacl.h:229
Definition: dl_mathacl.h:144
DL_MATHACL_OPSIGN opSign
Definition: dl_mathacl.h:249
DL_MATHACL_OP_TYPE opType
Definition: dl_mathacl.h:247