aboutsummaryrefslogtreecommitdiff
path: root/tmk_core/common
diff options
context:
space:
mode:
Diffstat (limited to 'tmk_core/common')
-rw-r--r--tmk_core/common/keyboard.c11
-rw-r--r--tmk_core/common/keyboard.h2
2 files changed, 9 insertions, 4 deletions
diff --git a/tmk_core/common/keyboard.c b/tmk_core/common/keyboard.c
index 85d252548..8f0257cf6 100644
--- a/tmk_core/common/keyboard.c
+++ b/tmk_core/common/keyboard.c
@@ -130,10 +130,15 @@ static inline bool has_ghost_in_row(uint8_t row, matrix_row_t rowdata)
130#endif 130#endif
131 131
132void disable_jtag(void) { 132void disable_jtag(void) {
133// To use PORTF disable JTAG with writing JTD bit twice within four cycles. 133// To use PF4-7 (PC2-5 on ATmega32A), disable JTAG by writing JTD bit twice within four cycles.
134#if (defined(__AVR_AT90USB1286__) || defined(__AVR_AT90USB1287__) || defined(__AVR_ATmega32U4__)) 134#if (defined(__AVR_AT90USB646__) || defined(__AVR_AT90USB647__) || \
135 defined(__AVR_AT90USB1286__) || defined(__AVR_AT90USB1287__) || \
136 defined(__AVR_ATmega16U4__) || defined(__AVR_ATmega32U4__))
135 MCUCR |= _BV(JTD); 137 MCUCR |= _BV(JTD);
136 MCUCR |= _BV(JTD); 138 MCUCR |= _BV(JTD);
139#elif defined(__AVR_ATmega32A__)
140 MCUCSR |= _BV(JTD);
141 MCUCSR |= _BV(JTD);
137#endif 142#endif
138} 143}
139 144
@@ -184,7 +189,9 @@ void keyboard_post_init_kb(void) {
184 * FIXME: needs doc 189 * FIXME: needs doc
185 */ 190 */
186void keyboard_setup(void) { 191void keyboard_setup(void) {
192#ifndef NO_JTAG_DISABLE
187 disable_jtag(); 193 disable_jtag();
194#endif
188 matrix_setup(); 195 matrix_setup();
189 keyboard_pre_init_kb(); 196 keyboard_pre_init_kb();
190} 197}
diff --git a/tmk_core/common/keyboard.h b/tmk_core/common/keyboard.h
index bf8b71fb7..19f98c74e 100644
--- a/tmk_core/common/keyboard.h
+++ b/tmk_core/common/keyboard.h
@@ -57,8 +57,6 @@ static inline bool IS_RELEASED(keyevent_t event) { return (!IS_NOEVENT(event) &&
57 .time = (timer_read() | 1) \ 57 .time = (timer_read() | 1) \
58} 58}
59 59
60void disable_jtag(void);
61
62/* it runs once at early stage of startup before keyboard_init. */ 60/* it runs once at early stage of startup before keyboard_init. */
63void keyboard_setup(void); 61void keyboard_setup(void);
64/* it runs once after initializing host side protocol, debug and MCU peripherals. */ 62/* it runs once after initializing host side protocol, debug and MCU peripherals. */