Makefile: use ARCH environment to cross comile

Signed-off-by: Federico Vaga <federicov@linino.org>
gpio_config: add config structure

Signed-off-by: Federico Vaga <federicov@linino.org>
gpio.{h|cpp}: class to handle single GPIO

Signed-off-by: Federico Vaga <federicov@linino.org>
swd_gpio.{h|cpp}: add GPIO driver

Signed-off-by: Federico Vaga <federicov@linino.org>
replace USB with GPIO driver

I did not remove the old error_main() function because it helps during
development. I will remove it later.
swddude.cpp: set static CLK and DIO GPIO

I will add options to program the GPIO pins

Signed-off-by: Federico Vaga <federicov@linino.org>
swd_gpio.{h|cpp}: add code to reset SW-DP

Signed-off-by: Federico Vaga <federicov@linino.org>
swd_gpio.{cpp|h}: implement read operation

Signed-off-by: Federico Vaga <federicov@linino.org>
swd_gpio.{cpp|h}: add write operation

Signed-off-by: Federico Vaga <federicov@linino.org>
swd_gpio.cpp: emulate freedom board

Signed-off-by: Federico Vaga <federicov@linino.org>
swd_gpio: init clock to low

Signed-off-by: Federico Vaga <federicov@linino.org>
swd_gpio: store data if pointer available

Signed-off-by: Federico Vaga <federicov@linino.org>
swd_gpio: DIO low on turnaround

Signed-off-by: Federico Vaga <federicov@linino.org>
swd_gpio: add debug message in write

Signed-off-by: Federico Vaga <federicov@linino.org>
swd_gpio: invert address bits

The bitorder of the address field is inverted (ADIv5)

Signed-off-by: Federico Vaga <federicov@linino.org>
swd_dp.cpp: abort before any other operation

Signed-off-by: Federico Vaga <federicov@linino.org>
swd_gpio: show parity bit

Signed-off-by: Federico Vaga <federicov@linino.org>
DAP: wait powerup on reset

Signed-off-by: Federico Vaga <federicov@linino.org>
mdm-ap: add MDM-AP specific target

Signed-off-by: Federico Vaga <federicov@linino.org>
swddude: initialize MDM-AP

Signed-off-by: Federico Vaga <federicov@linino.org>