rp/pio: add funcsel values to PioInstance
makes code setting funcsels easier to read and should make it easier to hook up more pio blocks, should they ever appear
This commit is contained in:
parent
8e22d57447
commit
47ae9b7981
1 changed files with 4 additions and 11 deletions
|
@ -959,17 +959,7 @@ pub trait PioCommon: sealed::PioCommon + Sized {
|
||||||
|
|
||||||
fn make_pio_pin(&self, pin: impl Pin) -> PioPin<Self::Pio> {
|
fn make_pio_pin(&self, pin: impl Pin) -> PioPin<Self::Pio> {
|
||||||
unsafe {
|
unsafe {
|
||||||
pin.io().ctrl().write(|w| {
|
pin.io().ctrl().write(|w| w.set_funcsel(Self::Pio::FUNCSEL.0));
|
||||||
w.set_funcsel(
|
|
||||||
if Self::Pio::PIO_NO == 1 {
|
|
||||||
pac::io::vals::Gpio0ctrlFuncsel::PIO1_0
|
|
||||||
} else {
|
|
||||||
// PIO == 0
|
|
||||||
pac::io::vals::Gpio0ctrlFuncsel::PIO0_0
|
|
||||||
}
|
|
||||||
.0,
|
|
||||||
);
|
|
||||||
});
|
|
||||||
}
|
}
|
||||||
PioPin {
|
PioPin {
|
||||||
pin_bank: pin.pin_bank(),
|
pin_bank: pin.pin_bank(),
|
||||||
|
@ -1031,6 +1021,7 @@ mod sealed {
|
||||||
pub trait PioInstance {
|
pub trait PioInstance {
|
||||||
const PIO_NO: u8;
|
const PIO_NO: u8;
|
||||||
const PIO: &'static crate::pac::pio::Pio;
|
const PIO: &'static crate::pac::pio::Pio;
|
||||||
|
const FUNCSEL: crate::pac::io::vals::Gpio0ctrlFuncsel;
|
||||||
}
|
}
|
||||||
|
|
||||||
pub trait PioCommon {
|
pub trait PioCommon {
|
||||||
|
@ -1059,12 +1050,14 @@ pub trait PioInstance: sealed::PioInstance + Unpin {}
|
||||||
impl sealed::PioInstance for PioInstanceBase<0> {
|
impl sealed::PioInstance for PioInstanceBase<0> {
|
||||||
const PIO_NO: u8 = 0;
|
const PIO_NO: u8 = 0;
|
||||||
const PIO: &'static pac::pio::Pio = &pac::PIO0;
|
const PIO: &'static pac::pio::Pio = &pac::PIO0;
|
||||||
|
const FUNCSEL: pac::io::vals::Gpio0ctrlFuncsel = pac::io::vals::Gpio0ctrlFuncsel::PIO0_0;
|
||||||
}
|
}
|
||||||
impl PioInstance for PioInstanceBase<0> {}
|
impl PioInstance for PioInstanceBase<0> {}
|
||||||
|
|
||||||
impl sealed::PioInstance for PioInstanceBase<1> {
|
impl sealed::PioInstance for PioInstanceBase<1> {
|
||||||
const PIO_NO: u8 = 1;
|
const PIO_NO: u8 = 1;
|
||||||
const PIO: &'static pac::pio::Pio = &pac::PIO1;
|
const PIO: &'static pac::pio::Pio = &pac::PIO1;
|
||||||
|
const FUNCSEL: pac::io::vals::Gpio0ctrlFuncsel = pac::io::vals::Gpio0ctrlFuncsel::PIO1_0;
|
||||||
}
|
}
|
||||||
impl PioInstance for PioInstanceBase<1> {}
|
impl PioInstance for PioInstanceBase<1> {}
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue