3068 Commits

Author SHA1 Message Date
Eryk Stec
827b8ccb61
esp32c5: enable RMT metadata and clock initialization (#4964)
* esp32c5: enable RMT driver metadata and clocking

* rmt: compute RcFast source frequency

* hil-test: enable esp32c5 for rmt test

* rmt: reset esp32c5 channel divider before start

* Run cargo fmt

* changelog: mention C5 RMT support

Add an Unreleased entry for ESP32-C5 RMT support to satisfy changelog-enforcer CI.

* esp-metadata: model RMT source clocks in clock tree

* clocks: implement RMT_SCLK clock-tree hooks

* rmt: manage source clocks through ClockTree

* clocks: clarify RMT_SCLK no-op behavior

* xtask: run xfmt and refresh generated metadata

* rmt: address review feedback in clock-tree paths

* rmt: preserve user RMT clock source config

---------

Co-authored-by: Dániel Buga <bugadani@gmail.com>
2026-02-14 18:59:49 +00:00
Björn Quentin
8da7cb5f77
Change signature of is_connected and is_started, mark them as unstable (#4971)
* Change signature of is_connected and is_started

* CHANGELOG and MG

* Clippy

* Remove usage of `is_*` in examples (embassy_dhcp)

* Simplify wifi related examples

* Simplify wifi related examples

* CHANGELOG update

* Fix

* Unwrap less
2026-02-13 14:07:45 +00:00
Dániel Buga
e3b0040513
C5: enable SHA, RSA (#4979)
* Set up crypto clock

* Enable SHA

* Enable RSA
2026-02-13 11:55:59 +00:00
Juraj Sadel
1a2df1dffb
Fix cargo machete (#4977)
* Fix cargo machete

* Replace forgotten write with write_all in embassy_access_point_with_sta example
2026-02-13 11:39:03 +00:00
Dániel Buga
571a433b4d
Enable RNG (#4978) 2026-02-13 11:02:11 +00:00
Dániel Buga
6fc808abba
C5: enable I2C (#4975)
* Enable I2C

* Changelog

* Gate clk setup based on features

---------

Co-authored-by: Kirill Mikhailov <konnor1980@yandex.ru>
2026-02-13 09:30:28 +00:00
Dániel Buga
4c4ab51e15
C5: Enable UHCI (#4967)
* C5: Enable UHCI

* Fix UHCI driver name
2026-02-13 08:05:10 +00:00
Dániel Buga
c8080c31e9
C5: enable DMA (#4959)
* Enable DMA on C5

* Tweak questionable parts
2026-02-12 15:49:22 +00:00
Ulf Lilleengen
d7e307beee
chore: update trouble-host and bt-hci version (#4962)
* chore: update trouble-host and bt-hci version

* chore: update changelog

* fix: update coex example
2026-02-12 15:09:55 +00:00
Juraj Sadel
1166229413
esp-radio: Wifi examples use an http endpoint (#4927) 2026-02-12 14:43:21 +00:00
Dániel Buga
0e5ebe4f2c
H2: Generalize RNG workaround (#4969) 2026-02-12 13:08:47 +00:00
Dániel Buga
7a0b0f1817
C5: enable CI and fix issues (#4968)
* Enable CI and fix clippy

* Fix doctests

* Fix rustdoc issues

* Fix example

* Process multiline doc comments

* Do not expose C5 LP core yet

* Do not enable baseline check
2026-02-12 12:55:57 +00:00
Juraj Sadel
a3e6398590
esp-radio: Rename scan_with_config_async to scan_async (#4946)
* esp-radio: Rename scan_with_config_async to scan_async

* changelog

* scan_async takes a reference to ScanConfig

* rebase
2026-02-11 14:44:25 +00:00
Sergio Gasquez Arcos
e81c3d4fd2
docs: Update example docs (#4963) 2026-02-11 13:53:46 +00:00
Dániel Buga
3127618a2b
C5: enable CPU-controlled SPI (#4943)
* C5: enable SPI support

* Remove outdated part of comment

* Fix some issues

* Regenerate metadata

* Remove incorrect part of comment
2026-02-11 12:50:20 +00:00
Björn Quentin
06b8bb5cc4
Prefer the Ssid type over Strings and byte arrays (#4953)
* Prefer the Ssid type over Strings and byte arrays

* Fix: Make sure all needed events are enabled

* CHANGELOG.md / migration-guide

* Make sure `Ssid::as_str` returns a valid str
2026-02-11 11:42:10 +00:00
Björn Quentin
327071c262
Remove memory_fence function (#4955) 2026-02-10 17:05:02 +00:00
Kirill Mikhailov
aa1a8e42f4
C5: Initial UART support (#4948)
* WIP crap almost

* post-rebase

* Enable UART tests, disable UHCI

* Do not disable UART0 SCLK, disable signal inversion test

* Enable working `test_send_receive_inverted` test for c5

* changelog + cleanup

* remove uhci (post-rebase)

* Address reviews

* survive the rebase

---------

Co-authored-by: Dániel Buga <bugadani@gmail.com>
2026-02-10 16:37:15 +00:00
Dániel Buga
90779fa109
Refactor DMA to use more metadata (#4944)
* Replace old dma symbols

* Add m2m capability

* Encode priority levels in metadata

* Remove redundant legacy symbols

* Deduplicate m2m

* Move DmaPeripheral values to metadata

* Remove virtual m2m peripherals from C2

* Unify mem2mem instance names

* Also generate DmaEligible macro call

* Tweak cfg gates

* Remove device-specifics from channel implementation

* Move register access out to a versioned module

* Remove outdated docs

* Fix typo
2026-02-10 15:30:20 +00:00
Dániel Buga
b1aa683d11
Better encapsulate DMA-related SPI code (#4930)
* Better encapsulate DMA-related SPI code

* Delete incorrect comment
2026-02-10 10:29:53 +00:00
Björn Quentin
3021742be1
Remove info about non-open APs (#4951) 2026-02-10 09:44:49 +00:00
Björn Quentin
7c5c67cf87
RNG workaround for H2-ECO5 (#4949)
* RNG workaround for H2-ECO5

* CHANGELOG.md

* Update esp-hal/src/rng/ll.rs

Co-authored-by: Dániel Buga <bugadani@gmail.com>

* Update esp-hal/CHANGELOG.md

Co-authored-by: Dániel Buga <bugadani@gmail.com>

---------

Co-authored-by: Dániel Buga <bugadani@gmail.com>
2026-02-10 09:30:38 +00:00
Björn Quentin
e27a8d2623
Wifi fixes (#4942)
* Don't crash on unknown WiFi events

* Fix Ssid

* CHANGELOG.md
2026-02-09 14:32:32 +00:00
Dániel Buga
e7cbe51d1c
C5: Enable PCNT (#4934) 2026-02-09 13:08:48 +00:00
tidely
575d2200fd
esp-radio: Make max_tx_power configurable. (#4906)
* esp-radio: Make `max_tx_power` configurable.

* esp-radio: add changelog now that PR exists

* Apply suggestion from @JurajSadel

Co-authored-by: Juraj Sadel <jurajsadel@gmail.com>

* esp-radio: add `set_max_tx_power`

* changelog: mention

* changelog: improve wording

* fix signature

* undo CountryInfo changes

---------

Co-authored-by: Juraj Sadel <jurajsadel@gmail.com>
2026-02-09 11:59:21 +00:00
Dániel Buga
d193199733
Clarify driver-specific symbol names (#4929)
* Explain symbols a bit

* Change driver-specific cfg names
2026-02-09 10:06:04 +00:00
Dániel Buga
36c6892c5b
xtask: add some guard rails (#4939)
* Validate that the expected chip feature actually exists

* Don't fail if a package is not supported by a chip

* Fix checked symbol

* Cache the list of possible symbols

* Correct esp-println docs
2026-02-09 08:32:16 +00:00
Kirill Mikhailov
b5aca4e69e
deduplicate huge bash code-blocks in dispatch.yml (#4937)
* deduplicate huge bash code-blocks in `dispatch.yml`

* fix function name after change

* format
2026-02-09 07:47:44 +00:00
Dániel Buga
6100b7d909
Re-enable dedicated GPIO driver (#4935) 2026-02-07 10:49:32 +00:00
Yitong Zhao
ef09d312cc
Dedicated GPIO bundle initial implementation (#4819)
* finish initial impl of bundle gpio

* changed reading voltage level function with immutable self reference

* delete debug msg for HIL test

* adjust HIL test

* finished doc for DedicatedGpioOutputBundle

* update documentation

* add debug assertion message, complete docs for OutputBundle

* update documentation for remove_output

* improve doc & finish doc for flex and input bundle

* add module level documentation for bundles and low level functions

* distinguishes between masked_levels and all_levels; adjust HIL test to make it easier to read

* fix documentation issue

* add HIL test for writing outside of the mask

* add HIL test for creating and using dedicated gpios at different cores. But not seem to be working

* formatting

* update changelog

* remove comment "not sure if we should mask it here"

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* remove comment "not sure if we should mask it here"

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* remove trailing space

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* add parenthesis

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* add parenthesis

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* add parenthesis

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* add parenthesis

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* remove trailing space

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* delete hardware-related checks for with_* methods

* remove runtime check for mask function

* delete implementation detail from the doc

* merge all_levels and masked_levels into levels, and added all_low and all_high

* fix documentation

* add doc_replace for before_snippet and fix display issue of ##Examples

* update documentation for bundles' fn new()

* change documentation for with_output

* Update esp-hal/src/gpio/dedicated.rs

remove trailing space

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* remove blank line

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* remove trailing space

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* add line between method

* remove trailing space

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* remove trailing space

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* rename_remove functions and update documentation

* fix self.mask() consistency in doc

* change with_ functions to enable_; add code example for fn mask()

* add module-level example for sharing the same drive across multiple bundles and fixed a render issue

* run fmt-packages

* remove extra **

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* switch order of enable_flex and disable_flex

* add doc_replace for module-level doc

* add doc_replace

* impl default trait for bundles

* edit dedicated_gpio_different_cores_panics, now it creates the driver at core1 and use it at core0

* format

* change &mut self to &self for some output_level

* Simplify dedicated_gpio_different_cores_panics

* Fix S2, hide warning

---------

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Dániel Buga <bugadani@gmail.com>
2026-02-06 17:44:29 +00:00
Dániel Buga
aa7903f040
Fix incorrect locking in PCNT (#4932) 2026-02-06 16:05:32 +00:00
Dániel Buga
8ac7d976a6
Disable dedicated GPIO, enable unstable GPIO tests (#4928) 2026-02-06 09:50:33 +00:00
Kirill Mikhailov
801f5da56a
C5: Add initial GPIO support (#4899)
* C5: Add initial GPIO support

* remove basic example

* Changelog entry

* add pin limitations, enable GPIO HIL test, add HIL configuration for C5

* pre-rebase: unconnected pin + dedicated GPIO signals

* minor fixes

* reset GPIO, update PAC

* regenerate metadata

* interrupt status read code fancify
2026-02-05 19:16:29 +00:00
Dániel Buga
baaa9d6fd4
Rework interrupts using metadata (#4907)
* Define interrupt controller in metadata

* Rework risc-v interrupt handling using metadata

* Make sure Disabled is used, fix docs, ensure max prio is computed in comptime

* Fix CLIC RTOS interrupt

* Assert expected counts are equal

* Fix C6/H2 vector interrupt allocation
2026-02-05 17:17:31 +00:00
Dániel Buga
53eb3932fe
Generate more unique inner macro names (#4919) 2026-02-05 15:43:19 +00:00
Jake Goulding
66801fc995
Correct inflection of "support" (#4921) 2026-02-05 15:41:08 +00:00
Björn Quentin
519011bbe2
Clarify malloc etc. (#4917) 2026-02-05 15:24:50 +00:00
Jake Goulding
3609b285a5
Make getter function documentation not look like setters (#4911)
The procedural macro extracts each field's doc comment to use as the documentation for the getter method. For example:

```rust
/// Enable idle output
pub fn idle_output(&self) -> bool
```

While reading this documentation, it looks like the method will *actively* enable the idle output.

Change the doc comments to be a bit more passive to address this.
2026-02-05 14:59:17 +00:00
Dániel Buga
9f23b15d0f
Deduplicate core control code (#4913) 2026-02-05 14:38:32 +00:00
Björn Quentin
36d8d87fef
Rework Wi-Fi Events (#4898)
* Replace the wait_for_eventX family of functions

* CHANGELOG.md and MIGRATIONGUIDE

* `Copy` again, don't use defmt/alloc

* Naming

* Apply suggestion

* Fix doc-test
2026-02-05 14:05:37 +00:00
Juraj Sadel
09b1f444e4
esp-radio: C-EXAMPLE (#4900) 2026-02-05 11:23:25 +00:00
Dániel Buga
b38e731669
Do not trigger CI run when labels change (#4915) 2026-02-05 09:43:24 +00:00
Juraj Sadel
8377831b53
CI: Fix upload artifact package name and path (#4909) 2026-02-05 08:44:24 +00:00
Dániel Buga
9e18190578
C5: bring up esp-rtos (#4884)
* Enable timers, embassy hello world examples, rtos tests

* Run context switch in a direct-bound handler

* Redo task switching

* Changelog

* Fix stack pointer

* Explain jumping to the scheduler

* Extract manipulating SP

* Expand docs

* Don't try to use stack of deleted task
2026-02-05 08:33:38 +00:00
Dániel Buga
84c4ec9a06
Fix corrupting data moved to the second core (#4914)
* Add failing test case

* Fix corruption of moved data
2026-02-05 08:25:38 +00:00
Dániel Buga
9e85b28f32
Fix direct vectoring interrupt in test, global symbol issue (#4902)
* Fix direct vectoring interrupt in test

* Only define _mtvt_table for rt
2026-02-05 08:25:24 +00:00
Scott Mabin
f16f46be72
use 1.93 in CI (#4845) 2026-02-03 19:55:40 +00:00
Dániel Buga
e12683b8f7
C5: CLIC (#4883)
* WIP

* Fix interrupt disabling

* CLIC has max 8 interrupt levels

* Define all CpuInterrupts

* Set sw interrupt delay

* Implement CLIC functions

* Clean up

* Changelog

* Add failing test

* Fix failing test

* Restore non-nested interrupt handler option

* Update PAC

* Direct vectoring

* test: Fix incorrect stack size reasoning

* Assign direct-bound interrupts higher implicit priority

* Update PAC

* Restore interrupt HIL tests

* Restore allow lint

* Undo sw interrupt change
2026-02-03 16:31:36 +00:00
Jake Goulding
0ba3606d21
Correct typo (#4896) 2026-02-03 06:52:00 +00:00
Juraj Sadel
8281e43ba1
esp-radio: wifi::Config has been changed to wifi::ControllerConfig and wifi::ModeConfig into wifi::Config (#4891)
* esp-radio: Change Config into ControllerConfig and ModeConfig into Config

* changelog
2026-02-03 06:51:43 +00:00