Skip to content

Commit

Permalink
Move disable JTAG code from keyboard_init to keyboard_setup
Browse files Browse the repository at this point in the history
This way all split keyboards are using that code instead of just those using split_common with the fix
  • Loading branch information
nooges authored and drashna committed Nov 2, 2018
1 parent 5779ffb commit a5fa75f
Show file tree
Hide file tree
Showing 4 changed files with 11 additions and 25 deletions.
6 changes: 0 additions & 6 deletions quantum/split_common/matrix.c
Original file line number Diff line number Diff line change
Expand Up @@ -128,12 +128,6 @@ uint8_t matrix_cols(void)

void matrix_init(void)
{
#ifdef DISABLE_JTAG
// JTAG disable for PORT F. write JTD bit twice within four cycles.
MCUCR |= (1<<JTD);
MCUCR |= (1<<JTD);
#endif

debug_enable = true;
debug_matrix = true;
debug_mouse = true;
Expand Down
14 changes: 0 additions & 14 deletions quantum/split_common/split_util.c
Original file line number Diff line number Diff line change
Expand Up @@ -94,10 +94,6 @@ void split_keyboard_setup(void) {

void disable_JTAG(void);
void keyboard_slave_loop(void) {
// Disable JTAG since we skip calling keyboard_init() on the slave side
// Future fix will possible call keyboard_init() on the slave to remove this need
disable_JTAG();

matrix_init();

//Init RGB
Expand Down Expand Up @@ -157,13 +153,3 @@ void matrix_setup(void) {
keyboard_slave_loop();
}
}

// Temporary code to disable JTAG on the slave board
void disable_JTAG(void) {
/* Copied from tmk_core/common/keybaord.c */
// To use PORTF disable JTAG with writing JTD bit twice within four cycles.
#if (defined(__AVR_AT90USB1286__) || defined(__AVR_AT90USB1287__) || defined(__AVR_ATmega32U4__))
MCUCR |= _BV(JTD);
MCUCR |= _BV(JTD);
#endif
}
14 changes: 9 additions & 5 deletions tmk_core/common/keyboard.c
Original file line number Diff line number Diff line change
Expand Up @@ -120,6 +120,14 @@ static inline bool has_ghost_in_row(uint8_t row, matrix_row_t rowdata)

#endif

void disable_jtag(void) {
// To use PORTF disable JTAG with writing JTD bit twice within four cycles.
#if (defined(__AVR_AT90USB1286__) || defined(__AVR_AT90USB1287__) || defined(__AVR_ATmega32U4__))
MCUCR |= _BV(JTD);
MCUCR |= _BV(JTD);
#endif
}

/** \brief matrix_setup
*
* FIXME: needs doc
Expand All @@ -133,6 +141,7 @@ void matrix_setup(void) {
* FIXME: needs doc
*/
void keyboard_setup(void) {
disable_jtag();
matrix_setup();
}

Expand All @@ -151,11 +160,6 @@ bool is_keyboard_master(void) {
*/
void keyboard_init(void) {
timer_init();
// To use PORTF disable JTAG with writing JTD bit twice within four cycles.
#if (defined(__AVR_AT90USB1286__) || defined(__AVR_AT90USB1287__) || defined(__AVR_ATmega32U4__))
MCUCR |= _BV(JTD);
MCUCR |= _BV(JTD);
#endif
matrix_init();
#ifdef PS2_MOUSE_ENABLE
ps2_mouse_init();
Expand Down
2 changes: 2 additions & 0 deletions tmk_core/common/keyboard.h
Original file line number Diff line number Diff line change
Expand Up @@ -57,6 +57,8 @@ static inline bool IS_RELEASED(keyevent_t event) { return (!IS_NOEVENT(event) &&
.time = (timer_read() | 1) \
}

void disable_jtag(void);

/* it runs once at early stage of startup before keyboard_init. */
void keyboard_setup(void);
/* it runs once after initializing host side protocol, debug and MCU peripherals. */
Expand Down

0 comments on commit a5fa75f

Please sign in to comment.