Lines Matching refs:gpio
101 static void tegra_gpio_mask_write(u32 reg, int gpio, int value) in tegra_gpio_mask_write() argument
105 val = 0x100 << GPIO_BIT(gpio); in tegra_gpio_mask_write()
107 val |= 1 << GPIO_BIT(gpio); in tegra_gpio_mask_write()
111 static void tegra_gpio_enable(int gpio) in tegra_gpio_enable() argument
113 tegra_gpio_mask_write(GPIO_MSK_CNF(gpio), gpio, 1); in tegra_gpio_enable()
116 static void tegra_gpio_disable(int gpio) in tegra_gpio_disable() argument
118 tegra_gpio_mask_write(GPIO_MSK_CNF(gpio), gpio, 0); in tegra_gpio_disable()
182 int gpio = d->hwirq; in tegra_gpio_irq_ack() local
184 tegra_gpio_writel(1 << GPIO_BIT(gpio), GPIO_INT_CLR(gpio)); in tegra_gpio_irq_ack()
189 int gpio = d->hwirq; in tegra_gpio_irq_mask() local
191 tegra_gpio_mask_write(GPIO_MSK_INT_ENB(gpio), gpio, 0); in tegra_gpio_irq_mask()
196 int gpio = d->hwirq; in tegra_gpio_irq_unmask() local
198 tegra_gpio_mask_write(GPIO_MSK_INT_ENB(gpio), gpio, 1); in tegra_gpio_irq_unmask()
203 int gpio = d->hwirq; in tegra_gpio_irq_set_type() local
205 int port = GPIO_PORT(gpio); in tegra_gpio_irq_set_type()
236 ret = gpiochip_lock_as_irq(&tegra_gpio_chip, gpio); in tegra_gpio_irq_set_type()
238 dev_err(dev, "unable to lock Tegra GPIO %d as IRQ\n", gpio); in tegra_gpio_irq_set_type()
244 val = tegra_gpio_readl(GPIO_INT_LVL(gpio)); in tegra_gpio_irq_set_type()
245 val &= ~(GPIO_INT_LVL_MASK << GPIO_BIT(gpio)); in tegra_gpio_irq_set_type()
246 val |= lvl_type << GPIO_BIT(gpio); in tegra_gpio_irq_set_type()
247 tegra_gpio_writel(val, GPIO_INT_LVL(gpio)); in tegra_gpio_irq_set_type()
251 tegra_gpio_mask_write(GPIO_MSK_OE(gpio), gpio, 0); in tegra_gpio_irq_set_type()
252 tegra_gpio_enable(gpio); in tegra_gpio_irq_set_type()
264 int gpio = d->hwirq; in tegra_gpio_irq_shutdown() local
266 gpiochip_unlock_as_irq(&tegra_gpio_chip, gpio); in tegra_gpio_irq_shutdown()
282 int gpio = tegra_gpio_compose(bank->bank, port, 0); in tegra_gpio_irq_handler() local
283 unsigned long sta = tegra_gpio_readl(GPIO_INT_STA(gpio)) & in tegra_gpio_irq_handler()
284 tegra_gpio_readl(GPIO_INT_ENB(gpio)); in tegra_gpio_irq_handler()
285 u32 lvl = tegra_gpio_readl(GPIO_INT_LVL(gpio)); in tegra_gpio_irq_handler()
288 tegra_gpio_writel(1 << pin, GPIO_INT_CLR(gpio)); in tegra_gpio_irq_handler()
299 generic_handle_irq(gpio_to_irq(gpio + pin)); in tegra_gpio_irq_handler()
321 unsigned int gpio = (b<<5) | (p<<3); in tegra_gpio_resume() local
322 tegra_gpio_writel(bank->cnf[p], GPIO_CNF(gpio)); in tegra_gpio_resume()
323 tegra_gpio_writel(bank->out[p], GPIO_OUT(gpio)); in tegra_gpio_resume()
324 tegra_gpio_writel(bank->oe[p], GPIO_OE(gpio)); in tegra_gpio_resume()
325 tegra_gpio_writel(bank->int_lvl[p], GPIO_INT_LVL(gpio)); in tegra_gpio_resume()
326 tegra_gpio_writel(bank->int_enb[p], GPIO_INT_ENB(gpio)); in tegra_gpio_resume()
345 unsigned int gpio = (b<<5) | (p<<3); in tegra_gpio_suspend() local
346 bank->cnf[p] = tegra_gpio_readl(GPIO_CNF(gpio)); in tegra_gpio_suspend()
347 bank->out[p] = tegra_gpio_readl(GPIO_OUT(gpio)); in tegra_gpio_suspend()
348 bank->oe[p] = tegra_gpio_readl(GPIO_OE(gpio)); in tegra_gpio_suspend()
349 bank->int_enb[p] = tegra_gpio_readl(GPIO_INT_ENB(gpio)); in tegra_gpio_suspend()
350 bank->int_lvl[p] = tegra_gpio_readl(GPIO_INT_LVL(gpio)); in tegra_gpio_suspend()
354 GPIO_INT_ENB(gpio)); in tegra_gpio_suspend()
364 int gpio = d->hwirq; in tegra_gpio_irq_set_wake() local
367 port = GPIO_PORT(gpio); in tegra_gpio_irq_set_wake()
368 bit = GPIO_BIT(gpio); in tegra_gpio_irq_set_wake()
429 int gpio; in tegra_gpio_probe() local
489 int gpio = tegra_gpio_compose(i, j, 0); in tegra_gpio_probe() local
490 tegra_gpio_writel(0x00, GPIO_INT_ENB(gpio)); in tegra_gpio_probe()
502 for (gpio = 0; gpio < tegra_gpio_chip.ngpio; gpio++) { in tegra_gpio_probe()
503 int irq = irq_create_mapping(irq_domain, gpio); in tegra_gpio_probe()
506 bank = &tegra_gpio_banks[GPIO_BANK(gpio)]; in tegra_gpio_probe()
555 int gpio = tegra_gpio_compose(i, j, 0); in dbg_gpio_show() local
559 tegra_gpio_readl(GPIO_CNF(gpio)), in dbg_gpio_show()
560 tegra_gpio_readl(GPIO_OE(gpio)), in dbg_gpio_show()
561 tegra_gpio_readl(GPIO_OUT(gpio)), in dbg_gpio_show()
562 tegra_gpio_readl(GPIO_IN(gpio)), in dbg_gpio_show()
563 tegra_gpio_readl(GPIO_INT_STA(gpio)), in dbg_gpio_show()
564 tegra_gpio_readl(GPIO_INT_ENB(gpio)), in dbg_gpio_show()
565 tegra_gpio_readl(GPIO_INT_LVL(gpio))); in dbg_gpio_show()