|
| 1 | +/* |
| 2 | + * Copyright 2021-2024 NXP |
| 3 | + * |
| 4 | + * SPDX-License-Identifier: BSD-3-Clause |
| 5 | + */ |
| 6 | + |
| 7 | +#ifndef ADC_SAR_IP_HEADERWRAPPER_S32XX_AE_H |
| 8 | +#define ADC_SAR_IP_HEADERWRAPPER_S32XX_AE_H |
| 9 | + |
| 10 | +/** |
| 11 | +* @file |
| 12 | +* |
| 13 | +* @addtogroup adc_sar_ip Adc Sar IPL |
| 14 | +* @{ |
| 15 | +*/ |
| 16 | + |
| 17 | +#ifdef __cplusplus |
| 18 | +extern "C"{ |
| 19 | +#endif |
| 20 | + |
| 21 | +/* Important Note: This file cannot be used independently. |
| 22 | +* It depends on platform header files to be included before including it */ |
| 23 | + |
| 24 | +/*================================================================================================== |
| 25 | +* SOURCE FILE VERSION INFORMATION |
| 26 | +==================================================================================================*/ |
| 27 | +#define ADC_SAR_IP_VENDOR_ID_HEADERWRAPPER_S32XX_AE 43 |
| 28 | +#define ADC_SAR_IP_AR_RELEASE_MAJOR_VERSION_HEADERWRAPPER_S32XX_AE 4 |
| 29 | +#define ADC_SAR_IP_AR_RELEASE_MINOR_VERSION_HEADERWRAPPER_S32XX_AE 7 |
| 30 | +#define ADC_SAR_IP_AR_RELEASE_REVISION_VERSION_HEADERWRAPPER_S32XX_AE 0 |
| 31 | +#define ADC_SAR_IP_SW_MAJOR_VERSION_HEADERWRAPPER_S32XX_AE 2 |
| 32 | +#define ADC_SAR_IP_SW_MINOR_VERSION_HEADERWRAPPER_S32XX_AE 0 |
| 33 | +#define ADC_SAR_IP_SW_PATCH_VERSION_HEADERWRAPPER_S32XX_AE 0 |
| 34 | + |
| 35 | +/*================================================================================================== |
| 36 | +* DEFINITIONS |
| 37 | +==================================================================================================*/ |
| 38 | + |
| 39 | +#define ADC_SAR_IP_NUM_GROUP_CHAN (2U) |
| 40 | +#define ADC_SAR_IP_CDR_COUNT (39U) |
| 41 | +#define ADC_SAR_IP_INSTANCE_COUNT (ADC_INSTANCE_COUNT + SAR_ADC_AE_INSTANCE_COUNT) |
| 42 | +#define ADC_SAR_IP_THRHLR_COUNT (8U) |
| 43 | +#define ADC_SAR_AE_IP_THRHLR_COUNT (16U) |
| 44 | +#define ADC_SAR_IP_CWSELR_COUNT (2U) |
| 45 | +#define ADC_SAR_AE_IP_CWSELR_COUNT (3U) |
| 46 | + |
| 47 | +#define ADC_SAR_IP_MAX_RESOLUTION (12U) |
| 48 | +#define ADC_SAR_IP_HAS_THRHLR_ARRAY (0U) |
| 49 | +#define ADC_SAR_IP_HAS_CWSELR_UNROLLED (1U) |
| 50 | +#define ADC_SAR_IP_CALIBRATION_USES_MCR (1U) |
| 51 | + |
| 52 | +#define ADC_SAR_IP_PRESAMPLE_DVDD_EVAL (0U) |
| 53 | +#define ADC_SAR_IP_PRESAMPLE_AVDD_EVAL (1U) |
| 54 | +#define ADC_SAR_IP_PRESAMPLE_VREFL_EVAL (2U) |
| 55 | +#define ADC_SAR_IP_PRESAMPLE_VREFH_EVAL (3U) |
| 56 | + |
| 57 | +#define ADC_SAR_IP_HAS_CWSELR0 (1U) |
| 58 | +#define ADC_SAR_IP_HAS_CWSELR1 (0U) |
| 59 | +#define ADC_SAR_IP_HAS_CWSELR2 (0U) |
| 60 | +#define ADC_SAR_IP_HAS_CWSELR3 (0U) |
| 61 | +#define ADC_SAR_IP_HAS_CWSELR4 (1U) |
| 62 | +#define ADC_SAR_IP_HAS_CWSELR5 (0U) |
| 63 | +#define ADC_SAR_IP_HAS_CWSELR6 (0U) |
| 64 | +#define ADC_SAR_IP_HAS_CWSELR7 (0U) |
| 65 | +#define ADC_SAR_IP_HAS_CWSELR8 (0U) |
| 66 | +#define ADC_SAR_IP_HAS_CWSELR9 (0U) |
| 67 | +#define ADC_SAR_IP_HAS_CWSELR10 (0U) |
| 68 | +#define ADC_SAR_IP_HAS_CWSELR11 (0U) |
| 69 | + |
| 70 | +#define ADC_SAR_IP_HAS_ADCLKSEL (1U) |
| 71 | + |
| 72 | +#define ADC_SAR_IP_MSR_ADCSTATUS_POWER_DOWN (1U) |
| 73 | +#define ADC_SAR_IP_MSR_ADCSTATUS_IDLE (0U) |
| 74 | + |
| 75 | +#define ADC_SAR_IP_BAD_ACCESS_PROT_FEATURE (1U) |
| 76 | +#define ADC_SAR_IP_BAD_ACCESS_PROT_CHANNEL (1U) |
| 77 | +#define ADC_SAR_IP_HAS_CTU_TRIGGER_MODE (1U) |
| 78 | +#define ADC_SAR_IP_HAS_CTU (1U) |
| 79 | +#define ADC_SAR_IP_HAS_CLKSEL_EXTENDED (0U) |
| 80 | +#define ADC_SAR_IP_W1C_ABORT (0U) |
| 81 | +#define ADC_SAR_IP_HAS_TEMPSENSE_CHN (0U) |
| 82 | +#define ADC_SAR_IP_SELFTEST_FULL_CLK (1U) |
| 83 | + |
| 84 | +#define ADC_SAR_IP_HAS_SELFTEST_STCR1 (1U) |
| 85 | +#define ADC_SAR_IP_HAS_SELFTEST_STCR3 (1U) |
| 86 | +#define ADC_SAR_IP_HAS_BANDGAP_STATUS (0U) |
| 87 | +#define ADC_SAR_IP_HAS_SELFTEST_USE_CH32 (0U) |
| 88 | + |
| 89 | +#define ADC_SAR_IP_ABORTCHAIN_WORKAROUND (1U) |
| 90 | + |
| 91 | + /* 31-28 3-0 63-60 35-32 95-92 67-64 |
| 92 | + \_/ \_/ \_/ \_/ \_/ \_/ |
| 93 | + |......| |......| |......| */ |
| 94 | +#define FEATURE_ADC_CHN_AVAIL_BITMAP {{0x000000FFU, 0x00000079U}, /* 0 */ \ |
| 95 | + {0x000000FFU, 0x00000079U}, /* 1 */ \ |
| 96 | + {0x00FFFFFFU, 0x00000000U}, /* 2 (ADC_AE_0_0) */ \ |
| 97 | + {0x00001FFFU, 0x00000000U}, /* 3 (ADC_AE_1_0) */ \ |
| 98 | + {0x00001FFFU, 0x00000000U}, /* 4 (ADC_AE_1_1) */ \ |
| 99 | + {0x00001FFFU, 0x00000000U}, /* 5 (ADC_AE_2_0) */ \ |
| 100 | + {0x00001FFFU, 0x00000000U}, /* 6 (ADC_AE_2_1) */ \ |
| 101 | + } |
| 102 | + /* Adc Channels are divided into 2 Groups. */ |
| 103 | + /* This array shows max number of channels of each group. */ |
| 104 | + /* There are some registers that relate to this one: CEOCFR, CIMR, DMAR, PSR, NCMR, JCMR,... */ |
| 105 | + /* Should be same with ADC_CDRx_COUNT in header file (from Base) */ |
| 106 | +#define FEATURE_ADC_MAX_CHN_COUNT {{8U, 8U}, /* 0 */ \ |
| 107 | + {8U, 8U}, /* 1 */ \ |
| 108 | + {24U, 0U}, /* 2 (ADC_AE_0_0) */ \ |
| 109 | + {13U, 0U}, /* 3 (ADC_AE_1_0) */ \ |
| 110 | + {13U, 0U}, /* 4 (ADC_AE_1_1) */ \ |
| 111 | + {13U, 0U}, /* 5 (ADC_AE_2_0) */ \ |
| 112 | + {13U, 0U}, /* 6 (ADC_AE_2_1) */ \ |
| 113 | + } |
| 114 | + /* Number of group channels of each unit */ |
| 115 | + /* Unit 0 / 1 / 2 (ADC_AE_0_0)/ 3 (ADC_AE_1_0)/ 4 (ADC_AE_1_1)/ 5 (ADC_AE_2_0)/ 6 (ADC_AE_2_1) */ |
| 116 | +#define FEATURE_ADC_MAX_GROUP_COUNT { 2U, 2U, 1U, 1U, 1U, 1U, 1U } |
| 117 | + /* Bit0: DSDR is available |
| 118 | + Bit1: PSCR is available |
| 119 | + Bit2: CTU is available |
| 120 | + Bit3: CTU trigger mode is available */ |
| 121 | +#define FEATURE_ADC_FEAT_AVAIL_BITMAP {0x0000000EU, /* 0 */ \ |
| 122 | + 0x0000000EU, /* 1 */ \ |
| 123 | + 0x00000002U, /* 2 (ADC_AE_0_0) */ \ |
| 124 | + 0x00000006U, /* 3 (ADC_AE_1_0) */ \ |
| 125 | + 0x00000006U, /* 4 (ADC_AE_1_1) */ \ |
| 126 | + 0x00000006U, /* 5 (ADC_AE_2_0) */ \ |
| 127 | + 0x00000006U, /* 6 (ADC_AE_2_1) */ \ |
| 128 | + } |
| 129 | + |
| 130 | +/* Register access defines */ |
| 131 | +#define REG_ACCESS(reg, index) (*(volatile uint32*)(&(((&(reg))[(index)])))) |
| 132 | +#define REG_READ(reg, index) (*(volatile const uint32*)(&(((&(reg))[(index)])))) |
| 133 | + |
| 134 | +#define CEOCFR(base, regIndex) REG_ACCESS((base)->CEOCFR0, (regIndex)) |
| 135 | +#define CIMR(base, regIndex) REG_ACCESS((base)->CIMR0, (regIndex)) |
| 136 | +#define DMAR(base, regIndex) REG_ACCESS((base)->DMAR0, (regIndex)) |
| 137 | +#define PSR(base, regIndex) REG_ACCESS((base)->PSR0, (regIndex)) |
| 138 | +#define CTR(base, regIndex) REG_ACCESS((base)->CTR0, (regIndex)) |
| 139 | +#define NCMR(base, regIndex) REG_ACCESS((base)->NCMR0, (regIndex)) |
| 140 | +#define JCMR(base, regIndex) REG_ACCESS((base)->JCMR0, (regIndex)) |
| 141 | +#define CWSELR(base, regIndex) REG_ACCESS((base)->CWSELR, (regIndex)) |
| 142 | +#define CWENR(base, regIndex) REG_ACCESS((base)->CWENR0, (regIndex)) |
| 143 | +#define AWORR(base, regIndex) REG_ACCESS((base)->AWORR0, (regIndex)) |
| 144 | +#define CDR(base, chanIndex) REG_READ((base)->PCDR[0U], (chanIndex)) |
| 145 | +#define CDR_AE(base, chanIndex) REG_READ((base)->CDR[0U], (chanIndex)) |
| 146 | + |
| 147 | +/* MCR */ |
| 148 | +#define ADC_MCR_ADCLKSEL_MASK ADC_MCR_ADCLKSE_MASK |
| 149 | +#define ADC_MCR_ADCLKSEL(x) ADC_MCR_ADCLKSE(x) |
| 150 | + |
| 151 | +/* CTR */ |
| 152 | +#define ADC_CTR_INPSAMP(x) ADC_CTR0_INPSAMP(x) |
| 153 | + |
| 154 | +/* NCMR */ |
| 155 | +#define ADC_NCMR_CH0(x) ADC_NCMR0_CH0(x) |
| 156 | + |
| 157 | +/* CDR */ |
| 158 | +#define ADC_CDR_CDATA_MASK ADC_PCDR_CDATA_MASK |
| 159 | +#define ADC_CDR_CDATA_SHIFT ADC_PCDR_CDATA_SHIFT |
| 160 | +#define ADC_CDR_RESULT_MASK ADC_PCDR_RESULT_MASK |
| 161 | +#define ADC_CDR_RESULT(x) ADC_PCDR_RESULT(x) |
| 162 | +#define ADC_CDR_OVERW_MASK ADC_PCDR_OVERW_MASK |
| 163 | +#define ADC_CDR_OVERW_SHIFT ADC_PCDR_OVERW_SHIFT |
| 164 | +#define ADC_CDR_VALID_MASK ADC_PCDR_VALID_MASK |
| 165 | + |
| 166 | +/* USROFSGN - Offset and Gain User */ |
| 167 | +#define ADC_USER_OFFSET_GAIN_REG USROFSGN |
| 168 | +#define ADC_USER_OFFSET(x) ADC_USROFSGN_OFFSUSER(x) |
| 169 | +#define ADC_USER_GAIN(x) ADC_USROFSGN_GAINUSER(x) |
| 170 | + |
| 171 | +#define ADC_AE_USER_OFFSET_GAIN_REG OFSGNUSR |
| 172 | +#define ADC_AE_USER_OFFSET(x) SAR_ADC_AE_OFSGNUSR_OFFSET_USER(x) |
| 173 | +#define ADC_AE_USER_GAIN(x) SAR_ADC_AE_OFSGNUSR_GAIN_USER(x) |
| 174 | + |
| 175 | +/*! @name CALBISTREG - Control And Calibration Status */ |
| 176 | +/*! @{ */ |
| 177 | + |
| 178 | +#define ADC_SAR_IP_CALBISTREG_TEST_EN_MASK SAR_ADC_AE_CALBISTREG_TEST_EN_MASK |
| 179 | +#define ADC_SAR_IP_CALBISTREG_TEST_EN(x) SAR_ADC_AE_CALBISTREG_TEST_EN(x) |
| 180 | +#define ADC_SAR_IP_CALBISTREG_TEST_FAIL_MASK SAR_ADC_AE_CALBISTREG_TEST_FAIL_MASK |
| 181 | +#define ADC_SAR_IP_CALBISTREG_AVG_EN_MASK SAR_ADC_AE_CALBISTREG_AVG_EN_MASK |
| 182 | +#define ADC_SAR_IP_CALBISTREG_AVG_EN(x) SAR_ADC_AE_CALBISTREG_AVG_EN(x) |
| 183 | +#define ADC_SAR_IP_CALBISTREG_NR_SMPL_MASK SAR_ADC_AE_CALBISTREG_NR_SMPL_MASK |
| 184 | +#define ADC_SAR_IP_CALBISTREG_NR_SMPL(x) SAR_ADC_AE_CALBISTREG_NR_SMPL(x) |
| 185 | +#define ADC_SAR_IP_CALBISTREG_C_T_BUSY_MASK SAR_ADC_AE_CALBISTREG_C_T_BUSY_MASK |
| 186 | +#define ADC_SAR_IP_CALBISTREG_TSAMP_MASK SAR_ADC_AE_CALBISTREG_TSAMP_MASK |
| 187 | + |
| 188 | +#ifdef __cplusplus |
| 189 | +} |
| 190 | +#endif |
| 191 | + |
| 192 | +/** @} */ |
| 193 | + |
| 194 | +#endif /* ADC_SAR_IP_HEADERWRAPPER_S32XX_H */ |
0 commit comments