* Use the peripheral ref pattern for `OneShotTimer` and `PeriodicTimer`
* Update tests and examples to reflect changes in timer API
* Update `CHANGELOG.md`
* 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`
* Extract embassy support into `esp-hal-embassy` package
* Update relevant packages/examples/tests to get CI green again
* Add back `defmt` support
* Re-export `Executor` and `InterruptExecutor` rather than making `executor` module public
* Document the `esp-hal-embassy` package
* Update `CHANGELOG.md`
* Hack together a "fix" for the `SYSTIMER` time driver
* Make `clippy` shut up
* Remove interrupt and thread executor embassy features
* Reserve sw interrupt 3 (4) instead of 0 for multicore systems with the embassy feature enabled
* Add thread mode context id and fix up examples
* Use stable rust for riscv CI
* Add binary-logs feature to 8021504 driver
* Add binary-logs feature to 8021504 driver
* Remove interrupt and thread executor embassy features
* Reserve sw interrupt 3 (4) instead of 0 for multicore systems with the embassy feature enabled
* Remove uneeded #[feature()] from examples
* Fix HIL tests
* Add thread mode context id and fix up examples
* improve embassy module docs
* changelog
* fixup hil tests
* Fixup usb examples
* i2c:
* i2c: refactor transaction() and reuse for master_read, master_write, and master_write_read
* i2c: cargo fmt
* i2c: fix an issue with not clearing interrupt bits & move where we reset fifo and command_list
* i2c: fix async compile error
* i2c: fix for esp32 & esp32s2
* i2c: real fix for esp32 (End command never gets cmd_done bit set!)
* i2c: fmt and removal of an unwrap() that I was using while debugging
* i2c: only define opcode values in one place
i2c: use CommandReg in add_cmd
* i2c: async direct & embedded_hal support working
* i2c: cargo fmt
* examples: cargo fmt