Dániel Buga
af6ee36d93
Ability to precompute/cache config register values ( #3011 )
...
* Cache bus clock register and support clock source
* Recalculate eagerly to keep Config Copy
* Destabilize UART clock source
* Update I2C
* Changelog
* Refactor builder lite helpers for more flexibility
* Flatten config structs
* Add getters, hide fields
* Hide all config fields
* Fix changelog
* Document the precomputation
2025-01-30 09:44:52 +00:00
Dániel Buga
5ec8be4af2
Fix LCD_CAM disabling its clocks ( #3007 )
2025-01-21 10:31:20 +00:00
Dániel Buga
571760884b
Update our time driver for upcoming embassy changes ( #2701 )
...
* Add a timer-driven task
* Spawn another timer
* Log
* foo
* Do not access current time on each schedule
* Update generic queue
* Minimize alarm priorities
* Point to github with patches
* Fix build without any queue impl selected
* Remove explicit generic-queue features
* Define cfgs, fix calling something uninitialized
* Clean up RefCell+generic queue
* Fix arg order
* Feature
* Fix single integrated-timer queue
* Fix next expiration when arming
* Add note
* Adjust impl to latest changes
* Local patch
* Refactor the refactor refactor
* Track the timer item's owner
* Clear owner on dequeue
* Clean up
* Point at the right branch
* Fix panic message
* Hide private function
* Remove integrated-timer references
* Point at upstream embassy
* Configure via esp-config
* Document, clean up, fix
* Hack
* Remove patches
* Update config separator, test the complex variant
* Undo esp-config hack
* Remove trouble example, update edge-net
* Update test deps
* Document
* Update bt-hci.
* Fix generic queue
* Fix panic message
* Fix UB
* Fix rebase
* Resolve UB
* Avoid mutable reference in interrupt executor
---------
Co-authored-by: Dario Nieuwenhuis <dirbaio@dirbaio.net>
2025-01-14 16:17:58 +00:00
Dániel Buga
848029b152
Test all feature sets ( #2901 )
...
* Mark interconnect as unstable
* Explicitly set unstable feature in HIL tests
* WIP append feature set name to artifact
* Add name to feature sets, build all combinations
* Fix tests
* Provide a looping executor for stable async tests
* Fix usb serial jtag
* Hide interconnect types
2025-01-09 13:58:14 +00:00
Dániel Buga
7f8af8a651
Remove prelude ( #2845 )
...
* Remove prelude
* Changelog
2024-12-20 10:24:57 +00:00
Juraj Sadel
d54f8440a5
HIL(QOL): Use global timeout instead of timeout macros ( #2489 )
...
* HIL(QOL): Add missing timeouts to various tests
* Increase timeouts for ECC
* Use global timeout in hil tests
* sha: increase test_digest_of_size_1_to_200 timeout from 10 to 15 seconds
2024-12-04 12:03:39 +00:00
Dániel Buga
92910bf1cb
Constructor consistency update ( #2610 )
...
* UART: only implement constructors with config, define ConfigError
* UART: only implement interrupt functions for Blocking
* I2C: fallible constructors
* Lcd/Cam
* SPI
* Update tests and examples
* Changelog
* Add note about ConfigError
* Fmt
2024-11-28 09:28:50 +00:00
Dániel Buga
ef98e2b24f
[DMA 7/8]: Remove Dma
, move channels to Peripherals
( #2545 )
...
* Move DMA channels into Peripherals
* Initialize DMA in the critical section needed for clock management
* Update esp-hal/MIGRATING-0.22.md
Co-authored-by: Jesse Braham <jessebraham@users.noreply.github.com>
---------
Co-authored-by: Jesse Braham <jessebraham@users.noreply.github.com>
2024-11-25 09:31:18 +00:00
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
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
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
Dominic Fischer
8789ca3c3d
Migrate I8080 driver to a move based API ( #2191 )
...
* Migrate I8080 driver to a move based API
* fmt
* comments
---------
Co-authored-by: Dominic Fischer <git@dominicfischer.me>
2024-10-02 13:23:10 +00:00
Dániel Buga
562c891ef9
SPI pins are no longer optional ( #2133 )
...
* SPI pins are no longer optional, rename DummyPin
* Swap QSPI test expected levels
* Tweak documentation around Level, implement PeripheralOutput
* Fmt
2024-09-12 10:59:12 +00:00
Sergio Gasquez Arcos
b5f0246129
Reordered RX-TX pairs to be consistent ( #2074 )
...
* feat: Update rx-tx order in i2s
* feat: Update rx-tx order in dma macros
* feat: Update rx-tx order in spi
* feat: Update rx-tx order in aes
* feat: Update rx-tx order in mem2mem
* feat: Update rx-tx order in twai and split methods
* feat: Update rx-tx order in twai
* feat: Update rx-tx order in twai and uart docs
* docs: Add sentence about order
* docs: Update changelog
* feat: Update rx-tx order in embassy_interrupt_spi_dma tests
* style: Rustfmt
* docs: Migrating guide
* fix: Typo
Co-authored-by: Dániel Buga <bugadani@gmail.com>
* fix: Diff
Co-authored-by: Dániel Buga <bugadani@gmail.com>
* fix: Tests rx-tx order
* fix: Update new_with_default_pins order
* feat: Update rx/tx order in hil_test::common_test_pins!
* feat: Update dma_extmem2mem example
* fix: Revert deleted input arg
* style: rustfmt
* feat: Disable test_asymmetric_dma_transfer for S2
---------
Co-authored-by: Dániel Buga <bugadani@gmail.com>
2024-09-06 09:56:10 +00:00
Dániel Buga
99bf346898
Remove the need to manually pass clocks around ( #1999 )
...
* Clean up passing clocks to drivers
* Update changelog
* Initialise Clocks in a critical section
* Fix calling now() before init
* Fix doc
* Fix esp-wifi migration guide
* Add safety comment
* Update tests
2024-09-04 14:13:51 +00:00
Dániel Buga
447411fb58
Rework hal initialization ( #1970 )
...
* Rework hal initialization
* Turn sw interrupt control into a virtual peripheral
* Return a tuple instead of a named struct
* Fix docs
* Remove SystemClockControl
* Move software interrupts under interrupt
* Re-document what's left in system
* Update time docs
* Update sw int docs
* Introduce Config
* Fix tests
* Remove redundant inits
* Doc
* Clean up examples&tests
* Update tests
* Add changelog entry
* Start migration guide
* Restore some convenience-imports
* Remove Config from prelude
2024-09-02 13:38:46 +00:00
Priit Laes
a41bc4cb3d
gpio: Make AnyPin, AnyInputOnlyPin, DummyPin available from gpio module ( #1918 )
...
Making these available straight from `gpio` aligns it with other Embassy
implementations (mainly nrf and stm32).
Signed-off-by: Priit Laes <plaes@plaes.org>
2024-08-26 18:30:24 +00:00
Dániel Buga
b4ccb359ef
HIL: Multiple featuresets & conditionally enable generic-queue feature ( #1989 )
...
* Conditionally enable generic-queue feature
* Allow specifying multiple feature sets and run all of them
2024-08-26 06:19:03 +00:00
Dániel Buga
ec130877b7
Disable RTT polling in HIL tests by default ( #1960 )
...
* Disable defmt-rtt by default
* Update i2s test based on changes done to async
* fmt
* Update readme
* Update more tests
2024-08-19 13:47:22 +00:00
liebman
67bb6c54bb
Implement async for lcd_cam i8080 ( #1834 )
...
* implement async for lcd_cam i8080
* lcd_cam: implement InterruptConfigurable for blocking and improve async
* lcd_cam: use new async interrupt semantics from #1835
* lcd_cam: move interrupt handler binding into `new_async()`
* lcd_cam: Instance::is_listening_lcd_done not used
* i8080: no need for seperate `new_async()`
* i8080: don't use DmaTxFuture, just test for dma error after complete
* add HIL tests for LCD_CAM i8080 in blocking and async.
* lcd_cam_i8080: test channels configured for async as well since teh compiler can't prevent it for now
* fmt :-/
* lcd_cam fix comment
* changelog
* lcd_cam async: no need to enable interrupts until polled
* lcd_cam: i8080 update for ReadBuffer changes
2024-07-29 13:59:52 +00:00