aboutsummaryrefslogtreecommitdiff
path: root/embassy-embedded-hal/src/shared_bus/blocking/spi.rs
diff options
context:
space:
mode:
authorHenrik Alsér <[email protected]>2022-07-06 03:31:21 +0200
committerHenrik Alsér <[email protected]>2022-07-06 03:31:21 +0200
commitd3d82ad87d9f170e4858ae30143fe44ab5ddd0bd (patch)
tree61bcfe93f82c5f123b21260f0a7875339a660f61 /embassy-embedded-hal/src/shared_bus/blocking/spi.rs
parent264b32d71baf471d0d36a34cc48aa10d429bed04 (diff)
Mutex
Diffstat (limited to 'embassy-embedded-hal/src/shared_bus/blocking/spi.rs')
-rw-r--r--embassy-embedded-hal/src/shared_bus/blocking/spi.rs14
1 files changed, 7 insertions, 7 deletions
diff --git a/embassy-embedded-hal/src/shared_bus/blocking/spi.rs b/embassy-embedded-hal/src/shared_bus/blocking/spi.rs
index 0d01a590b..2583c699c 100644
--- a/embassy-embedded-hal/src/shared_bus/blocking/spi.rs
+++ b/embassy-embedded-hal/src/shared_bus/blocking/spi.rs
@@ -4,7 +4,7 @@ use core::fmt::Debug;
4 4
5use embedded_hal_1::digital::blocking::OutputPin; 5use embedded_hal_1::digital::blocking::OutputPin;
6use embedded_hal_1::spi; 6use embedded_hal_1::spi;
7use embedded_hal_1::spi::blocking::SpiDevice; 7use embedded_hal_1::spi::blocking::{SpiBusFlush, SpiDevice};
8 8
9#[derive(Copy, Clone, Eq, PartialEq, Debug)] 9#[derive(Copy, Clone, Eq, PartialEq, Debug)]
10pub enum SpiBusDeviceError<BUS, CS> { 10pub enum SpiBusDeviceError<BUS, CS> {
@@ -44,15 +44,15 @@ where
44 type Error = SpiBusDeviceError<BUS::Error, CS::Error>; 44 type Error = SpiBusDeviceError<BUS::Error, CS::Error>;
45} 45}
46 46
47impl<BUS, CS> spi::SpiDevice for SpiBusDevice<'_, BUS, CS> 47impl<BUS, CS> SpiDevice for SpiBusDevice<'_, BUS, CS>
48where 48where
49 BUS: spi::SpiBusFlush, 49 BUS: SpiBusFlush,
50 CS: OutputPin, 50 CS: OutputPin,
51{ 51{
52 type Bus = BUS; 52 type Bus = BUS;
53 fn transaction<R>(&mut self, f: impl FnOnce(&mut Self::Bus) -> Result<R, BUS::Error>) -> Result<R, Self::Error> { 53 fn transaction<R>(&mut self, f: impl FnOnce(&mut Self::Bus) -> Result<R, BUS::Error>) -> Result<R, Self::Error> {
54 let mut bus = self.bus.borrow_mut(); 54 let mut bus = self.bus.borrow_mut();
55 self.cs.set_low().map_err(SpiDeviceWithCsError::Cs)?; 55 self.cs.set_low().map_err(SpiBusDeviceError::Cs)?;
56 56
57 let f_res = f(&mut bus); 57 let f_res = f(&mut bus);
58 58
@@ -60,9 +60,9 @@ where
60 let flush_res = bus.flush(); 60 let flush_res = bus.flush();
61 let cs_res = self.cs.set_high(); 61 let cs_res = self.cs.set_high();
62 62
63 let f_res = f_res.map_err(SpiDeviceWithCsError::Spi)?; 63 let f_res = f_res.map_err(SpiBusDeviceError::Spi)?;
64 flush_res.map_err(SpiDeviceWithCsError::Spi)?; 64 flush_res.map_err(SpiBusDeviceError::Spi)?;
65 cs_res.map_err(SpiDeviceWithCsError::Cs)?; 65 cs_res.map_err(SpiBusDeviceError::Cs)?;
66 66
67 Ok(f_res) 67 Ok(f_res)
68 } 68 }