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
eabb6fb1c6
ETM improvements ( #2427 )
...
* ETM simplifications
* Work with GPIO signals
* Fix changelog
2024-11-05 13:39:19 +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
ed7960ce8b
Also add into_async for ParlIO ( #2461 )
2024-11-04 16:00:21 +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
Dominic Fischer
f9ba299f2e
Mark DmaDescriptors as Send ( #2456 )
...
Co-authored-by: Dominic Fischer <git@dominicfischer.me>
2024-11-04 07:50:44 +00:00
Dominic Fischer
05f2ee5a72
Allow users to create DMA Preparations ( #2455 )
...
Co-authored-by: Dominic Fischer <git@dominicfischer.me>
2024-11-04 07:38:46 +00:00
Dániel Buga
111ae93cc5
Fix, clean up and type-erase parallel i2s ( #2436 )
...
* Fix, clean up and type-erase parallel i2s
* Fix capitalization
* Add link to esp-idf code that offsets by 8
2024-11-01 10:50:39 +00:00
Dániel Buga
a5c4aa1cea
Tweak interrupt API ( #2442 )
...
* Tweak interrupt API
* Constrain SPI interrupt handling to Blocking mode
2024-10-31 16:18:44 +00:00
Dániel Buga
7d717c6acf
Fix UART erratum on ESP32 ( #2441 )
2024-10-31 15:00:36 +00:00
liebman
448ed9a001
implement a parallel interface for esp32 using the i2s peripheral ( #2348 )
...
* i2s_parallel for esp32 - partially working
* i2s_parallel for esp32 - works sync 16bit (still WIP)
* i2s_parallel - add 8-bit
* i2s_parallel - naive async implementation
* i2s_parallel - clippy
* add examples (mainly for testing now and we can reduce these before merge)
* set tx_wrx2 in 8 bit mode or it updates on half clocks!
* adjust clock config (still really a hack)
* better clock calculation/configuration
* no need to reset dma or interrupts in start, the DMA DmaTxBuf handles that
* seems to need a short delay during tx_reset
* use 20 clocks instead of 1us
* 1us delay between dma start and tx_start (like idf)
* changelog & documentation
* remove debugging functions
* no need for option in example
* make async example actually use async & remove Option
* implement Drop for I2sParallelTransfer
* fix signal offset comment for I2S0
* small cleanup in i2s_parallel examples
* added a note re I2S0 not supporting true 8bit
* update doc & fmt
* instace functions take &self
* fmt
* if run at 240MHz (CPU) delay needs to be bigger
* wait for fifo on start and fixes for 240MHz
* update for esp-hal-changes
* fmt
---------
Co-authored-by: Dániel Buga <bugadani@gmail.com>
2024-10-30 18:55:47 +00:00
Tu Nguyen
9d4b8fdbc6
[TWAI] bus-off error is never reached when using transmit_async ( #2421 )
...
* cancel pending tx request when error is from tx
* fix format error
* update CHANGELOG.md
2024-10-30 16:59:11 +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
Kirill Mikhailov
3e42b76993
Add an option to configure WDT action ( #2330 )
...
* WIP
* revert example
revert config
* changelog entry
* Make `RWDT` API work correctly, make `RWDT` and `MWDT`APIs same
* update documentation code
oops
* rev
* Polishing
* Document bootloader limitation
+ typo fix
* Address reviews
* fix documentation examples
2024-10-30 09:46:34 +00:00
Dániel Buga
8a23dbe1b6
Modernize UART interrupts ( #2406 )
...
* Modernize UART interrupts
* Also derive Debug and Format for interrupt enums
* Fix changelog
* Touch up API-GUIDELINES
2024-10-28 09:07:15 +00:00
Dániel Buga
f3c5286028
Add Cpu::COUNT and clean up in esp-hal-embassy ( #2411 )
...
* Add Cpu::COUNT and simplify
* Avoid a bounds check during pending
2024-10-26 13:36:10 +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
1afc9eef89
Remove unnecessary generic from ChannelHW ( #2387 )
...
* Remove unnecessary generic from ChannelHW
* Changelog
2024-10-22 15:41:42 +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
dimpolo
62ee60d43f
Fix conflict between RtcClock::get_xtal_freq and Rtc::disable_rom_message_printing ( #2360 )
...
* deduplicate some code in rtc_cntl
* mask out the RTC_DISABLE_ROM_LOG bit when reading RTC_XTAL_FREQ
2024-10-22 08:35:46 +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
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
Björn Quentin
358d884643
Add option to place more .rodata in RAM for performance ( #2331 )
...
* Add option to place more `.rodata` in RAM for performance
* Make CI green, again
* Removed unnecessaries
* Split option into two
* Make `place-switch-tables-in-ram` default
* Xtensa
---------
Co-authored-by: Scott Mabin <scott@mabez.dev>
2024-10-18 11:47:12 +00:00
Dániel Buga
472d5f93e0
Add PeripheralRef::map_into ( #2326 )
...
* Add PeripheralRef::map_into
* Update clone_unchecked to take shared self
* Simplify pin erasure
2024-10-16 13:34:11 +00:00
Dominic Fischer
6e2606b367
Add burst transfer support to DMA buffers ( #2336 )
...
Co-authored-by: Dominic Fischer <git@dominicfischer.me>
2024-10-16 13:25:48 +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
Jesse Braham
39c0baf2c7
New patch release for esp-hal ( #2355 )
2024-10-16 08:39:49 +00:00
Dániel Buga
ef7842fab4
Reimplement blocking trait for async i2c ( #2343 )
2024-10-14 12:50:37 +00:00
Jesse Braham
d655fe665f
New package releases ( #2310 )
...
* Bump version numbers of all packages to be published, update deps as needed
* Update all `CHANGELOG.md` files
* Update migration guide headings
2024-10-10 10:19:04 +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
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
Dániel Buga
f26eef646a
Remove current_millis ( #2304 )
2024-10-08 14:04:59 +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
dimpolo
f4540a5508
add Rtc::disable_rom_message_printing ( #2280 )
2024-10-07 14:07:04 +00:00
Dániel Buga
3e16c5c623
Avoid moving inside SpiDmaBus, abort dropped transfers ( #2216 )
...
* Drop State from DMA
* Simplify Error paths
* Cancel dropped transfers, fix and test
* Fix C6
* Avoid cancelling a completed transaction
* Do not implement DmaTxRxBuf for references
* Remove unnecessary import
* Merge BufferRef structs
* Move wait impl to the peripheral
* Allow the current byte to complete
* Restore SpiDmaTransfer::is_done
* Explain cancel code
* Fix test formatting
* Changelog
* Simplify implementation
* Make sure everything gets dropped
* Remove unnecessary PhantomData
* Remove OptionalFuture
* Adjust test to a more realistic clock frequency
2024-10-07 10:04:50 +00:00
Björn Quentin
00ad9b5eed
I2c: Inherent transaction function, lift size limits ( #2262 )
...
* I2c: Inherent transaction function, lift size limits
* CHANGELOG.md
* Simplify
* Fix
* Remove unnecessary lifetime
* Remove unused lifetime
2024-10-04 11:53:35 +00:00
Dominic Fischer
30aef580e3
Migrate Camera to a move based API ( #2242 )
...
* Migrate Camera to a move based API
* update
* update
* ManuallyDrop
* Add default channel to transfer struct
---------
Co-authored-by: Dominic Fischer <git@dominicfischer.me>
2024-10-02 13:23:14 +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
f5b8e4b914
Remove SPI slave prelude ( #2260 )
...
* Remove SPI slave prelude
* Changelog
* Update esp-hal/src/spi/slave.rs
2024-10-02 06:23:54 +00:00
Dominic Fischer
8e9f6b5015
Erase DMA channel type from Camera and AesDma drivers ( #2258 )
...
* Provide AnyDmaChannel
* Erase channel in Camera and Aes
---------
Co-authored-by: Dominic Fischer <git@dominicfischer.me>
2024-10-01 08:11:49 +00:00
Dániel Buga
ed51cd8c35
Only read value types from efuses ( #2259 )
...
* Only read value types from efuses
* Changelog
* Clean up remaining bool reads
2024-10-01 08:09:28 +00:00
Dániel Buga
487de0ff22
Round up in delay_nanos ( #2256 )
2024-09-30 13:23:31 +00:00
Dániel Buga
fcc6375ba5
TWAI: Return error instead of crashing ( #2255 )
...
* TWAI: Return error instead of crashing
* Deduplicate interrupt handler
2024-09-30 12:51:27 +00:00