Deleted Added
sdiff udiff text old ( 233767 ) new ( 274670 )
full compact
1/*-
2 * Copyright (c) 2009 Oleksandr Tymoshenko <gonzo@freebsd.org>
3 * All rights reserved.
4 *
5 * Redistribution and use in source and binary forms, with or without
6 * modification, are permitted provided that the following conditions
7 * are met:
8 * 1. Redistributions of source code must retain the above copyright

--- 11 unchanged lines hidden (view full) ---

20 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
21 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
22 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
23 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
24 * SUCH DAMAGE.
25 */
26
27#include <sys/cdefs.h>
28__FBSDID("$FreeBSD: head/sys/dev/gpio/gpioc.c 233767 2012-04-02 00:11:26Z gonzo $");
29
30#include <sys/param.h>
31#include <sys/systm.h>
32#include <sys/types.h>
33
34#include <sys/bus.h>
35#include <sys/conf.h>
36#include <sys/ioccom.h>
37#include <sys/kernel.h>
38#include <sys/malloc.h>
39#include <sys/module.h>
40#include <sys/queue.h>
41#include <machine/bus.h>
42#include <machine/resource.h>
43
44#include <sys/gpio.h>
45#include "gpio_if.h"
46
47#undef GPIOC_DEBUG
48#ifdef GPIOC_DEBUG
49#define dprintf printf
50#else
51#define dprintf(x, arg...)
52#endif

--- 61 unchanged lines hidden (view full) ---

114static int
115gpioc_ioctl(struct cdev *cdev, u_long cmd, caddr_t arg, int fflag,
116 struct thread *td)
117{
118 int max_pin, res;
119 struct gpioc_softc *sc = cdev->si_drv1;
120 struct gpio_pin pin;
121 struct gpio_req req;
122
123 switch (cmd) {
124 case GPIOMAXPIN:
125 max_pin = -1;
126 res = GPIO_PIN_MAX(sc->sc_pdev, &max_pin);
127 bcopy(&max_pin, arg, sizeof(max_pin));
128 break;
129 case GPIOGETCONFIG:

--- 6 unchanged lines hidden (view full) ---

136 break;
137 GPIO_PIN_GETCAPS(sc->sc_pdev, pin.gp_pin, &pin.gp_caps);
138 GPIO_PIN_GETNAME(sc->sc_pdev, pin.gp_pin, pin.gp_name);
139 bcopy(&pin, arg, sizeof(pin));
140 break;
141 case GPIOSETCONFIG:
142 bcopy(arg, &pin, sizeof(pin));
143 dprintf("set config pin %d\n", pin.gp_pin);
144 res = GPIO_PIN_SETFLAGS(sc->sc_pdev, pin.gp_pin,
145 pin.gp_flags);
146 break;
147 case GPIOGET:
148 bcopy(arg, &req, sizeof(req));
149 res = GPIO_PIN_GET(sc->sc_pdev, req.gp_pin,
150 &req.gp_value);
151 dprintf("read pin %d -> %d\n",
152 req.gp_pin, req.gp_value);
153 bcopy(&req, arg, sizeof(req));

--- 44 unchanged lines hidden ---