Builds of the esp32s2 targets frequently fail:
```
-- Found Git: /usr/bin/git (found version "2.28.0")
-- Initialising new submodule components/asio/asio...
warning: could not look up configuration 'remote.origin.url'. Assuming this repository is its own authoritative upstream.
Submodule 'components/asio/asio' (/home/runner/work/circuitpython/circuitpython/ports/espressif/asio.git) registered for path 'components/asio/asio'
fatal: repository '/home/runner/work/circuitpython/circuitpython/ports/espressif/asio.git' does not exist
fatal: clone of '/home/runner/work/circuitpython/circuitpython/ports/espressif/asio.git' into submodule path '/home/runner/work/circuitpython/circuitpython/ports/esp32s2/esp-idf/components/asio/asio' failed
Failed to clone 'components/asio/asio'. Retry scheduled
fatal: repository '/home/runner/work/circuitpython/circuitpython/ports/espressif/asio.git' does not exist
fatal: clone of '/home/runner/work/circuitpython/circuitpython/ports/espressif/asio.git' into submodule path '/home/runner/work/circuitpython/circuitpython/ports/esp32s2/esp-idf/components/asio/asio' failed
Failed to clone 'components/asio/asio' a second time, aborting
CMake Error at esp-idf/tools/cmake/git_submodules.cmake:48 (message):
Git submodule init failed for components/asio/asio
Call Stack (most recent call first):
esp-idf/tools/cmake/build.cmake:78 (git_submodule_check)
esp-idf/tools/cmake/build.cmake:160 (__build_get_idf_git_revision)
esp-idf/tools/cmake/idf.cmake:49 (__build_init)
esp-idf/tools/cmake/project.cmake:7 (include)
CMakeLists.txt:8 (include)
```
It's not clear how/why this happens--is it something to do with our
multithreaded build?. Attempt to clear it up by manually checking out these
submodules ourselves.
Few peripherals are actually tested. However, USB, I2C and GPIO seem to work.
Most pins are silkscreened with the "PX00" style, so the board module
only includes the small number that are screened differently.
The default SPI, I2C, and UART are the ones on the EXT2 header. This is
arbitrary, but the I2C on this connector is shared with the on-board I2C
devices and the PCC header, making it the most versatile.
This version is supposed to
> Fetch all history for all tags and branches when fetch-depth=0
We leave the tags fetch in place so that actions _in cloned repos_
work. Cloned repos' tags do not necessarily match adafruit/circuitpython,
but we want version reporting to be able to use adafruit/circuitpython
tags when they are most relevant according to "git describe"'s heuristics.
Submodules are different, as they always point to the repo specified
in .gitmodules, so they don't need special handling to get the most
relevant tags.