Dániel Buga
3a4a7632b1
[DMA 4/8]: Apply Peripheral pattern ( #2526 )
...
* Create DMA Channels inside peripherals
* Add PARL_IO into_async functions
* Update tests and examples
* Restore configurable priority via DmaChannel
* Add mode param to DPI driver
* Fix test by raising SPI frequency
* Fix split
* Changelog
* Update esp-hal/CHANGELOG.md
Co-authored-by: Dominic Fischer <14130965+Dominaezzz@users.noreply.github.com>
---------
Co-authored-by: Dominic Fischer <14130965+Dominaezzz@users.noreply.github.com>
2024-11-22 09:05:22 +00:00
Dániel Buga
973671c3cb
[DMA 3/8] Remove ChannelCreator types, temporarily disable burst mode ( #2403 )
...
* Remove ChannelCreator types and burst mode
* Fix up I2sParallel
* Always enable burst transfering descriptors
* Configure burst transfer with a non-bool for future chip support
* Reuse buffer preparation code
* Update LoopBuf as well
* Update lcd_cam tests
* Rename config, fix changelog
2024-11-21 15:01:29 +00:00
Björn Quentin
f9203dc523
Disable peripherals when unused ( #2544 )
...
* Disable peripherals when unused
* Fixes
* CHANGELOG.md
* Fix
* Address review comments
* Have dedicated guards for CAM and LCD
* Re-use `Cam`'s guard
* De-duplicate, assert
* fmt
* Require CriticalSection
* Address comments
* Remove redundant guard
* Use `GenericPeripheralGuard`
* Renaming
2024-11-21 09:21:28 +00:00
Dániel Buga
70fe8fb077
Remove some unnecessary prelude reexports ( #2564 )
...
* Remove some unnecessary prelude reexports
* Fix test
2024-11-19 13:31:08 +00:00
Dominic Fischer
7821968df8
Introduce RGB/DPI driver ( #2415 )
...
* Introduce RGB/DPI driver
* Choose different pin for HIL test
* fail
* Use official devkit
* merge update
* non_exhaustive
---------
Co-authored-by: Dominic Fischer <git@dominicfischer.me>
2024-11-19 10:15:09 +00:00
Dániel Buga
4f6d51fefa
Add missing Sealed impl ( #2560 )
...
* Add missing Sealed impl
* Typos
* It compiles
2024-11-18 14:15:40 +00:00
Dániel Buga
38dde2ebbd
[DMA 1/N] Add mode to DMA channel drivers ( #2519 )
...
* Add mode to DMA channel drivers
* Swap dma Channel CH and DM
* Fix copy-paste mistake
2024-11-14 08:03:05 +00:00
Jesse Braham
92b91257e9
Remove get_ prefix from functions ( #2528 )
...
* Remove `get_` prefixes from functions
* Update migration guides for `esp-hal` and `esp-wifi`
* Update `CHANGELOG.md` files
2024-11-13 15:40:26 +00:00
Dániel Buga
b538e48ea4
Fix RMT test ( #2529 )
2024-11-13 13:52:11 +00:00
Björn Quentin
7da4444a7e
Fail RMT one-shot transactions if end-marker is missing ( #2463 )
...
* Fail RMT one-shot transactions if end-marker is missing
* CHANGELOG.md
* Add test
* Fix
* Fix
* RMT: use u32, turn PulseCode into a convenience trait
* Clippy
* Adapt test
2024-11-13 11:29:36 +00:00
Dániel Buga
8cbc249e2e
I2c: attempt empty writes ( #2506 )
...
* Attempt 0-length writes
* Deduplicate
* Changelog
* Test existing address
* Name addresses
* Fix formatting
2024-11-13 09:57:30 +00:00
Dániel Buga
fbc57542a8
Remove pins from Io ( #2508 )
...
* Split pins off of Io
* Remove the GPIO peripheral
* p.GPIO
2024-11-12 10:36:25 +00:00
Dániel Buga
2c14e595db
I2C: add apply_config, implement SetConfig, add with_sda and with_scl ( #2477 )
...
* Implement apply_config, SetConfig
* Remove pins from constructors
* Implement timeout changes, document them
* Fix up changelog
2024-11-08 22:51:42 +00:00
Dániel Buga
e10ae2ddff
GPIO: do not overwrite interrupt handler ( #2486 )
...
* Prefer defmt unwrap
* Auto-bind the GPIO interrupt handler
* Changelog
* Bind interrupt handler when initializing the hal
* Remove user handler overhead unless user handler is bound
* Add tests
* Try to preserve direct-bound handlers
* Fix match
* Don't rely on the vector table to check direct binding
* Fix comment
2024-11-08 17:04:06 +00:00
Björn Quentin
3c4b7f0f66
Test more embassy interrupt spi dma ( #2490 )
...
* Add C3,C6 and H2 for `embassy_interrupt_spi_dma`
* Test more
* Don't require physically connected pins
2024-11-08 13:43:34 +00:00
Scott Mabin
50d8187e39
esp-wifi: Remove unneeded features ( #2446 )
...
* remove async features
* phy-usb config
* modem powersaving
* Fix examples
* make ps a runtime config
* fix linting
* changelog and migration guide
* revert esp-config changes
* remove blanklines after doc comments
* cfg away ps API
2024-11-08 13:30:33 +00:00
Dániel Buga
6d6f6a7baa
Move I2C driver to i2c::master ( #2476 )
...
* Move I2C driver to i2c::master
* Update esp-hal/CHANGELOG.md
Co-authored-by: Dominic Fischer <14130965+Dominaezzz@users.noreply.github.com>
---------
Co-authored-by: Dominic Fischer <14130965+Dominaezzz@users.noreply.github.com>
2024-11-08 12:28:53 +00:00
Dániel Buga
d5e6ba5ceb
SPI slave with_pin functions ( #2485 )
2024-11-08 07:29:37 +00:00
Dániel Buga
4233bddf23
Fix test warnings ( #2483 )
2024-11-07 15:05:49 +00:00
Dániel Buga
0da6eec089
Move I2S drivers to i2s::master and i2s::parallel ( #2472 )
...
* Move I2S drivers to i2s::master and i2s::parallel
* Remove mention of master mode
2024-11-07 09:39:08 +00:00
Dániel Buga
4c5be2c907
Interconnect: force signals through GPIO matrix if split ( #2419 )
...
* Allow splitting off of gpio drivers
* Extract and correct low level connection bits
* Add Input/OutputSignal::connect_to
* Remove unnecessary public API
* Fix typos
* Remove unused private methods
* Add separate Direct signals that do bypass the GPIO matrix
* Do not disable stage input
* Clean up spi_slave test
* Constrain to static Flex
* Improve docs
* Separate input_enable and open_drain parameters
* Link to the chapter
* Changelog
* Clarify
2024-11-06 13:55:34 +00:00
Dániel Buga
8860aba9b2
Spi master: remove public hidden APIs, add Config/apply_config ( #2448 )
...
* Remove hidden public SPI API
* Fix in_progress flags not being set
* Remove redundant checks, fix full-duplex flag
* Remove now-redundant Send impl
* apply_config
* SetConfig
* Return ConfigError
* Unwrap config result in ctor
2024-11-06 09:03:43 +00:00
Dániel Buga
665fb0e278
Flatten Uart module, remove unnecessary data, replace methods with apply_config ( #2449 )
...
* Flatten uart config
* Do not remember at_command config
* Don't save config values in memory
* Move config implementations to Info
* Changelog
* Remove unused methods
* apply_config, SetConfig
* Fix test
* simplify futures
* Update esp-hal/CHANGELOG.md
Co-authored-by: Sergio Gasquez Arcos <sergio.gasquez@gmail.com>
---------
Co-authored-by: Sergio Gasquez Arcos <sergio.gasquez@gmail.com>
2024-11-05 09:56:14 +00:00
Dániel Buga
1e6820d1a7
Systimer improvements ( #2451 )
...
* Do not read to set update bit
* Deduplicate
* Try to bind interrupts to the correct core
* Inline poll_count into read_count
* Clean up
* Make sure only a single update is done at a time
* Changelog
* Fix docs
* Correct the channel count
* Assign enough timers for HIL test
* Use a lock to prevent re-update
* Remove locking, use esp-idf implementation
* Document timer count requirement
2024-11-04 11:36:34 +00:00
Dániel Buga
0c86740418
Peripheral interconnect redo, vol 2 (split()) ( #2418 )
...
* Replace peripheral connection conversions with split
* Constrain Flex conversions
2024-11-04 11:29:28 +00:00
Dániel Buga
40c0a6944e
into_async (#2430 )
...
* Remove configure_for_async
* Add into_async and into_blocking to I2c
* Add into_async and into_blocking to UsbSerialJtag
* Rework LCD_CAM
* Rmt
* RSA
* TWAI
* Uart
* Documentation
* Disable interrupts set on other core
* Move configure into RegisterAccess
* Disable interrupts on the other core
* Use EnumSet in RMT
2024-11-04 09:32:12 +00:00
Scott Mabin
c717f04d4d
Remove EspWifiInitFor & more granular init/deinit per driver ( #2301 )
...
* More granular init and deinit per driver
- Rework EspWifiInit
- No longer require EspWifiInitFor
- Add Drop impls for each driver, and add Drop for EspWifiController to
fully deinit the stack
* unwrap! more stuff
* fixup examples and esp-now
* unwrap less stuff
* review feedback
* seal wifi traits, allow rng or trng to init esp-wifi
* changelog and migration guide
* return wifi error in esp now constructor instead of panic
2024-11-04 08:08:19 +00:00
Dániel Buga
f9c7d06a6e
Disable i2s test ( #2439 )
2024-10-31 14:16:39 +00:00
Björn Quentin
416c1481ae
Circular dma improvements ( #2409 )
...
* Check for error when pushing into a circular dma transaction too late
* Adapt tests
* Adapt example
* Don't block forever if trxing to pop from a circular DMA transfer too late
* Have a dedicated error for circular-DMA reading/writing too late
* Stop I2S RX before resetting it
* Migration guide
* Address review comment, make CI pass
* Adopt ideas from review
* Fix
* Update esp-hal/MIGRATING-0.21.md
Co-authored-by: Dominic Fischer <14130965+Dominaezzz@users.noreply.github.com>
* assert
---------
Co-authored-by: Dominic Fischer <14130965+Dominaezzz@users.noreply.github.com>
2024-10-30 16:25:29 +00:00
Dániel Buga
f07e25c970
Add option to disable waiti ( #2329 )
2024-10-30 08:12:15 +00:00
Dániel Buga
681f4ef0aa
Implement UART type erasure ( #2381 )
...
* Simplify test
* Remove unnecessary refs
* Improve readability
* Require Instance: PeripheralMarker
* Take &self
* Avoid unsafe code on non-s2
* SImplify drain_fifo
* Simplify read_bytes
* Avoid a register read on ESP32
* Deduplicate is_idle functions
* Add missing inlines
* Move code out of trait
* Erase UART instances
* Disable LTO
2024-10-25 08:03:20 +00:00
Dániel Buga
561b582a80
Overhaul peripheral signal system, first run ( #2388 )
...
* Remove redundant bound
* Remove redundant Dummy variant
* Make PeripheralOutput extend PeripehralInput
* Rename AnyInputSignal to InputConnection
* Add OutputConnection
* Convert into type-erased interconnect conections
* Clean up LCD/CAM
* Document changes
* Review changes
Co-authored-by: Dominic Fischer <14130965+Dominaezzz@users.noreply.github.com>
* Clean up
---------
Co-authored-by: Dominic Fischer <14130965+Dominaezzz@users.noreply.github.com>
2024-10-25 07:01:45 +00:00
Dániel Buga
2ac47868f7
Remove FullDuplexMode and HalfDuplexMode type params ( #2373 )
...
* Remove duplex type param
* Rename dma_ functions
2024-10-24 07:22:21 +00:00
Dániel Buga
c163b0586a
Erase TWAI ( #2359 )
...
* Swap order of generics
* Don't refer to Instance in irq handler
* Deduplicate a bit
* Take &self
* Reduce nesting
* Erase TWAI instance
2024-10-24 06:47:02 +00:00
Dániel Buga
e367c83bde
Erase i2c peripheral instances ( #2361 )
...
* Clean up
* Erase I2C instance type
* Clean up
* Implement Peripheral
* Changelog
* Remove with_timeout constructors
2024-10-23 06:31:08 +00:00
Dániel Buga
632bbc6461
Fix interrupt executors waking up thread-mode executors on the first core ( #2377 )
...
* Clean up
* Add failing multi-core test
* Reset interrupts before main
* Changelog
* Add test case
2024-10-22 14:45:06 +00:00
Björn Quentin
c574834ae3
Include ROM API symbols ( #2374 )
...
* Include ROM API symbols
* Fixes and CHANGELOG.md
* Fix
* Move migration steps to the right crate's migration guide
* Remove `-Trom_functions.x` where necessary
2024-10-22 10:02:49 +00:00
Dániel Buga
d914a0301f
Erase i2s ( #2367 )
...
* Implement I2S type erasure
* Clean up
2024-10-22 06:33:27 +00:00
Dániel Buga
a754e411b1
SPI type erasure ( #2334 )
...
* Move SPI peripheral type to the last position
* Implement AnySpi
* Convert peripheral types
* Add new_typed constructors
* Implement PDMA
* Fix conditional
* Clean up constructors
* Fix test
* Move stuff to utils
* Extract any macros
* Merge PeripheralMarker defs into peripherals macro
* Changelogs
* Implement fn degrade
* Changelog num
* Fix typo
* Rename type-erased dma channel
* Remove degrade fn
* Remove utils
* Explain peripherals macro
2024-10-21 14:03:14 +00:00
Dániel Buga
f2aa3f9863
Update embedded-test ( #2375 )
2024-10-21 09:35:15 +00:00
Dániel Buga
d32a7336bb
Simplify traits and erratum 36 workaround, add Pins::steal ( #2335 )
...
* Simplify erratum 36
* Add Pins::steal
* Fix typo
* Move pin operations into Flex
* Cleanup braces
* Avoid panicking when handling erratum
* Add disable_usb_pad to other devices
* Touch up changelog
* Fix changelog
2024-10-18 14:17:43 +00:00
Dániel Buga
99a579973a
Preparatory i2s refactor ( #2316 )
...
* Take self
* Consolidate signal impls
* Remove traits
* Deduplicate impls
* Seal AcceptedWord
* Changelog
* Migration guide
---------
Co-authored-by: Jesse Braham <jessebraham@users.noreply.github.com>
2024-10-16 13:04:00 +00:00
Dániel Buga
ef7842fab4
Reimplement blocking trait for async i2c ( #2343 )
2024-10-14 12:50:37 +00:00
Dániel Buga
ba8daafb0b
Require float-save-restore in esp-wifi ( #2322 )
...
* Add failing test case
* Make sure task contexts are properly initialised
* Require float-save-restore for esp-wifi
2024-10-10 08:24:50 +00:00
Scott Mabin
0142703112
I2c rename, small docs clean up ( #2320 )
...
* cleanup prelude docs
* fixups and i2c rename
* changelog and migration
* fixup docs and examples
* fix lint
2024-10-10 07:26:13 +00:00
Dániel Buga
c26600f943
Fix first UART print ( #2318 )
...
* Fix first UART print
* Add test case
* Explicitly set level to cause problems
2024-10-09 15:16:56 +00:00
Dániel Buga
be9dc0e0b7
Fix restoring of CPENABLE ( #2315 )
...
* Add tests Cp0Disabled issue
* Fix saving CPENABLE on context switch
* Fix position shift of registers
* Clean up
2024-10-09 10:33:31 +00:00
Dániel Buga
7ca1b4376f
Erase DMA type params ( #2261 )
...
* Split PdmaChannel into two
* Take &self in PDMA traits
* Implement type-erased PDMA channels
* Remove Degraded assoc type
* Move degrade fns to base trait
* Use PeripheralDmaChannel on constructors only
* Remove WithDmaAes use
* Erase DMA type params
* Clean up examples/tests
* Remove redundant trait bounds
* Remove peripheral-specific DMA traits
* Document i2s change
* Clean up parl_io
* Deduplicate InterruptAccess
* Fix cfg
* Implement runtime compatibility check
* Clean up a bit
* Document changes
* Swap Channel type params, erase dma channel
* Unsplit traits
* Remove redundant cfg
* Fix docs
* Simplify DmaEligible
* Remove unsafe code
* Revert "Swap Channel type params, erase dma channel"
This reverts commit 415e45e44b297fd3cb55b4261c9ce151cca4b9c9.
* Allow different degraded DMA types
* Allow converting into peripheral-specific DMA channel, use it for compat check
* Erase PDMA types without AnyPdmaChannel
* Hide degrade fns for now, remove from MG
* Clean up SPI slave
* Fix QSPI test
* Fix mem2mem, fix S3 peripherals
* Fix S2
* Remove AnyPdmaChannel
* Remove PeripheralDmaChannel
* Remove unnecessary degrade call
2024-10-08 14:09:27 +00:00
Scott Mabin
08030d5541
bump all semver compatible deps ( #2303 )
2024-10-08 12:56:30 +00:00
Dániel Buga
af3f892381
ESP32 spi slave mode ( #2278 )
...
* Enable test on ESP32
* Enable module on ESP32
* Add ESP32 signal map
* Change pins
* Remove unknown signals
* Return to low level in test
* Fix bitlength
* Merge enable and reset
* Impl debug traits on DMA flags
* Disallow mods 0 and 2
* Docs tweaks
* Changelog
* Undo wait change
2024-10-07 15:00:15 +00:00