aboutsummaryrefslogtreecommitdiff
path: root/embassy-stm32/src/ucpd.rs
diff options
context:
space:
mode:
authorTimo Kröger <[email protected]>2024-03-01 14:59:21 +0100
committerTimo Kröger <[email protected]>2024-03-12 08:14:41 +0100
commit8a255b375b7598c2825535cb0d0729311a7b882d (patch)
tree44fc73227a747209e44235aa4047982c79b0a709 /embassy-stm32/src/ucpd.rs
parent1ef02e538497d1876ec26f8acf0763d6c3263382 (diff)
[UCPD] Instance and Pin Traits
Skip FRSTX pin for now. Its available twice in the device JSON as FRSTX1 and FRSTX2 both with the same pins as targets. I don’t know enough about the FRS (fast role switch) feature to understand if that is correct and how to handle the pins.
Diffstat (limited to 'embassy-stm32/src/ucpd.rs')
-rw-r--r--embassy-stm32/src/ucpd.rs28
1 files changed, 28 insertions, 0 deletions
diff --git a/embassy-stm32/src/ucpd.rs b/embassy-stm32/src/ucpd.rs
new file mode 100644
index 000000000..a2bac7611
--- /dev/null
+++ b/embassy-stm32/src/ucpd.rs
@@ -0,0 +1,28 @@
1//! USB Type-C/USB Power Delivery Interface (UCPD)
2
3use crate::rcc::RccPeripheral;
4
5/// UCPD instance trait.
6pub trait Instance: sealed::Instance + RccPeripheral {}
7
8pub(crate) mod sealed {
9 pub trait Instance {
10 const REGS: crate::pac::ucpd::Ucpd;
11 }
12}
13
14foreach_peripheral!(
15 (ucpd, $inst:ident) => {
16 impl sealed::Instance for crate::peripherals::$inst {
17 const REGS: crate::pac::ucpd::Ucpd = crate::pac::$inst;
18 }
19
20 impl Instance for crate::peripherals::$inst {}
21 };
22);
23
24pin_trait!(Cc1Pin, Instance);
25pin_trait!(Cc2Pin, Instance);
26
27dma_trait!(TxDma, Instance);
28dma_trait!(RxDma, Instance);