* Remove type erased gpio structs
* Implement Peripheral for ErasedPin
* Simpler type erasing, accept ErasedPin in pin drivers, remove type erased drivers
* Reformulate pin drivers using Flex
* Erase gpio types by default
* Accept any pin in AnyPin
* Add changelog and migration guide
* Fix tests and examples
* Undo rename of clone_unchecked
* 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
Making these available straight from `gpio` aligns it with other Embassy
implementations (mainly nrf and stm32).
Signed-off-by: Priit Laes <plaes@plaes.org>
* Updated to latest release (`0.6.0`) for `embassy-executor`
* update changelog
* update hil-test version of embassy-executor to 0.6.0
* update embassy-executor in `examples`
* reflect esp_hal change in `OneShotTimer` to not have a lifetime.
* update changelog
* revert OneShotTimer changes
* Add self-testing mode for `TWAI` peripheral
* changelog entry
* fix docs build
* fix async example
* Restore example to original state
fix comment
* `NoAck` -> `SelfTest`
* Added touch pad support
* touch: Introduced blocking mode
* touch: moved fns out of TouchPad to prepare async code
* touch: added async support and embassy example
* Use the peripheral ref pattern for `OneShotTimer` and `PeriodicTimer`
* Update tests and examples to reflect changes in timer API
* Update `CHANGELOG.md`
* initial non-working attemt for dma from psram on esp32s3
* flush cache - now works for extmem as source but not for extmem as destination
* use cache_invalidate_addr on destination address
* update changelog
* require dma transfers to/from psram to be aligned to dcache line size
* cache_writeback_addr() should suspend/resume dcache autoload
* no need for cfg(esp32s3) in esp32s3 specific module
* dma: document alignment requirements for DMA to/from PSRAM
* fix doc typos
* Re-export the `main` procmacro from `esp-hal-embassy` rather than `esp-hal`
* Fix documentation warnings
* Flatten the `time_driver` module
* clippy
* Update `CHANGELOG.md`
* Use published versions of all dependencies, update dependencies as needed
* Fix `embassy_usb_serial` example build errors after updating `embassy-usb`
* New package releases
* support dma chunk sizes other than 4092
* fmt
* update CHANGELOG
* fix 0 size static assert
* review changes:
- `.div_ceil()`
- return errors for bad chunk size and buffer sizes in Mem2Mem constructors
- correct 0 chunk size check in descripter macros
* dma: clear the mem2mem bit when channel is configured instead of in Drop
* Build HIL tests for ESP32 in CI, fix resulting build errors
* Fix some warnings in the `hil-test` package
* Fix warnings in examples
* Remove "esp_" prefix from Wi-Fi example file names
* Resolve the last of the known warnings
GPIO pins 19 and 20 had USB D- and D+ swapped. This change fixes which pin is which USB data line according to the pin descriptions in the ESP32-S2 and ESP32-S3 data sheets (sections 2.2 and 2.3.2 respectively). Since these GpioPins are only used by Usb for lifetime tracking, and UsbDp and UsbDm are always used as a pair, this change is only semantic and doesn't affect functionality.
* dma: add Mem2Mem to support memory to memory transfer
* fmt
* update CHANGELOG
* removed some debugging
* use "gdma" as the selector for support
* fix empty else
* clippy
* Mem2Mem::new now accepts the peripheral to use
* mark Mem2Mem::new() unsafe
* fmt :-/
* add Mem2MemN values for gdma on non-esp32s3
tested on esp32c3,esp32c6 (will have an esp32h2 in a few days)
* support the esp32c2 (esp8684)
* DmaEligible trait providing dma peripheral value & safe constructor for Mem2Mem dma.
* added hil-test for Mem2Mem
* fmt dma_mem2mem test
* remove `debug!()`
* reset the mem2mem bit (mem_trans_en) in in_conf0 on drop