Dániel Buga
fd66bd3dcc
Encode AES key lengths in metadata ( #3843 )
2025-07-21 19:01:45 +00:00
Dániel Buga
0d9f43db29
Rewrite RNG ( #3829 )
2025-07-21 15:10:35 +00:00
Dániel Buga
39d1e115c1
Add SOC config that is hidden from the peri table ( #3839 )
2025-07-21 11:48:15 +00:00
Dániel Buga
af6ffb102f
Update instability ( #3836 )
2025-07-21 09:37:58 +00:00
Dániel Buga
8c64b09ba7
Allow configuring longer WDT periods ( #3816 )
...
* Clean up with new PAC
* Allow configuring longer WDT periods
* Enable WDT after updating timeout
2025-07-17 14:50:26 +00:00
Dániel Buga
f9419afcc2
Update PAC ( #3802 )
2025-07-17 12:23:51 +00:00
Dániel Buga
e146e03c72
Use metadata to define LP peripheral FIFO sizes ( #3812 )
2025-07-17 12:16:24 +00:00
Scott Mabin
6b758d75b8
Finalize releases ( #3805 )
...
* Finalize crate releases
* changelog fixup
* fixup docsrs ci test
* docs fixup
2025-07-16 10:29:34 +00:00
Dániel Buga
496aeb864b
More touching up of generated code ( #3791 )
...
* Document remaining macros, update gpio syntax
* Update if_pin_is_type syntax, simplify impl
* Remove impl_for_pin_type
* Remove if_pin_is_type
* Remove the gpio macro
2025-07-14 13:05:27 +00:00
Dániel Buga
40fc4f2c6c
Make sure repeated matchers in for_each
macros don't overlap ( #3790 )
...
* Allow generating separate repeat branches
* Generate separate repeated matchers for simple/expanded signals
2025-07-14 13:04:51 +00:00
Dániel Buga
df7ba7d427
Document esp-metadata-generated
( #3787 )
...
* Try to make it more obvious how to update e-m-g
* Document top level, ensure build-script docs are present
* Document Chip, hide Config
2025-07-11 12:48:25 +00:00
Dániel Buga
3a5aa72c4e
Define analog/LP functions ( #3781 )
...
* Shorten name
* Define analog/rtc functions
* Try to make the data useable
* Remove general pin attributes
* Do not generate unnecessary expanded matchers
* Remove expanded GPIO cases
* Move simplified io_type to where it is used
* Fix RTC IO with resistors calls
* Hide macros on H2
* Define rtcio pins for C2/C3
* Fix S2
* Compare against the correct GPIO number
* Deduplicate
* Restore one waker per pin
* Remove case that is no longer needed, avoid inline(always)
2025-07-11 09:41:50 +00:00
Sergio Gasquez Arcos
3bc667ee4f
Add missing c-examples ( #3770 )
...
* docs: Add missing c-examples
* feat: Config docflags for `run doc-tests`
* docs: Update before/after macro and format code in docs
* docs: Improve chip! example
* docs: Fix format and error
* feat: Add ESP_HAL_DOCTEST environment variable for documentation tests
2025-07-09 12:46:22 +00:00
Simon Neuenhausen
3d6e522cbc
Allow splitting control over modem clocks. ( #3687 )
...
* Minimal architecture for split RCC.
* Removed critical section.
* Add all modem clock controllers and adjust esp-ieee802154.
* Fixed incorrect cfg.
* Fixed unstable attribute usage.
* Replaced AtomicU8 with Cell<u8>
* Reverted example channel back to 15
* Added unstable attribute to ModemClockController impls.
* Remember to actually increase the ref count.
* Experimentally removed RadioClockController
* Merged ref counters and made decrease panic if zero is reached.
* Removed RADIO_CLK peripheral.
* Removed RADIO_CLK again.
* Revert "Removed RADIO_CLK again."
This reverts commit 6da2d2834850068aa21bc52b141de2cfd8154acc.
* Removed RADIO_CLK without reformatting the files.
* Applied changes to examples and hil-tests.
* Fixed OS adapter for C2 and H2
* Adjusted docs and used unwrap!
* Fixed comments.
* Added changelog.
* Fixed esp-wifi for esp32h2.
* Changed comment for PHY_CLOCK_REF_COUNTER.
* Fixed lint for esp32c2.
* Update esp-hal/src/clock/mod.rs
Co-authored-by: Dániel Buga <bugadani@gmail.com>
* Update esp-hal/src/clock/mod.rs
Co-authored-by: Dániel Buga <bugadani@gmail.com>
* Removed unnecessary comments and made init_radio_clocks unstable.
* Update esp-hal/src/clock/mod.rs
Co-authored-by: Dániel Buga <bugadani@gmail.com>
* Fixed lint.
* Removed clocks_ll functions for chips that don't have those peripherals.
* fmt
* Changed modem clock controller stealing.
* Added lifetime
* fixed peripheral stealing again
* Made modem_clock_controller not const.
* Used type alias instead of function for peripheral stealing.
* fmt
* Adjusted remaining comments.
* Added note about coex.
* fmt
* misc
* Revert "misc"
This reverts commit d8740421e0dff84af605160939e246f2308a48e1.
* Regenerated esp metadata
---------
Co-authored-by: Dániel Buga <bugadani@gmail.com>
2025-07-08 17:23:55 +00:00
Dániel Buga
1a9b4bafe0
Calculate max input/output signal ID automatically ( #3773 )
2025-07-08 13:39:00 +00:00
Dániel Buga
3537b5ecae
Use indexmap to ensure stable iteration order ( #3771 )
2025-07-08 09:51:43 +00:00
Dániel Buga
692a768b3a
Introduce esp-metadata-generated
( #3754 )
...
* Move macros to new crate
* Generate a single file
* Pre-generate esp-metadata-generated
* Move saving code to xtask
* Format with both rustfmt and prettyplease
* Fix doc build
* Unhide macros
* Fix doc string
* Update semver-check baseline
2025-07-07 15:37:05 +00:00
Dániel Buga
86e006b601
Rework how peripheral singletons are generated ( #3747 )
...
* Handle GPIOs as stable peripherals
* Define interrupts in create_peripheral
* Remove the rest of paste from the peripherals macro
* Move create_peripheral calls out of peripherals!
* Merge macros
* Merge peripherals files
* Delete the peripheral module
* Replace the peripherals macro with for_each generated code
* Do not generate code directly in GPIO metadata
2025-07-04 12:15:12 +00:00
Dániel Buga
9146407573
Fix and extend pin layouts ( #3726 )
...
* Fix ESP32 pin layout
Co-authored-by: rmsyn <github@weathered-steel.dev>
* Tabulate ESP32
* Fix C2 pin layout
* Fix C3 pin layout
* Fix C6 pin layout
Co-authored-by: rmsyn <github@weathered-steel.dev>
* Note AF availability on IoMuxSignal
* Add mising AFs to H2
* Remove unavailable pins
* Add mising signals to S2
* Add mising signals to S3
* Changelog
* Update semver baseline
---------
Co-authored-by: rmsyn <github@weathered-steel.dev>
2025-07-02 13:16:48 +00:00
Dániel Buga
21f1d89f15
Generate peripherals macro call & remove paste ( #3713 )
...
* Expand peripheral metadata
* Generate peripherals macro call
* Remove paste from peripherals
* Add missing peris
* Fix ETM and TRACE0 naming
* Remove redundant tsens symbol
* Remove RTCIO stuff from h2
* Rename S2 RTC_CNTL
* Add missing SYSCON back to S2
* Do not mark the GPIO singleton stable
* Treat unlisted drivers as not available
* Assign stability based on driver info
* Fmt
* Remove unused info
2025-07-01 19:31:21 +00:00
Dániel Buga
8c4878cb03
Refactor AssistDebug symbols ( #3730 )
2025-07-01 14:42:27 +00:00
Dániel Buga
745cfd71b6
de-paste!
the any_peripheral
macro ( #3699 )
...
* Stop using paste in any_peripheral
* Drop unused macro
* Generate a delegate macro for any-peripheral dispatching
* Fix up PDMA
2025-07-01 13:48:40 +00:00
Dániel Buga
175f4a16b6
Extract SPI metadata ( #3702 )
...
* Extract SPI M/S metadata
* Clean up additional instance trait
* Further SPI cleanups, add OSPI pin setters
* Re-generate semver baseline
* Fix typo
2025-07-01 11:13:26 +00:00
Dániel Buga
b2a8d6bcee
Move UART instance info to esp-metadata ( #3698 )
...
* Move UART instance info to esp-metadata
* Fix typo
2025-06-30 16:38:15 +00:00
Dániel Buga
b11d810d97
Tweak and make use of the old bind_X_interrupt
functions ( #3689 )
...
* Rename bind_interrupt functions
* Generate enable/disable functions, remove redundant irq mapping from metadata
* Clean up PARL_IO
* Refactor SPI master, I2S, Uart
* Update USB_DEVICE
2025-06-30 15:28:42 +00:00
Dániel Buga
101de4eab8
Cleanup esp-metadata ( #3686 )
...
* Clean up esp-metadata a bit
* Update esp-metadata/src/cfg/gpio.rs
Co-authored-by: Juraj Sadel <jurajsadel@gmail.com>
* Document public API, arrange structs better
---------
Co-authored-by: Juraj Sadel <jurajsadel@gmail.com>
2025-06-30 08:16:22 +00:00
Dániel Buga
9d452a108f
Move USB device pin info to metadata ( #3685 )
...
* Allow else in impl_for_pin_type
* Move USB pin workaround info to metadata
* Simplify pin attr collection
2025-06-27 15:13:24 +00:00
Björn Quentin
99042a7d60
Don't lie about the MSRV ( #3692 )
...
* Don't lie about the MSRV
* Don't mention MSRV in xtensa-lx-* docs
2025-06-25 11:20:52 +00:00
Dániel Buga
c72889a73d
Generate i2c instances from metadata ( #3678 )
2025-06-24 12:18:22 +00:00
Dániel Buga
d7622ff8c3
More gpio macro tweaks ( #3669 )
...
* Split up loop
* Generate io_type calls
* Unify various if-pin-implements macros into two generated ones
* Remove unused syntax from the gpio macro
2025-06-24 10:52:28 +00:00
Dániel Buga
fbe8ddc954
Move AnalogPin's impl out of the macro ( #3668 )
2025-06-24 10:51:27 +00:00
Dániel Buga
077fc22305
Remove paste!
from the gpio!
macro ( #3666 )
...
* Remove paste from the gpio macro
* Remove unnecessary optional from macro
2025-06-23 14:57:04 +00:00
Dániel Buga
1cd3a28954
Move IO_MUX signals to metadata ( #3663 )
...
* Generate Input/OutputSignal enums
* Deduplicate alternate function tables
* Don't misuse instance config for pins and signals
2025-06-23 14:43:17 +00:00
Dániel Buga
9507fa38b4
Move smaller GPIO properties to metadata ( #3657 )
...
* Move other GPIO properties
* Redo USB pins as pin capability
* Deduplicate interrupt status enum
* Remove unnecessary interrupt enable bits on S2
* Update S2 PAC and remove manual io_mux hackery
* Generate io_mux function from metadata
2025-06-23 12:45:21 +00:00
Dániel Buga
b98631570f
Move GPIO pin properties to metadata ( #3656 )
...
* Reorganize esp-metadata
* Move GPIO properties to metadata
* Fix AF enum variants, remove need for paste for them
2025-06-20 07:45:49 +00:00
Dániel Buga
2438d03b21
Simplify generated code to save on build time, yeet a few dependencies ( #3643 )
...
* Reduce use of iter::chain
* Cache all symbols
* Trim xtensa-lx-rt deps
* Remove unused dep
* Replace chrono with jiff
* Yeet minijinja
* Save a bit on toml_edit
* Disable some default features
* Disable regex log filters
* Reduce xtensa-lx-rt build script
* Remove unnecessary dependencies
* Remove darling
* Update embedded-test
* lol
* Clean up
* Only validate loaded config once
* fmt
* Changelog
2025-06-17 20:35:00 +00:00
Dániel Buga
891a5a4a8c
Move some more peripherals to metadata ( #3633 )
...
* Remove gpio bank 1 symbol
* Remove intr status width symbols
* Allow virtual periphs, redo ADC/DAC
2025-06-17 08:10:12 +00:00
Dániel Buga
c29c436be5
Prefix peripheral cfg symbols with chip_has_*
( #3628 )
...
* Prefix peri cfg with `soc_has_`
* Clean up ETM
2025-06-16 08:13:28 +00:00
Dániel Buga
3e6b85bf30
Update i2c/spi instance info ( #3627 )
...
* Add instances to drivers
* Move AnyI2c
* Move AnySpi and DataMode
* Generate new semver baseline
2025-06-13 13:56:52 +00:00
Dániel Buga
793b01beaa
Move timer instance config into driver metadata ( #3626 )
...
* Remove timg_timer1 symbol
* Ensure instances exist
* Rename timers to timergroup
* Remove unnecessary cfg
2025-06-12 14:49:04 +00:00
Dániel Buga
db3eb3da95
Remove hand-defined radio symbols ( #3632 )
2025-06-12 13:04:36 +00:00
Dániel Buga
f22ddb4a87
More i2c metadata & some additional cleanup ( #3620 )
...
* Define more i2c metadata
* Remove I2C1 AHB base address
* Encode address in metadata
* Extract timeout value calculation
2025-06-11 09:47:42 +00:00
Dániel Buga
61aa33b259
Inline width variables ( #3624 )
2025-06-11 07:59:22 +00:00
Dániel Buga
f394af8ca2
Peri support corrections ( #3621 )
2025-06-10 13:58:19 +00:00
Dániel Buga
48a5927767
Generate peripheral support table ( #3617 )
2025-06-10 13:13:24 +00:00
Dániel Buga
f6d54a0471
Generate macros from metadata ( #3604 )
...
* Generate macros from metadata
* Don't generate metadata env vars
* Add trm link, change cores to integer
* Port RMT memory constants
* Add some I2C flags
* Auto-generate PeriConfig, remove trait
* Make sure memory_range is hidden
2025-06-10 10:06:32 +00:00
Scott Mabin
3cd36062d4
Finalize crates for release ( #3588 )
2025-06-03 12:30:48 +00:00
Dániel Buga
f5287c3ef9
Remove note about fixed cargo bug ( #3105 )
...
* Remove note
* Remove workaround
* Fix MSRV changelogs
2025-06-02 13:51:36 +00:00
Scott Mabin
e97de69b42
use 1.87 in CI, bump MSRV to 1.86 ( #3560 )
...
* use 1.87 in CI, bump MSRV to 1.86
* update API baseline files (rustdoc json format change)
* Add api-baseline regen guide to guidelines
2025-05-29 13:45:22 +00:00
Dániel Buga
fbdb99ec6a
xtask: Bump version in changelog, add check-changelog ( #3478 )
...
* Parse and update changelog on version bump
* Add check-changelog
* Fix changelogs
* Check changelog format in CI
* Fix log string
* Update readme
* Add tests, remove empty changelog groups
2025-05-19 07:15:47 +00:00