Skip to content

Commit 31cd5ac

Browse files
dcpleunggalak
authored andcommitted
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 <[email protected]>
1 parent 8da7455 commit 31cd5ac

File tree

1 file changed

+16
-13
lines changed
  • samples/boards/up_squared/gpio_counter/src

1 file changed

+16
-13
lines changed

samples/boards/up_squared/gpio_counter/src/main.c

Lines changed: 16 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -79,15 +79,9 @@ static volatile u32_t counter;
7979

8080
K_SEM_DEFINE(counter_sem, 0, 1);
8181

82-
#define INTR_PIN_FLAGS \
83-
(GPIO_DIR_IN | GPIO_INT | GPIO_INT_EDGE | GPIO_INT_ACTIVE_HIGH | \
84-
GPIO_INT_DEBOUNCE | GPIO_PUD_PULL_DOWN)
85-
8682
#define NUM_PINS ARRAY_SIZE(counter_pins)
8783
#define MASK (BIT(NUM_PINS) - 1)
8884

89-
#define GPIO_DEV DT_APL_GPIO_LABEL
90-
9185
void button_cb(struct device *gpiodev, struct gpio_callback *cb, u32_t pin)
9286
{
9387
counter++;
@@ -125,7 +119,7 @@ void main(void)
125119
for (i = 0; i < NUM_PINS; i++) {
126120
ret = gpio_pin_configure(counter_pins[i].gpio_dev,
127121
counter_pins[i].pin,
128-
GPIO_DIR_OUT);
122+
GPIO_OUTPUT_LOW);
129123
if (ret) {
130124
printk("ERROR: cannot set HAT pin %d to OUT (%d)\n",
131125
counter_pins[i].hat_num, ret);
@@ -135,27 +129,36 @@ void main(void)
135129

136130
/* Setup input pin */
137131
ret = gpio_pin_configure(intr_pin.gpio_dev, intr_pin.pin,
138-
INTR_PIN_FLAGS);
132+
GPIO_INPUT);
139133
if (ret) {
140-
printk("ERROR: cannot set HAT pin %d to OUT (%d)\n",
134+
printk("ERROR: cannot set HAT pin %d to IN (%d)\n",
141135
intr_pin.hat_num, ret);
142136
return;
143137
}
144138

139+
145140
/* Callback uses pin_mask, so need bit shifting */
146141
gpio_init_callback(&gpio_cb, button_cb, (1 << intr_pin.pin));
147142
gpio_add_callback(intr_pin.gpio_dev, &gpio_cb);
148-
gpio_pin_enable_callback(intr_pin.gpio_dev, intr_pin.pin);
143+
144+
/* Setup input pin for interrupt */
145+
ret = gpio_pin_interrupt_configure(intr_pin.gpio_dev, intr_pin.pin,
146+
GPIO_INT_EDGE_RISING);
147+
if (ret) {
148+
printk("ERROR: cannot config interrupt on HAT pin %d (%d)\n",
149+
intr_pin.hat_num, ret);
150+
return;
151+
}
149152

150153
/* main loop */
151154
val = 0U;
152155
while (1) {
153156
printk("counter: 0x%x\n", val);
154157

155158
for (i = 0; i < NUM_PINS; i++) {
156-
ret = gpio_pin_write(counter_pins[i].gpio_dev,
157-
counter_pins[i].pin,
158-
(val & BIT(i)));
159+
ret = gpio_pin_set(counter_pins[i].gpio_dev,
160+
counter_pins[i].pin,
161+
(val & BIT(i)));
159162
if (ret) {
160163
printk("ERROR: cannot set HAT pin %d value (%d)\n",
161164
counter_pins[i].hat_num, ret);

0 commit comments

Comments
 (0)