samples: up_squared/gpio_counter: update to new GPIO API

Update the gpio_counter sample app for the UP Squared board:
() Update configuration calls to use new flags.
() Separate pin configuration into setting it to input, and
   setting the pin for interrupt.
() Use gpio_pin_set() instead of gpio_pin_write().

Signed-off-by: Daniel Leung <daniel.leung@intel.com>
This commit is contained in:
Daniel Leung 2019-12-18 14:56:16 -08:00 committed by Carles Cufí
commit be8ca9da96

View file

@ -79,15 +79,9 @@ static volatile u32_t counter;
K_SEM_DEFINE(counter_sem, 0, 1);
#define INTR_PIN_FLAGS \
(GPIO_DIR_IN | GPIO_INT | GPIO_INT_EDGE | GPIO_INT_ACTIVE_HIGH | \
GPIO_INT_DEBOUNCE | GPIO_PUD_PULL_DOWN)
#define NUM_PINS ARRAY_SIZE(counter_pins)
#define MASK (BIT(NUM_PINS) - 1)
#define GPIO_DEV DT_APL_GPIO_LABEL
void button_cb(struct device *gpiodev, struct gpio_callback *cb, u32_t pin)
{
counter++;
@ -125,7 +119,7 @@ void main(void)
for (i = 0; i < NUM_PINS; i++) {
ret = gpio_pin_configure(counter_pins[i].gpio_dev,
counter_pins[i].pin,
GPIO_DIR_OUT);
GPIO_OUTPUT_LOW);
if (ret) {
printk("ERROR: cannot set HAT pin %d to OUT (%d)\n",
counter_pins[i].hat_num, ret);
@ -135,17 +129,26 @@ void main(void)
/* Setup input pin */
ret = gpio_pin_configure(intr_pin.gpio_dev, intr_pin.pin,
INTR_PIN_FLAGS);
GPIO_INPUT);
if (ret) {
printk("ERROR: cannot set HAT pin %d to OUT (%d)\n",
printk("ERROR: cannot set HAT pin %d to IN (%d)\n",
intr_pin.hat_num, ret);
return;
}
/* Callback uses pin_mask, so need bit shifting */
gpio_init_callback(&gpio_cb, button_cb, (1 << intr_pin.pin));
gpio_add_callback(intr_pin.gpio_dev, &gpio_cb);
gpio_pin_enable_callback(intr_pin.gpio_dev, intr_pin.pin);
/* Setup input pin for interrupt */
ret = gpio_pin_interrupt_configure(intr_pin.gpio_dev, intr_pin.pin,
GPIO_INT_EDGE_RISING);
if (ret) {
printk("ERROR: cannot config interrupt on HAT pin %d (%d)\n",
intr_pin.hat_num, ret);
return;
}
/* main loop */
val = 0U;
@ -153,7 +156,7 @@ void main(void)
printk("counter: 0x%x\n", val);
for (i = 0; i < NUM_PINS; i++) {
ret = gpio_pin_write(counter_pins[i].gpio_dev,
ret = gpio_pin_set(counter_pins[i].gpio_dev,
counter_pins[i].pin,
(val & BIT(i)));
if (ret) {