* After more analysis and coding
* More work is done, writing/reading WIP
* `write` prototype done, small fixes. Read next
* pre-rebase
* Rebased and updated
* Pre-final state of driver
* More work (near-final state) done
* WIP
* WIP
* working
* cleanup
* changelog
* address review comments
* remove Option from conjure and improve lp-i2c example description
---------
Co-authored-by: Kirill Mikhailov <konnor1980@yandex.ru>
* Fix calculation of available buffer
* Lift requirement of circular DMA min buffer
* Have a separate set of convenience macros for circular DMA buffers
* Prefer `addr_of_mut!`
* Add `push_with` for I2S TX
* CHANGELOG.md
* Fix and document the get_core functions
* Fix UNUSED_THREAD_ID_VALUE to allow proper operation on the esp32p4
* fix multicore cfgs
* changelog
* fixup cfgs and update comments
* Implement builder pattern for cargo command-line args, refactoring
* Add an `xtask` subcommand to build a package (not its examples)
* Add an `xtask` subcommand to bump the versions of packages
* Fix a silly mistake from the initial implementation
* Improve the `build-examples` subcommand, make it usable with other packages
* Add a `build-documentation` subcommand
* Update `README.md`
* Add toolchain modifier when required
* Create the `xtask` package, add command for building examples
* Do not perform changelog check for `xtask` package changes
* Fix unrelated `rustfmt` error
This makes it possible to safely implement the InputPin and OutputPin
traits for AnyPin. Now you can convert any pin to AnyPin with the
appropriate type and use it in other library modules
Added:
- Peripheral implementation for AnyPin
- Implementation of Pin for AnyPin
- Implementation of OutputPin for AnyPin with type IsOutputPin
- Implementation of InputPin for AnyPin with type IsInputPin
- Upgrade types for AnyPin (for example InputOutputAnalogPinType ->
InputOutputPinType)
- Implementation of From<Gpio> for AnyPin with the appropriate type
Changed:
- The Gpio::degrage method returns AnyPin with the appropriate type
* Begin adding clock support for ESP32-P4
* WIP
* WIP: more functionality added, minor example update
* WIP state (testing)
* Format
* Finalizing + populating reset_reason enum
* Update esp-pacs dependency
---------
Co-authored-by: Jesse Braham <jesse@beta7.io>
* Use patched version of PAC for C6/H2
* Rename `TRACE` peripheral to `TRACE0`
* Refactor `Trace` driver to be generic around its peripheral
* Update `CHANGELOG.md`
* Fix a bunch of `clippy` warnings in the `esp-hal` build script
* Resolve most clippy warnings for ESP32 (no features)
* Do the same for ESP32-S2/S3...
* Same for C2/C3...
* CI check for clippy now actually works (and passes!) for Xtensa
* RISC-V chips (except P4) now pass clippy in CI
* Add some safety doc comments which I forgot to write
* The `PwmPeripheral` trait is no longer `unsafe`, and is instead now sealed
* Make the `DMA` peripheral API more consistent
* Update examples for devices with `PDMA`
* Update examples for devices with `GDMA`
* Update `CHANGELOG.md`
* Update example after rebasing
* LCD_CAM I8080 POC
* Hush CI
* Apply user provided frequency
* Expose bit and byte order
* Properly support command and dummy phases
* Expose clock edge settings
* Allow background transfers
* Add support for both 8 bit and 16 bit
* Remove unnecessary interrupt usage
* Expose all config
* Add LcdCamPeripheral
* Fix up register modification
* Remove 2^13 limit on data phase
* Make example a bit more interesting
* Add DMA peripheral trait bounds
* Use raw interrupts
* Write module level docs
* Improve example doc
* WIP
made randomness ensuring function
implemented RngCore trait (final version i guess)
* Revert part of changes and leave TODO comment
Changelog entry
Get rid of warning
* Allow for splitting of the USB Serial JTAG peripheral into tx/rx components
* Update `CHANGELOG.md`
* Split single waker into tx/rx wakers
* Fix interrupt bug and update embassy example
The wakers were written to trigger opposite, so the rx waker
would trigger for tx interrupts and vice versa.
Also update the embassy example to run read/write in
separate tasks.
* rustfmt
---------
Co-authored-by: Jesse Braham <jesse@beta7.io>
* Create virtual peripherals for `ADC`/`DAC`
* Refactor the `analog::dac` module
* Refactor the `analog::adc` module
* Decouple the ADC driver from the `embedded-hal` traits
* Update `CHANGELOG.md`
* Seal the `AdcCalScheme` trait, reduce visibility of `AdcCalEfuse` trait
* Remove `APB_SARADC`/`SENS` peripherals from the `Peripherals` struct
* Add `document-features` dependency to all HAL packages
* Update package-level documentation for each chip-specific HAL package
* Document package features for all chip-specific HALs