136 DL_GPIO_disableOutput(port_, pin_mask_);
137 DL_GPIO_disableInterrupt(port_, pin_mask_);
138 DL_GPIO_clearInterruptStatus(port_, pin_mask_);
144 DL_GPIO_RESISTOR res = DL_GPIO_RESISTOR_NONE;
147 res = DL_GPIO_RESISTOR_PULL_UP;
151 res = DL_GPIO_RESISTOR_PULL_DOWN;
153 DL_GPIO_initDigitalInputFeatures(pincm_, DL_GPIO_INVERSION_DISABLE, res,
154 DL_GPIO_HYSTERESIS_DISABLE,
155 DL_GPIO_WAKEUP_DISABLE);
161 DL_GPIO_RESISTOR res = DL_GPIO_RESISTOR_NONE;
164 res = DL_GPIO_RESISTOR_PULL_UP;
168 res = DL_GPIO_RESISTOR_PULL_DOWN;
171 DL_GPIO_initDigitalOutputFeatures(pincm_, DL_GPIO_INVERSION_DISABLE, res,
172 DL_GPIO_DRIVE_STRENGTH_LOW, DL_GPIO_HIZ_DISABLE);
174 volatile uint32_t* pincm_reg = &IOMUX->SECCFG.PINCM[pincm_];
175 *pincm_reg |= IOMUX_PINCM_INENA_ENABLE;
177 DL_GPIO_clearPins(port_, pin_mask_);
179 DL_GPIO_enableOutput(port_, pin_mask_);
187 DL_GPIO_RESISTOR res = DL_GPIO_RESISTOR_NONE;
190 res = DL_GPIO_RESISTOR_PULL_UP;
193 DL_GPIO_initDigitalInputFeatures(pincm_, DL_GPIO_INVERSION_DISABLE, res,
194 DL_GPIO_HYSTERESIS_DISABLE,
195 DL_GPIO_WAKEUP_DISABLE);
197 DL_GPIO_clearPins(port_, pin_mask_);
198 DL_GPIO_disableOutput(port_, pin_mask_);
206 DL_GPIO_RESISTOR res = DL_GPIO_RESISTOR_NONE;
209 res = DL_GPIO_RESISTOR_PULL_UP;
213 res = DL_GPIO_RESISTOR_PULL_DOWN;
216 DL_GPIO_initDigitalInputFeatures(pincm_, DL_GPIO_INVERSION_DISABLE, res,
217 DL_GPIO_HYSTERESIS_DISABLE,
218 DL_GPIO_WAKEUP_DISABLE);
221 MSPM0_GPIO_GetPolarityMask(__builtin_ctz(pin_mask_), config.
direction);
224 uint32_t pin_idx = __builtin_ctz(pin_mask_);
226 constexpr uint32_t BITS_PER_PIN = 2;
227 constexpr uint32_t CLEAR_PATTERN = 0x3U;
229 uint32_t shift = (pin_idx % 16) * BITS_PER_PIN;
230 uint32_t clear_mask = CLEAR_PATTERN << shift;
234 uint32_t current_polarity = DL_GPIO_getLowerPinsPolarity(port_);
235 current_polarity &= ~clear_mask;
236 current_polarity |= pol_mask;
237 port_->POLARITY15_0 = current_polarity;
241 uint32_t current_polarity = DL_GPIO_getUpperPinsPolarity(port_);
242 current_polarity &= ~clear_mask;
243 current_polarity |= pol_mask;
244 port_->POLARITY31_16 = current_polarity;
248 DL_GPIO_clearInterruptStatus(port_, pin_mask_);
249 DL_GPIO_enableInterrupt(port_, pin_mask_);