diff --git a/components/esp_driver_sdmmc/README.md b/components/esp_driver_sdmmc/README.md new file mode 100644 index 0000000000..2bdde24347 --- /dev/null +++ b/components/esp_driver_sdmmc/README.md @@ -0,0 +1,19 @@ +# SDMMC Host Driver + +SD Host side related components are: +- `sdmmc` +- `esp_driver_sdmmc` (current component) +- `esp_driver_sdspi` + +For relationship and dependency among these components, see [SD Host Side Related Component Architecture](../sdmmc/README.md). + +`esp_driver_sdmmc` components holds SDMMC Host driver for ESP SDMMC peripheral, this driver provides APIs to help you: +- do SD transactions (under SD mode) via ESP SDMMC peripheral. +- tune ESP SDMMC hardware configurations, such as clock frequency, bus width, etc. +- ... + +You can +- use this driver to implement `sdmmc` protocol interfaces +- directly use `esp_driver_sdmmc` APIs + +to communicate with SD slave devices under SD mode. diff --git a/components/esp_driver_sdspi/README.md b/components/esp_driver_sdspi/README.md new file mode 100644 index 0000000000..fb85c7efd1 --- /dev/null +++ b/components/esp_driver_sdspi/README.md @@ -0,0 +1,19 @@ +# SDSPI Host Driver + +SD Host side related components are: +- `sdmmc` +- `esp_driver_sdmmc` +- `esp_driver_sdspi` (current component) + +For relationship and dependency among these components, see [SD Host Side Related Component Architecture](../sdmmc/README.md). + +`esp_driver_sdspi` components is a driver based on ESP GPSPI master driver to help you: +- do SD transactions (under SDSPI mode) via ESP GPSPI peripheral. +- tune ESP GPSPI hardware configurations, such as clock frequency, bus width, etc. +- ... + +You can +- use this driver to implement `sdmmc` protocol interfaces +- directly use `esp_driver_sdspi` APIs + +to communicate with SD slave devices under SDSPI mode. diff --git a/components/sdmmc/README.md b/components/sdmmc/README.md new file mode 100644 index 0000000000..7e18e31dd0 --- /dev/null +++ b/components/sdmmc/README.md @@ -0,0 +1,35 @@ +# SDMMC Protocol Layer Driver + +## SD Host Side Related Component Architecture + +### Architecture Graph + + ┌─────────────────────────────────────────────┐ + │ │ + │ SD Protocol Layer Driver: components/sdmmc │ + │ │ + └──────────▲────────────────────▲─────────────┘ + │ │ + │ │ + Implements │ │ Implements + │ │ + ┌──────────────────────────────────┴─────┐ ┌────┴───────────────────────────────────┐ + │ │ │ │ + │Host Driver: components/esp_driver_sdmmc│ │Host Driver: components/esp_driver_sdspi│ + │ │ │ │ + └────────────────────────────────────────┘ └────────────────────────────────────────┘ + +### Components + +- `sdmmc`: SD protocol layer driver, it provides SD protocol related definitions and interfaces. With corresponding implementation drivers, `sdmmc` APIs can help you: + - send commands to slave devices + - send and receive data + - handle error conditions within the bus +- `esp_driver_sdmmc`: SDMMC Host driver for ESP SDMMC hardware, it implements the `sdmmc` protocol interfaces. +- `esp_driver_sdspi`: SDSPI Host driver for ESP GPSPI hardware, it implements the `sdmmc` protocol interfaces. + +### Dependency + +- `esp_driver_sdmmc` is in driver layer (G2), it relies on `sdmmc` +- `esp_driver_sdspi` is in driver layer (G2), it relies on `sdmmc` +- `sdmmc` does not and should not rely on `esp_driver_sdmmc` or `esp_driver_sdspi`. Though `sdmmc` is independent, it still stays in G2.