Skip to content

Commit 340cc63

Browse files
authored
Merge pull request #9641 from RetiredWizard/espsdioio2
esp32s3: Implement sdioio
2 parents 44ec0e6 + 8a2651a commit 340cc63

File tree

16 files changed

+348
-24
lines changed

16 files changed

+348
-24
lines changed

locale/circuitpython.pot

Lines changed: 15 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -661,12 +661,12 @@ msgid "Buffer length %d too big. It must be less than %d"
661661
msgstr ""
662662

663663
#: ports/atmel-samd/common-hal/sdioio/SDCard.c
664-
#: ports/cxd56/common-hal/sdioio/SDCard.c shared-module/sdcardio/SDCard.c
665-
msgid "Buffer length must be a multiple of 512"
666-
msgstr ""
667-
664+
#: ports/cxd56/common-hal/sdioio/SDCard.c
665+
#: ports/espressif/common-hal/sdioio/SDCard.c
668666
#: ports/stm/common-hal/sdioio/SDCard.c shared-bindings/floppyio/__init__.c
669-
msgid "Buffer must be a multiple of 512 bytes"
667+
#: shared-module/sdcardio/SDCard.c
668+
#, c-format
669+
msgid "Buffer must be a multiple of %d bytes"
670670
msgstr ""
671671

672672
#: shared-bindings/_bleio/PacketBuffer.c
@@ -1183,11 +1183,13 @@ msgstr ""
11831183
msgid "Interrupted by output function"
11841184
msgstr ""
11851185

1186+
#: ports/espressif/common-hal/_bleio/Service.c
11861187
#: ports/espressif/common-hal/espulp/ULP.c
11871188
#: ports/espressif/common-hal/microcontroller/Processor.c
11881189
#: ports/mimxrt10xx/common-hal/audiobusio/__init__.c
11891190
#: ports/mimxrt10xx/common-hal/pwmio/PWMOut.c
11901191
#: ports/raspberrypi/bindings/picodvi/Framebuffer.c
1192+
#: ports/raspberrypi/bindings/rp2pio/StateMachine.c
11911193
#: ports/raspberrypi/common-hal/picodvi/Framebuffer_RP2040.c py/argcheck.c
11921194
#: shared-bindings/digitalio/DigitalInOut.c
11931195
#: shared-bindings/epaperdisplay/EPaperDisplay.c shared-bindings/pwmio/PWMOut.c
@@ -1307,6 +1309,7 @@ msgid "MAC address was invalid"
13071309
msgstr ""
13081310

13091311
#: ports/espressif/common-hal/_bleio/Characteristic.c
1312+
#: ports/espressif/common-hal/_bleio/Descriptor.c
13101313
msgid "MITM security not supported"
13111314
msgstr ""
13121315

@@ -1539,8 +1542,9 @@ msgid "Not supported JPEG standard"
15391542
msgstr ""
15401543

15411544
#: ports/espressif/common-hal/paralleldisplaybus/ParallelBus.c
1545+
#: ports/espressif/common-hal/sdioio/SDCard.c
15421546
#, c-format
1543-
msgid "Number of data_pins must be 8 or 16, not %d"
1547+
msgid "Number of data_pins must be %d or %d, not %d"
15441548
msgstr ""
15451549

15461550
#: shared-bindings/util.c
@@ -1864,9 +1868,10 @@ msgstr ""
18641868
msgid "SDIO GetCardInfo Error %d"
18651869
msgstr ""
18661870

1871+
#: ports/espressif/common-hal/sdioio/SDCard.c
18671872
#: ports/stm/common-hal/sdioio/SDCard.c
18681873
#, c-format
1869-
msgid "SDIO Init Error %d"
1874+
msgid "SDIO Init Error %x"
18701875
msgstr ""
18711876

18721877
#: ports/espressif/common-hal/busio/SPI.c
@@ -2242,14 +2247,12 @@ msgid "Update failed"
22422247
msgstr ""
22432248

22442249
#: ports/espressif/common-hal/_bleio/Characteristic.c
2245-
#: ports/espressif/common-hal/_bleio/Descriptor.c
22462250
#: ports/nordic/common-hal/_bleio/Characteristic.c
22472251
#: ports/nordic/common-hal/_bleio/Descriptor.c
22482252
msgid "Value length != required fixed length"
22492253
msgstr ""
22502254

22512255
#: ports/espressif/common-hal/_bleio/Characteristic.c
2252-
#: ports/espressif/common-hal/_bleio/Descriptor.c
22532256
#: ports/nordic/common-hal/_bleio/Characteristic.c
22542257
#: ports/nordic/common-hal/_bleio/Descriptor.c
22552258
msgid "Value length > max_length"
@@ -3098,7 +3101,8 @@ msgstr ""
30983101
msgid "function missing required positional argument #%d"
30993102
msgstr ""
31003103

3101-
#: py/argcheck.c py/bc.c py/objnamedtuple.c shared-bindings/time/__init__.c
3104+
#: py/argcheck.c py/bc.c py/objnamedtuple.c shared-bindings/_eve/__init__.c
3105+
#: shared-bindings/time/__init__.c
31023106
#, c-format
31033107
msgid "function takes %d positional arguments but %d were given"
31043108
msgstr ""
@@ -3250,7 +3254,7 @@ msgstr ""
32503254
msgid "input must be a dense ndarray"
32513255
msgstr ""
32523256

3253-
#: extmod/ulab/code/user/user.c
3257+
#: extmod/ulab/code/user/user.c shared-bindings/_eve/__init__.c
32543258
msgid "input must be an ndarray"
32553259
msgstr ""
32563260

ports/atmel-samd/common-hal/sdioio/SDCard.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -153,7 +153,7 @@ static void check_for_deinit(sdioio_sdcard_obj_t *self) {
153153

154154
static void check_whole_block(mp_buffer_info_t *bufinfo) {
155155
if (bufinfo->len % 512) {
156-
mp_raise_ValueError(MP_ERROR_TEXT("Buffer length must be a multiple of 512"));
156+
mp_raise_ValueError_varg(MP_ERROR_TEXT("Buffer must be a multiple of %d bytes"), 512);
157157
}
158158
}
159159

ports/cxd56/common-hal/sdioio/SDCard.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -91,7 +91,7 @@ uint32_t common_hal_sdioio_sdcard_get_count(sdioio_sdcard_obj_t *self) {
9191

9292
static void check_whole_block(mp_buffer_info_t *bufinfo) {
9393
if (bufinfo->len % 512) {
94-
mp_raise_ValueError(MP_ERROR_TEXT("Buffer length must be a multiple of 512"));
94+
mp_raise_ValueError_varg(MP_ERROR_TEXT("Buffer must be a multiple of %d bytes"), 512);
9595
}
9696
}
9797

ports/espressif/CMakeLists.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ cmake_minimum_required(VERSION 3.16)
55
set(ENV{IDF_PATH} ${CMAKE_SOURCE_DIR}/esp-idf)
66

77
# The component list here determines what options we get in menuconfig and what the ninja file can build.
8-
set(COMPONENTS bt driver esp_driver_dac esp_driver_gpio esp_driver_gptimer esp_driver_i2s esp_driver_ledc esp_driver_pcnt esp_driver_rmt esp_driver_spi esp_driver_tsens esp_driver_uart esp-tls esp_adc_cal esp_event esp_netif esp_psram esp_wifi esptool_py freertos log lwip main mbedtls mdns soc ulp usb wpa_supplicant esp-camera esp_lcd vfs esp_vfs_console)
8+
set(COMPONENTS bt driver esp_driver_dac esp_driver_gpio esp_driver_gptimer esp_driver_i2s esp_driver_ledc esp_driver_pcnt esp_driver_rmt esp_driver_spi esp_driver_tsens esp_driver_uart esp-tls esp_adc_cal esp_event esp_netif esp_psram esp_wifi esptool_py freertos log lwip main mbedtls mdns soc ulp usb wpa_supplicant esp-camera esp_lcd vfs esp_vfs_console sdmmc)
99
set(EXTRA_COMPONENT_DIRS "esp-protocols/components/mdns" "esp-camera")
1010

1111
include($ENV{IDF_PATH}/tools/cmake/project.cmake)

ports/espressif/Makefile

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -87,6 +87,8 @@ INC += \
8787
-isystem esp-idf/components/esp_driver_ledc/include \
8888
-isystem esp-idf/components/esp_driver_pcnt/include \
8989
-isystem esp-idf/components/esp_driver_rmt/include \
90+
-isystem esp-idf/components/esp_driver_sdio/include \
91+
-isystem esp-idf/components/esp_driver_sdmmc/include \
9092
-isystem esp-idf/components/esp_driver_spi/include \
9193
-isystem esp-idf/components/esp_driver_tsens/include \
9294
-isystem esp-idf/components/esp_driver_uart/include \
@@ -128,6 +130,8 @@ INC += \
128130
-isystem esp-idf/components/mbedtls/port/include \
129131
-isystem esp-idf/components/newlib/platform_include \
130132
-isystem esp-idf/components/nvs_flash/include \
133+
-isystem esp-idf/components/sdio/include \
134+
-isystem esp-idf/components/sdmmc/include \
131135
-isystem esp-idf/components/soc/include \
132136
-isystem esp-idf/components/soc/$(IDF_TARGET)/include \
133137
-isystem esp-idf/components/spi_flash/include \
@@ -660,6 +664,9 @@ endif
660664
ifneq ($(CIRCUITPY_USB_DEVICE),0)
661665
ESP_IDF_COMPONENTS_LINK += usb
662666
endif
667+
ifneq ($(CIRCUITPY_SDIOIO),0)
668+
ESP_IDF_COMPONENTS_LINK += sdmmc esp_driver_sdmmc
669+
endif
663670

664671
ESP_IDF_COMPONENTS_EXPANDED = $(foreach component, $(ESP_IDF_COMPONENTS_LINK), $(BUILD)/esp-idf/esp-idf/$(component)/lib$(component).a)
665672

ports/espressif/boards/makerfabs_tft7/pins.c

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -121,10 +121,9 @@ static const mp_rom_map_elem_t board_module_globals_table[] = {
121121

122122
// IO10 <> SD_CS is cut at factory (non-placed resistor position R34) and pulled up.
123123
// Permanent SDIO 1-bit mode?
124-
// Until SDIO 1-bit mode is support on Espressif ports these pins aren't useful
125-
// { MP_ROM_QSTR(MP_QSTR_SDIO_CMD), MP_ROM_PTR(&pin_GPIO11) },
126-
// { MP_ROM_QSTR(MP_QSTR_SDIO_D0), MP_ROM_PTR(&pin_GPIO13) },
127-
// { MP_ROM_QSTR(MP_QSTR_SDIO_CLK), MP_ROM_PTR(&pin_GPIO12) },
124+
{ MP_ROM_QSTR(MP_QSTR_SDIO_CLK), MP_ROM_PTR(&pin_GPIO12) },
125+
{ MP_ROM_QSTR(MP_QSTR_SDIO_CMD), MP_ROM_PTR(&pin_GPIO11) },
126+
{ MP_ROM_QSTR(MP_QSTR_SDIO_D0), MP_ROM_PTR(&pin_GPIO13) },
128127

129128
{ MP_ROM_QSTR(MP_QSTR_DISPLAY), MP_ROM_PTR(&displays[0].display) },
130129

ports/espressif/common-hal/paralleldisplaybus/ParallelBus.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,7 @@ void common_hal_paralleldisplaybus_parallelbus_construct_nonsequential(paralleld
3636
const mcu_pin_obj_t *write, const mcu_pin_obj_t *read, const mcu_pin_obj_t *reset, uint32_t frequency) {
3737

3838
if (n_pins != 8 && n_pins != 16) {
39-
mp_raise_ValueError_varg(MP_ERROR_TEXT("Number of data_pins must be 8 or 16, not %d"), n_pins);
39+
mp_raise_ValueError_varg(MP_ERROR_TEXT("Number of data_pins must be %d or %d, not %d"), 8, 16, n_pins);
4040
}
4141

4242
for (uint8_t i = 0; i < n_pins; i++) {

0 commit comments

Comments
 (0)