From d01f2039acd16886ba012ea0bdba6c3832ab14de Mon Sep 17 00:00:00 2001 From: Nicolas Schodet Date: Sun, 17 Feb 2013 19:27:05 +0100 Subject: digital/dev2/src: add ISP/serial shared mode --- digital/dev2/src/common/usb_isp.c | 7 +++++++ digital/dev2/src/usb_serial_isp/avrconfig.h | 4 ++++ 2 files changed, 11 insertions(+) (limited to 'digital/dev2') diff --git a/digital/dev2/src/common/usb_isp.c b/digital/dev2/src/common/usb_isp.c index 8494fcab..4527eb37 100644 --- a/digital/dev2/src/common/usb_isp.c +++ b/digital/dev2/src/common/usb_isp.c @@ -28,6 +28,7 @@ #include "usb_isp.h" #include "descriptors.h" +#include "serial.h" #include "modules/isp/isp.h" #include "modules/isp/isp_frame.h" @@ -61,6 +62,9 @@ usb_isp_send_char (uint8_t c) void usb_isp_spi_enable (void) { + /* May have to disable serial. */ + if (AC_DEV2_SERIAL_ISP_SHARED) + serial_uninit (); /* Reset slave AVR. */ IO_DDR (RESET) |= IO_BV (RESET); /* Set SCK to low. */ @@ -80,6 +84,9 @@ usb_isp_spi_disable (void) spi_uninit (); /* Release reset, SCK is handled by SPI driver. */ IO_DDR (RESET) &= ~IO_BV (RESET); + /* May have to enable serial. */ + if (AC_DEV2_SERIAL_ISP_SHARED) + serial_init (); } void diff --git a/digital/dev2/src/usb_serial_isp/avrconfig.h b/digital/dev2/src/usb_serial_isp/avrconfig.h index 60ddf99b..45a8f8d4 100644 --- a/digital/dev2/src/usb_serial_isp/avrconfig.h +++ b/digital/dev2/src/usb_serial_isp/avrconfig.h @@ -123,4 +123,8 @@ /* usb */ #include "modules/usb/lufaconfig.h" +/* dev2 */ +/** Set to 1 if ISP and serial pins are connected together. */ +#define AC_DEV2_SERIAL_ISP_SHARED 0 + #endif /* avrconfig_h */ -- cgit v1.2.3