From e6e3614bd85dd6dc486623c2a3c6c7d0c2d31741 Mon Sep 17 00:00:00 2001 From: Kevin Bracey Date: Mon, 29 Apr 2019 18:10:39 +0300 Subject: [PATCH] TT: Cope correctly with NC GPIO --- targets/TARGET_TT/TARGET_TT_M3HQ/gpio_api.c | 8 +++++--- targets/TARGET_TT/TARGET_TT_M4G9/gpio_api.c | 12 +++++++----- 2 files changed, 12 insertions(+), 8 deletions(-) diff --git a/targets/TARGET_TT/TARGET_TT_M3HQ/gpio_api.c b/targets/TARGET_TT/TARGET_TT_M3HQ/gpio_api.c index ae96d4ae60..a800f57e2e 100644 --- a/targets/TARGET_TT/TARGET_TT_M3HQ/gpio_api.c +++ b/targets/TARGET_TT/TARGET_TT_M3HQ/gpio_api.c @@ -36,9 +36,11 @@ void gpio_init(gpio_t *obj, PinName pin) { // Store above pin mask, pin name into GPIO object obj->pin = pin; - obj->mask = gpio_set(pin); - obj->port = (PortName) (pin >> 3); - TSB_CG->FSYSENA |= (1<<(obj->port)); + if (pin != NC) { + obj->mask = gpio_set(pin); + obj->port = (PortName) (pin >> 3); + TSB_CG->FSYSENA |= (1<<(obj->port)); + } } void gpio_mode(gpio_t *obj, PinMode mode) diff --git a/targets/TARGET_TT/TARGET_TT_M4G9/gpio_api.c b/targets/TARGET_TT/TARGET_TT_M4G9/gpio_api.c index 2e7603750b..c30f3f1f45 100644 --- a/targets/TARGET_TT/TARGET_TT_M4G9/gpio_api.c +++ b/targets/TARGET_TT/TARGET_TT_M4G9/gpio_api.c @@ -61,11 +61,13 @@ void gpio_init(gpio_t *obj, PinName pin) { // Store above pin mask, pin name into GPIO object obj->pin = pin; - obj->pin_num = PIN_POS(pin); - obj->mask = gpio_set(pin); - obj->port = (PortName) PIN_PORT(pin); - //Enable clock for particular port - TSB_CG->FSYSMENB |= (1 << ((obj->port) + 2)); + if (pin != NC) { + obj->pin_num = PIN_POS(pin); + obj->mask = gpio_set(pin); + obj->port = (PortName) PIN_PORT(pin); + //Enable clock for particular port + TSB_CG->FSYSMENB |= (1 << ((obj->port) + 2)); + } } void gpio_mode(gpio_t *obj, PinMode mode)