Lines Matching refs:gpio

11 #include <linux/gpio/driver.h>
24 #define GPIO_BANK(gpio) ((gpio) >> 5)
25 #define GPIO_BIT(gpio) ((gpio) & (GPIO_PER_BANK - 1))
28 #define GPIO_CONTROL(gpio) (0x00000100 + ((gpio) << 2))
84 unsigned gpio)
88 int bank_id = GPIO_BANK(gpio);
93 val |= BIT(gpio);
100 unsigned gpio)
104 int bank_id = GPIO_BANK(gpio);
109 val &= ~BIT(gpio);
115 static int bcm_kona_gpio_get_dir(struct gpio_chip *chip, unsigned gpio)
121 val = readl(reg_base + GPIO_CONTROL(gpio)) & GPIO_GPCTR0_IOTR_MASK;
125 static void bcm_kona_gpio_set(struct gpio_chip *chip, unsigned gpio, int value)
129 int bank_id = GPIO_BANK(gpio);
130 int bit = GPIO_BIT(gpio);
139 if (bcm_kona_gpio_get_dir(chip, gpio) == GPIO_LINE_DIRECTION_IN)
152 static int bcm_kona_gpio_get(struct gpio_chip *chip, unsigned gpio)
156 int bank_id = GPIO_BANK(gpio);
157 int bit = GPIO_BIT(gpio);
165 if (bcm_kona_gpio_get_dir(chip, gpio) == GPIO_LINE_DIRECTION_IN)
179 static int bcm_kona_gpio_request(struct gpio_chip *chip, unsigned gpio)
183 bcm_kona_gpio_unlock_gpio(kona_gpio, gpio);
187 static void bcm_kona_gpio_free(struct gpio_chip *chip, unsigned gpio)
191 bcm_kona_gpio_lock_gpio(kona_gpio, gpio);
194 static int bcm_kona_gpio_direction_input(struct gpio_chip *chip, unsigned gpio)
205 val = readl(reg_base + GPIO_CONTROL(gpio));
208 writel(val, reg_base + GPIO_CONTROL(gpio));
216 unsigned gpio, int value)
220 int bank_id = GPIO_BANK(gpio);
221 int bit = GPIO_BIT(gpio);
229 val = readl(reg_base + GPIO_CONTROL(gpio));
232 writel(val, reg_base + GPIO_CONTROL(gpio));
244 static int bcm_kona_gpio_to_irq(struct gpio_chip *chip, unsigned gpio)
249 if (gpio >= kona_gpio->gpio_chip.ngpio)
251 return irq_create_mapping(kona_gpio->irq_domain, gpio);
254 static int bcm_kona_gpio_set_debounce(struct gpio_chip *chip, unsigned gpio,
285 val = readl(reg_base + GPIO_CONTROL(gpio));
296 writel(val, reg_base + GPIO_CONTROL(gpio));
303 static int bcm_kona_gpio_set_config(struct gpio_chip *chip, unsigned gpio,
312 return bcm_kona_gpio_set_debounce(chip, gpio, debounce);
316 .label = "bcm-kona-gpio",
334 unsigned gpio = d->hwirq;
335 int bank_id = GPIO_BANK(gpio);
336 int bit = GPIO_BIT(gpio);
355 unsigned gpio = d->hwirq;
356 int bank_id = GPIO_BANK(gpio);
357 int bit = GPIO_BIT(gpio);
368 gpiochip_disable_irq(&kona_gpio->gpio_chip, gpio);
377 unsigned gpio = d->hwirq;
378 int bank_id = GPIO_BANK(gpio);
379 int bit = GPIO_BIT(gpio);
390 gpiochip_enable_irq(&kona_gpio->gpio_chip, gpio);
399 unsigned gpio = d->hwirq;
430 val = readl(reg_base + GPIO_CONTROL(gpio));
433 writel(val, reg_base + GPIO_CONTROL(gpio));
492 .name = "bcm-kona-gpio",
502 { .compatible = "brcm,kona-gpio" },
651 .name = "bcm-kona-gpio",