diff --git a/samples/sensor/fxos8700-hid/src/main.c b/samples/sensor/fxos8700-hid/src/main.c index de587ae68744..217c074be54b 100644 --- a/samples/sensor/fxos8700-hid/src/main.c +++ b/samples/sensor/fxos8700-hid/src/main.c @@ -118,6 +118,8 @@ int callbacks_configure(struct device *gpio, u32_t pin, int flags, void (*handler)(struct device*, struct gpio_callback*, u32_t), struct gpio_callback *callback, u32_t *val) { + int ret; + if (!gpio) { LOG_ERR("Could not find PORT"); return -ENXIO; @@ -125,11 +127,13 @@ int callbacks_configure(struct device *gpio, u32_t pin, int flags, gpio_pin_configure(gpio, pin, GPIO_INPUT | GPIO_INT_DEBOUNCE | flags); - *val = gpio_pin_get(gpio, pin); - if (*val < 0) { - return *val; + ret = gpio_pin_get(gpio, pin); + if (ret < 0) { + return ret; } + *val = (u32_t)ret; + gpio_init_callback(callback, handler, BIT(pin)); gpio_add_callback(gpio, callback); gpio_pin_interrupt_configure(gpio, pin, GPIO_INT_EDGE_BOTH);