/* * Copyright 2023-2024 NXP * * SPDX-License-Identifier: BSD-3-Clause */ #ifndef _S32Z270_FEATURES_H_ #define _S32Z270_FEATURES_H_ /* SOC module features */ /* @brief PIT availability on the SoC. */ #define FSL_FEATURE_SOC_PIT_COUNT (2) /* PIT module features */ /* @brief Number of channels (related to number of registers LDVALn, CVALn, TCTRLn, TFLGn). */ #define FSL_FEATURE_PIT_TIMER_COUNT (6) /* @brief Has lifetime timer (related to existence of registers LTMR64L and LTMR64H). */ #define FSL_FEATURE_PIT_HAS_LIFETIME_TIMER (1) /* @brief Has chain mode (related to existence of register bit field TCTRLn[CHN]). */ #define FSL_FEATURE_PIT_HAS_CHAIN_MODE (1) /* @brief Has shared interrupt handler (has not individual interrupt handler for each channel). */ #define FSL_FEATURE_PIT_HAS_SHARED_IRQ_HANDLER (1) /* @brief Has timer enable control. */ #define FSL_FEATURE_PIT_HAS_MDIS (1) /* I3C module features */ /* @brief Has TERM bitfile in MERRWARN register. */ #define FSL_FEATURE_I3C_HAS_NO_MERRWARN_TERM (0) /* @brief SOC has no reset driver. */ #define FSL_FEATURE_I3C_HAS_NO_RESET (1) /* @brief Use fixed BAMATCH count, do not provide editable BAMATCH. */ #define FSL_FEATURE_I3C_HAS_NO_SCONFIG_BAMATCH (0) /* @brief Register SCONFIG do not have IDRAND bitfield. */ #define FSL_FEATURE_I3C_HAS_NO_SCONFIG_IDRAND (1) /* @brief Register SCONFIG has HDROK bitfield. */ #define FSL_FEATURE_I3C_HAS_HDROK (1) /* @brief Has ERRATA_051617. */ #define FSL_FEATURE_I3C_HAS_ERRATA_051617 (1) /* FLEXCAN module features */ /* @brief Message buffer size */ #define FSL_FEATURE_FLEXCAN_HAS_MESSAGE_BUFFER_MAX_NUMBERn(x) (128) /* @brief Has doze mode support (register bit field MCR[DOZE]). */ #define FSL_FEATURE_FLEXCAN_HAS_DOZE_MODE_SUPPORT (0) /* @brief Instance has doze mode support (register bit field MCR[DOZE]). */ #define FSL_FEATURE_FLEXCAN_INSTANCE_HAS_DOZE_MODE_SUPPORTn(x) (0) /* @brief Has a glitch filter on the receive pin (register bit field MCR[WAKSRC]). */ #define FSL_FEATURE_FLEXCAN_HAS_GLITCH_FILTER (0) /* @brief Has extended interrupt mask and flag register (register IMASK2, IFLAG2). */ #define FSL_FEATURE_FLEXCAN_HAS_EXTENDED_FLAG_REGISTER (1) /* @brief Instance has extended bit timing register (register CBT). */ #define FSL_FEATURE_FLEXCAN_INSTANCE_HAS_EXTENDED_TIMING_REGISTERn(x) (1) /* @brief Has a receive FIFO DMA feature (register bit field MCR[DMA]). */ #define FSL_FEATURE_FLEXCAN_HAS_RX_FIFO_DMA (1) /* @brief Instance has a receive FIFO DMA feature (register bit field MCR[DMA]). */ #define FSL_FEATURE_FLEXCAN_INSTANCE_HAS_RX_FIFO_DMAn(x) (1) /* @brief Remove CAN Engine Clock Source Selection from unsupported part. */ #define FSL_FEATURE_FLEXCAN_SUPPORT_ENGINE_CLK_SEL_REMOVE (0) /* @brief Instance remove CAN Engine Clock Source Selection from unsupported part. */ #define FSL_FEATURE_FLEXCAN_INSTANCE_SUPPORT_ENGINE_CLK_SEL_REMOVEn(x) (0) /* @brief Is affected by errata with ID 5641 (Module does not transmit a message that is enabled * to be transmitted at a specific moment during the arbitration process). */ #define FSL_FEATURE_FLEXCAN_HAS_ERRATA_5641 (0) /* @brief Is affected by errata with ID 5829 (FlexCAN: FlexCAN does not transmit a message that * is enabled to be transmitted in a specific moment during the arbitration process). */ #define FSL_FEATURE_FLEXCAN_HAS_ERRATA_5829 (0) /* @brief Is affected by errata with ID 6032 (FlexCAN: A frame with wrong ID or payload is * transmitted into the CAN bus when the Message Buffer under transmission is either aborted * or deactivated while the CAN bus is in the Bus Idle state). */ #define FSL_FEATURE_FLEXCAN_HAS_ERRATA_6032 (0) /* @brief Is affected by errata with ID 9595 (FlexCAN: Corrupt frame possible if the Freeze Mode * or the Low-Power Mode are entered during a Bus-Off state). */ #define FSL_FEATURE_FLEXCAN_HAS_ERRATA_9595 (0) /* @brief Has CAN with Flexible Data rate (CAN FD) protocol. */ #define FSL_FEATURE_FLEXCAN_HAS_FLEXIBLE_DATA_RATE (1) /* @brief CAN instance support Flexible Data rate (CAN FD) protocol. */ #define FSL_FEATURE_FLEXCAN_INSTANCE_HAS_FLEXIBLE_DATA_RATEn(x) (1) /* @brief Has memory error control (register MECR). */ #define FSL_FEATURE_FLEXCAN_HAS_MEMORY_ERROR_CONTROL (1) /* @brief Init memory base 1 */ #define FSL_FEATURE_FLEXCAN_INIT_MEMORY_BASE_1 (0x80) /* @brief Init memory size 1 */ #define FSL_FEATURE_FLEXCAN_INIT_MEMORY_SIZE_1 (0xA60) /* @brief Init memory base 2 */ #define FSL_FEATURE_FLEXCAN_INIT_MEMORY_BASE_2 (0xC20) /* @brief Init memory size 2 */ #define FSL_FEATURE_FLEXCAN_INIT_MEMORY_SIZE_2 (0x25E0) /* @brief Has enhanced bit timing register (register EPRS, ENCBT, EDCBT and ETDC). */ #define FSL_FEATURE_FLEXCAN_HAS_ENHANCED_BIT_TIMING_REG (0) /* @brief Has Pretended Networking mode support. */ #define FSL_FEATURE_FLEXCAN_HAS_PN_MODE (0) /* @brief Has Enhanced Rx FIFO. */ #define FSL_FEATURE_FLEXCAN_HAS_ENHANCED_RX_FIFO (0) /* @brief Does not support Supervisor Mode (bitfield MCR[SUPV]. */ #define FSL_FEATURE_FLEXCAN_HAS_NO_SUPV_SUPPORT (1) /* @brief Does not support Memory Error Control (bitfield MECR[HANCEI]. */ #define FSL_FEATURE_FLEXCAN_HAS_NO_HANCEI_SUPPORT (1) /* @brief Does not support Memory Error Control (bitfield MECR[FANCEI]. */ #define FSL_FEATURE_FLEXCAN_HAS_NO_FANCEI_SUPPORT (1) /* @brief Does not support Memory Error Control (bitfield MECR[CEI]. */ #define FSL_FEATURE_FLEXCAN_HAS_NO_CEI_SUPPORT (1) /* @brief Does not support Wake Up interrupt (bitfield MCR[WAKMSK]. */ #define FSL_FEATURE_FLEXCAN_HAS_NO_WAKMSK_SUPPORT (1) /* @brief Does not support Self Wake Up (bitfield MCR[SLFWAK]. */ #define FSL_FEATURE_FLEXCAN_HAS_NO_SLFWAK_SUPPORT (1) /* @brief Does not support Wake Up Source (bitfield MCR[WAKSRC]. */ #define FSL_FEATURE_FLEXCAN_HAS_NO_WAKSRC_SUPPORT (1) /* @brief EDMA availability on the SoC. */ #define FSL_FEATURE_SOC_EDMA_COUNT (4) /* EDMA module features */ /* @brief Number of DMA channels (related to number of registers TCD, DCHPRI, bit fields ERQ[ERQn], EEI[EEIn], INT[INTn], ERR[ERRn], HRS[HRSn] and bit field widths ES[ERRCHN], CEEI[CEEI], SEEI[SEEI], CERQ[CERQ], SERQ[SERQ], CDNE[CDNE], SSRT[SSRT], CERR[CERR], CINT[CINT], TCDn_CITER_ELINKYES[LINKCH], TCDn_CSR[MAJORLINKCH], TCDn_BITER_ELINKYES[LINKCH]). (Valid only for eDMA modules.) */ #define FSL_FEATURE_EDMA_MODULE_CHANNEL (32) /* @brief If 8 bytes transfer supported. */ #define FSL_FEATURE_EDMA_SUPPORT_8_BYTES_TRANSFER (1) /* @brief Number of channel for each EDMA instance, (only defined for soc with different channel numbers for difference instance) */ #define FSL_FEATURE_EDMA_INSTANCE_CHANNELn(x) \ (((x) == DMA0) ? (32) : \ (((x) == DMA1) ? (16) : \ (((x) == DMA4) ? (16) : \ (((x) == DMA5) ? (16) : (0))))) /* @brief Has register CH_CSR. */ /* @brief If 16 bytes transfer supported. */ #define FSL_FEATURE_EDMA_SUPPORT_16_BYTES_TRANSFER (1) /* @brief Number of DMA channel groups (register bit fields CR[ERGA], CR[GRPnPRI], ES[GPE], DCHPRIn[GRPPRI]). (Valid only for eDMA modules.) */ #define FSL_FEATURE_EDMA_CHANNEL_GROUP_COUNT (0) /* @brief Has register bit fields MP_CSR[GMRC]. */ #define FSL_FEATURE_EDMA_HAS_GLOBAL_MASTER_ID_REPLICATION (1) /* @brief If 64 bytes transfer supported. */ #define FSL_FEATURE_EDMA_SUPPORT_64_BYTES_TRANSFER (1) /* @brief Has DMA_Error interrupt vector. */ #define FSL_FEATURE_EDMA_HAS_ERROR_IRQ (1) /* @brief Has register bit fields CR[CLM]. */ #define FSL_FEATURE_EDMA_HAS_CONTINUOUS_LINK_MODE (0) /* @brief If 128 bytes transfer supported. */ #define FSL_FEATURE_EDMA_SUPPORT_128_BYTES_TRANSFER (0) /* @brief Has register access permission. */ #define FSL_FEATURE_HAVE_DMA_CONTROL_REGISTER_ACCESS_PERMISSION (1) /* @brief NBYTES must be multiple of 8 when using scatter gather. */ #define FSL_FEATURE_EDMA_HAS_ERRATA_51327 (0) /* @brief If 128 bytes transfer supported. */ #define FSL_FEATURE_EDMA_INSTANCE_SUPPORT_128_BYTES_TRANSFERn(x) (0) /* @brief If channel clock controlled independently */ #define FSL_FEATURE_EDMA_CHANNEL_HAS_OWN_CLOCK_GATE (1) /* @brief NBYTES must be multiple of 8 when using scatter gather. */ #define FSL_FEATURE_EDMA_INSTANCE_HAS_ERRATA_51327n(x) (0) /* @brief Has register CH_CSR. */ #define FSL_FEATURE_EDMA_HAS_CHANNEL_CONFIG (1) /* @brief Has channel mux */ #define FSL_FEATURE_EDMA_HAS_CHANNEL_MUX (0) /* @brief Has no register bit fields MP_CSR[EBW]. */ #define FSL_FEATURE_EDMA_HAS_NO_MP_CSR_EBW (0) /* @brief Instance has channel mux */ #define FSL_FEATURE_EDMA_INSTANCE_HAS_CHANNEL_MUXn(x) (0) /* @brief If dma has common clock gate */ #define FSL_FEATURE_EDMA_HAS_COMMON_CLOCK_GATE (0) /* @brief Has register CH_SBR. */ #define FSL_FEATURE_EDMA_HAS_SBR (1) /* @brief If dma channel IRQ support parameter */ #define FSL_FEATURE_EDMA_MODULE_CHANNEL_IRQ_ENTRY_SUPPORT_PARAMETER (0) /* @brief Has no register bit fields CH_SBR[ATTR]. */ #define FSL_FEATURE_EDMA_HAS_NO_CH_SBR_ATTR (1) /* @brief Has register bit field CH_CSR[SWAP]. */ #define FSL_FEATURE_EDMA_HAS_CHANNEL_SWAP_SIZE (0) /* @brief Instance has register bit field CH_CSR[SWAP]. */ #define FSL_FEATURE_EDMA_INSTANCE_HAS_CHANNEL_SWAP_SIZEn(x) (0) /* @brief Has register bit field CH_SBR[INSTR]. */ #define FSL_FEATURE_EDMA_HAS_CHANNEL_ACCESS_TYPE (0) /* @brief Whether has prot register. */ #define FSL_FEATURE_EDMA_INSTANCE_HAS_PROT_REGISTERn(x) (0) /* @brief Instance has register bit field CH_SBR[INSTR]. */ #define FSL_FEATURE_EDMA_INSTANCE_HAS_CHANNEL_ACCESS_TYPEn(x) (0) /* @brief Whether has MP channel mux. */ #define FSL_FEATURE_EDMA_INSTANCE_HAS_MP_CHANNEL_MUXn(x) (0) /* @brief Has register bit fields CH_MATTR[WCACHE], CH_MATTR[RCACHE]. */ #define FSL_FEATURE_EDMA_HAS_CHANNEL_MEMORY_ATTRIBUTE (0) /* @brief Instance has register CH_MATTR. */ #define FSL_FEATURE_EDMA_INSTANCE_HAS_CHANNEL_MEMORY_ATTRIBUTEn(x) (0) /* @brief Has register bit field CH_CSR[SIGNEXT]. */ #define FSL_FEATURE_EDMA_HAS_CHANNEL_SIGN_EXTENSION (0) /* @brief Instance Has register bit field CH_CSR[SIGNEXT]. */ #define FSL_FEATURE_EDMA_INSTANCE_HAS_CHANNEL_SIGN_EXTENSIONn(x) (0) /* @brief Has register bit field TCD_CSR[BWC]. */ #define FSL_FEATURE_EDMA_HAS_BANDWIDTH (1) /* @brief Instance has register bit field TCD_CSR[BWC]. */ #define FSL_FEATURE_EDMA_INSTANCE_HAS_BANDWIDTHn(x) (1) /* @brief Has register bit fields TCD_CSR[TMC]. */ #define FSL_FEATURE_EDMA_HAS_TRANSFER_MODE (0) /* @brief Instance has register bit fields TCD_CSR[TMC]. */ #define FSL_FEATURE_EDMA_INSTANCE_HAS_TRANSFER_MODEn(x) (0) /* @brief edma5 has different tcd type. */ #define FSL_FEATURE_EDMA_TCD_TYPEn(x) (0) /* @brief Has no register bit fields CH_SBR[SEC]. */ #define FSL_FEATURE_EDMA_HAS_NO_CH_SBR_SEC (1) /* DMAMUX module features */ /* @brief Total number of DMA channels on all modules. Note: this is including channels used as offset. */ #define FSL_FEATURE_EDMA_DMAMUX_CHANNELS (80) /* @brief DMAMUX availability on the SoC. */ #define FSL_FEATURE_SOC_DMAMUX_COUNT (5) /* @brief Number of DMA channels (related to number of register CHCFGn). */ #define FSL_FEATURE_DMAMUX_MODULE_CHANNEL (16) /* @brief Has the periodic trigger capability for the triggered DMA channel (register bit CHCFG0[TRIG]). */ #define FSL_FEATURE_DMAMUX_HAS_TRIG (1) /* @brief Register CHCFGn width. */ #define FSL_FEATURE_DMAMUX_CHCFG_REGISTER_WIDTH (8) /* I2C module features */ /* @brief LPI2C availability on the SoC. */ #define FSL_FEATURE_SOC_LPI2C_COUNT (2) /* @brief Has separate DMA RX and TX requests. */ #define FSL_FEATURE_LPI2C_HAS_SEPARATE_DMA_RX_TX_REQn(x) (1) /* @brief Capacity (number of entries) of the transmit/receive FIFO (or zero if no FIFO is available). */ #define FSL_FEATURE_LPI2C_FIFO_SIZEn(x) (8) /* DSPI module features */ /* @brief DSPI availability on the SoC. */ #define FSL_FEATURE_SOC_DSPI_COUNT (1) /* @brief Receive/transmit FIFO size in number of items. */ #define FSL_FEATURE_DSPI_FIFO_SIZEn(x) (16) /* @brief Maximum transfer data width in bits. */ #define FSL_FEATURE_DSPI_MAX_DATA_WIDTH (16) /* @brief Maximum number of chip select pins. (Reflects the width of register bit field PUSHR[PCS].) */ #define FSL_FEATURE_DSPI_MAX_CHIP_SELECT_COUNT (3) /* @brief Number of chip select pins. */ #define FSL_FEATURE_DSPI_CHIP_SELECT_COUNT (3) /* @brief Number of CTAR registers. */ #define FSL_FEATURE_DSPI_CTAR_COUNT (6) /* @brief Has chip select strobe capability on the PCS5 pin. */ #define FSL_FEATURE_DSPI_HAS_CHIP_SELECT_STROBE (0) /* @brief Has separated TXDATA and CMD FIFOs (register SREX). */ #define FSL_FEATURE_DSPI_HAS_SEPARATE_TXDATA_CMD_FIFO (0) /* @brief Has 16-bit data transfer support. */ #define FSL_FEATURE_DSPI_16BIT_TRANSFERS (1) /* @brief Has separate DMA RX and TX requests. */ #define FSL_FEATURE_DSPI_HAS_SEPARATE_DMA_RX_TX_REQn(x) (1) /* @brief Does not support Transmit FIFO Fill Flag (bitfield SR[TFUF]. */ #define FSL_FEATURE_DSPI_HAS_NO_SR_TFUF_SUPPORT (1) /* @brief Does not support Transmit FIFO Underflow Request Enable (bitfield RSER[TFUF_RE]. */ #define FSL_FEATURE_DSPI_HAS_NO_RSER_TFUF_RE_SUPPORT (1) /* @brief Does not support Slave mode . */ #define FSL_FEATURE_DSPI_HAS_NO_SLAVE_SUPPORT (1) #endif /* _S32Z270_FEATURES_H_ */