fxos8700: Fix broken gpio callback implementation

Fixes fxos8700_gpio_callback() to pass a pin number to
gpio_pin_disable_callback() rather than a pin mask.

Jira: ZEP-1507

Change-Id: I15bfbf4d3377f22942aa549377472d2b1142c32b
Signed-off-by: Maureen Helm <maureen.helm@nxp.com>
This commit is contained in:
Maureen Helm 2017-01-25 15:29:53 -06:00 committed by Anas Nashif
commit 8575a36dbe
2 changed files with 9 additions and 2 deletions

View file

@ -114,6 +114,7 @@ struct fxos8700_data {
struct k_sem sem;
#ifdef CONFIG_FXOS8700_TRIGGER
struct device *gpio;
uint8_t gpio_pin;
struct gpio_callback gpio_cb;
sensor_trigger_handler_t drdy_handler;
#endif

View file

@ -8,12 +8,16 @@
static void fxos8700_gpio_callback(struct device *dev,
struct gpio_callback *cb,
uint32_t pin)
uint32_t pin_mask)
{
struct fxos8700_data *data =
CONTAINER_OF(cb, struct fxos8700_data, gpio_cb);
gpio_pin_disable_callback(dev, pin);
if ((pin_mask & BIT(data->gpio_pin)) == 0) {
return;
}
gpio_pin_disable_callback(dev, data->gpio_pin);
#if defined(CONFIG_FXOS8700_TRIGGER_OWN_THREAD)
k_sem_give(&data->trig_sem);
@ -295,6 +299,8 @@ int fxos8700_trigger_init(struct device *dev)
return -EINVAL;
}
data->gpio_pin = config->gpio_pin;
gpio_pin_configure(data->gpio, config->gpio_pin,
GPIO_DIR_IN | GPIO_INT | GPIO_INT_EDGE |
GPIO_INT_ACTIVE_LOW | GPIO_INT_DEBOUNCE);