OpenOCD is fond of calling PORT_OFF and PORT_SWD_SETUP frequently, which
played havoc with caching both adapter khz and the DAP delay.
Revert to caching just the DAP delay and reset it when PORT_OFF is called.
Signed-off-by: Jonathan Bell <jonathan@raspberrypi.com>
CMSIS-DAP implementations explicitly use CPU bitbash to control SWD and
SWDIO, but we can do better. Transfers are handed off to PIO in phases,
which gets us deterministic clock timing as well as freeing the CPU up
for other tasks.
Signed-off-by: Jonathan Bell <jonathan@raspberrypi.com>