Skip to content

Commit fd68691

Browse files
committed
ARM SSG/FM: Cope correctly with NC GPIO
1 parent ad1acf9 commit fd68691

File tree

3 files changed

+9
-2
lines changed

3 files changed

+9
-2
lines changed

targets/TARGET_ARM_FM/TARGET_FVP_MPS2/gpio_api.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,11 +27,11 @@ uint32_t gpio_set(PinName pin)
2727
// with the object created for the pin
2828
void gpio_init(gpio_t *obj, PinName pin)
2929
{
30+
obj->pin = pin;
3031
if (pin == NC) {
3132
return;
3233
} else {
3334
int pin_value = 0;
34-
obj->pin = pin;
3535
if (pin <= 15) {
3636
pin_value = pin;
3737
} else if (pin >= 16 && pin <= 31) {

targets/TARGET_ARM_SSG/TARGET_CM3DS_MPS2/gpio_api.c

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -101,6 +101,13 @@ void gpio_init(gpio_t *obj, PinName pin)
101101
{
102102
struct arm_gpio_dev_t *gpio_dev;
103103

104+
if (pin == NC) {
105+
obj->pin_number = NC;
106+
obj->gpio_dev = NULL;
107+
obj->mps2_io_dev = NULL;
108+
return;
109+
}
110+
104111
if (pin >= EXP0 && pin <= EXP51) {
105112
/* GPIO pins */
106113
switch (GPIO_DEV_NUMBER(pin)) {

targets/TARGET_ARM_SSG/TARGET_IOTSS/gpio_api.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,10 +25,10 @@ uint32_t gpio_set(PinName pin) {
2525
// this links the board control bits for each pin
2626
// with the object created for the pin
2727
void gpio_init(gpio_t *obj, PinName pin) {
28+
obj->pin = pin;
2829
if(pin == NC){ return;}
2930
else {
3031
int pin_value = 0;
31-
obj->pin = pin;
3232
if(pin <=15){
3333
pin_value = pin;
3434
}else if (pin >= 16 && pin <= 31){

0 commit comments

Comments
 (0)