summaryrefslogtreecommitdiffhomepage
path: root/digital
diff options
context:
space:
mode:
authorNicolas Schodet2013-02-17 19:27:05 +0100
committerNicolas Schodet2013-04-07 15:31:37 +0200
commitd01f2039acd16886ba012ea0bdba6c3832ab14de (patch)
tree96369606628c1669526ea576d0c20f2743924ac5 /digital
parent038db5ce513fe962cac035e6aa9e85b8cfe604b5 (diff)
digital/dev2/src: add ISP/serial shared mode
Diffstat (limited to 'digital')
-rw-r--r--digital/dev2/src/common/usb_isp.c7
-rw-r--r--digital/dev2/src/usb_serial_isp/avrconfig.h4
2 files changed, 11 insertions, 0 deletions
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 */