Skip to content

Commit 5c569f0

Browse files
committed
redo pin never resetting for mimxrt10xx
1 parent 369507e commit 5c569f0

File tree

12 files changed

+356
-156
lines changed

12 files changed

+356
-156
lines changed

ports/mimxrt10xx/boards/feather_m7_1011/board.c

Lines changed: 32 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -26,21 +26,40 @@
2626
*/
2727

2828
#include "supervisor/board.h"
29-
#include "boards/flash_config.h"
30-
#include "mpconfigboard.h"
3129
#include "shared-bindings/microcontroller/Pin.h"
3230

33-
void board_init(void) {
34-
// SWD Pins
35-
common_hal_never_reset_pin(&pin_GPIO_AD_13);// SWDIO
36-
common_hal_never_reset_pin(&pin_GPIO_AD_12);// SWCLK
31+
// These pins should never ever be reset; doing so could interfere with basic operation.
32+
STATIC const mcu_pin_obj_t *_reset_forbidden_pins[] = {
33+
&pin_GPIO_AD_13,// SWDIO
34+
&pin_GPIO_AD_12,// SWCLK
3735

3836
// FLEX flash
39-
common_hal_never_reset_pin(&pin_GPIO_SD_12);
40-
common_hal_never_reset_pin(&pin_GPIO_SD_11);
41-
common_hal_never_reset_pin(&pin_GPIO_SD_10);
42-
common_hal_never_reset_pin(&pin_GPIO_SD_09);
43-
common_hal_never_reset_pin(&pin_GPIO_SD_08);
44-
common_hal_never_reset_pin(&pin_GPIO_SD_07);
45-
common_hal_never_reset_pin(&pin_GPIO_SD_06);
37+
&pin_GPIO_SD_12,
38+
&pin_GPIO_SD_11,
39+
&pin_GPIO_SD_10,
40+
&pin_GPIO_SD_09,
41+
&pin_GPIO_SD_08,
42+
&pin_GPIO_SD_07,
43+
&pin_GPIO_SD_06,
44+
};
45+
46+
STATIC bool _reset_forbidden(const mcu_pin_obj_t *pin) {
47+
for (size_t i = 0; i < MP_ARRAY_SIZE(_reset_forbidden_pins); i++) {
48+
if (pin == _reset_forbidden_pins[i]) {
49+
return true;
50+
}
51+
}
52+
return false;
53+
}
54+
55+
bool mimxrt10xx_board_reset_pin_number(const mcu_pin_obj_t *pin) {
56+
if (_reset_forbidden(pin)) {
57+
return true;
58+
}
59+
60+
// Other reset variations would go here.
61+
62+
return false;
4663
}
64+
65+
// Use the MP_WEAK supervisor/shared/board.c versions of routines not defined here.

ports/mimxrt10xx/boards/feather_mimxrt1011/board.c

Lines changed: 31 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -26,23 +26,41 @@
2626
*/
2727

2828
#include "supervisor/board.h"
29-
#include "boards/flash_config.h"
30-
#include "mpconfigboard.h"
3129
#include "shared-bindings/microcontroller/Pin.h"
3230

33-
void board_init(void) {
34-
// SWD Pins
35-
common_hal_never_reset_pin(&pin_GPIO_AD_13);// SWDIO
36-
common_hal_never_reset_pin(&pin_GPIO_AD_12);// SWCLK
31+
// These pins should never ever be reset; doing so could interfere with basic operation.
32+
STATIC const mcu_pin_obj_t *_reset_forbidden_pins[] = {
33+
&pin_GPIO_AD_13,// SWDIO
34+
&pin_GPIO_AD_12,// SWCLK
3735

3836
// FLEX flash
39-
common_hal_never_reset_pin(&pin_GPIO_SD_12);
40-
common_hal_never_reset_pin(&pin_GPIO_SD_11);
41-
common_hal_never_reset_pin(&pin_GPIO_SD_10);
42-
common_hal_never_reset_pin(&pin_GPIO_SD_09);
43-
common_hal_never_reset_pin(&pin_GPIO_SD_08);
44-
common_hal_never_reset_pin(&pin_GPIO_SD_07);
45-
common_hal_never_reset_pin(&pin_GPIO_SD_06);
37+
&pin_GPIO_SD_12,
38+
&pin_GPIO_SD_11,
39+
&pin_GPIO_SD_10,
40+
&pin_GPIO_SD_09,
41+
&pin_GPIO_SD_08,
42+
&pin_GPIO_SD_07,
43+
&pin_GPIO_SD_06,
44+
};
45+
46+
STATIC bool _reset_forbidden(const mcu_pin_obj_t *pin) {
47+
for (size_t i = 0; i < MP_ARRAY_SIZE(_reset_forbidden_pins); i++) {
48+
if (pin == _reset_forbidden_pins[i]) {
49+
return true;
50+
}
51+
}
52+
return false;
53+
}
54+
55+
56+
bool mimxrt10xx_board_reset_pin_number(const mcu_pin_obj_t *pin) {
57+
if (_reset_forbidden(pin)) {
58+
return true;
59+
}
60+
61+
// Other reset variations would go here.
62+
63+
return false;
4664
}
4765

4866
// Use the MP_WEAK supervisor/shared/board.c versions of routines not defined here.

ports/mimxrt10xx/boards/feather_mimxrt1062/board.c

Lines changed: 29 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -26,22 +26,40 @@
2626
*/
2727

2828
#include "supervisor/board.h"
29-
#include "boards/flash_config.h"
30-
#include "mpconfigboard.h"
3129
#include "shared-bindings/microcontroller/Pin.h"
3230

33-
void board_init(void) {
31+
// These pins should never ever be reset; doing so could interfere with basic operation.
32+
STATIC const mcu_pin_obj_t *_reset_forbidden_pins[] = {
3433
// SWD Pins
35-
common_hal_never_reset_pin(&pin_GPIO_AD_B0_06);// SWDIO
36-
common_hal_never_reset_pin(&pin_GPIO_AD_B0_07);// SWCLK
34+
&pin_GPIO_AD_B0_06,// SWDIO
35+
&pin_GPIO_AD_B0_07,// SWCLK
3736

3837
// FLEX flash
39-
common_hal_never_reset_pin(&pin_GPIO_SD_B1_06);
40-
common_hal_never_reset_pin(&pin_GPIO_SD_B1_07);
41-
common_hal_never_reset_pin(&pin_GPIO_SD_B1_08);
42-
common_hal_never_reset_pin(&pin_GPIO_SD_B1_09);
43-
common_hal_never_reset_pin(&pin_GPIO_SD_B1_10);
44-
common_hal_never_reset_pin(&pin_GPIO_SD_B1_11);
38+
&pin_GPIO_SD_B1_06,
39+
&pin_GPIO_SD_B1_07,
40+
&pin_GPIO_SD_B1_08,
41+
&pin_GPIO_SD_B1_09,
42+
&pin_GPIO_SD_B1_10,
43+
&pin_GPIO_SD_B1_11,
44+
};
45+
46+
STATIC bool _reset_forbidden(const mcu_pin_obj_t *pin) {
47+
for (size_t i = 0; i < MP_ARRAY_SIZE(_reset_forbidden_pins); i++) {
48+
if (pin == _reset_forbidden_pins[i]) {
49+
return true;
50+
}
51+
}
52+
return false;
53+
}
54+
55+
bool mimxrt10xx_board_reset_pin_number(const mcu_pin_obj_t *pin) {
56+
if (_reset_forbidden(pin)) {
57+
return true;
58+
}
59+
60+
// Other reset variations would go here.
61+
62+
return false;
4563
}
4664

4765
// Use the MP_WEAK supervisor/shared/board.c versions of routines not defined here.

ports/mimxrt10xx/boards/imxrt1010_evk/board.c

Lines changed: 32 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -26,25 +26,42 @@
2626
*/
2727

2828
#include "supervisor/board.h"
29-
#include "boards/flash_config.h"
30-
#include "mpconfigboard.h"
3129
#include "shared-bindings/microcontroller/Pin.h"
3230

33-
void board_init(void) {
34-
// SWD Pins
35-
common_hal_never_reset_pin(&pin_GPIO_AD_13); // SWDIO
36-
common_hal_never_reset_pin(&pin_GPIO_AD_12); // SWCLK
31+
// These pins should never ever be reset; doing so could interfere with basic operation.
32+
STATIC const mcu_pin_obj_t *_reset_forbidden_pins[] = {
33+
&pin_GPIO_AD_13, // SWDIO
34+
&pin_GPIO_AD_12, // SWCLK
3735
// FLEX flash
38-
common_hal_never_reset_pin(&pin_GPIO_SD_12);
39-
common_hal_never_reset_pin(&pin_GPIO_SD_11);
40-
common_hal_never_reset_pin(&pin_GPIO_SD_10);
41-
common_hal_never_reset_pin(&pin_GPIO_SD_09);
42-
common_hal_never_reset_pin(&pin_GPIO_SD_08);
43-
common_hal_never_reset_pin(&pin_GPIO_SD_07);
44-
common_hal_never_reset_pin(&pin_GPIO_SD_06);
36+
&pin_GPIO_SD_12,
37+
&pin_GPIO_SD_11,
38+
&pin_GPIO_SD_10,
39+
&pin_GPIO_SD_09,
40+
&pin_GPIO_SD_08,
41+
&pin_GPIO_SD_07,
42+
&pin_GPIO_SD_06,
4543
// USB Pins
46-
common_hal_never_reset_pin(&pin_GPIO_12);
47-
common_hal_never_reset_pin(&pin_GPIO_13);
44+
&pin_GPIO_12,
45+
&pin_GPIO_13,
46+
};
47+
48+
STATIC bool _reset_forbidden(const mcu_pin_obj_t *pin) {
49+
for (size_t i = 0; i < MP_ARRAY_SIZE(_reset_forbidden_pins); i++) {
50+
if (pin == _reset_forbidden_pins[i]) {
51+
return true;
52+
}
53+
}
54+
return false;
55+
}
56+
57+
bool mimxrt10xx_board_reset_pin_number(const mcu_pin_obj_t *pin) {
58+
if (_reset_forbidden(pin)) {
59+
return true;
60+
}
61+
62+
// Other reset variations would go here.
63+
64+
return false;
4865
}
4966

5067
// Use the MP_WEAK supervisor/shared/board.c versions of routines not defined here.

ports/mimxrt10xx/boards/imxrt1020_evk/board.c

Lines changed: 31 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -26,26 +26,44 @@
2626
*/
2727

2828
#include "supervisor/board.h"
29-
#include "boards/flash_config.h"
30-
#include "mpconfigboard.h"
3129
#include "shared-bindings/microcontroller/Pin.h"
3230

33-
void board_init(void) {
31+
// These pins should never ever be reset; doing so could interfere with basic operation.
32+
STATIC const mcu_pin_obj_t *_reset_forbidden_pins[] = {
3433
// SWD Pins
35-
common_hal_never_reset_pin(&pin_GPIO_AD_B0_00);// SWDIO
36-
common_hal_never_reset_pin(&pin_GPIO_AD_B0_01);// SWCLK
34+
&pin_GPIO_AD_B0_00,// SWDIO
35+
&pin_GPIO_AD_B0_01,// SWCLK
3736

3837
// FLEX flash
39-
common_hal_never_reset_pin(&pin_GPIO_SD_B1_06);
40-
common_hal_never_reset_pin(&pin_GPIO_SD_B1_07);
41-
common_hal_never_reset_pin(&pin_GPIO_SD_B1_08);
42-
common_hal_never_reset_pin(&pin_GPIO_SD_B1_09);
43-
common_hal_never_reset_pin(&pin_GPIO_SD_B1_10);
44-
common_hal_never_reset_pin(&pin_GPIO_SD_B1_11);
38+
&pin_GPIO_SD_B1_06,
39+
&pin_GPIO_SD_B1_07,
40+
&pin_GPIO_SD_B1_08,
41+
&pin_GPIO_SD_B1_09,
42+
&pin_GPIO_SD_B1_10,
43+
&pin_GPIO_SD_B1_11,
4544

4645
// USB Pins
47-
common_hal_never_reset_pin(&pin_GPIO_AD_B1_11);
48-
common_hal_never_reset_pin(&pin_GPIO_AD_B1_12);
46+
&pin_GPIO_AD_B1_11,
47+
&pin_GPIO_AD_B1_12,
48+
};
49+
50+
STATIC bool _reset_forbidden(const mcu_pin_obj_t *pin) {
51+
for (size_t i = 0; i < MP_ARRAY_SIZE(_reset_forbidden_pins); i++) {
52+
if (pin == _reset_forbidden_pins[i]) {
53+
return true;
54+
}
55+
}
56+
return false;
57+
}
58+
59+
bool mimxrt10xx_board_reset_pin_number(const mcu_pin_obj_t *pin) {
60+
if (_reset_forbidden(pin)) {
61+
return true;
62+
}
63+
64+
// Other reset variations would go here.
65+
66+
return false;
4967
}
5068

5169
// Use the MP_WEAK supervisor/shared/board.c versions of routines not defined here.

ports/mimxrt10xx/boards/imxrt1060_evk/board.c

Lines changed: 40 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -26,30 +26,51 @@
2626
*/
2727

2828
#include "supervisor/board.h"
29-
#include "boards/flash_config.h"
30-
#include "mpconfigboard.h"
3129
#include "shared-bindings/microcontroller/Pin.h"
3230

33-
void board_init(void) {
31+
// These pins should never ever be reset; doing so could interfere with basic operation.
32+
STATIC const mcu_pin_obj_t *_reset_forbidden_pins[] = {
3433
// SWD Pins
35-
common_hal_never_reset_pin(&pin_GPIO_AD_B0_06);// SWDIO
36-
common_hal_never_reset_pin(&pin_GPIO_AD_B0_07);// SWCLK
34+
&pin_GPIO_AD_B0_06, // SWDIO
35+
&pin_GPIO_AD_B0_07, // SWCLK
3736

3837
// FLEX flash
39-
common_hal_never_reset_pin(&pin_GPIO_SD_B1_00);
40-
common_hal_never_reset_pin(&pin_GPIO_SD_B1_01);
41-
common_hal_never_reset_pin(&pin_GPIO_SD_B1_02);
42-
common_hal_never_reset_pin(&pin_GPIO_SD_B1_03);
43-
common_hal_never_reset_pin(&pin_GPIO_SD_B1_04);
44-
common_hal_never_reset_pin(&pin_GPIO_SD_B1_05);
45-
common_hal_never_reset_pin(&pin_GPIO_SD_B1_06);
46-
common_hal_never_reset_pin(&pin_GPIO_SD_B1_07);
47-
common_hal_never_reset_pin(&pin_GPIO_SD_B1_08);
48-
common_hal_never_reset_pin(&pin_GPIO_SD_B1_09);
49-
common_hal_never_reset_pin(&pin_GPIO_SD_B1_10);
50-
common_hal_never_reset_pin(&pin_GPIO_SD_B1_11);
38+
&pin_GPIO_SD_B1_00,
39+
&pin_GPIO_SD_B1_01,
40+
&pin_GPIO_SD_B1_02,
41+
&pin_GPIO_SD_B1_03,
42+
&pin_GPIO_SD_B1_04,
43+
&pin_GPIO_SD_B1_05,
44+
&pin_GPIO_SD_B1_06,
45+
&pin_GPIO_SD_B1_07,
46+
&pin_GPIO_SD_B1_08,
47+
&pin_GPIO_SD_B1_09,
48+
&pin_GPIO_SD_B1_10,
49+
&pin_GPIO_SD_B1_11,
5150

5251
// USB Pins
53-
common_hal_never_reset_pin(&pin_GPIO_AD_B0_01);
54-
common_hal_never_reset_pin(&pin_GPIO_AD_B0_03);
52+
&pin_GPIO_AD_B0_01,
53+
&pin_GPIO_AD_B0_03,
54+
};
55+
56+
STATIC bool _reset_forbidden(const mcu_pin_obj_t *pin) {
57+
for (size_t i = 0; i < MP_ARRAY_SIZE(_reset_forbidden_pins); i++) {
58+
if (pin == _reset_forbidden_pins[i]) {
59+
return true;
60+
}
61+
}
62+
return false;
5563
}
64+
65+
66+
bool mimxrt10xx_board_reset_pin_number(const mcu_pin_obj_t *pin) {
67+
if (_reset_forbidden(pin)) {
68+
return true;
69+
}
70+
71+
// Other reset variations would go here.
72+
73+
return false;
74+
}
75+
76+
// Use the MP_WEAK supervisor/shared/board.c versions of routines not defined here.

0 commit comments

Comments
 (0)