TT: Cope correctly with NC GPIO

pull/10489/head
Kevin Bracey 2019-04-29 18:10:39 +03:00
parent 0fb64eee4e
commit e6e3614bd8
2 changed files with 12 additions and 8 deletions

View File

@ -36,9 +36,11 @@ void gpio_init(gpio_t *obj, PinName pin)
{ {
// Store above pin mask, pin name into GPIO object // Store above pin mask, pin name into GPIO object
obj->pin = pin; obj->pin = pin;
obj->mask = gpio_set(pin); if (pin != NC) {
obj->port = (PortName) (pin >> 3); obj->mask = gpio_set(pin);
TSB_CG->FSYSENA |= (1<<(obj->port)); obj->port = (PortName) (pin >> 3);
TSB_CG->FSYSENA |= (1<<(obj->port));
}
} }
void gpio_mode(gpio_t *obj, PinMode mode) void gpio_mode(gpio_t *obj, PinMode mode)

View File

@ -61,11 +61,13 @@ void gpio_init(gpio_t *obj, PinName pin)
{ {
// Store above pin mask, pin name into GPIO object // Store above pin mask, pin name into GPIO object
obj->pin = pin; obj->pin = pin;
obj->pin_num = PIN_POS(pin); if (pin != NC) {
obj->mask = gpio_set(pin); obj->pin_num = PIN_POS(pin);
obj->port = (PortName) PIN_PORT(pin); obj->mask = gpio_set(pin);
//Enable clock for particular port obj->port = (PortName) PIN_PORT(pin);
TSB_CG->FSYSMENB |= (1 << ((obj->port) + 2)); //Enable clock for particular port
TSB_CG->FSYSMENB |= (1 << ((obj->port) + 2));
}
} }
void gpio_mode(gpio_t *obj, PinMode mode) void gpio_mode(gpio_t *obj, PinMode mode)