nrf/ppi: nrf52805 only has 10 configurable channels.
This commit is contained in:
		| @@ -159,6 +159,29 @@ impl_pin!(P0_29, 0, 29); | ||||
| impl_pin!(P0_30, 0, 30); | ||||
| impl_pin!(P0_31, 0, 31); | ||||
|  | ||||
| impl_ppi_channel!(PPI_CH0, 0, configurable); | ||||
| impl_ppi_channel!(PPI_CH1, 1, configurable); | ||||
| impl_ppi_channel!(PPI_CH2, 2, configurable); | ||||
| impl_ppi_channel!(PPI_CH3, 3, configurable); | ||||
| impl_ppi_channel!(PPI_CH4, 4, configurable); | ||||
| impl_ppi_channel!(PPI_CH5, 5, configurable); | ||||
| impl_ppi_channel!(PPI_CH6, 6, configurable); | ||||
| impl_ppi_channel!(PPI_CH7, 7, configurable); | ||||
| impl_ppi_channel!(PPI_CH8, 8, configurable); | ||||
| impl_ppi_channel!(PPI_CH9, 9, configurable); | ||||
| impl_ppi_channel!(PPI_CH20, 20); | ||||
| impl_ppi_channel!(PPI_CH21, 21); | ||||
| impl_ppi_channel!(PPI_CH22, 22); | ||||
| impl_ppi_channel!(PPI_CH23, 23); | ||||
| impl_ppi_channel!(PPI_CH24, 24); | ||||
| impl_ppi_channel!(PPI_CH25, 25); | ||||
| impl_ppi_channel!(PPI_CH26, 26); | ||||
| impl_ppi_channel!(PPI_CH27, 27); | ||||
| impl_ppi_channel!(PPI_CH28, 28); | ||||
| impl_ppi_channel!(PPI_CH29, 29); | ||||
| impl_ppi_channel!(PPI_CH30, 30); | ||||
| impl_ppi_channel!(PPI_CH31, 31); | ||||
|  | ||||
| pub mod irqs { | ||||
|     use crate::pac::Interrupt as InterruptEnum; | ||||
|     use embassy_macros::interrupt_declare as declare; | ||||
|   | ||||
| @@ -164,6 +164,39 @@ impl_pin!(P0_29, 0, 29); | ||||
| impl_pin!(P0_30, 0, 30); | ||||
| impl_pin!(P0_31, 0, 31); | ||||
|  | ||||
| impl_ppi_channel!(PPI_CH0, 0, configurable); | ||||
| impl_ppi_channel!(PPI_CH1, 1, configurable); | ||||
| impl_ppi_channel!(PPI_CH2, 2, configurable); | ||||
| impl_ppi_channel!(PPI_CH3, 3, configurable); | ||||
| impl_ppi_channel!(PPI_CH4, 4, configurable); | ||||
| impl_ppi_channel!(PPI_CH5, 5, configurable); | ||||
| impl_ppi_channel!(PPI_CH6, 6, configurable); | ||||
| impl_ppi_channel!(PPI_CH7, 7, configurable); | ||||
| impl_ppi_channel!(PPI_CH8, 8, configurable); | ||||
| impl_ppi_channel!(PPI_CH9, 9, configurable); | ||||
| impl_ppi_channel!(PPI_CH10, 10, configurable); | ||||
| impl_ppi_channel!(PPI_CH11, 11, configurable); | ||||
| impl_ppi_channel!(PPI_CH12, 12, configurable); | ||||
| impl_ppi_channel!(PPI_CH13, 13, configurable); | ||||
| impl_ppi_channel!(PPI_CH14, 14, configurable); | ||||
| impl_ppi_channel!(PPI_CH15, 15, configurable); | ||||
| impl_ppi_channel!(PPI_CH16, 16, configurable); | ||||
| impl_ppi_channel!(PPI_CH17, 17, configurable); | ||||
| impl_ppi_channel!(PPI_CH18, 18, configurable); | ||||
| impl_ppi_channel!(PPI_CH19, 19, configurable); | ||||
| impl_ppi_channel!(PPI_CH20, 20); | ||||
| impl_ppi_channel!(PPI_CH21, 21); | ||||
| impl_ppi_channel!(PPI_CH22, 22); | ||||
| impl_ppi_channel!(PPI_CH23, 23); | ||||
| impl_ppi_channel!(PPI_CH24, 24); | ||||
| impl_ppi_channel!(PPI_CH25, 25); | ||||
| impl_ppi_channel!(PPI_CH26, 26); | ||||
| impl_ppi_channel!(PPI_CH27, 27); | ||||
| impl_ppi_channel!(PPI_CH28, 28); | ||||
| impl_ppi_channel!(PPI_CH29, 29); | ||||
| impl_ppi_channel!(PPI_CH30, 30); | ||||
| impl_ppi_channel!(PPI_CH31, 31); | ||||
|  | ||||
| pub mod irqs { | ||||
|     use crate::pac::Interrupt as InterruptEnum; | ||||
|     use embassy_macros::interrupt_declare as declare; | ||||
|   | ||||
| @@ -165,6 +165,39 @@ impl_pin!(P0_29, 0, 29); | ||||
| impl_pin!(P0_30, 0, 30); | ||||
| impl_pin!(P0_31, 0, 31); | ||||
|  | ||||
| impl_ppi_channel!(PPI_CH0, 0, configurable); | ||||
| impl_ppi_channel!(PPI_CH1, 1, configurable); | ||||
| impl_ppi_channel!(PPI_CH2, 2, configurable); | ||||
| impl_ppi_channel!(PPI_CH3, 3, configurable); | ||||
| impl_ppi_channel!(PPI_CH4, 4, configurable); | ||||
| impl_ppi_channel!(PPI_CH5, 5, configurable); | ||||
| impl_ppi_channel!(PPI_CH6, 6, configurable); | ||||
| impl_ppi_channel!(PPI_CH7, 7, configurable); | ||||
| impl_ppi_channel!(PPI_CH8, 8, configurable); | ||||
| impl_ppi_channel!(PPI_CH9, 9, configurable); | ||||
| impl_ppi_channel!(PPI_CH10, 10, configurable); | ||||
| impl_ppi_channel!(PPI_CH11, 11, configurable); | ||||
| impl_ppi_channel!(PPI_CH12, 12, configurable); | ||||
| impl_ppi_channel!(PPI_CH13, 13, configurable); | ||||
| impl_ppi_channel!(PPI_CH14, 14, configurable); | ||||
| impl_ppi_channel!(PPI_CH15, 15, configurable); | ||||
| impl_ppi_channel!(PPI_CH16, 16, configurable); | ||||
| impl_ppi_channel!(PPI_CH17, 17, configurable); | ||||
| impl_ppi_channel!(PPI_CH18, 18, configurable); | ||||
| impl_ppi_channel!(PPI_CH19, 19, configurable); | ||||
| impl_ppi_channel!(PPI_CH20, 20); | ||||
| impl_ppi_channel!(PPI_CH21, 21); | ||||
| impl_ppi_channel!(PPI_CH22, 22); | ||||
| impl_ppi_channel!(PPI_CH23, 23); | ||||
| impl_ppi_channel!(PPI_CH24, 24); | ||||
| impl_ppi_channel!(PPI_CH25, 25); | ||||
| impl_ppi_channel!(PPI_CH26, 26); | ||||
| impl_ppi_channel!(PPI_CH27, 27); | ||||
| impl_ppi_channel!(PPI_CH28, 28); | ||||
| impl_ppi_channel!(PPI_CH29, 29); | ||||
| impl_ppi_channel!(PPI_CH30, 30); | ||||
| impl_ppi_channel!(PPI_CH31, 31); | ||||
|  | ||||
| pub mod irqs { | ||||
|     use crate::pac::Interrupt as InterruptEnum; | ||||
|     use embassy_macros::interrupt_declare as declare; | ||||
|   | ||||
| @@ -160,6 +160,39 @@ impl_pin!(P0_29, 0, 29); | ||||
| impl_pin!(P0_30, 0, 30); | ||||
| impl_pin!(P0_31, 0, 31); | ||||
|  | ||||
| impl_ppi_channel!(PPI_CH0, 0, configurable); | ||||
| impl_ppi_channel!(PPI_CH1, 1, configurable); | ||||
| impl_ppi_channel!(PPI_CH2, 2, configurable); | ||||
| impl_ppi_channel!(PPI_CH3, 3, configurable); | ||||
| impl_ppi_channel!(PPI_CH4, 4, configurable); | ||||
| impl_ppi_channel!(PPI_CH5, 5, configurable); | ||||
| impl_ppi_channel!(PPI_CH6, 6, configurable); | ||||
| impl_ppi_channel!(PPI_CH7, 7, configurable); | ||||
| impl_ppi_channel!(PPI_CH8, 8, configurable); | ||||
| impl_ppi_channel!(PPI_CH9, 9, configurable); | ||||
| impl_ppi_channel!(PPI_CH10, 10, configurable); | ||||
| impl_ppi_channel!(PPI_CH11, 11, configurable); | ||||
| impl_ppi_channel!(PPI_CH12, 12, configurable); | ||||
| impl_ppi_channel!(PPI_CH13, 13, configurable); | ||||
| impl_ppi_channel!(PPI_CH14, 14, configurable); | ||||
| impl_ppi_channel!(PPI_CH15, 15, configurable); | ||||
| impl_ppi_channel!(PPI_CH16, 16, configurable); | ||||
| impl_ppi_channel!(PPI_CH17, 17, configurable); | ||||
| impl_ppi_channel!(PPI_CH18, 18, configurable); | ||||
| impl_ppi_channel!(PPI_CH19, 19, configurable); | ||||
| impl_ppi_channel!(PPI_CH20, 20); | ||||
| impl_ppi_channel!(PPI_CH21, 21); | ||||
| impl_ppi_channel!(PPI_CH22, 22); | ||||
| impl_ppi_channel!(PPI_CH23, 23); | ||||
| impl_ppi_channel!(PPI_CH24, 24); | ||||
| impl_ppi_channel!(PPI_CH25, 25); | ||||
| impl_ppi_channel!(PPI_CH26, 26); | ||||
| impl_ppi_channel!(PPI_CH27, 27); | ||||
| impl_ppi_channel!(PPI_CH28, 28); | ||||
| impl_ppi_channel!(PPI_CH29, 29); | ||||
| impl_ppi_channel!(PPI_CH30, 30); | ||||
| impl_ppi_channel!(PPI_CH31, 31); | ||||
|  | ||||
| pub mod irqs { | ||||
|     use crate::pac::Interrupt as InterruptEnum; | ||||
|     use embassy_macros::interrupt_declare as declare; | ||||
|   | ||||
| @@ -178,6 +178,39 @@ impl_pin!(P0_29, 0, 29); | ||||
| impl_pin!(P0_30, 0, 30); | ||||
| impl_pin!(P0_31, 0, 31); | ||||
|  | ||||
| impl_ppi_channel!(PPI_CH0, 0, configurable); | ||||
| impl_ppi_channel!(PPI_CH1, 1, configurable); | ||||
| impl_ppi_channel!(PPI_CH2, 2, configurable); | ||||
| impl_ppi_channel!(PPI_CH3, 3, configurable); | ||||
| impl_ppi_channel!(PPI_CH4, 4, configurable); | ||||
| impl_ppi_channel!(PPI_CH5, 5, configurable); | ||||
| impl_ppi_channel!(PPI_CH6, 6, configurable); | ||||
| impl_ppi_channel!(PPI_CH7, 7, configurable); | ||||
| impl_ppi_channel!(PPI_CH8, 8, configurable); | ||||
| impl_ppi_channel!(PPI_CH9, 9, configurable); | ||||
| impl_ppi_channel!(PPI_CH10, 10, configurable); | ||||
| impl_ppi_channel!(PPI_CH11, 11, configurable); | ||||
| impl_ppi_channel!(PPI_CH12, 12, configurable); | ||||
| impl_ppi_channel!(PPI_CH13, 13, configurable); | ||||
| impl_ppi_channel!(PPI_CH14, 14, configurable); | ||||
| impl_ppi_channel!(PPI_CH15, 15, configurable); | ||||
| impl_ppi_channel!(PPI_CH16, 16, configurable); | ||||
| impl_ppi_channel!(PPI_CH17, 17, configurable); | ||||
| impl_ppi_channel!(PPI_CH18, 18, configurable); | ||||
| impl_ppi_channel!(PPI_CH19, 19, configurable); | ||||
| impl_ppi_channel!(PPI_CH20, 20); | ||||
| impl_ppi_channel!(PPI_CH21, 21); | ||||
| impl_ppi_channel!(PPI_CH22, 22); | ||||
| impl_ppi_channel!(PPI_CH23, 23); | ||||
| impl_ppi_channel!(PPI_CH24, 24); | ||||
| impl_ppi_channel!(PPI_CH25, 25); | ||||
| impl_ppi_channel!(PPI_CH26, 26); | ||||
| impl_ppi_channel!(PPI_CH27, 27); | ||||
| impl_ppi_channel!(PPI_CH28, 28); | ||||
| impl_ppi_channel!(PPI_CH29, 29); | ||||
| impl_ppi_channel!(PPI_CH30, 30); | ||||
| impl_ppi_channel!(PPI_CH31, 31); | ||||
|  | ||||
| pub mod irqs { | ||||
|     use crate::pac::Interrupt as InterruptEnum; | ||||
|     use embassy_macros::interrupt_declare as declare; | ||||
|   | ||||
| @@ -218,6 +218,39 @@ impl_pin!(P1_13, 1, 13); | ||||
| impl_pin!(P1_14, 1, 14); | ||||
| impl_pin!(P1_15, 1, 15); | ||||
|  | ||||
| impl_ppi_channel!(PPI_CH0, 0, configurable); | ||||
| impl_ppi_channel!(PPI_CH1, 1, configurable); | ||||
| impl_ppi_channel!(PPI_CH2, 2, configurable); | ||||
| impl_ppi_channel!(PPI_CH3, 3, configurable); | ||||
| impl_ppi_channel!(PPI_CH4, 4, configurable); | ||||
| impl_ppi_channel!(PPI_CH5, 5, configurable); | ||||
| impl_ppi_channel!(PPI_CH6, 6, configurable); | ||||
| impl_ppi_channel!(PPI_CH7, 7, configurable); | ||||
| impl_ppi_channel!(PPI_CH8, 8, configurable); | ||||
| impl_ppi_channel!(PPI_CH9, 9, configurable); | ||||
| impl_ppi_channel!(PPI_CH10, 10, configurable); | ||||
| impl_ppi_channel!(PPI_CH11, 11, configurable); | ||||
| impl_ppi_channel!(PPI_CH12, 12, configurable); | ||||
| impl_ppi_channel!(PPI_CH13, 13, configurable); | ||||
| impl_ppi_channel!(PPI_CH14, 14, configurable); | ||||
| impl_ppi_channel!(PPI_CH15, 15, configurable); | ||||
| impl_ppi_channel!(PPI_CH16, 16, configurable); | ||||
| impl_ppi_channel!(PPI_CH17, 17, configurable); | ||||
| impl_ppi_channel!(PPI_CH18, 18, configurable); | ||||
| impl_ppi_channel!(PPI_CH19, 19, configurable); | ||||
| impl_ppi_channel!(PPI_CH20, 20); | ||||
| impl_ppi_channel!(PPI_CH21, 21); | ||||
| impl_ppi_channel!(PPI_CH22, 22); | ||||
| impl_ppi_channel!(PPI_CH23, 23); | ||||
| impl_ppi_channel!(PPI_CH24, 24); | ||||
| impl_ppi_channel!(PPI_CH25, 25); | ||||
| impl_ppi_channel!(PPI_CH26, 26); | ||||
| impl_ppi_channel!(PPI_CH27, 27); | ||||
| impl_ppi_channel!(PPI_CH28, 28); | ||||
| impl_ppi_channel!(PPI_CH29, 29); | ||||
| impl_ppi_channel!(PPI_CH30, 30); | ||||
| impl_ppi_channel!(PPI_CH31, 31); | ||||
|  | ||||
| pub mod irqs { | ||||
|     use crate::pac::Interrupt as InterruptEnum; | ||||
|     use embassy_macros::interrupt_declare as declare; | ||||
|   | ||||
| @@ -223,6 +223,39 @@ impl_pin!(P1_13, 1, 13); | ||||
| impl_pin!(P1_14, 1, 14); | ||||
| impl_pin!(P1_15, 1, 15); | ||||
|  | ||||
| impl_ppi_channel!(PPI_CH0, 0, configurable); | ||||
| impl_ppi_channel!(PPI_CH1, 1, configurable); | ||||
| impl_ppi_channel!(PPI_CH2, 2, configurable); | ||||
| impl_ppi_channel!(PPI_CH3, 3, configurable); | ||||
| impl_ppi_channel!(PPI_CH4, 4, configurable); | ||||
| impl_ppi_channel!(PPI_CH5, 5, configurable); | ||||
| impl_ppi_channel!(PPI_CH6, 6, configurable); | ||||
| impl_ppi_channel!(PPI_CH7, 7, configurable); | ||||
| impl_ppi_channel!(PPI_CH8, 8, configurable); | ||||
| impl_ppi_channel!(PPI_CH9, 9, configurable); | ||||
| impl_ppi_channel!(PPI_CH10, 10, configurable); | ||||
| impl_ppi_channel!(PPI_CH11, 11, configurable); | ||||
| impl_ppi_channel!(PPI_CH12, 12, configurable); | ||||
| impl_ppi_channel!(PPI_CH13, 13, configurable); | ||||
| impl_ppi_channel!(PPI_CH14, 14, configurable); | ||||
| impl_ppi_channel!(PPI_CH15, 15, configurable); | ||||
| impl_ppi_channel!(PPI_CH16, 16, configurable); | ||||
| impl_ppi_channel!(PPI_CH17, 17, configurable); | ||||
| impl_ppi_channel!(PPI_CH18, 18, configurable); | ||||
| impl_ppi_channel!(PPI_CH19, 19, configurable); | ||||
| impl_ppi_channel!(PPI_CH20, 20); | ||||
| impl_ppi_channel!(PPI_CH21, 21); | ||||
| impl_ppi_channel!(PPI_CH22, 22); | ||||
| impl_ppi_channel!(PPI_CH23, 23); | ||||
| impl_ppi_channel!(PPI_CH24, 24); | ||||
| impl_ppi_channel!(PPI_CH25, 25); | ||||
| impl_ppi_channel!(PPI_CH26, 26); | ||||
| impl_ppi_channel!(PPI_CH27, 27); | ||||
| impl_ppi_channel!(PPI_CH28, 28); | ||||
| impl_ppi_channel!(PPI_CH29, 29); | ||||
| impl_ppi_channel!(PPI_CH30, 30); | ||||
| impl_ppi_channel!(PPI_CH31, 31); | ||||
|  | ||||
| pub mod irqs { | ||||
|     use crate::pac::Interrupt as InterruptEnum; | ||||
|     use embassy_macros::interrupt_declare as declare; | ||||
|   | ||||
| @@ -1,3 +1,5 @@ | ||||
| #![macro_use] | ||||
|  | ||||
| //! HAL interface for the PPI peripheral. | ||||
| //! | ||||
| //! The Programmable Peripheral Interconnect interface allows for an autonomous interoperability | ||||
| @@ -109,7 +111,7 @@ impl Event { | ||||
|     } | ||||
| } | ||||
|  | ||||
| mod sealed { | ||||
| pub(crate) mod sealed { | ||||
|     pub trait ConfigurableChannel {} | ||||
|     pub trait Channel {} | ||||
|     pub trait Group {} | ||||
| @@ -167,15 +169,15 @@ impl Channel for AnyConfigurableChannel { | ||||
|     } | ||||
| } | ||||
|  | ||||
| macro_rules! impl_channel { | ||||
| macro_rules! impl_ppi_channel { | ||||
|     ($type:ident, $number:expr, configurable) => { | ||||
|         impl_channel!($type, $number); | ||||
|         impl sealed::ConfigurableChannel for peripherals::$type {} | ||||
|         impl ConfigurableChannel for peripherals::$type {} | ||||
|         impl_ppi_channel!($type, $number); | ||||
|         impl crate::ppi::sealed::ConfigurableChannel for peripherals::$type {} | ||||
|         impl crate::ppi::ConfigurableChannel for peripherals::$type {} | ||||
|     }; | ||||
|     ($type:ident, $number:expr) => { | ||||
|         impl sealed::Channel for peripherals::$type {} | ||||
|         impl Channel for peripherals::$type { | ||||
|         impl crate::ppi::sealed::Channel for peripherals::$type {} | ||||
|         impl crate::ppi::Channel for peripherals::$type { | ||||
|             fn number(&self) -> usize { | ||||
|                 $number | ||||
|             } | ||||
| @@ -183,43 +185,6 @@ macro_rules! impl_channel { | ||||
|     }; | ||||
| } | ||||
|  | ||||
| impl_channel!(PPI_CH0, 0, configurable); | ||||
| impl_channel!(PPI_CH1, 1, configurable); | ||||
| impl_channel!(PPI_CH2, 2, configurable); | ||||
| impl_channel!(PPI_CH3, 3, configurable); | ||||
| impl_channel!(PPI_CH4, 4, configurable); | ||||
| impl_channel!(PPI_CH5, 5, configurable); | ||||
| impl_channel!(PPI_CH6, 6, configurable); | ||||
| impl_channel!(PPI_CH7, 7, configurable); | ||||
| impl_channel!(PPI_CH8, 8, configurable); | ||||
| impl_channel!(PPI_CH9, 9, configurable); | ||||
| impl_channel!(PPI_CH10, 10, configurable); | ||||
| impl_channel!(PPI_CH11, 11, configurable); | ||||
| impl_channel!(PPI_CH12, 12, configurable); | ||||
| impl_channel!(PPI_CH13, 13, configurable); | ||||
| impl_channel!(PPI_CH14, 14, configurable); | ||||
| impl_channel!(PPI_CH15, 15, configurable); | ||||
| #[cfg(not(feature = "nrf51"))] | ||||
| impl_channel!(PPI_CH16, 16, configurable); | ||||
| #[cfg(not(feature = "nrf51"))] | ||||
| impl_channel!(PPI_CH17, 17, configurable); | ||||
| #[cfg(not(feature = "nrf51"))] | ||||
| impl_channel!(PPI_CH18, 18, configurable); | ||||
| #[cfg(not(feature = "nrf51"))] | ||||
| impl_channel!(PPI_CH19, 19, configurable); | ||||
| impl_channel!(PPI_CH20, 20); | ||||
| impl_channel!(PPI_CH21, 21); | ||||
| impl_channel!(PPI_CH22, 22); | ||||
| impl_channel!(PPI_CH23, 23); | ||||
| impl_channel!(PPI_CH24, 24); | ||||
| impl_channel!(PPI_CH25, 25); | ||||
| impl_channel!(PPI_CH26, 26); | ||||
| impl_channel!(PPI_CH27, 27); | ||||
| impl_channel!(PPI_CH28, 28); | ||||
| impl_channel!(PPI_CH29, 29); | ||||
| impl_channel!(PPI_CH30, 30); | ||||
| impl_channel!(PPI_CH31, 31); | ||||
|  | ||||
| // ====================== | ||||
| //       groups | ||||
|  | ||||
|   | ||||
		Reference in New Issue
	
	Block a user