Skip to content

Commit 277a0c8

Browse files
authored
Merge pull request #305 from hyx0329/pr-m60-fix
Fix M60
2 parents 80c3a84 + e34b183 commit 277a0c8

File tree

4 files changed

+54
-4
lines changed

4 files changed

+54
-4
lines changed

src/boards/boards.c

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -63,7 +63,8 @@ bool button_pressed(uint32_t pin)
6363
}
6464

6565
// This is declared so that a board specific init can be called from here.
66-
void __attribute__((weak)) board_init_extra(void) { }
66+
void __attribute__((weak)) board_init2(void) { }
67+
6768
void board_init(void)
6869
{
6970
// stop LF clock just in case we jump from application without reset
@@ -96,7 +97,7 @@ void board_init(void)
9697
NRF_POWER->DCDCEN = 1;
9798
#endif
9899
// Make sure any custom inits are performed
99-
board_init_extra();
100+
board_init2();
100101

101102
// When board is supplied on VDDH (and not VDD), this specifies what voltage the GPIO should run at
102103
// and what voltage is output at VDD. The default (0xffffffff) is 1.8V; typically you'll want
@@ -129,6 +130,9 @@ void board_init(void)
129130
SysTick_Config(SystemCoreClock/1000);
130131
}
131132

133+
// Actions at the end of board_teardown.
134+
void __attribute__((weak)) board_teardown2(void) { }
135+
132136
void board_teardown(void)
133137
{
134138
// Disable systick, turn off LEDs
@@ -159,6 +163,9 @@ void board_teardown(void)
159163
{
160164
nrf_gpio_cfg_default(i);
161165
}
166+
167+
// board specific teardown actions
168+
board_teardown2();
162169
}
163170

164171
static uint32_t _systick_count = 0;

src/boards/challenger_840_ble/pinconfig.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ const uint32_t bootloaderConfig[] =
1919
/* CF2 END */
2020
};
2121

22-
void board_init_extra(void)
22+
void board_init2(void)
2323
{
2424
// Turn LDO on
2525
nrf_gpio_cfg_output(LDO_CONTROL_PIN);

src/boards/m60_keyboard/board.h

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -43,9 +43,14 @@
4343
*------------------------------------------------------------------*/
4444
#define BUTTONS_NUMBER 2
4545
#define BUTTON_1 _PINNUM(0, 27)
46-
#define BUTTON_2 _PINNUM(1, 7)
46+
#define BUTTON_2 _PINNUM(0, 19) // ESC
4747
#define BUTTON_PULL NRF_GPIO_PIN_PULLUP
4848

49+
/*------------------------------------------------------------------*/
50+
/* On board regulator control
51+
*------------------------------------------------------------------*/
52+
#define LDO_CONTROL_PIN _PINNUM(0, 28) // Enables external pwr
53+
4954
//--------------------------------------------------------------------+
5055
// BLE OTA
5156
//--------------------------------------------------------------------+

src/boards/m60_keyboard/pinconfig.c

Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
#include "boards.h"
2+
#include "board.h"
23
#include "uf2/configkeys.h"
34

45
__attribute__((used, section(".bootloaderConfig")))
@@ -17,3 +18,40 @@ const uint32_t bootloaderConfig[] =
1718
0, 0, 0, 0, 0, 0, 0, 0
1819
/* CF2 END */
1920
};
21+
22+
static void power_on(void)
23+
{
24+
// Turn on the regulator
25+
nrf_gpio_cfg_output(LDO_CONTROL_PIN);
26+
nrf_gpio_pin_write(LDO_CONTROL_PIN, 1);
27+
}
28+
29+
void board_init2(void)
30+
{
31+
power_on();
32+
33+
// configure P0.05 for ESC/BUTTON_2
34+
// P0.05 --- |<- --- / --- P0.19
35+
// diode sw(esc)
36+
// mode: output, push-pull, low
37+
nrf_gpio_cfg(
38+
_PINNUM(0, 5),
39+
NRF_GPIO_PIN_DIR_OUTPUT,
40+
NRF_GPIO_PIN_INPUT_DISCONNECT,
41+
NRF_GPIO_PIN_NOPULL,
42+
NRF_GPIO_PIN_H0D1,
43+
NRF_GPIO_PIN_NOSENSE
44+
);
45+
nrf_gpio_pin_write(_PINNUM(0, 5), 0);
46+
47+
// Wait the buttons stable.
48+
// This is mandatory, or the keyboard will enter bootloader whenever
49+
// booted by pressing the button at back (same with BUTTON_1)
50+
NRFX_DELAY_MS(300);
51+
}
52+
53+
void board_teardown2(void)
54+
{
55+
// re-enable the battery
56+
power_on();
57+
}

0 commit comments

Comments
 (0)