/* SPDX-License-Identifier: BSD-2-Clause */ /* * Copyright (c) 2016, Linaro Limited */ #ifndef __GPIO_H__ #define __GPIO_H__ enum gpio_dir { GPIO_DIR_OUT, GPIO_DIR_IN }; enum gpio_level { GPIO_LEVEL_LOW, GPIO_LEVEL_HIGH }; enum gpio_interrupt { GPIO_INTERRUPT_DISABLE, GPIO_INTERRUPT_ENABLE }; struct gpio_chip { const struct gpio_ops *ops; }; struct gpio_ops { enum gpio_dir (*get_direction)(unsigned int gpio_pin); void (*set_direction)(unsigned int gpio_pin, enum gpio_dir direction); enum gpio_level (*get_value)(unsigned int gpio_pin); void (*set_value)(unsigned int gpio_pin, enum gpio_level value); enum gpio_interrupt (*get_interrupt)(unsigned int gpio_pin); void (*set_interrupt)(unsigned int gpio_pin, enum gpio_interrupt ena_dis); }; #endif /* __GPIO_H__ */