673 lines
17 KiB
Rust
673 lines
17 KiB
Rust
pub(crate) mod sealed {
|
|
pub trait Instance: crate::rcc::sealed::RccPeripheral {
|
|
fn regs() -> crate::pac::fmc::Fmc;
|
|
}
|
|
|
|
macro_rules! declare_pin {
|
|
($name:ident) => {
|
|
pub trait $name {
|
|
fn configure(&mut self);
|
|
}
|
|
};
|
|
}
|
|
|
|
declare_pin!(SDNWEPin);
|
|
declare_pin!(SDNCASPin);
|
|
declare_pin!(SDNRASPin);
|
|
|
|
declare_pin!(SDNE0Pin);
|
|
declare_pin!(SDNE1Pin);
|
|
|
|
declare_pin!(SDCKE0Pin);
|
|
declare_pin!(SDCKE1Pin);
|
|
|
|
declare_pin!(SDCLKPin);
|
|
|
|
declare_pin!(NBL0Pin);
|
|
declare_pin!(NBL1Pin);
|
|
declare_pin!(NBL2Pin);
|
|
declare_pin!(NBL3Pin);
|
|
|
|
declare_pin!(INTPin);
|
|
declare_pin!(NLPin);
|
|
declare_pin!(NWaitPin);
|
|
|
|
declare_pin!(NE1Pin);
|
|
declare_pin!(NE2Pin);
|
|
declare_pin!(NE3Pin);
|
|
declare_pin!(NE4Pin);
|
|
|
|
declare_pin!(NCEPin);
|
|
declare_pin!(NOEPin);
|
|
declare_pin!(NWEPin);
|
|
declare_pin!(ClkPin);
|
|
|
|
declare_pin!(BA0Pin);
|
|
declare_pin!(BA1Pin);
|
|
|
|
declare_pin!(D0Pin);
|
|
declare_pin!(D1Pin);
|
|
declare_pin!(D2Pin);
|
|
declare_pin!(D3Pin);
|
|
declare_pin!(D4Pin);
|
|
declare_pin!(D5Pin);
|
|
declare_pin!(D6Pin);
|
|
declare_pin!(D7Pin);
|
|
declare_pin!(D8Pin);
|
|
declare_pin!(D9Pin);
|
|
declare_pin!(D10Pin);
|
|
declare_pin!(D11Pin);
|
|
declare_pin!(D12Pin);
|
|
declare_pin!(D13Pin);
|
|
declare_pin!(D14Pin);
|
|
declare_pin!(D15Pin);
|
|
declare_pin!(D16Pin);
|
|
declare_pin!(D17Pin);
|
|
declare_pin!(D18Pin);
|
|
declare_pin!(D19Pin);
|
|
declare_pin!(D20Pin);
|
|
declare_pin!(D21Pin);
|
|
declare_pin!(D22Pin);
|
|
declare_pin!(D23Pin);
|
|
declare_pin!(D24Pin);
|
|
declare_pin!(D25Pin);
|
|
declare_pin!(D26Pin);
|
|
declare_pin!(D27Pin);
|
|
declare_pin!(D28Pin);
|
|
declare_pin!(D29Pin);
|
|
declare_pin!(D30Pin);
|
|
declare_pin!(D31Pin);
|
|
|
|
declare_pin!(DA0Pin);
|
|
declare_pin!(DA1Pin);
|
|
declare_pin!(DA2Pin);
|
|
declare_pin!(DA3Pin);
|
|
declare_pin!(DA4Pin);
|
|
declare_pin!(DA5Pin);
|
|
declare_pin!(DA6Pin);
|
|
declare_pin!(DA7Pin);
|
|
declare_pin!(DA8Pin);
|
|
declare_pin!(DA9Pin);
|
|
declare_pin!(DA10Pin);
|
|
declare_pin!(DA11Pin);
|
|
declare_pin!(DA12Pin);
|
|
declare_pin!(DA13Pin);
|
|
declare_pin!(DA14Pin);
|
|
declare_pin!(DA15Pin);
|
|
|
|
declare_pin!(A0Pin);
|
|
declare_pin!(A1Pin);
|
|
declare_pin!(A2Pin);
|
|
declare_pin!(A3Pin);
|
|
declare_pin!(A4Pin);
|
|
declare_pin!(A5Pin);
|
|
declare_pin!(A6Pin);
|
|
declare_pin!(A7Pin);
|
|
declare_pin!(A8Pin);
|
|
declare_pin!(A9Pin);
|
|
declare_pin!(A10Pin);
|
|
declare_pin!(A11Pin);
|
|
declare_pin!(A12Pin);
|
|
declare_pin!(A13Pin);
|
|
declare_pin!(A14Pin);
|
|
declare_pin!(A15Pin);
|
|
declare_pin!(A16Pin);
|
|
declare_pin!(A17Pin);
|
|
declare_pin!(A18Pin);
|
|
declare_pin!(A19Pin);
|
|
declare_pin!(A20Pin);
|
|
declare_pin!(A21Pin);
|
|
declare_pin!(A22Pin);
|
|
declare_pin!(A23Pin);
|
|
declare_pin!(A24Pin);
|
|
declare_pin!(A25Pin);
|
|
}
|
|
|
|
macro_rules! declare_pin {
|
|
($name:ident, $fmc_pin:ident) => {
|
|
pub trait $name: sealed::$name + stm32_fmc::$fmc_pin + 'static {}
|
|
};
|
|
}
|
|
|
|
declare_pin!(SDNWEPin, SDNWE);
|
|
declare_pin!(SDNCASPin, SDNCAS);
|
|
declare_pin!(SDNRASPin, SDNRAS);
|
|
|
|
declare_pin!(SDNE0Pin, SDNE0);
|
|
declare_pin!(SDNE1Pin, SDNE1);
|
|
|
|
declare_pin!(SDCKE0Pin, SDCKE0);
|
|
declare_pin!(SDCKE1Pin, SDCKE1);
|
|
|
|
declare_pin!(SDCLKPin, SDCLK);
|
|
|
|
declare_pin!(NBL0Pin, NBL0);
|
|
declare_pin!(NBL1Pin, NBL1);
|
|
declare_pin!(NBL2Pin, NBL2);
|
|
declare_pin!(NBL3Pin, NBL3);
|
|
|
|
declare_pin!(INTPin, INT);
|
|
declare_pin!(NLPin, NL);
|
|
declare_pin!(NWaitPin, NWAIT);
|
|
|
|
declare_pin!(NE1Pin, NE1);
|
|
declare_pin!(NE2Pin, NE2);
|
|
declare_pin!(NE3Pin, NE3);
|
|
declare_pin!(NE4Pin, NE4);
|
|
|
|
declare_pin!(NCEPin, NCE);
|
|
declare_pin!(NOEPin, NOE);
|
|
declare_pin!(NWEPin, NWE);
|
|
declare_pin!(ClkPin, CLK);
|
|
|
|
declare_pin!(BA0Pin, BA0);
|
|
declare_pin!(BA1Pin, BA1);
|
|
|
|
declare_pin!(D0Pin, D0);
|
|
declare_pin!(D1Pin, D1);
|
|
declare_pin!(D2Pin, D2);
|
|
declare_pin!(D3Pin, D3);
|
|
declare_pin!(D4Pin, D4);
|
|
declare_pin!(D5Pin, D5);
|
|
declare_pin!(D6Pin, D6);
|
|
declare_pin!(D7Pin, D7);
|
|
declare_pin!(D8Pin, D8);
|
|
declare_pin!(D9Pin, D9);
|
|
declare_pin!(D10Pin, D10);
|
|
declare_pin!(D11Pin, D11);
|
|
declare_pin!(D12Pin, D12);
|
|
declare_pin!(D13Pin, D13);
|
|
declare_pin!(D14Pin, D14);
|
|
declare_pin!(D15Pin, D15);
|
|
declare_pin!(D16Pin, D16);
|
|
declare_pin!(D17Pin, D17);
|
|
declare_pin!(D18Pin, D18);
|
|
declare_pin!(D19Pin, D19);
|
|
declare_pin!(D20Pin, D20);
|
|
declare_pin!(D21Pin, D21);
|
|
declare_pin!(D22Pin, D22);
|
|
declare_pin!(D23Pin, D23);
|
|
declare_pin!(D24Pin, D24);
|
|
declare_pin!(D25Pin, D25);
|
|
declare_pin!(D26Pin, D26);
|
|
declare_pin!(D27Pin, D27);
|
|
declare_pin!(D28Pin, D28);
|
|
declare_pin!(D29Pin, D29);
|
|
declare_pin!(D30Pin, D30);
|
|
declare_pin!(D31Pin, D31);
|
|
|
|
declare_pin!(DA0Pin, DA0);
|
|
declare_pin!(DA1Pin, DA1);
|
|
declare_pin!(DA2Pin, DA2);
|
|
declare_pin!(DA3Pin, DA3);
|
|
declare_pin!(DA4Pin, DA4);
|
|
declare_pin!(DA5Pin, DA5);
|
|
declare_pin!(DA6Pin, DA6);
|
|
declare_pin!(DA7Pin, DA7);
|
|
declare_pin!(DA8Pin, DA8);
|
|
declare_pin!(DA9Pin, DA9);
|
|
declare_pin!(DA10Pin, DA10);
|
|
declare_pin!(DA11Pin, DA11);
|
|
declare_pin!(DA12Pin, DA12);
|
|
declare_pin!(DA13Pin, DA13);
|
|
declare_pin!(DA14Pin, DA14);
|
|
declare_pin!(DA15Pin, DA15);
|
|
|
|
declare_pin!(A0Pin, A0);
|
|
declare_pin!(A1Pin, A1);
|
|
declare_pin!(A2Pin, A2);
|
|
declare_pin!(A3Pin, A3);
|
|
declare_pin!(A4Pin, A4);
|
|
declare_pin!(A5Pin, A5);
|
|
declare_pin!(A6Pin, A6);
|
|
declare_pin!(A7Pin, A7);
|
|
declare_pin!(A8Pin, A8);
|
|
declare_pin!(A9Pin, A9);
|
|
declare_pin!(A10Pin, A10);
|
|
declare_pin!(A11Pin, A11);
|
|
declare_pin!(A12Pin, A12);
|
|
declare_pin!(A13Pin, A13);
|
|
declare_pin!(A14Pin, A14);
|
|
declare_pin!(A15Pin, A15);
|
|
declare_pin!(A16Pin, A16);
|
|
declare_pin!(A17Pin, A17);
|
|
declare_pin!(A18Pin, A18);
|
|
declare_pin!(A19Pin, A19);
|
|
declare_pin!(A20Pin, A20);
|
|
declare_pin!(A21Pin, A21);
|
|
declare_pin!(A22Pin, A22);
|
|
declare_pin!(A23Pin, A23);
|
|
declare_pin!(A24Pin, A24);
|
|
declare_pin!(A25Pin, A25);
|
|
|
|
macro_rules! impl_pin {
|
|
($pin:ident, $signal:ident, $fmc_name:ident, $af:expr) => {
|
|
impl sealed::$signal for crate::peripherals::$pin {
|
|
fn configure(&mut self) {
|
|
use crate::gpio::sealed::{AFType::OutputPushPull, Pin as SealedPin};
|
|
use crate::gpio::Pin;
|
|
use crate::gpio::Speed;
|
|
use crate::pac::gpio::vals::Pupdr;
|
|
|
|
critical_section::with(|_| unsafe {
|
|
self.set_as_af($af, OutputPushPull);
|
|
self.set_speed(Speed::VeryHigh);
|
|
|
|
self.block()
|
|
.pupdr()
|
|
.modify(|w| w.set_pupdr(self.pin() as usize, Pupdr::PULLUP));
|
|
})
|
|
}
|
|
}
|
|
|
|
impl stm32_fmc::$fmc_name for crate::peripherals::$pin {}
|
|
|
|
impl $signal for crate::peripherals::$pin {}
|
|
};
|
|
}
|
|
|
|
crate::pac::peripheral_pins!(
|
|
($inst:ident, fmc, FMC, $pin:ident, A0, $af:expr) => {
|
|
impl_pin!($pin, A0Pin, A0, $af);
|
|
};
|
|
|
|
($inst:ident, fmc, FMC, $pin:ident, A1, $af:expr) => {
|
|
impl_pin!($pin, A1Pin, A1, $af);
|
|
};
|
|
|
|
($inst:ident, fmc, FMC, $pin:ident, A2, $af:expr) => {
|
|
impl_pin!($pin, A2Pin, A2, $af);
|
|
};
|
|
|
|
($inst:ident, fmc, FMC, $pin:ident, A3, $af:expr) => {
|
|
impl_pin!($pin, A3Pin, A3, $af);
|
|
};
|
|
|
|
($inst:ident, fmc, FMC, $pin:ident, A4, $af:expr) => {
|
|
impl_pin!($pin, A4Pin, A4, $af);
|
|
};
|
|
|
|
($inst:ident, fmc, FMC, $pin:ident, A5, $af:expr) => {
|
|
impl_pin!($pin, A5Pin, A5, $af);
|
|
};
|
|
|
|
($inst:ident, fmc, FMC, $pin:ident, A6, $af:expr) => {
|
|
impl_pin!($pin, A6Pin, A6, $af);
|
|
};
|
|
|
|
($inst:ident, fmc, FMC, $pin:ident, A7, $af:expr) => {
|
|
impl_pin!($pin, A7Pin, A7, $af);
|
|
};
|
|
|
|
($inst:ident, fmc, FMC, $pin:ident, A8, $af:expr) => {
|
|
impl_pin!($pin, A8Pin, A8, $af);
|
|
};
|
|
|
|
($inst:ident, fmc, FMC, $pin:ident, A9, $af:expr) => {
|
|
impl_pin!($pin, A9Pin, A9, $af);
|
|
};
|
|
|
|
($inst:ident, fmc, FMC, $pin:ident, A10, $af:expr) => {
|
|
impl_pin!($pin, A10Pin, A10, $af);
|
|
};
|
|
|
|
($inst:ident, fmc, FMC, $pin:ident, A11, $af:expr) => {
|
|
impl_pin!($pin, A11Pin, A11, $af);
|
|
};
|
|
|
|
($inst:ident, fmc, FMC, $pin:ident, A12, $af:expr) => {
|
|
impl_pin!($pin, A12Pin, A12, $af);
|
|
};
|
|
|
|
($inst:ident, fmc, FMC, $pin:ident, A13, $af:expr) => {
|
|
impl_pin!($pin, A13Pin, A13, $af);
|
|
};
|
|
|
|
($inst:ident, fmc, FMC, $pin:ident, A14, $af:expr) => {
|
|
impl_pin!($pin, A14Pin, A14, $af);
|
|
};
|
|
|
|
($inst:ident, fmc, FMC, $pin:ident, A15, $af:expr) => {
|
|
impl_pin!($pin, A15Pin, A15, $af);
|
|
};
|
|
|
|
($inst:ident, fmc, FMC, $pin:ident, A16, $af:expr) => {
|
|
impl_pin!($pin, A16Pin, A16, $af);
|
|
};
|
|
|
|
($inst:ident, fmc, FMC, $pin:ident, A17, $af:expr) => {
|
|
impl_pin!($pin, A17Pin, A17, $af);
|
|
};
|
|
|
|
($inst:ident, fmc, FMC, $pin:ident, A18, $af:expr) => {
|
|
impl_pin!($pin, A18Pin, A18, $af);
|
|
};
|
|
|
|
($inst:ident, fmc, FMC, $pin:ident, A19, $af:expr) => {
|
|
impl_pin!($pin, A19Pin, A19, $af);
|
|
};
|
|
|
|
($inst:ident, fmc, FMC, $pin:ident, A20, $af:expr) => {
|
|
impl_pin!($pin, A20Pin, A20, $af);
|
|
};
|
|
|
|
($inst:ident, fmc, FMC, $pin:ident, A21, $af:expr) => {
|
|
impl_pin!($pin, A21Pin, A21, $af);
|
|
};
|
|
|
|
($inst:ident, fmc, FMC, $pin:ident, A22, $af:expr) => {
|
|
impl_pin!($pin, A22Pin, A22, $af);
|
|
};
|
|
|
|
($inst:ident, fmc, FMC, $pin:ident, A23, $af:expr) => {
|
|
impl_pin!($pin, A23Pin, A23, $af);
|
|
};
|
|
|
|
($inst:ident, fmc, FMC, $pin:ident, A24, $af:expr) => {
|
|
impl_pin!($pin, A24Pin, A24, $af);
|
|
};
|
|
|
|
($inst:ident, fmc, FMC, $pin:ident, A25, $af:expr) => {
|
|
impl_pin!($pin, A25Pin, A25, $af);
|
|
};
|
|
);
|
|
|
|
crate::pac::peripheral_pins!(
|
|
($inst:ident, fmc, FMC, $pin:ident, D0, $af:expr) => {
|
|
impl_pin!($pin, D0Pin, D0, $af);
|
|
};
|
|
|
|
($inst:ident, fmc, FMC, $pin:ident, D1, $af:expr) => {
|
|
impl_pin!($pin, D1Pin, D1, $af);
|
|
};
|
|
|
|
($inst:ident, fmc, FMC, $pin:ident, D2, $af:expr) => {
|
|
impl_pin!($pin, D2Pin, D2, $af);
|
|
};
|
|
|
|
($inst:ident, fmc, FMC, $pin:ident, D3, $af:expr) => {
|
|
impl_pin!($pin, D3Pin, D3, $af);
|
|
};
|
|
|
|
($inst:ident, fmc, FMC, $pin:ident, D4, $af:expr) => {
|
|
impl_pin!($pin, D4Pin, D4, $af);
|
|
};
|
|
|
|
($inst:ident, fmc, FMC, $pin:ident, D5, $af:expr) => {
|
|
impl_pin!($pin, D5Pin, D5, $af);
|
|
};
|
|
|
|
($inst:ident, fmc, FMC, $pin:ident, D6, $af:expr) => {
|
|
impl_pin!($pin, D6Pin, D6, $af);
|
|
};
|
|
|
|
($inst:ident, fmc, FMC, $pin:ident, D7, $af:expr) => {
|
|
impl_pin!($pin, D7Pin, D7, $af);
|
|
};
|
|
|
|
($inst:ident, fmc, FMC, $pin:ident, D8, $af:expr) => {
|
|
impl_pin!($pin, D8Pin, D8, $af);
|
|
};
|
|
|
|
($inst:ident, fmc, FMC, $pin:ident, D9, $af:expr) => {
|
|
impl_pin!($pin, D9Pin, D9, $af);
|
|
};
|
|
|
|
($inst:ident, fmc, FMC, $pin:ident, D10, $af:expr) => {
|
|
impl_pin!($pin, D10Pin, D10, $af);
|
|
};
|
|
|
|
($inst:ident, fmc, FMC, $pin:ident, D11, $af:expr) => {
|
|
impl_pin!($pin, D11Pin, D11, $af);
|
|
};
|
|
|
|
($inst:ident, fmc, FMC, $pin:ident, D12, $af:expr) => {
|
|
impl_pin!($pin, D12Pin, D12, $af);
|
|
};
|
|
|
|
($inst:ident, fmc, FMC, $pin:ident, D13, $af:expr) => {
|
|
impl_pin!($pin, D13Pin, D13, $af);
|
|
};
|
|
|
|
($inst:ident, fmc, FMC, $pin:ident, D14, $af:expr) => {
|
|
impl_pin!($pin, D14Pin, D14, $af);
|
|
};
|
|
|
|
($inst:ident, fmc, FMC, $pin:ident, D15, $af:expr) => {
|
|
impl_pin!($pin, D15Pin, D15, $af);
|
|
};
|
|
|
|
($inst:ident, fmc, FMC, $pin:ident, D16, $af:expr) => {
|
|
impl_pin!($pin, D16Pin, D16, $af);
|
|
};
|
|
|
|
($inst:ident, fmc, FMC, $pin:ident, D17, $af:expr) => {
|
|
impl_pin!($pin, D17Pin, D17, $af);
|
|
};
|
|
|
|
($inst:ident, fmc, FMC, $pin:ident, D18, $af:expr) => {
|
|
impl_pin!($pin, D18Pin, D18, $af);
|
|
};
|
|
|
|
($inst:ident, fmc, FMC, $pin:ident, D19, $af:expr) => {
|
|
impl_pin!($pin, D19Pin, D19, $af);
|
|
};
|
|
|
|
($inst:ident, fmc, FMC, $pin:ident, D20, $af:expr) => {
|
|
impl_pin!($pin, D20Pin, D20, $af);
|
|
};
|
|
|
|
($inst:ident, fmc, FMC, $pin:ident, D21, $af:expr) => {
|
|
impl_pin!($pin, D21Pin, D21, $af);
|
|
};
|
|
|
|
($inst:ident, fmc, FMC, $pin:ident, D22, $af:expr) => {
|
|
impl_pin!($pin, D22Pin, D22, $af);
|
|
};
|
|
|
|
($inst:ident, fmc, FMC, $pin:ident, D23, $af:expr) => {
|
|
impl_pin!($pin, D23Pin, D23, $af);
|
|
};
|
|
|
|
($inst:ident, fmc, FMC, $pin:ident, D24, $af:expr) => {
|
|
impl_pin!($pin, D24Pin, D24, $af);
|
|
};
|
|
|
|
($inst:ident, fmc, FMC, $pin:ident, D25, $af:expr) => {
|
|
impl_pin!($pin, D25Pin, D25, $af);
|
|
};
|
|
|
|
($inst:ident, fmc, FMC, $pin:ident, D26, $af:expr) => {
|
|
impl_pin!($pin, D26Pin, D26, $af);
|
|
};
|
|
|
|
($inst:ident, fmc, FMC, $pin:ident, D27, $af:expr) => {
|
|
impl_pin!($pin, D27Pin, D27, $af);
|
|
};
|
|
|
|
($inst:ident, fmc, FMC, $pin:ident, D28, $af:expr) => {
|
|
impl_pin!($pin, D28Pin, D28, $af);
|
|
};
|
|
|
|
($inst:ident, fmc, FMC, $pin:ident, D29, $af:expr) => {
|
|
impl_pin!($pin, D29Pin, D29, $af);
|
|
};
|
|
|
|
($inst:ident, fmc, FMC, $pin:ident, D30, $af:expr) => {
|
|
impl_pin!($pin, D30Pin, D30, $af);
|
|
};
|
|
|
|
($inst:ident, fmc, FMC, $pin:ident, D31, $af:expr) => {
|
|
impl_pin!($pin, D31Pin, D31, $af);
|
|
};
|
|
);
|
|
|
|
crate::pac::peripheral_pins!(
|
|
($inst:ident, fmc, FMC, $pin:ident, DA0, $af:expr) => {
|
|
impl_pin!($pin, DA0Pin, DA0, $af);
|
|
};
|
|
|
|
($inst:ident, fmc, FMC, $pin:ident, DA1, $af:expr) => {
|
|
impl_pin!($pin, DA1Pin, DA1, $af);
|
|
};
|
|
|
|
($inst:ident, fmc, FMC, $pin:ident, DA2, $af:expr) => {
|
|
impl_pin!($pin, DA2Pin, DA2, $af);
|
|
};
|
|
|
|
($inst:ident, fmc, FMC, $pin:ident, DA3, $af:expr) => {
|
|
impl_pin!($pin, DA3Pin, DA3, $af);
|
|
};
|
|
|
|
($inst:ident, fmc, FMC, $pin:ident, DA4, $af:expr) => {
|
|
impl_pin!($pin, DA4Pin, DA4, $af);
|
|
};
|
|
|
|
($inst:ident, fmc, FMC, $pin:ident, DA5, $af:expr) => {
|
|
impl_pin!($pin, DA5Pin, DA5, $af);
|
|
};
|
|
|
|
($inst:ident, fmc, FMC, $pin:ident, DA6, $af:expr) => {
|
|
impl_pin!($pin, DA6Pin, DA6, $af);
|
|
};
|
|
|
|
($inst:ident, fmc, FMC, $pin:ident, DA7, $af:expr) => {
|
|
impl_pin!($pin, DA7Pin, DA7, $af);
|
|
};
|
|
|
|
($inst:ident, fmc, FMC, $pin:ident, DA8, $af:expr) => {
|
|
impl_pin!($pin, DA8Pin, DA8, $af);
|
|
};
|
|
|
|
($inst:ident, fmc, FMC, $pin:ident, DA9, $af:expr) => {
|
|
impl_pin!($pin, DA9Pin, DA9, $af);
|
|
};
|
|
|
|
($inst:ident, fmc, FMC, $pin:ident, DA10, $af:expr) => {
|
|
impl_pin!($pin, DA10Pin, DA10, $af);
|
|
};
|
|
|
|
($inst:ident, fmc, FMC, $pin:ident, DA11, $af:expr) => {
|
|
impl_pin!($pin, DA11Pin, DA11, $af);
|
|
};
|
|
|
|
($inst:ident, fmc, FMC, $pin:ident, DA12, $af:expr) => {
|
|
impl_pin!($pin, DA12Pin, DA12, $af);
|
|
};
|
|
|
|
($inst:ident, fmc, FMC, $pin:ident, DA13, $af:expr) => {
|
|
impl_pin!($pin, DA13Pin, DA13, $af);
|
|
};
|
|
|
|
($inst:ident, fmc, FMC, $pin:ident, DA14, $af:expr) => {
|
|
impl_pin!($pin, DA14Pin, DA14, $af);
|
|
};
|
|
|
|
($inst:ident, fmc, FMC, $pin:ident, DA15, $af:expr) => {
|
|
impl_pin!($pin, DA15Pin, DA15, $af);
|
|
};
|
|
|
|
);
|
|
|
|
crate::pac::peripheral_pins!(
|
|
($inst:ident, fmc, FMC, $pin:ident, SDNWE, $af:expr) => {
|
|
impl_pin!($pin, SDNWEPin, SDNWE, $af);
|
|
};
|
|
|
|
($inst:ident, fmc, FMC, $pin:ident, SDNCAS, $af:expr) => {
|
|
impl_pin!($pin, SDNCASPin, SDNCAS, $af);
|
|
};
|
|
|
|
($inst:ident, fmc, FMC, $pin:ident, SDNRAS, $af:expr) => {
|
|
impl_pin!($pin, SDNRASPin, SDNRAS, $af);
|
|
};
|
|
|
|
($inst:ident, fmc, FMC, $pin:ident, SDNE0, $af:expr) => {
|
|
impl_pin!($pin, SDNE0Pin, SDNE0, $af);
|
|
};
|
|
|
|
($inst:ident, fmc, FMC, $pin:ident, SDNE1, $af:expr) => {
|
|
impl_pin!($pin, SDNE1Pin, SDNE1, $af);
|
|
};
|
|
|
|
($inst:ident, fmc, FMC, $pin:ident, SDCKE0, $af:expr) => {
|
|
impl_pin!($pin, SDCKE0Pin, SDCKE0, $af);
|
|
};
|
|
|
|
($inst:ident, fmc, FMC, $pin:ident, SDCKE1, $af:expr) => {
|
|
impl_pin!($pin, SDCKE1Pin, SDCKE1, $af);
|
|
};
|
|
|
|
($inst:ident, fmc, FMC, $pin:ident, SDCLK, $af:expr) => {
|
|
impl_pin!($pin, SDCLKPin, SDCLK, $af);
|
|
};
|
|
|
|
($inst:ident, fmc, FMC, $pin:ident, NBL0, $af:expr) => {
|
|
impl_pin!($pin, NBL0Pin, NBL0, $af);
|
|
};
|
|
|
|
($inst:ident, fmc, FMC, $pin:ident, NBL1, $af:expr) => {
|
|
impl_pin!($pin, NBL1Pin, NBL1, $af);
|
|
};
|
|
|
|
($inst:ident, fmc, FMC, $pin:ident, NBL2, $af:expr) => {
|
|
impl_pin!($pin, NBL2Pin, NBL2, $af);
|
|
};
|
|
|
|
($inst:ident, fmc, FMC, $pin:ident, NBL3, $af:expr) => {
|
|
impl_pin!($pin, NBL3Pin, NBL3, $af);
|
|
};
|
|
|
|
($inst:ident, fmc, FMC, $pin:ident, INT, $af:expr) => {
|
|
impl_pin!($pin, INTPin, INT, $af);
|
|
};
|
|
|
|
($inst:ident, fmc, FMC, $pin:ident, NL, $af:expr) => {
|
|
impl_pin!($pin, NLPin, NL, $af);
|
|
};
|
|
|
|
($inst:ident, fmc, FMC, $pin:ident, NWAIT, $af:expr) => {
|
|
impl_pin!($pin, NWaitPin, NWAIT, $af);
|
|
};
|
|
|
|
($inst:ident, fmc, FMC, $pin:ident, NE1, $af:expr) => {
|
|
impl_pin!($pin, NE1Pin, NE1, $af);
|
|
};
|
|
|
|
($inst:ident, fmc, FMC, $pin:ident, NE2, $af:expr) => {
|
|
impl_pin!($pin, NE2Pin, NE2, $af);
|
|
};
|
|
|
|
($inst:ident, fmc, FMC, $pin:ident, NE3, $af:expr) => {
|
|
impl_pin!($pin, NE3Pin, NE3, $af);
|
|
};
|
|
|
|
($inst:ident, fmc, FMC, $pin:ident, NE4, $af:expr) => {
|
|
impl_pin!($pin, NE4Pin, NE4, $af);
|
|
};
|
|
|
|
($inst:ident, fmc, FMC, $pin:ident, NCE, $af:expr) => {
|
|
impl_pin!($pin, NCEPin, NCE, $af);
|
|
};
|
|
|
|
($inst:ident, fmc, FMC, $pin:ident, NOE, $af:expr) => {
|
|
impl_pin!($pin, NOEPin, NOE, $af);
|
|
};
|
|
|
|
($inst:ident, fmc, FMC, $pin:ident, NWE, $af:expr) => {
|
|
impl_pin!($pin, NWEPin, NWE, $af);
|
|
};
|
|
|
|
($inst:ident, fmc, FMC, $pin:ident, Clk, $af:expr) => {
|
|
impl_pin!($pin, ClkPin, CLK, $af);
|
|
};
|
|
|
|
($inst:ident, fmc, FMC, $pin:ident, BA0, $af:expr) => {
|
|
impl_pin!($pin, BA0Pin, BA0, $af);
|
|
};
|
|
|
|
($inst:ident, fmc, FMC, $pin:ident, BA1, $af:expr) => {
|
|
impl_pin!($pin, BA1Pin, BA1, $af);
|
|
};
|
|
);
|