aboutsummaryrefslogtreecommitdiff
path: root/embassy-stm32/src/tsc
diff options
context:
space:
mode:
authorEekle <[email protected]>2024-07-02 20:46:05 +0200
committerEekle <[email protected]>2024-07-02 20:46:05 +0200
commitd3f8905e938eecfe7789841c6232cb34b5f43a20 (patch)
tree12e89c9e420e981de135f9aefbb9a942db4217d2 /embassy-stm32/src/tsc
parent67f5b8d974c23854676cff3a6797cf4aaf41a402 (diff)
Use crate level PeriMode
Diffstat (limited to 'embassy-stm32/src/tsc')
-rw-r--r--embassy-stm32/src/tsc/mod.rs24
1 files changed, 4 insertions, 20 deletions
diff --git a/embassy-stm32/src/tsc/mod.rs b/embassy-stm32/src/tsc/mod.rs
index cd7ae4a53..5cb58e918 100644
--- a/embassy-stm32/src/tsc/mod.rs
+++ b/embassy-stm32/src/tsc/mod.rs
@@ -75,6 +75,7 @@ pub use enums::*;
75 75
76use crate::gpio::{AfType, AnyPin, OutputType, Speed}; 76use crate::gpio::{AfType, AnyPin, OutputType, Speed};
77use crate::interrupt::typelevel::Interrupt; 77use crate::interrupt::typelevel::Interrupt;
78use crate::mode::{Async, Blocking, Mode as PeriMode};
78use crate::rcc::{self, RccPeripheral}; 79use crate::rcc::{self, RccPeripheral};
79use crate::{interrupt, peripherals, Peripheral}; 80use crate::{interrupt, peripherals, Peripheral};
80 81
@@ -93,23 +94,6 @@ pub enum Error {
93 Test, 94 Test,
94} 95}
95 96
96/// Async acquisition API marker
97pub struct Async;
98/// Blocking acquisition API marker
99pub struct Blocking;
100
101trait SealedDriverKind {}
102
103impl SealedDriverKind for Async {}
104impl SealedDriverKind for Blocking {}
105
106#[allow(private_bounds)]
107/// Driver variant marker for the TSC peripheral
108pub trait DriverKind: SealedDriverKind {}
109
110impl DriverKind for Async {}
111impl DriverKind for Blocking {}
112
113/// TSC interrupt handler. 97/// TSC interrupt handler.
114pub struct InterruptHandler<T: Instance> { 98pub struct InterruptHandler<T: Instance> {
115 _phantom: PhantomData<T>, 99 _phantom: PhantomData<T>,
@@ -522,7 +506,7 @@ pub enum G7 {}
522pub enum G8 {} 506pub enum G8 {}
523 507
524/// TSC driver 508/// TSC driver
525pub struct Tsc<'d, T: Instance, K: DriverKind> { 509pub struct Tsc<'d, T: Instance, K: PeriMode> {
526 _peri: PeripheralRef<'d, T>, 510 _peri: PeripheralRef<'d, T>,
527 _g1: Option<PinGroup<'d, T, G1>>, 511 _g1: Option<PinGroup<'d, T, G1>>,
528 _g2: Option<PinGroup<'d, T, G2>>, 512 _g2: Option<PinGroup<'d, T, G2>>,
@@ -703,7 +687,7 @@ impl<'d, T: Instance> Tsc<'d, T, Blocking> {
703 } 687 }
704} 688}
705 689
706impl<'d, T: Instance, K: DriverKind> Tsc<'d, T, K> { 690impl<'d, T: Instance, K: PeriMode> Tsc<'d, T, K> {
707 /// Create new TSC driver 691 /// Create new TSC driver
708 fn check_shields( 692 fn check_shields(
709 g1: &Option<PinGroup<'d, T, G1>>, 693 g1: &Option<PinGroup<'d, T, G1>>,
@@ -969,7 +953,7 @@ impl<'d, T: Instance, K: DriverKind> Tsc<'d, T, K> {
969 } 953 }
970} 954}
971 955
972impl<'d, T: Instance, K: DriverKind> Drop for Tsc<'d, T, K> { 956impl<'d, T: Instance, K: PeriMode> Drop for Tsc<'d, T, K> {
973 fn drop(&mut self) { 957 fn drop(&mut self) {
974 rcc::disable::<T>(); 958 rcc::disable::<T>();
975 } 959 }