summaryrefslogtreecommitdiff
path: root/platforms/avr
diff options
context:
space:
mode:
authorJoel Challis <git@zvecr.com>2022-04-29 01:23:50 +0100
committerGitHub <noreply@github.com>2022-04-29 01:23:50 +0100
commitd458d4a596cd1fe8f0a21b9b70ab2e5cd190e7c7 (patch)
tree06a546f47caf244f3226ba9088044df45f484d78 /platforms/avr
parent0de08b09e7f756270374ae222561e9880918a71f (diff)
Move disable_jtag to platforms (#16960)
Diffstat (limited to 'platforms/avr')
-rw-r--r--platforms/avr/platform.c13
1 files changed, 12 insertions, 1 deletions
diff --git a/platforms/avr/platform.c b/platforms/avr/platform.c
index 3e35b4fe4c..37decb6ec8 100644
--- a/platforms/avr/platform.c
+++ b/platforms/avr/platform.c
@@ -16,6 +16,17 @@
#include "platform_deps.h"
+static void disable_jtag(void) {
+// To use PF4-7 (PC2-5 on ATmega32A), disable JTAG by writing JTD bit twice within four cycles.
+#if (defined(__AVR_AT90USB646__) || defined(__AVR_AT90USB647__) || defined(__AVR_AT90USB1286__) || defined(__AVR_AT90USB1287__) || defined(__AVR_ATmega16U4__) || defined(__AVR_ATmega32U4__))
+ MCUCR |= _BV(JTD);
+ MCUCR |= _BV(JTD);
+#elif defined(__AVR_ATmega32A__)
+ MCUCSR |= _BV(JTD);
+ MCUCSR |= _BV(JTD);
+#endif
+}
+
void platform_setup(void) {
- // do nothing
+ disable_jtag();
}