685 Commits

Author SHA1 Message Date
Dario Nieuwenhuis
d097ccc68c
Merge pull request #4012 from adom-inc/rp2350-adc-fix
rp/adc: fix potential race condition
2025-03-27 13:36:46 +00:00
Adrian Wowk
5777284304 rp: rename BOOTROM_BASE to BOOTRAM_BASE
Previously the constant pointing at the base of the bootram was
incorrectly called BOOTROM_BASE. According to the datasheet, the bootrom
is a 32K region starting at 0x00000000 while the bootram is a 1K region
of SRAM starting at 0x400e0000.
2025-03-26 19:05:27 -05:00
Adrian Wowk
1b6e563260 rp/adc: fix potential race condition
This commit rearranges the Adc::wait_for_ready function to make sure
that wakers are registered before the interrupt is enabled, and keeps
enabling the interrupt until the ADC is ready
2025-03-26 17:11:27 -05:00
JuliDi
436f940d5a
make rustfmt happy 2025-03-19 10:42:34 +01:00
JuliDi
f15c587887
fix wrong funcsel on rp2350 gpout/gpin 2025-03-19 10:32:16 +01:00
eden barby
24941212e8 Added access to the byte swap flag for RP2*** chips for the PIO state machine DMA calls. 2025-03-01 17:23:04 +10:00
Ronald Weber
7a2f038800 doc: Fix "the the" 2025-02-19 17:29:21 +01:00
Dario Nieuwenhuis
52dfefb632 rp/pio: update pio-rs crate, reexport it so users don't get version mismatches. 2025-02-18 18:14:57 +01:00
Dario Nieuwenhuis
e3edd671b6 rp/pio: move instructions to methods of the SM. 2025-02-18 18:14:35 +01:00
9names
4cc5ab9474 Add rp235x imagedef features (based on rp2040 boot2 features)
rp235x firmwares need an Image Definition if they want to be called
from the rp235x bootrom.

Currently this Image Definition is manually added to each project/example,
but for most users it will always be the default (Secure Exe).

This commit adds crate features to allow users to configure this, with the
default of including a Secure Exe Image Definition in.
Just like the boot2-* features, this includes an opt-out (imagedef-none)
to allow the user to not make use of this included Image Definition.
2025-02-16 15:43:01 +11:00
Sebastian Scholz
787606b991
Expose the watchdog reset reason 2025-02-12 13:22:43 +01:00
Steve Work
3b74732f40 Rename readers with get_, per CBJamo review. Tweak use_program docstring.
The tweak arranges that "grep sideset" finds use_program() when grokking source - this spelling is used
elsewhere, as in PinConfig for example, and I managed to miss use_program.
2025-02-07 09:26:34 -08:00
Steve Work
9acbfc9c22 Add PIO functions.
Add some (I think) needed functions:
ConfigPins::set_sideset_pins (the other pin types are covered, why not this one?)
Several runtime StateMachine manipulations:
 - addr()
 - tx_threshold()
 - set_tx_threshold
 - rx_threshold()
 - set_rx_threshold()
 - set_thresholds() - both at once, same value
2025-02-06 17:46:04 -08:00
Dario Nieuwenhuis
556cc57c1f
Merge pull request #3851 from embassy-rs/rp23-atomics-fix
rp235x: fix atomics, fix SIO spinlock stuck bug, fix missing core1 reset.
2025-02-05 00:06:41 +00:00
Dario Nieuwenhuis
9da04cc38e rp: make atomics work properly between cores in rp235x. 2025-02-05 00:57:43 +01:00
Dario Nieuwenhuis
bb2d9ec7f8 rp: Workaround "SIO spinlock stuck bug", reset PROC1 at boot.
Just like RP2040. The bug was "working as intended" on rp2040, so it is on rp235x.
2025-02-05 00:57:15 +01:00
Dario Nieuwenhuis
fdb9795d6a
Merge pull request #3763 from robot-rover/fix_rp2040_time_driver
rp: Fix time driver hang
2025-02-04 23:56:43 +00:00
flippette
9d353d251c Correct ADC channels for RP2350XB 2025-01-30 00:16:36 +02:00
Tom Dohrmann
3e5514653f
remove checks for reserved I2c addresses
There are some non-compliant devices that respond to reserved I2c
addresses. rp2040 behaves sanely for these addresses, so let's just
allow using them.
2025-01-26 17:43:04 +01:00
Adrian Wowk
617f6e7855 fix: enable RP2350 watchdog tick generator 2025-01-15 14:52:49 -06:00
Pedro Ferreira
933e888ed0 RP235x: support new FIFO options, set IE, OD on PIO pins. 2025-01-15 01:56:37 +01:00
Samuel O'Brien
930af8efb7 run rustfmt 2025-01-12 20:56:08 -06:00
Samuel O'Brien
13b205ece2 rp: Fix time driver hang 2025-01-12 20:50:16 -06:00
Dario Nieuwenhuis
7dfb6f7113
Merge pull request #3729 from embassy-rs/update-nrf-rp
Prepare nrf and rp hals for release
2025-01-06 12:28:33 +00:00
Dario Nieuwenhuis
209183ebea Fixes for new PACs. 2025-01-06 13:22:44 +01:00
Georges Palauqui
3c87bb588b embassy-rp: add set_pullup() for OutputOpenDrain 2025-01-06 12:43:48 +01:00
Dániel Buga
44217aa092
Desugar some async fns 2024-12-30 12:13:13 +01:00
Dániel Buga
ab8ca3f126
Rename ETQD, bump date 2024-12-22 21:00:23 +01:00
Dario Nieuwenhuis
2c3bc75da6
Merge pull request #3593 from bugadani/refactor
Rework time-driver contract.
2024-12-16 12:30:30 +00:00
vinsynth
ffbef9316d i2s frequency relative to sysclk 2024-12-14 11:02:18 -05:00
vinsynth
854d1f3743 add sysclk frequency argument to PioI2Out::new 2024-12-14 00:32:47 -05:00
Dario Nieuwenhuis
b268b1795f
Merge time-driver and time-queue-driver traits, make HALs own and handle the queue. 2024-12-13 21:20:59 +01:00
Dániel Buga
5a5495aac4
Refactor integrated-timers 2024-12-10 21:31:42 +01:00
dstric-aqueduct
dcf228e448 Add set_config method to RP SPI driver
Add a `set_config` method to `Spi` to allow reconfiguring SPI mode after creation.

The existing implementation of the `embassy-embedded-hal` trait `SetConfig` is changed to use the new method.

Existing uses of `SetConfig`  trait may need to explicitly call the trait method to maintain current return type.
2024-12-03 00:14:24 +01:00
Dario Nieuwenhuis
333284588a
Merge pull request #3543 from ionspin/rp2350_otp_write
RP235X Add OTP write functions
2024-12-02 22:50:48 +00:00
Dario Nieuwenhuis
aaad8450e9
Use inline const for initializing arrays. (#3567) 2024-11-24 20:58:48 +01:00
Ugljesa Jovanovic
69cb30ebf3
Add OTP write 2024-11-16 22:22:47 +01:00
ibuki2003
19a06d6b8a
fix(rp): use uart dreq number defined in pac 2024-11-14 02:50:04 +09:00
Dario Nieuwenhuis
0de204ccd7 Fix "non-local impl definition" warning from recent nightlies. 2024-11-08 13:20:13 +01:00
flippette
84def1608f Also implement embedded_io::Write for UartTx<'d, T: Instance, Blocking> 2024-11-01 23:47:25 +02:00
Dario Nieuwenhuis
3225848bd2 rp/pio: ensure PADS IE=1 which is not the default in rp235x.
Fixes #3476
2024-10-31 21:26:40 +01:00
flippette
93dd21042c
Implement embedded_io::Write for Uart<'d, T: Instance, Blocking> (#3483)
* Implement `embedded_io::{Read,Write}` for `Uart<'d, T: Instance, Blocking>`

* Unimplement `embedded_io::Read` for `Uart<'d, T: Instance, Blocking>`

* Revert "Unimplement `embedded_io::Read` for `Uart<'d, T: Instance, Blocking>`"

* Unimplement `embedded_io::Read` for `Uart<'d, T: Instance, Blocking>` (take 2)
2024-10-31 21:14:11 +01:00
Connor
ca8e885dbb Add tx_dma to async spi 2024-10-27 17:57:59 -05:00
Vincenzo Marturano
9690bed5a6 Fix documentation. 2024-10-25 13:12:24 +02:00
Vincenzo Marturano
71fe8a7b90 Fixed owned split and implemented split_by_ref. 2024-10-25 12:54:06 +02:00
Vincenzo Marturano
874dbec5a4 Fixed mistakes. 2024-10-24 19:52:09 +02:00
Vincenzo Marturano
354ff3bac3 Fix missing lifetime 2024-10-24 19:46:23 +02:00
Vincenzo Marturano
336ef01b05 Implemented owned split. 2024-10-24 19:36:54 +02:00
Vincenzo Marturano
052463212b Revert "Add new() method to PwmBatch so it can be istantiated."
This reverts commit 31662eaeef0762a7c7b9c95aee61a9066d7e447a.
2024-10-24 16:20:28 +02:00
Vincenzo Marturano
31662eaeef Add new() method to PwmBatch so it can be istantiated. 2024-10-24 16:04:32 +02:00