56 #ifndef ti_dl_dl_crcp__include 57 #define ti_dl_dl_crcp__include 62 #include <ti/devices/msp/msp.h> 65 #ifdef __MSPM0_HAS_CRCP__ 77 #define DL_CRC_POLYNOMIAL_SIZE_16 DL_CRCP_POLYNOMIAL_SIZE_16 83 #define DL_CRC_POLYNOMIAL_SIZE_32 DL_CRCP_POLYNOMIAL_SIZE_32 89 #define DL_CRC_BIT_REVERSED DL_CRCP_BIT_REVERSED 95 #define DL_CRC_BIT_NOT_REVERSED DL_CRCP_BIT_NOT_REVERSED 101 #define DL_CRC_INPUT_ENDIANESS_LITTLE_ENDIAN \ 102 DL_CRCP_INPUT_ENDIANESS_LITTLE_ENDIAN 108 #define DL_CRC_INPUT_ENDIANESS_BIG_ENDIAN DL_CRCP_INPUT_ENDIANESS_BIG_ENDIAN 114 #define DL_CRC_OUTPUT_BYTESWAP_ENABLED DL_CRCP_OUTPUT_BYTESWAP_ENABLED 120 #define DL_CRC_OUTPUT_BYTESWAP_DISABLED DL_CRCP_OUTPUT_BYTESWAP_DISABLED 126 #define DL_CRC_CRCPOLY_POLYNOMIAL_32_MPEG2 DL_CRCP_CRCPOLY_POLYNOMIAL_32_MPEG2 132 #define DL_CRC_CRCPOLY_POLYNOMIAL_32_Q DL_CRCP_CRCPOLY_POLYNOMIAL_32_Q 138 #define DL_CRC_CRCPOLY_POLYNOMIAL_32_JAMCRC \ 139 DL_CRCP_CRCPOLY_POLYNOMIAL_32_JAMCRC 145 #define DL_CRC_CRCPOLY_POLYNOMIAL_32_XFER \ 146 DL_CRCP_CRCPOLY_POLYNOMIAL_32_XFER 152 #define DL_CRC_CRCPOLY_POLYNOMIAL_32_MPEG2 DL_CRCP_CRCPOLY_POLYNOMIAL_32_MPEG2 158 #define DL_CRC_CRCPOLY_POLYNOMIAL_16_CCIT_ZERO \ 159 DL_CRCP_CRCPOLY_POLYNOMIAL_16_CCIT_ZERO 165 #define DL_CRC_CRCPOLY_POLYNOMIAL_16_ARC \ 166 DL_CRCP_CRCPOLY_POLYNOMIAL_16_ARC 172 #define DL_CRC_CRCPOLY_POLYNOMIAL_16_AUG_CCIT \ 173 DL_CRCP_CRCPOLY_POLYNOMIAL_16_AUG_CCIT 179 #define DL_CRC_CRCPOLY_POLYNOMIAL_16_BUYPASS \ 180 DL_CRCP_CRCPOLY_POLYNOMIAL_16_BUYPASS 186 #define DL_CRC_CRCPOLY_POLYNOMIAL_16_CCIT_FALSE \ 187 DL_CRCP_CRCPOLY_POLYNOMIAL_16_CCIT_FALSE 193 #define DL_CRC_CRCPOLY_POLYNOMIAL_16_CDMA2000 \ 194 DL_CRCP_CRCPOLY_POLYNOMIAL_16_CDMA2000 200 #define DL_CRC_CRCPOLY_POLYNOMIAL_16_MODBUS \ 201 DL_CRCP_CRCPOLY_POLYNOMIAL_16_MODBUS 207 #define DL_CRC_CRCSEED_SEED_32_MPEG2 DL_CRCP_CRCSEED_SEED_32_MPEG2 213 #define DL_CRC_CRCSEED_SEED_32_Q DL_CRCP_CRCSEED_SEED_32_Q 219 #define DL_CRC_CRCSEED_SEED_32_JAMCRC DL_CRCP_CRCSEED_SEED_32_JAMCRC 225 #define DL_CRC_CRCSEED_SEED_32_XFER DL_CRCP_CRCSEED_SEED_32_XFER 231 #define DL_CRC_CRCSEED_SEED_32_MPEG2 DL_CRCP_CRCSEED_SEED_32_MPEG2 237 #define DL_CRC_CRCSEED_SEED_16_AUG_CCIT DL_CRCP_CRCSEED_SEED_16_AUG_CCIT 243 #define DL_CRC_CRCSEED_SEED_16_BUYPASS DL_CRCP_CRCSEED_SEED_16_BUYPASS 249 #define DL_CRC_CRCSEED_SEED_16_CCIT_FALSE DL_CRCP_CRCSEED_SEED_16_CCIT_FALSE 255 #define DL_CRC_CRCSEED_SEED_16_CDMA2000 DL_CRCP_CRCSEED_SEED_16_CDMA2000 261 #define DL_CRC_CRCSEED_SEED_16_MODBUS DL_CRCP_CRCSEED_SEED_16_MODBUS 267 #define DL_CRC_enablePower DL_CRCP_enablePower 273 #define DL_CRC_isPowerEnabled DL_CRCP_isPowerEnabled 279 #define DL_CRC_reset DL_CRCP_reset 285 #define DL_CRC_isReset DL_CRCP_isReset 291 #define DL_CRC_init DL_CRCP_init 297 #define DL_CRC_setSeed16 DL_CRCP_setSeed16 303 #define DL_CRC_setSeed32 DL_CRCP_setSeed32 309 #define DL_CRC_feedData8 DL_CRCP_feedData8 315 #define DL_CRC_feedData16 DL_CRCP_feedData16 321 #define DL_CRC_feedData32 DL_CRCP_feedData32 327 #define DL_CRC_getResult16 DL_CRCP_getResult16 333 #define DL_CRC_getResult32 DL_CRCP_getResult32 339 #define DL_CRC_setPolynomial DL_CRCP_setPolynomial 345 #define DL_CRC_getPolynomial DL_CRCP_getPolynomial 351 #define DL_CRC_calculateBlock32 DL_CRCP_calculateBlock32 357 #define DL_CRC_calculateMemoryRange32 DL_CRCP_calculateMemoryRange32 363 #define DL_CRC_calculateBlock16 DL_CRCP_calculateBlock16 369 #define DL_CRC_calculateMemoryRange16 DL_CRCP_calculateMemoryRange16 375 #define DL_CRC_getCRCINAddr DL_CRCP_getCRCINAddr 403 CRCP_CRCCTRL_INPUT_ENDIANNESS_LITTLE_ENDIAN,
407 CRCP_CRCCTRL_INPUT_ENDIANNESS_BIG_ENDIAN
519 crcp->GPRCM.PWREN = (CRCP_PWREN_KEY_UNLOCK_W | CRCP_PWREN_ENABLE_ENABLE);
534 crcp->GPRCM.PWREN = (CRCP_PWREN_KEY_UNLOCK_W | CRCP_PWREN_ENABLE_DISABLE);
556 return ((crcp->GPRCM.PWREN & CRCP_PWREN_ENABLE_MASK) ==
557 CRCP_PWREN_ENABLE_ENABLE);
568 (CRCP_RSTCTL_KEY_UNLOCK_W | CRCP_RSTCTL_RESETSTKYCLR_CLR |
569 CRCP_RSTCTL_RESETASSERT_ASSERT);
583 return ((crcp->GPRCM.STAT & CRCP_STAT_RESETSTKY_MASK) ==
584 CRCP_STAT_RESETSTKY_RESET);
601 DL_CRCP_POLYNOMIAL_SIZE polySize, DL_CRCP_BIT bitOrd,
602 DL_CRCP_INPUT_ENDIANESS inEndianness, DL_CRCP_OUTPUT_BYTESWAP outByteSwap)
604 crcp->CRCCTRL = ((uint32_t) polySize | (uint32_t) bitOrd |
605 (uint32_t) inEndianness | (uint32_t) outByteSwap);
625 volatile uintptr_t addr;
626 volatile uint16_t *pRef;
628 addr = (uintptr_t)((
volatile uintptr_t *) &crcp->CRCSEED);
629 pRef = (
volatile uint16_t *) addr;
651 crcp->CRCSEED = seed;
664 volatile uint8_t *pRef = (
volatile uint8_t *) &crcp->CRCIN;
678 volatile uintptr_t addr;
679 volatile uint16_t *pRef;
681 addr = (uintptr_t)((
volatile uintptr_t *) &crcp->CRCIN);
682 pRef = (
volatile uint16_t *) addr;
700 crcp->CRCIN = dataIn;
717 return ((uint16_t) crcp->CRCOUT);
737 return (crcp->CRCOUT);
756 crcp->CRCPOLY = poly;
774 return (crcp->CRCPOLY);
791 CRCP_Regs *crcp, uint32_t seed,
const uint32_t *ptr, uint32_t size);
809 uint32_t *ptrStart,
const uint32_t *ptrEnd);
825 CRCP_Regs *crcp, uint16_t seed,
const uint16_t *ptr, uint16_t size);
843 uint16_t *ptrStart,
const uint16_t *ptrEnd);
857 return ((uintptr_t) &crcp->CRCIN);
DL_CRCP_POLYNOMIAL_SIZE
Definition: dl_crcp.h:380
Definition: dl_crcp.h:444
Definition: dl_crcp.h:453
__STATIC_INLINE uint32_t DL_CRCP_getResult32(const CRCP_Regs *crcp)
Returns the result from the 32-bit polynomial calculation.
Definition: dl_crcp.h:735
DL_CRCP_OUTPUT_BYTESWAP
Definition: dl_crcp.h:411
Definition: dl_crcp.h:495
Definition: dl_crcp.h:441
__STATIC_INLINE void DL_CRCP_setSeed16(CRCP_Regs *crcp, uint16_t seed)
Initializes the seed for a 16-bit polynomial CRC calculation.
Definition: dl_crcp.h:623
__STATIC_INLINE uint16_t DL_CRCP_getResult16(const CRCP_Regs *crcp)
Returns the result from the 16-bit polynomial calculation.
Definition: dl_crcp.h:715
Definition: dl_crcp.h:384
Definition: dl_crcp.h:498
__STATIC_INLINE void DL_CRCP_disablePower(CRCP_Regs *crcp)
Disables the Peripheral Write Enable (PWREN) register for the CRCP.
Definition: dl_crcp.h:532
Definition: dl_crcp.h:413
Definition: dl_crcp.h:406
__STATIC_INLINE void DL_CRCP_setSeed32(CRCP_Regs *crcp, uint32_t seed)
Initializes the seed for a 32-bit polynomial CRC calculation.
Definition: dl_crcp.h:649
__STATIC_INLINE void DL_CRCP_setPolynomial(CRCP_Regs *crcp, uint32_t poly)
Sets the active polynomial terms for the CRC calculation.
Definition: dl_crcp.h:754
DL_CRCP_CRCSEED_SEED
seeds for commonly used pre-defined polynomials to be used by CRCP as mentioned by the website http:/...
Definition: dl_crcp.h:470
Definition: dl_crcp.h:459
Definition: dl_crcp.h:387
__STATIC_INLINE void DL_CRCP_feedData32(CRCP_Regs *crcp, uint32_t dataIn)
Feeds 32-bit data into the CRC calculation.
Definition: dl_crcp.h:698
__STATIC_INLINE void DL_CRCP_reset(CRCP_Regs *crcp)
Resets CRCP peripheral.
Definition: dl_crcp.h:565
DL_CRCP_CRCPOLY_POLYNOMIAL
commonly used pre-defined polynomials to be used by CRCP as mentioned by the website http://www...
Definition: dl_crcp.h:425
__STATIC_INLINE void DL_CRCP_enablePower(CRCP_Regs *crcp)
Enables the Peripheral Write Enable (PWREN) register for the CRCP.
Definition: dl_crcp.h:517
__STATIC_INLINE void DL_CRCP_init(CRCP_Regs *crcp, DL_CRCP_POLYNOMIAL_SIZE polySize, DL_CRCP_BIT bitOrd, DL_CRCP_INPUT_ENDIANESS inEndianness, DL_CRCP_OUTPUT_BYTESWAP outByteSwap)
Initializes the CRCP peripheral.
Definition: dl_crcp.h:600
Definition: dl_crcp.h:486
Definition: dl_crcp.h:429
uint32_t DL_CRCP_calculateMemoryRange32(CRCP_Regs *crcp, uint32_t seed, uint32_t *ptrStart, const uint32_t *ptrEnd)
Calculates the CRC over a memory range.
Definition: dl_crcp.h:477
uint16_t DL_CRCP_calculateBlock16(CRCP_Regs *crcp, uint16_t seed, const uint16_t *ptr, uint16_t size)
Calculates the CRC over a range of 16-bit values.
Definition: dl_crcp.h:415
__STATIC_INLINE uint32_t DL_CRCP_getPolynomial(const CRCP_Regs *crcp)
Gets the active polynomial terms for the CRC calculation.
Definition: dl_crcp.h:772
__STATIC_INLINE void DL_CRCP_feedData16(CRCP_Regs *crcp, uint16_t dataIn)
Feeds 16-bit data into the CRC calculation.
Definition: dl_crcp.h:676
Definition: dl_crcp.h:492
__STATIC_INLINE void DL_CRCP_feedData8(CRCP_Regs *crcp, uint8_t dataIn)
Feeds 8-bit data into the CRC calculation.
Definition: dl_crcp.h:662
DL_CRCP_BIT
Definition: dl_crcp.h:391
__STATIC_INLINE bool DL_CRCP_isPowerEnabled(const CRCP_Regs *crcp)
Returns if the Peripheral Write Enable (PWREN) register for the CRCP is enabled.
Definition: dl_crcp.h:554
Definition: dl_crcp.h:438
Definition: dl_crcp.h:393
Definition: dl_crcp.h:447
Definition: dl_crcp.h:395
Definition: dl_crcp.h:450
Definition: dl_crcp.h:504
__STATIC_INLINE bool DL_CRCP_isReset(const CRCP_Regs *crcp)
Returns if CRCP module has been reset.
Definition: dl_crcp.h:581
uint32_t DL_CRCP_calculateBlock32(CRCP_Regs *crcp, uint32_t seed, const uint32_t *ptr, uint32_t size)
Calculates the CRC over a range of 32-bit values.
Definition: dl_crcp.h:501
Definition: dl_crcp.h:456
Definition: dl_crcp.h:435
Definition: dl_crcp.h:480
__STATIC_INLINE uintptr_t DL_CRCP_getCRCINAddr(const CRCP_Regs *crcp)
Returns the address of the CRC input data register.
Definition: dl_crcp.h:855
Definition: dl_crcp.h:489
Definition: dl_crcp.h:402
Definition: dl_crcp.h:432
uint16_t DL_CRCP_calculateMemoryRange16(CRCP_Regs *crcp, uint16_t seed, uint16_t *ptrStart, const uint16_t *ptrEnd)
Calculates the CRC over a memory range.
Definition: dl_crcp.h:483
Definition: dl_crcp.h:474
DL_CRCP_INPUT_ENDIANESS
Definition: dl_crcp.h:399