Deleted Added
full compact
28c28
< __FBSDID("$FreeBSD: head/sys/dev/gpio/gpiobus.c 274643 2014-11-18 02:41:35Z loos $");
---
> __FBSDID("$FreeBSD: head/sys/dev/gpio/gpiobus.c 274670 2014-11-18 17:22:08Z loos $");
32a33
> #include <sys/gpio.h>
72a74,90
> int
> gpio_check_flags(uint32_t caps, uint32_t flags)
> {
>
> /* Check for unwanted flags. */
> if ((flags & caps) == 0 || (flags & caps) != flags)
> return (EINVAL);
> /* Cannot mix input/output together. */
> if (flags & GPIO_PIN_INPUT && flags & GPIO_PIN_OUTPUT)
> return (EINVAL);
> /* Cannot mix pull-up/pull-down together. */
> if (flags & GPIO_PIN_PULLUP && flags & GPIO_PIN_PULLDOWN)
> return (EINVAL);
>
> return (0);
> }
>
492a511
> uint32_t caps;
495a515,518
> if (GPIO_PIN_GETCAPS(sc->sc_dev, devi->pins[pin], &caps) != 0)
> return (EINVAL);
> if (gpio_check_flags(caps, flags) != 0)
> return (EINVAL);
497c520
< return GPIO_PIN_SETFLAGS(sc->sc_dev, devi->pins[pin], flags);
---
> return (GPIO_PIN_SETFLAGS(sc->sc_dev, devi->pins[pin], flags));