* Add configuration structs for GPIO drivers, make constructors fallible
* Update all examples and HIL tests to use new GPIO driver API
* Update migration guide
* Update `CHANGELOG.md`
* Fix errors
* Add `apply_config` functions
* Fixes
* Support 3-wire-SPI
* CHANGELOG.md
* Remove 'Error::ArgumentsInvalid', more docs
* Rebase Fix
* `DataMode::Single` -> `DataMode::FourWire`
* Rename, again
* docs wording
* Honor ESP32
* Have some testing for DataMode::Single
* Mark `with_sio0/1` unstable
* 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
* 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
* Add a derive procmacro to implement the Builder Lite pattern for a struct
* Add `#[non_exhaustive]` and derive `BuilderLite` where necessary in I2C module
* Add `#[non_exhaustive]` and derive `BuilderLite` where necessary in UART module
* Add `#[non_exhaustive]` and derive `BuilderLite` where necessary in SPI module
* Update `CHANGELOG.md`
* Fix build errors in HIL tests
* Fix generated doc comments
* Return a `ParseError` rather than panicking
* Add a method to set the value to `None` for `Option` types
* 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
* Print panic messages using semihosting
* Don't use defmt's asserts
* Make RA_OFFSET available without panic-handler
* Re-add defmt imports where missing
* Revert unintended test change
* Initialise hal in critical-section test
* Disable defmt in tests by default
* Cfg features, not devices
* Remove InterruptBinder
* Clean up allow(declare_interior_mutable_const)
* Small embassy cleanup
* Enable dma-macros for 32 and S2
* Use MEM2MEM1 on C2
* Remove esp32-specific code from test
* 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
* i2c hil test
* pin
* fmt
* Test
* WIP (gpio test left)
* Finalize the CODE part (to be cleaned up)
fmt
* Smaller cleanup
* cleanup
* rebase
* fix
* getting last chips ready
* Addressing reviews
* 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
* use `State` for both blocking and async operations, remove async version of SpiDmaBus in favour of being generic over the mode
* reuse wait_for_idle more
* changelog
* rename generic params for consistency
* Add duplex mode to SpiDmaBus
* implement HalfDuplexReadWrite for SpiDmaBus
* Docs on new async APIs
* Limit half duplex transfers to the capacity of the DmaBuf
* docs
* rebase tests
* address review comments
* remove duplex traits from spi
* fix tests
* spi docs rejig
* s/InUse/TemporarilyRemoved/g