Lines Matching refs:gpio
3 * linux/drivers/gpio/gpio-mb86s7x.c
18 #include <linux/gpio/driver.h>
42 static int mb86s70_gpio_request(struct gpio_chip *gc, unsigned gpio)
50 val = readl(gchip->base + PFR(gpio));
51 val &= ~OFFSET(gpio);
52 writel(val, gchip->base + PFR(gpio));
59 static void mb86s70_gpio_free(struct gpio_chip *gc, unsigned gpio)
67 val = readl(gchip->base + PFR(gpio));
68 val |= OFFSET(gpio);
69 writel(val, gchip->base + PFR(gpio));
74 static int mb86s70_gpio_direction_input(struct gpio_chip *gc, unsigned gpio)
82 val = readl(gchip->base + DDR(gpio));
83 val &= ~OFFSET(gpio);
84 writel(val, gchip->base + DDR(gpio));
92 unsigned gpio, int value)
100 val = readl(gchip->base + PDR(gpio));
102 val |= OFFSET(gpio);
104 val &= ~OFFSET(gpio);
105 writel(val, gchip->base + PDR(gpio));
107 val = readl(gchip->base + DDR(gpio));
108 val |= OFFSET(gpio);
109 writel(val, gchip->base + DDR(gpio));
116 static int mb86s70_gpio_get(struct gpio_chip *gc, unsigned gpio)
120 return !!(readl(gchip->base + PDR(gpio)) & OFFSET(gpio));
123 static void mb86s70_gpio_set(struct gpio_chip *gc, unsigned gpio, int value)
131 val = readl(gchip->base + PDR(gpio));
133 val |= OFFSET(gpio);
135 val &= ~OFFSET(gpio);
136 writel(val, gchip->base + PDR(gpio));
197 dev_err(&pdev->dev, "couldn't register gpio driver\n");
217 { .compatible = "fujitsu,mb86s70-gpio" },
232 .name = "mb86s70-gpio",
242 MODULE_ALIAS("platform:mb86s70-gpio");