nrf/twim: deconfigure pins on drop
This commit is contained in:
@ -12,6 +12,8 @@ use gpio::pin_cnf::DRIVE_A;
|
||||
use crate::pac;
|
||||
use crate::pac::p0 as gpio;
|
||||
|
||||
use self::sealed::Pin as _;
|
||||
|
||||
/// A GPIO port with up to 32 pins.
|
||||
#[derive(Debug, Eq, PartialEq)]
|
||||
pub enum Port {
|
||||
@ -487,6 +489,17 @@ impl OptionalPin for NoPin {
|
||||
|
||||
// ====================
|
||||
|
||||
pub(crate) fn deconfigure_pin(psel_bits: u32) {
|
||||
if psel_bits & 0x8000_0000 != 0 {
|
||||
return;
|
||||
}
|
||||
unsafe {
|
||||
AnyPin::steal(psel_bits as _).conf().reset();
|
||||
}
|
||||
}
|
||||
|
||||
// ====================
|
||||
|
||||
macro_rules! impl_pin {
|
||||
($type:ident, $port_num:expr, $pin_num:expr) => {
|
||||
impl crate::gpio::Pin for peripherals::$type {}
|
||||
|
Reference in New Issue
Block a user