Lines Matching defs:gpio

24 #define GPIOID_PORT(gpio)             ((gpio) / 32)
25 #define GPIOID_PIN(gpio) ((gpio) % 32)
27 typedef struct gpio gpio_t;
28 struct gpio {
68 * @param gpio_sys Initialized gpio driver instance.
78 * @param gpio[out] Pointer to a gpio_t structure to be initialised.
81 int (*init)(gpio_sys_t *gpio_sys, gpio_id_t id, enum gpio_dir dir, gpio_t *gpio);
86 * @param gpio Initialised GPIO pin instance.
90 int (*set_level)(gpio_t *gpio, enum gpio_level level);
95 * @param gpio Initialised GPIO pin instance.
99 int (*read_level)(gpio_t *gpio);
103 * @param gpio Initialised GPIO pin instance.
109 int (*pending_status)(gpio_t *gpio, bool clear);
113 * @param gpio Initialised GPIO pin instance.
118 int (*irq_enable_disable)(gpio_t *gpio, bool enable);
129 static inline bool gpio_instance_valid(const gpio_t *gpio)
131 if (!gpio) {
135 if (!gpio->gpio_sys) {
145 * @param[out] gpio_sys A gpio handle structure to initialise
155 static inline int gpio_clr(gpio_t *gpio)
157 if (!gpio_instance_valid(gpio)) {
160 if (!gpio->gpio_sys->set_level) {
164 return gpio->gpio_sys->set_level(gpio, GPIO_LEVEL_LOW);
172 static inline int gpio_get(gpio_t *gpio)
174 if (!gpio_instance_valid(gpio)) {
177 if (!gpio->gpio_sys->read_level) {
181 return gpio->gpio_sys->read_level(gpio);
189 static inline int gpio_set(gpio_t *gpio)
191 if (!gpio_instance_valid(gpio)) {
194 if (!gpio->gpio_sys->set_level) {
198 return gpio->gpio_sys->set_level(gpio, GPIO_LEVEL_HIGH);
208 static inline int gpio_is_pending(gpio_t *gpio)
210 if (!gpio_instance_valid(gpio)) {
213 if (!gpio->gpio_sys->pending_status) {
217 return gpio->gpio_sys->pending_status(gpio, false);
225 static inline int gpio_pending_clear(gpio_t *gpio)
227 if (!gpio_instance_valid(gpio)) {
230 if (!gpio->gpio_sys->pending_status) {
234 int ret = gpio->gpio_sys->pending_status(gpio, true);
243 * @param[in] gpio Handle to the pin to manipulate
246 static inline int gpio_irq_enable(gpio_t *gpio)
248 if (!gpio_instance_valid(gpio)) {
251 if (!gpio->gpio_sys->irq_enable_disable) {
255 return gpio->gpio_sys->irq_enable_disable(gpio, true);
260 * @param[in] gpio Handle to the pin to manipulate
263 static inline int gpio_irq_disable(gpio_t *gpio)
265 if (!gpio_instance_valid(gpio)) {
268 if (!gpio->gpio_sys->irq_enable_disable) {
272 return gpio->gpio_sys->irq_enable_disable(gpio, false);
281 * @param[out] gpio a GPIO handle to initialise
284 static inline int gpio_new(gpio_sys_t *gpio_sys, gpio_id_t id, enum gpio_dir dir, gpio_t *gpio)
296 if (!gpio) {
301 return gpio_sys->init(gpio_sys, id, dir, gpio);