129 DL_GPIO_disableOutput(port_, pin_mask_);
130 DL_GPIO_disableInterrupt(port_, pin_mask_);
131 DL_GPIO_clearInterruptStatus(port_, pin_mask_);
137 DL_GPIO_RESISTOR res = DL_GPIO_RESISTOR_NONE;
140 res = DL_GPIO_RESISTOR_PULL_UP;
144 res = DL_GPIO_RESISTOR_PULL_DOWN;
146 DL_GPIO_initDigitalInputFeatures(pincm_, DL_GPIO_INVERSION_DISABLE, res,
147 DL_GPIO_HYSTERESIS_DISABLE,
148 DL_GPIO_WAKEUP_DISABLE);
154 DL_GPIO_RESISTOR res = DL_GPIO_RESISTOR_NONE;
157 res = DL_GPIO_RESISTOR_PULL_UP;
161 res = DL_GPIO_RESISTOR_PULL_DOWN;
164 DL_GPIO_initDigitalOutputFeatures(pincm_, DL_GPIO_INVERSION_DISABLE, res,
165 DL_GPIO_DRIVE_STRENGTH_LOW, DL_GPIO_HIZ_DISABLE);
167 volatile uint32_t* pincm_reg = &IOMUX->SECCFG.PINCM[pincm_];
168 *pincm_reg |= IOMUX_PINCM_INENA_ENABLE;
170 DL_GPIO_clearPins(port_, pin_mask_);
172 DL_GPIO_enableOutput(port_, pin_mask_);
180 DL_GPIO_RESISTOR res = DL_GPIO_RESISTOR_NONE;
183 res = DL_GPIO_RESISTOR_PULL_UP;
186 DL_GPIO_initDigitalInputFeatures(pincm_, DL_GPIO_INVERSION_DISABLE, res,
187 DL_GPIO_HYSTERESIS_DISABLE,
188 DL_GPIO_WAKEUP_DISABLE);
190 DL_GPIO_clearPins(port_, pin_mask_);
191 DL_GPIO_disableOutput(port_, pin_mask_);
199 DL_GPIO_RESISTOR res = DL_GPIO_RESISTOR_NONE;
202 res = DL_GPIO_RESISTOR_PULL_UP;
206 res = DL_GPIO_RESISTOR_PULL_DOWN;
209 DL_GPIO_initDigitalInputFeatures(pincm_, DL_GPIO_INVERSION_DISABLE, res,
210 DL_GPIO_HYSTERESIS_DISABLE,
211 DL_GPIO_WAKEUP_DISABLE);
214 MSPM0_GPIO_GetPolarityMask(__builtin_ctz(pin_mask_), config.
direction);
217 uint32_t pin_idx = __builtin_ctz(pin_mask_);
219 constexpr uint32_t BITS_PER_PIN = 2;
220 constexpr uint32_t CLEAR_PATTERN = 0x3U;
222 uint32_t shift = (pin_idx % 16) * BITS_PER_PIN;
223 uint32_t clear_mask = CLEAR_PATTERN << shift;
227 uint32_t current_polarity = DL_GPIO_getLowerPinsPolarity(port_);
228 current_polarity &= ~clear_mask;
229 current_polarity |= pol_mask;
230 port_->POLARITY15_0 = current_polarity;
234 uint32_t current_polarity = DL_GPIO_getUpperPinsPolarity(port_);
235 current_polarity &= ~clear_mask;
236 current_polarity |= pol_mask;
237 port_->POLARITY31_16 = current_polarity;
241 DL_GPIO_clearInterruptStatus(port_, pin_mask_);
242 DL_GPIO_enableInterrupt(port_, pin_mask_);