summaryrefslogtreecommitdiff
path: root/embassy-rp
AgeCommit message (Collapse)Author
2022-10-17Associate state with the instance rather than having a separate arrayJeremy Fitzhardinge
2022-10-16rp i2c: have separate wakers for each i2c unitJeremy Fitzhardinge
If they both share one waker, there's the possibility that some wakeups could get lost.
2022-10-12Merge #984 #1006bors[bot]
984: rp pico async i2c implementation r=Dirbaio a=jsgf This implements an interrupt-driven async i2c master. It is based on https://github.com/embassy-rs/embassy/pull/914, a bit of https://github.com/embassy-rs/embassy/pull/978 and `@ithinuel's` https://github.com/ithinuel/rp2040-async-i2c.git This is still work-in-progress, and is currently untested. 1006: Removes some of the code duplication for UarteWithIdle r=Dirbaio a=huntc This PR removes some of the code duplications for `UarteWithIdle` at the slight expense of requiring a split when using idle processing. As the nRF example illustrates though given the LoC removed, this expense seems worth the benefit in terms of maintenance, and the avoidance of copying over methods. My main motivation for this PR was actually due to the `event_endtx` method not having been copied across to the idle-related code. Tested the uart_idle example on my nRF52840-dk, and from within my app. Both appear to work fine. Co-authored-by: Jeremy Fitzhardinge <jeremy@goop.org> Co-authored-by: huntc <huntchr@gmail.com>
2022-10-12Correctly enable RTC_IRQ when scheduling an RTC alarmMathias
2022-10-08Expose Pin::pin() and Pin::bank() as publicMatt Johnston
2022-10-07all Cargo.toml: Add license to all crate Cargo.toml fileschrysn
Closes: https://github.com/embassy-rs/embassy/issues/1002
2022-10-03rp async i2c: raise the tx_empty thresholdJeremy Fitzhardinge
Assert "tx_empty" interrupt a little early so there's time to wake up and start refilling the fifo before it drains. This avoids stalling the i2c bus if the tx fifo completely drains.
2022-10-03rp i2c: clean up tx_abrt handlingJeremy Fitzhardinge
Make sure we always wait for the stop bit if there's a reason to - either because we sent one, or because there was a hardware tx abort.
2022-10-02rp i2c: allow blocking ops on async contextsJeremy Fitzhardinge
2022-10-01make I2c::write_async take an iteratorJeremy Fitzhardinge
There's no other iterator async API right now.
2022-10-01embassy-rp: async i2c implementationJeremy Fitzhardinge
This is an interrupt-driven async i2c master implementation. It makes as best use of the RP2040's i2c block's fifos as possible to minimize interrupts. It implements embedded_hal_async::i2c for easy interop. WIP async impl
2022-10-01rp i2c: make blocking only for Mode=BlockingJeremy Fitzhardinge
2022-10-01rp i2c: remove vestiges of DMAJeremy Fitzhardinge
2022-10-01embassy-rp: inline I2c::regsJeremy Fitzhardinge
It just returns a literal constant, so there's no reason not to always inline it.
2022-09-29Update embedded-hal versions and explicitly pinUlf Lilleengen
2022-09-27Allow unused fields temporarily in i2cMathias
2022-09-27Move async i2c implementation to new PR, to merge working blocking ↵Mathias
implementation faster
2022-09-27Apply suggestions from code reviewMathias Koch
Co-authored-by: Jacob Gonzalez <jacobgonzalez5252@gmail.com>
2022-09-27Add async API for I2CMathias
2022-09-27Add further i2c error typesMathias
2022-09-27Fix blocking I2CMathias
2022-09-27Add blocking read & write for I2CMathias
2022-09-27Add preliminary I2C implementation for RP2040Mathias
2022-09-27usb: make HALs depend only on embassy-usb-driver.Dario Nieuwenhuis
2022-09-27Fix bufferedUart read and write testsMathias
2022-09-27Rename from {Rx,Tx}BufferedUart to BufferedUart{Rx,Tx} to be compliant with ↵Mathias
stm32 and nrf implementations
2022-09-26Add HIL test for bufferedUartMathias
2022-09-26Remove code-duplication in async bufferedUart implementationsMathias
2022-09-26Enable embedded-io on nightlyMathias
2022-09-26FormattingMathias
2022-09-26Add bufferedUart, including a split version for only Rx or TxMathias
2022-09-26Add BufferedUart implementation, and feature-guard time-driver ↵Mathias
initialization, to free up TIMER peripheral if not used with embassy executor
2022-09-26rp: Disable intrinsics by default.Dario Nieuwenhuis
2022-09-26Merge #972bors[bot]
972: Restructure USB crates r=Dirbaio a=Dirbaio - Split driver from `embassy-usb` to a separate crate. This allows making breaking changes to `embassy-usb` without having to bump all the crates with driver impls, such as HALs. - Merge classes into `embassy-usb`. Now that breaking changes to `embassy-usb` aren't that bad, having everything in a single crate is much easier. Co-authored-by: Dario Nieuwenhuis <dirbaio@dirbaio.net>
2022-09-26usb: split driver trait to separate crate.Dario Nieuwenhuis
2022-09-26Add credits to rp-halDario Nieuwenhuis
2022-09-23Add RP2040 ROM functions and intrinsics aliasesMathias
2022-09-22Replace futures::future::join -> embassy_futures::join::join.Dario Nieuwenhuis
2022-09-22Replace futures::future::poll_fn -> core::future::poll_fn.Dario Nieuwenhuis
2022-09-22Update Rust nightly.Dario Nieuwenhuis
Removes feature(generic_associated_types)
2022-09-21Merge #949bors[bot]
949: (embassy-rp): Implement RealTimeClock r=lulf a=MathiasKoch Basically a 1:1 port of the great implementation effort made by `rp-hal` Co-authored-by: Mathias <mk@blackbird.online>
2022-09-19Merge #954bors[bot]
954: rp: fix async SPI read and write r=lulf a=newAM Closes #953 Co-authored-by: Alex Martens <alex@thinglab.org>
2022-09-18rp: remove extraneous newlines in logsAlex Martens
2022-09-18rp: let SPI RX overflow during async writeAlex Martens
2022-09-18rp: fix async SPI read and writeAlex Martens
2022-09-16Add time-driver feature to docsMathias
2022-09-16Implement RealTimeClock for embassy-rpMathias
2022-09-16Feature-gate time-driver in embassy-rpMathias
2022-09-02time: add more tick rates, use 1mhz as default.Dario Nieuwenhuis
2022-09-01Fix dmaHenrik Alsér