Ejemplo n.º 1
0
static void
gpio_process_cb(void *data)
{
    struct sol_gpio *gpio = data;
    bool val;

    val = sol_gpio_read(gpio);
    gpio->irq.cb((void *)gpio->irq.data, gpio, val);
}
Ejemplo n.º 2
0
/* GPIO READER ********************************************************************/
static void
gpio_reader_event(void *data, struct sol_gpio *gpio)
{
    int value;
    struct sol_flow_node *node = data;
    struct gpio_data *mdata = sol_flow_node_get_private_data(node);

    value = sol_gpio_read(mdata->gpio);
    SOL_INT_CHECK(value, < 0);

    sol_flow_send_boolean_packet(node,
        SOL_FLOW_NODE_TYPE_GPIO_READER__OUT__OUT, value);
}
Ejemplo n.º 3
0
static bool
gpio_timeout_cb(void *data)
{
    struct sol_gpio *gpio = data;
    int val;

    val = sol_gpio_read(gpio);
    if (gpio->irq.last_value != val) {
        gpio->irq.last_value = val;
        if ((val && gpio->irq.on_raise)
            || (!val && gpio->irq.on_fall))
            gpio->irq.cb((void *)gpio->irq.data, gpio, val);
    }
    return true;
}