aboutsummaryrefslogtreecommitdiff
path: root/embassy-rp/src/i2c.rs
diff options
context:
space:
mode:
Diffstat (limited to 'embassy-rp/src/i2c.rs')
-rw-r--r--embassy-rp/src/i2c.rs13
1 files changed, 7 insertions, 6 deletions
diff --git a/embassy-rp/src/i2c.rs b/embassy-rp/src/i2c.rs
index 124f1c00a..ce9a082a2 100644
--- a/embassy-rp/src/i2c.rs
+++ b/embassy-rp/src/i2c.rs
@@ -2,14 +2,14 @@ use core::future;
2use core::marker::PhantomData; 2use core::marker::PhantomData;
3use core::task::Poll; 3use core::task::Poll;
4 4
5use embassy_cortex_m::interrupt::{self, Binding, Interrupt};
6use embassy_hal_common::{into_ref, PeripheralRef}; 5use embassy_hal_common::{into_ref, PeripheralRef};
7use embassy_sync::waitqueue::AtomicWaker; 6use embassy_sync::waitqueue::AtomicWaker;
8use pac::i2c; 7use pac::i2c;
9 8
10use crate::gpio::sealed::Pin; 9use crate::gpio::sealed::Pin;
11use crate::gpio::AnyPin; 10use crate::gpio::AnyPin;
12use crate::{pac, peripherals, Peripheral}; 11use crate::interrupt::typelevel::{Binding, Interrupt};
12use crate::{interrupt, pac, peripherals, Peripheral};
13 13
14/// I2C error abort reason 14/// I2C error abort reason
15#[derive(Debug)] 15#[derive(Debug)]
@@ -312,7 +312,7 @@ pub struct InterruptHandler<T: Instance> {
312 _uart: PhantomData<T>, 312 _uart: PhantomData<T>,
313} 313}
314 314
315impl<T: Instance> interrupt::Handler<T::Interrupt> for InterruptHandler<T> { 315impl<T: Instance> interrupt::typelevel::Handler<T::Interrupt> for InterruptHandler<T> {
316 // Mask interrupts and wake any task waiting for this interrupt 316 // Mask interrupts and wake any task waiting for this interrupt
317 unsafe fn on_interrupt() { 317 unsafe fn on_interrupt() {
318 let i2c = T::regs(); 318 let i2c = T::regs();
@@ -760,14 +760,15 @@ fn i2c_reserved_addr(addr: u16) -> bool {
760} 760}
761 761
762mod sealed { 762mod sealed {
763 use embassy_cortex_m::interrupt::Interrupt;
764 use embassy_sync::waitqueue::AtomicWaker; 763 use embassy_sync::waitqueue::AtomicWaker;
765 764
765 use crate::interrupt;
766
766 pub trait Instance { 767 pub trait Instance {
767 const TX_DREQ: u8; 768 const TX_DREQ: u8;
768 const RX_DREQ: u8; 769 const RX_DREQ: u8;
769 770
770 type Interrupt: Interrupt; 771 type Interrupt: interrupt::typelevel::Interrupt;
771 772
772 fn regs() -> crate::pac::i2c::I2c; 773 fn regs() -> crate::pac::i2c::I2c;
773 fn reset() -> crate::pac::resets::regs::Peripherals; 774 fn reset() -> crate::pac::resets::regs::Peripherals;
@@ -803,7 +804,7 @@ macro_rules! impl_instance {
803 const TX_DREQ: u8 = $tx_dreq; 804 const TX_DREQ: u8 = $tx_dreq;
804 const RX_DREQ: u8 = $rx_dreq; 805 const RX_DREQ: u8 = $rx_dreq;
805 806
806 type Interrupt = crate::interrupt::$irq; 807 type Interrupt = crate::interrupt::typelevel::$irq;
807 808
808 #[inline] 809 #[inline]
809 fn regs() -> pac::i2c::I2c { 810 fn regs() -> pac::i2c::I2c {