aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorjrmoulton <[email protected]>2024-06-18 11:05:12 -0600
committerjrmoulton <[email protected]>2024-08-13 09:46:16 -0600
commit98437e39ee3b62289d1d126141d8cfb150e9c03a (patch)
treed5755c797505d255891bccfb410e622c55cf251f
parent31f224f43c7b0fa6796b4966b310b0bbe8edd14b (diff)
move addr mask impl to be v2 only
-rw-r--r--embassy-stm32/src/i2c/config.rs16
-rw-r--r--embassy-stm32/src/i2c/v2.rs17
2 files changed, 16 insertions, 17 deletions
diff --git a/embassy-stm32/src/i2c/config.rs b/embassy-stm32/src/i2c/config.rs
index dac7847e8..6f9c53f1f 100644
--- a/embassy-stm32/src/i2c/config.rs
+++ b/embassy-stm32/src/i2c/config.rs
@@ -1,5 +1,3 @@
1use stm32_metapac::i2c::vals::Oamsk;
2
3use crate::gpio::Pull; 1use crate::gpio::Pull;
4 2
5#[repr(u8)] 3#[repr(u8)]
@@ -24,20 +22,6 @@ pub enum AddrMask {
24 /// OA2\[7:1\] are masked and don’t care. No comparison is done, and all (except reserved) 7-bit received addresses are acknowledged 22 /// OA2\[7:1\] are masked and don’t care. No comparison is done, and all (except reserved) 7-bit received addresses are acknowledged
25 MASK7, 23 MASK7,
26} 24}
27impl From<AddrMask> for Oamsk {
28 fn from(value: AddrMask) -> Self {
29 match value {
30 AddrMask::NOMASK => Oamsk::NOMASK,
31 AddrMask::MASK1 => Oamsk::MASK1,
32 AddrMask::MASK2 => Oamsk::MASK2,
33 AddrMask::MASK3 => Oamsk::MASK3,
34 AddrMask::MASK4 => Oamsk::MASK4,
35 AddrMask::MASK5 => Oamsk::MASK5,
36 AddrMask::MASK6 => Oamsk::MASK6,
37 AddrMask::MASK7 => Oamsk::MASK7,
38 }
39 }
40}
41 25
42#[derive(Debug, Copy, Clone, PartialEq, Eq)] 26#[derive(Debug, Copy, Clone, PartialEq, Eq)]
43#[cfg_attr(feature = "defmt", derive(defmt::Format))] 27#[cfg_attr(feature = "defmt", derive(defmt::Format))]
diff --git a/embassy-stm32/src/i2c/v2.rs b/embassy-stm32/src/i2c/v2.rs
index 6dd7c4079..b6d714327 100644
--- a/embassy-stm32/src/i2c/v2.rs
+++ b/embassy-stm32/src/i2c/v2.rs
@@ -7,11 +7,26 @@ use embassy_embedded_hal::SetConfig;
7use embassy_hal_internal::drop::OnDrop; 7use embassy_hal_internal::drop::OnDrop;
8use embedded_hal_1::i2c::Operation; 8use embedded_hal_1::i2c::Operation;
9use mode::{Master, MultiMaster}; 9use mode::{Master, MultiMaster};
10use stm32_metapac::i2c::vals::Addmode; 10use stm32_metapac::i2c::vals::{Addmode, Oamsk};
11 11
12use super::*; 12use super::*;
13use crate::pac::i2c; 13use crate::pac::i2c;
14 14
15impl From<AddrMask> for Oamsk {
16 fn from(value: AddrMask) -> Self {
17 match value {
18 AddrMask::NOMASK => Oamsk::NOMASK,
19 AddrMask::MASK1 => Oamsk::MASK1,
20 AddrMask::MASK2 => Oamsk::MASK2,
21 AddrMask::MASK3 => Oamsk::MASK3,
22 AddrMask::MASK4 => Oamsk::MASK4,
23 AddrMask::MASK5 => Oamsk::MASK5,
24 AddrMask::MASK6 => Oamsk::MASK6,
25 AddrMask::MASK7 => Oamsk::MASK7,
26 }
27 }
28}
29
15pub(crate) unsafe fn on_interrupt<T: Instance>() { 30pub(crate) unsafe fn on_interrupt<T: Instance>() {
16 let regs = T::info().regs; 31 let regs = T::info().regs;
17 let isr = regs.isr().read(); 32 let isr = regs.isr().read();