Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
38 commits
Select commit Hold shift + click to select a range
e5c4378
sdio: initial SDIO HAL implementation
rmsyn May 26, 2025
b3153c3
sdio: add `Sdio::bus_width` method
rmsyn Jun 10, 2025
22ec9c2
sdio: add interrupt types
rmsyn Jun 10, 2025
50b694d
sdio: add init pin configuration
rmsyn Jun 21, 2025
36a9754
sdio: add low-level init
rmsyn Jun 26, 2025
195cb02
sdio: add HINF register block
rmsyn Jun 26, 2025
00e6c58
sdio: add config + enable highspeed
rmsyn Jun 26, 2025
7886100
sdio: add set timing method
rmsyn Jun 26, 2025
1283edd
sdio: change interrupt types to bitfields
rmsyn Jun 26, 2025
c93b7fb
sdio: add low-level interrupt enable method
rmsyn Jun 26, 2025
0a1f96a
metadata: add missing `SDIO_*` signals for ESP32-C6
rmsyn Jun 29, 2025
626afff
sdio: refactor pins to use `OutputSignal`
rmsyn Jun 29, 2025
cdb4608
dma: add `Owner` bool conversion
rmsyn Jul 5, 2025
57aec97
sdio: add DMA descriptor types
rmsyn Jul 5, 2025
66a61b8
dma: add DescriptorFlagFields trait
rmsyn Jul 11, 2025
b6e7f72
dma: implement DescriptorFlagFields
rmsyn Jul 11, 2025
b66dabb
dma: better `Owner` ergonomics
rmsyn Jul 11, 2025
da96fca
dma: make DmaDescriptor generic
rmsyn Jul 11, 2025
0d10eef
dma: make Preparation generic
rmsyn Jul 13, 2025
9feedfa
dma: make DmaLoopBuf generic
rmsyn Jul 13, 2025
726dd09
dma: make DmaRxStreamingBuf generic
rmsyn Jul 13, 2025
13e21fc
dma: make DescriptorSet generic
rmsyn Jul 14, 2025
fff989c
dma: make DmaTxBuf generic
rmsyn Jul 14, 2025
e2a7ac1
dma: make DmaRxBuf generic
rmsyn Jul 14, 2025
d04ea6f
dma: make DmaRxTxBuf generic
rmsyn Jul 14, 2025
a3d2624
dma: make ChannelTx generic
rmsyn Jul 14, 2025
134044c
dma: add generic parameter to ChannelRx
rmsyn Jul 14, 2025
dfa8bcd
dma: make DmaTxBuffer generic
rmsyn Jul 14, 2025
c184ba9
dma: make DmaRxBuffer generic
rmsyn Jul 14, 2025
036596d
sdio: add DMA atomic descriptor
rmsyn Jul 21, 2025
b5306f0
sdio: add atomic buffer
rmsyn Jul 21, 2025
7c9f562
dep: add `bitfielder` dependency
rmsyn Aug 22, 2025
053d646
sdio: add command types
rmsyn Sep 7, 2025
520ba56
sdio: add response types
rmsyn Sep 11, 2025
241b240
WIP: sdio: add raw command/response functions
rmsyn Sep 4, 2025
3a72be7
sdio: qa-test integration tests
rmsyn Sep 11, 2025
bdb0c1e
sdio: rebase on esp-hal 1.0.0
rmsyn Nov 9, 2025
569e051
fixup: qa-test: better handling of SDIO protocol
rmsyn Nov 9, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -118,7 +118,7 @@ jobs:
# Install the Rust toolchain for Xtensa devices:
- uses: esp-rs/[email protected]
with:
version: 1.88.0.0
version: 1.88.0

# Install the Rust stable toolchain for RISC-V devices:
- uses: dtolnay/rust-toolchain@v1
Expand Down
1 change: 1 addition & 0 deletions esp-hal/CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -237,6 +237,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
- UART: Added HW and SW flow control config option (#3435)
- I2C master: `SoftwareTimeout` and `Config::with_software_timeout`. (#3577)
- `esp_hal::time::{Instant, Duration}` now implement `Hash` (#3577)
- Added `Sdio` support (#3503)

### Changed

Expand Down
6 changes: 6 additions & 0 deletions esp-hal/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -80,6 +80,7 @@ embassy-usb-synopsys-otg = { version = "0.3", optional = true }
embedded-can = { version = "0.4.1", optional = true }
esp-synopsys-usb-otg = { version = "0.4.2", optional = true }
nb = { version = "1.1", optional = true }
embedded-hal-sdmmc = { version = "0.1.0-alpha.3", optional = true }

# Logging interfaces, they are mutually exclusive so they need to be behind separate features.
defmt = { version = "1.0.1", optional = true }
Expand All @@ -101,6 +102,9 @@ rand_core-06 = { package = "rand_core", version = "0.6", optional =
rand_core-09 = { package = "rand_core", version = "0.9", optional = true }
ufmt-write = { version = "0.1", optional = true }

# Alternative bitfield implementation with better performance
bitfielder = { version = "0.1.1", optional = true }

# IMPORTANT:
# Each supported device MUST have its PAC included below along with a
# corresponding feature.
Expand Down Expand Up @@ -298,6 +302,8 @@ unstable = [
"dep:rand_core-09",
"dep:nb",
"dep:ufmt-write",
"dep:embedded-hal-sdmmc",
"dep:bitfielder",
]

## Libraries that depend on `esp-hal` should enable this feature to indicate their use of unstable APIs.
Expand Down
Loading
Loading