/*
 * Copyright 2019, Data61, CSIRO (ABN 41 687 119 230)
 *
 * SPDX-License-Identifier: BSD-2-Clause
 */

procedure GPIO {
    include <platsupport/gpio.h>;
    int init_pin(in gpio_id_t pin_id, in gpio_dir_t dir);
    /* GPIO_LEVEL_LOW for a low level, GPIO_LEVEL_HIGH for a high level */
    int set_level(in gpio_id_t pin_id, in gpio_level_t level);
    /* Returns GPIO_LEVEL_HIGH on high, GPIO_LEVEL_LOW on low, negative number on error */
    int read_level(in gpio_id_t pin_id);
};
