Commit Graph

672 Commits

Author SHA1 Message Date
Caleb Jamison
3d6a270f30
rp: Fix indexing for pins >31 on rp235xb (#3330)
* Fix indexing for pins >31 on rp235xb

* fixup knowing that 1<<7 is 128 not 64
2024-09-12 01:44:11 +02:00
Caleb Jamison
e75903138a Fix commented out code 2024-09-04 13:42:03 -04:00
Caleb Jamison
0434798439 Import otp from rp-hal, helper fns for chipid and randid
Again, credit to @thejpster for doing the hard part and figuring out the
otp.
2024-08-29 21:08:25 -04:00
Caleb Jamison
372270a9b9 rp235x flash support.
The 2350 doesn't have a boot2 like the 2040, but it does have the
concept of a xip setup function that could be customized. By default the
bootrom searches for the attached flash chip and provides an xip setup
func at the base of the bootram. That bootram is not executable, so it
still needs to be copied to ram like boot2 would be.

Currently does not use inline assembly.

Also switch to picotool, as elf2uf2 has not been patched to support the
2350.
2024-08-29 10:47:03 -04:00
Caleb Jamison
0a33edc997 Import rom_data for the rp235x, don't use intrinsics on rp235x
Many thanks to @thejpster for his work on the rom_data!
Working around boot2 is currently a bit hacky for the rp235x, that will
improve in upcoming rp235x flash pr.
2024-08-26 09:43:08 -04:00
Ugljesa Jovanovic
8c1024b2a5
Set up timer0 tick when initializing clocks 2024-08-24 12:19:12 +02:00
Dario Nieuwenhuis
eab3a57263 rp: use the rp-binary-info crate for binary info. 2024-08-17 22:12:39 +02:00
Dario Nieuwenhuis
16c3e5880f Add license files to embassy-rp crediting rp-rs. 2024-08-16 17:51:52 +02:00
Jonathan 'theJPster' Pallant
ccf8ce7c7e Note where some embassy-rs files come from.
In a similar fashion to other source files taken from rp-rs.
2024-08-16 17:48:22 +02:00
Caleb Jamison
0b58ef8f1b Fix commented out code 2024-08-13 00:54:41 -04:00
Dario Nieuwenhuis
3e27ee1ecc Actually fix embassy-rp docs build. 2024-08-12 14:38:52 +02:00
Caleb Jamison
13cb431472 Enable rp235x doc tests, fixup feature doc
The rp235x doc test requires an unfortunate workaround using a private
feature, "_test", in order compile.
2024-08-12 05:47:16 -04:00
Caleb Jamison
752fbc662a Fix docs, ci 2024-08-12 05:06:59 -04:00
Caleb Jamison
778241fd71 Fix CI, rename private feature, address comments from dirbaio. 2024-08-12 04:32:31 -04:00
Dario Nieuwenhuis
9dc4375f18 rp: update PAC, fix CI. 2024-08-12 03:25:41 -04:00
Caleb Jamison
0d41566c24 Switch to embassy's rp-pac repo, also use a patch. 2024-08-10 17:39:33 -04:00
Caleb Jamison
9a863f07fe Handle pad isolation everywhere and in the same way. 2024-08-10 17:36:28 -04:00
Caleb Jamison
ffdc60d6fb Move #![cfg]s to lib.rs 2024-08-09 16:09:16 -04:00
Caleb Jamison
05cb1baf37 Fix ci/rustfmt 2024-08-09 15:54:30 -04:00
Caleb Jamison
e5d8d8b18e Switch to single pac 2024-08-09 12:31:29 -04:00
Caleb Jamison
6a797deb72 Fixup pac dep sources 2024-08-08 22:07:43 -04:00
Caleb Jamison
6f03c40516 cargo fmt 2024-08-08 21:54:21 -04:00
Caleb Jamison
b185e02a42 Initial rp235x support
Examples have been run, but there is not yet a test suite.
2024-08-08 21:35:21 -04:00
Joris Kleiber
06872da5f8 Fix broken link to rp-pac and add link to critical-section in embassy-rp 2024-08-05 16:59:08 +02:00
Ulf Lilleengen
886580179f update dates 2024-08-05 08:58:56 +02:00
Ulf Lilleengen
f605302791 Prepare to release embassy-rp 2024-08-05 08:56:29 +02:00
Ulf Lilleengen
37d7b0cd06 prepare release embassy-executor 2024-08-05 08:56:29 +02:00
Ulf Lilleengen
44282b18fa Prepare embassy-time release 2024-08-05 08:56:29 +02:00
Ulf Lilleengen
fb0ab1e42a Prepare release of embassy-hal-internal 2024-08-05 08:56:29 +02:00
Ulf Lilleengen
5767c003cc Prepare release of embassy-embedded-hal 0.2.0 2024-08-05 08:56:29 +02:00
Rafael Bachmann
2a1ace29a3
Fix possible typo in embassy-rp README.md
There is no feature `time` in embassy-rp. Is it `time-driver`? Is it something else?
2024-08-03 15:32:39 +02:00
Ulf Lilleengen
f2c29ba9d8
Merge pull request #3174 from JomerDev/add-count-to-read_to_break
RP2040: Add read_to_break_with_count
2024-08-02 13:50:32 +00:00
Dario Nieuwenhuis
2d678d6956 Update to Rust 1.80, make check-cfg unconditional. 2024-07-25 15:53:00 +02:00
Jomer.Dev
7c1ecae53f Add read_to_break_with_count 2024-07-19 16:01:20 +02:00
Dario Nieuwenhuis
5e625f274a
Merge pull request #3185 from MathiasKoch/embassy-rp/uart-split-ref
(embassy-rp): Add split_ref fn to uart, allowing a mutable reference split into RX & TX handles
2024-07-18 12:10:37 +00:00
taaki2311
255864f46c
Merge branch 'embassy-rs:main' into main 2024-07-17 17:07:01 -04:00
Tarun Singh
a716a3f006 Reduced define for 'unreachable!' to a single macro rule 2024-07-17 17:05:52 -04:00
Mathias
4c34132337 Correctly handle modifying LCR register after uart enable 2024-07-17 12:23:59 +02:00
Mathias
f733071908 Add split_ref fn to uart, allowing a mutable reference split into RX & TX handles. Also change order of RX and TX handles in split fn, to streamline with other HALs 2024-07-17 11:25:03 +02:00
Dario Nieuwenhuis
a0f8948c1c Update nightly, fix error with rp inline asm. 2024-07-16 16:40:54 +02:00
rafael
d8821dd7d7 rustfmt 2024-07-10 22:56:12 +02:00
rafael
68b3fbe348 implement read_ready method in BufferedUart 2024-07-10 22:54:48 +02:00
Krzysztof Królczyk
96cdf9c9e0
rp/i2c: add address flexibility and example
Previous i2c examples are using either blocking Embassy API
or e-h traits, this example uses Embassy pub API directly.

Signed-off-by: Krzysztof Królczyk <Krzysztof.Krolczyk@o2.pl>
2024-06-28 19:51:33 +02:00
Dario Nieuwenhuis
3ae2f140f9
Merge pull request #3119 from diondokter/rp-boot2-none
RP: Shut up missed warning boot2-none
2024-06-25 15:48:11 +00:00
Dion Dokter
5dbc531671 RP: Shut up missed warning boot2-none 2024-06-25 16:54:34 +02:00
Dario Nieuwenhuis
bce7c73a3a
Merge pull request #3118 from diondokter/rp-boot2-none
RP: add option to provide your own boot2
2024-06-25 12:58:56 +00:00
Dion Dokter
957be1980d Fix syntax error? 2024-06-25 14:43:30 +02:00
Dion Dokter
92343551aa RP: add option to provide your own boot2 2024-06-25 14:31:15 +02:00
Henrik Alsér
cfe8561550
Merge pull request #3044 from kalkyl/adc-multi
rp: Add multichannel ADC
2024-06-22 21:05:17 +00:00
kalkyl
e3891b09dc Add comment about internal api 2024-06-22 16:39:23 +02:00
Dario Nieuwenhuis
6a4ac5bd60 Add collapse_debuginfo to fmt.rs macros.
This makes location info in defmt logs point to the code calling the macro,
instead of always to fmt.rs as before. Fix works with nightlies
starting with today's, and stable 1.81+.
2024-06-17 01:38:57 +02:00
Dario Nieuwenhuis
7ad76f5f60 Use raw slices .len() method instead of unsafe hacks.
Stabilized in 1.79.
2024-06-13 20:41:08 +02:00
Mikkel
d08639f643
Add missing word "pin" in rp pwm documentation
It is confusing to read without. The corrected line reads like its 'b' pin counterpart (few lines below).
2024-06-12 14:56:21 +02:00
Dario Nieuwenhuis
3e2b015dc4
Merge pull request #3054 from dvdsk/clonable-errors
Add Clone and Copy to Error types
2024-06-09 09:47:26 +00:00
dvdsk
871fe3a549
Add Clone and Copy to Error types
None of them are `non-exaustative`, they are all small enough to be copy
(I estimate none are larger than 4 bytes).
2024-06-06 23:19:07 +02:00
kalkyl
bf36bec9bb rp: Add multichannel ADC 2024-06-05 09:42:08 +02:00
Ulf Lilleengen
30918c355b prepare for embassy-time 0.3.1 release 2024-06-04 09:02:41 +02:00
Ulf Lilleengen
cf0d227cca Prepare for embassy-sync 0.6.0 release 2024-05-29 12:09:55 +02:00
Nick
9031ce7fa7 rp: fix watchdog CTRL register getting overwritten 2024-05-29 06:30:41 +01:00
Dario Nieuwenhuis
d18a919ab9 rp: wait until read matches for PSM accesses. 2024-05-27 00:14:44 +02:00
Dario Nieuwenhuis
33bdc9e85f rp: fix spinlocks staying locked after reset.
Fixes #1736
2024-05-24 20:04:14 +02:00
Dario Nieuwenhuis
e55f31bdc6 rp/pwm: rename channel->slice in args, misc fix. 2024-05-21 23:41:45 +02:00
Ismet Handzic
24032d0853 Remove generics from embassy-rp 2024-05-21 23:35:06 +02:00
Dario Nieuwenhuis
a266948a7a
Merge pull request #2956 from tact1m4n3/uart-fix
Fix drop implementation of `BufferedUartRx` and `BufferedUartTx` in `embassy-rp`
2024-05-20 08:44:01 +00:00
Alexander van Saase
e3e3728dae rp/flash: implement embedded_storage_async::nor_flash::MultiwriteNorFlash 2024-05-18 23:28:37 +02:00
tact1m4n3
5b2535c8a2 fix(embassy-rp): fix drop implementation of BufferedUartRx and BufferedUartTx 2024-05-17 21:51:45 +03:00
QWS
c3db435011 Fix: typo 2024-05-14 15:48:00 +08:00
QWS
75cf17994f In the start_xosc function, the frequency range is set twice. Remove the redundant one. 2024-05-13 19:48:23 +08:00
Rob Pilling
84cd0c672b rp usb: wake ep-wakers after stalling 2024-05-10 16:27:08 +01:00
Rob Pilling
94b38449bd rp usb: add stall implementation 2024-05-10 16:27:08 +01:00
Dario Nieuwenhuis
5732ee7ca9 Reduce use of the full futures crate. 2024-04-26 23:22:25 +02:00
Jan Niehusmann
3f8736e872 Add a comment to the pio rx fifo pull function 2024-04-21 21:24:15 +00:00
pawel00100
143b288333 Add parameter for enabling pull-up and pull-down in RP PWM input mode 2024-04-05 01:20:34 +02:00
Dario Nieuwenhuis
a84b33995e rp: remove mod sealed. 2024-04-05 00:48:46 +02:00
Alexandru RADOVICI
7c36e8dbc7 rename pins data type and the macro 2024-04-02 20:05:46 +03:00
Alexandru RADOVICI
d35572c11f rename pwm channels to pwm slices, including in documentation 2024-04-02 19:50:30 +03:00
Alexandru RADOVICI
7b9546c9c8 rename the Channel trait to Slice and the PwmPin to PwmChannel 2024-04-02 19:42:37 +03:00
Alexandru RADOVICI
aa9eb2ab01 rename PWM_CH to PWM_SLICE 2024-04-02 17:20:35 +03:00
Rafael Bachmann
e139a4e076 fix: CI 2024-03-25 15:09:41 +01:00
Rafael Bachmann
cf789be420
Merge branch 'embassy-rs:main' into barafael/minor_clippy_lints_rp 2024-03-25 14:43:18 +01:00
Dario Nieuwenhuis
eca9aac194 Fix warnings in recent nightly. 2024-03-20 16:39:09 +01:00
Dario Nieuwenhuis
3d842dac85 fmt: disable "unused" warnings. 2024-03-20 14:53:19 +01:00
Rafael Bachmann
255ed29853 fix minor clippy lints in embassy_rp 2024-03-18 23:28:58 +01:00
Rafael Bachmann
5221965a1f
Fix minor typos in embassy_rp/src/lib.rs 2024-03-18 23:02:46 +01:00
Caleb Jamison
f1bf931920 fixup another display -> debug 2024-02-22 06:40:39 -05:00
Caleb Jamison
25bff1d0b9 Fixup comments from James 2024-02-22 06:34:58 -05:00
Caleb Jamison
89986fe967 Fixup display -> debug 2024-02-22 06:21:40 -05:00
Caleb Jamison
5ddee8586a rp2040 i2c_slave improvements
Fix race condition that appears on fast repeated transfers.

Add public reset function. Because application code can stall the bus,
we need to give application code a way to fix itself.
2024-02-22 06:15:31 -05:00
Caleb Jamison
0c6d3ea051 Add SetConfig impl to rp2040 i2c
Also expand test to cover 1kHz, 100kHz, 400kHz, and 1MHz speeds.
2024-02-22 06:14:48 -05:00
Andelf
6734f52676 rp/gpio: fix wrong io _bank calc 2024-02-17 20:44:59 +08:00
Dario Nieuwenhuis
e19bed921d
Merge pull request #2581 from adsnaider/main
Add unsafe constructor for AnyPin
2024-02-17 01:46:12 +00:00
Caleb Jamison
f41b0f6ba9 Remove unused imports 2024-02-15 23:06:57 -05:00
Adam Snaider
72e92647e2 Add unsafe constructor for AnyPin 2024-02-15 19:32:11 -05:00
Caleb Jamison
bd0b450ca4 Improve rp2040 i2c slave
This commit takes the fixes and error reporting improvements from
jcdickinson's work and applies them without overlaying a software state
machine on top of the hardware state machine.

Also allows configuration of response to 'general call' writes.
2024-02-15 17:56:50 -05:00
Jomer.Dev
0708ce1410 Use saturating_sub to make sure we don't overflow 2024-01-29 17:14:23 +01:00
Dario Nieuwenhuis
ee0ebe3121 rp/gpio: remove generics. 2024-01-22 21:32:10 +01:00
James Munns
5e08bb8bc3 A rebase ate my doc comment! 2024-01-19 15:46:36 +01:00
James Munns
1ce96f79fb Fun Learning about the RP2040 UART impl! 2024-01-19 14:02:17 +01:00
James Munns
94290981c3 Debugging RSR 2024-01-19 14:02:17 +01:00
James Munns
fe172109be A little more cleanup 2024-01-19 14:02:17 +01:00