Lines Matching refs:gpio
121 int gpio, int value) in tegra_gpio_mask_write() argument
125 val = 0x100 << GPIO_BIT(gpio); in tegra_gpio_mask_write()
127 val |= 1 << GPIO_BIT(gpio); in tegra_gpio_mask_write()
131 static void tegra_gpio_enable(struct tegra_gpio_info *tgi, int gpio) in tegra_gpio_enable() argument
133 tegra_gpio_mask_write(tgi, GPIO_MSK_CNF(tgi, gpio), gpio, 1); in tegra_gpio_enable()
136 static void tegra_gpio_disable(struct tegra_gpio_info *tgi, int gpio) in tegra_gpio_disable() argument
138 tegra_gpio_mask_write(tgi, GPIO_MSK_CNF(tgi, gpio), gpio, 0); in tegra_gpio_disable()
252 int gpio = d->hwirq; in tegra_gpio_irq_ack() local
254 tegra_gpio_writel(tgi, 1 << GPIO_BIT(gpio), GPIO_INT_CLR(tgi, gpio)); in tegra_gpio_irq_ack()
261 int gpio = d->hwirq; in tegra_gpio_irq_mask() local
263 tegra_gpio_mask_write(tgi, GPIO_MSK_INT_ENB(tgi, gpio), gpio, 0); in tegra_gpio_irq_mask()
270 int gpio = d->hwirq; in tegra_gpio_irq_unmask() local
272 tegra_gpio_mask_write(tgi, GPIO_MSK_INT_ENB(tgi, gpio), gpio, 1); in tegra_gpio_irq_unmask()
277 int gpio = d->hwirq; in tegra_gpio_irq_set_type() local
280 int port = GPIO_PORT(gpio); in tegra_gpio_irq_set_type()
311 ret = gpiochip_lock_as_irq(&tgi->gc, gpio); in tegra_gpio_irq_set_type()
314 "unable to lock Tegra GPIO %d as IRQ\n", gpio); in tegra_gpio_irq_set_type()
320 val = tegra_gpio_readl(tgi, GPIO_INT_LVL(tgi, gpio)); in tegra_gpio_irq_set_type()
321 val &= ~(GPIO_INT_LVL_MASK << GPIO_BIT(gpio)); in tegra_gpio_irq_set_type()
322 val |= lvl_type << GPIO_BIT(gpio); in tegra_gpio_irq_set_type()
323 tegra_gpio_writel(tgi, val, GPIO_INT_LVL(tgi, gpio)); in tegra_gpio_irq_set_type()
327 tegra_gpio_mask_write(tgi, GPIO_MSK_OE(tgi, gpio), gpio, 0); in tegra_gpio_irq_set_type()
328 tegra_gpio_enable(tgi, gpio); in tegra_gpio_irq_set_type()
342 int gpio = d->hwirq; in tegra_gpio_irq_shutdown() local
344 gpiochip_unlock_as_irq(&tgi->gc, gpio); in tegra_gpio_irq_shutdown()
352 int gpio; in tegra_gpio_irq_handler() local
362 gpio = tegra_gpio_compose(bank->bank, port, 0); in tegra_gpio_irq_handler()
363 sta = tegra_gpio_readl(tgi, GPIO_INT_STA(tgi, gpio)) & in tegra_gpio_irq_handler()
364 tegra_gpio_readl(tgi, GPIO_INT_ENB(tgi, gpio)); in tegra_gpio_irq_handler()
365 lvl = tegra_gpio_readl(tgi, GPIO_INT_LVL(tgi, gpio)); in tegra_gpio_irq_handler()
369 GPIO_INT_CLR(tgi, gpio)); in tegra_gpio_irq_handler()
380 generic_handle_irq(gpio_to_irq(gpio + pin)); in tegra_gpio_irq_handler()
404 unsigned int gpio = (b<<5) | (p<<3); in tegra_gpio_resume() local
406 GPIO_CNF(tgi, gpio)); in tegra_gpio_resume()
410 GPIO_DBC_CNT(tgi, gpio)); in tegra_gpio_resume()
412 GPIO_MSK_DBC_EN(tgi, gpio)); in tegra_gpio_resume()
416 GPIO_OUT(tgi, gpio)); in tegra_gpio_resume()
418 GPIO_OE(tgi, gpio)); in tegra_gpio_resume()
420 GPIO_INT_LVL(tgi, gpio)); in tegra_gpio_resume()
422 GPIO_INT_ENB(tgi, gpio)); in tegra_gpio_resume()
443 unsigned int gpio = (b<<5) | (p<<3); in tegra_gpio_suspend() local
445 GPIO_CNF(tgi, gpio)); in tegra_gpio_suspend()
447 GPIO_OUT(tgi, gpio)); in tegra_gpio_suspend()
449 GPIO_OE(tgi, gpio)); in tegra_gpio_suspend()
452 GPIO_MSK_DBC_EN(tgi, gpio)); in tegra_gpio_suspend()
458 GPIO_INT_ENB(tgi, gpio)); in tegra_gpio_suspend()
460 GPIO_INT_LVL(tgi, gpio)); in tegra_gpio_suspend()
464 GPIO_INT_ENB(tgi, gpio)); in tegra_gpio_suspend()
474 int gpio = d->hwirq; in tegra_gpio_irq_set_wake() local
477 port = GPIO_PORT(gpio); in tegra_gpio_irq_set_wake()
478 bit = GPIO_BIT(gpio); in tegra_gpio_irq_set_wake()
503 int gpio = tegra_gpio_compose(i, j, 0); in dbg_gpio_show() local
507 tegra_gpio_readl(tgi, GPIO_CNF(tgi, gpio)), in dbg_gpio_show()
508 tegra_gpio_readl(tgi, GPIO_OE(tgi, gpio)), in dbg_gpio_show()
509 tegra_gpio_readl(tgi, GPIO_OUT(tgi, gpio)), in dbg_gpio_show()
510 tegra_gpio_readl(tgi, GPIO_IN(tgi, gpio)), in dbg_gpio_show()
511 tegra_gpio_readl(tgi, GPIO_INT_STA(tgi, gpio)), in dbg_gpio_show()
512 tegra_gpio_readl(tgi, GPIO_INT_ENB(tgi, gpio)), in dbg_gpio_show()
513 tegra_gpio_readl(tgi, GPIO_INT_LVL(tgi, gpio))); in dbg_gpio_show()
562 int gpio; in tegra_gpio_probe() local
651 int gpio = tegra_gpio_compose(i, j, 0); in tegra_gpio_probe() local
652 tegra_gpio_writel(tgi, 0x00, GPIO_INT_ENB(tgi, gpio)); in tegra_gpio_probe()
662 for (gpio = 0; gpio < tgi->gc.ngpio; gpio++) { in tegra_gpio_probe()
663 int irq = irq_create_mapping(tgi->irq_domain, gpio); in tegra_gpio_probe()
666 bank = &tgi->bank_info[GPIO_BANK(gpio)]; in tegra_gpio_probe()