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()
280 int gpio = tegra_gpio_compose(bank->bank, port, 0); in tegra_gpio_irq_handler() local
281 unsigned long sta = tegra_gpio_readl(GPIO_INT_STA(gpio)) & in tegra_gpio_irq_handler()
282 tegra_gpio_readl(GPIO_INT_ENB(gpio)); in tegra_gpio_irq_handler()
283 u32 lvl = tegra_gpio_readl(GPIO_INT_LVL(gpio)); in tegra_gpio_irq_handler()
286 tegra_gpio_writel(1 << pin, GPIO_INT_CLR(gpio)); in tegra_gpio_irq_handler()
297 generic_handle_irq(gpio_to_irq(gpio + pin)); in tegra_gpio_irq_handler()
319 unsigned int gpio = (b<<5) | (p<<3); in tegra_gpio_resume() local
320 tegra_gpio_writel(bank->cnf[p], GPIO_CNF(gpio)); in tegra_gpio_resume()
321 tegra_gpio_writel(bank->out[p], GPIO_OUT(gpio)); in tegra_gpio_resume()
322 tegra_gpio_writel(bank->oe[p], GPIO_OE(gpio)); in tegra_gpio_resume()
323 tegra_gpio_writel(bank->int_lvl[p], GPIO_INT_LVL(gpio)); in tegra_gpio_resume()
324 tegra_gpio_writel(bank->int_enb[p], GPIO_INT_ENB(gpio)); in tegra_gpio_resume()
343 unsigned int gpio = (b<<5) | (p<<3); in tegra_gpio_suspend() local
344 bank->cnf[p] = tegra_gpio_readl(GPIO_CNF(gpio)); in tegra_gpio_suspend()
345 bank->out[p] = tegra_gpio_readl(GPIO_OUT(gpio)); in tegra_gpio_suspend()
346 bank->oe[p] = tegra_gpio_readl(GPIO_OE(gpio)); in tegra_gpio_suspend()
347 bank->int_enb[p] = tegra_gpio_readl(GPIO_INT_ENB(gpio)); in tegra_gpio_suspend()
348 bank->int_lvl[p] = tegra_gpio_readl(GPIO_INT_LVL(gpio)); in tegra_gpio_suspend()
352 GPIO_INT_ENB(gpio)); in tegra_gpio_suspend()
362 int gpio = d->hwirq; in tegra_gpio_irq_set_wake() local
365 port = GPIO_PORT(gpio); in tegra_gpio_irq_set_wake()
366 bit = GPIO_BIT(gpio); in tegra_gpio_irq_set_wake()
390 int gpio = tegra_gpio_compose(i, j, 0); in dbg_gpio_show() local
394 tegra_gpio_readl(GPIO_CNF(gpio)), in dbg_gpio_show()
395 tegra_gpio_readl(GPIO_OE(gpio)), in dbg_gpio_show()
396 tegra_gpio_readl(GPIO_OUT(gpio)), in dbg_gpio_show()
397 tegra_gpio_readl(GPIO_IN(gpio)), in dbg_gpio_show()
398 tegra_gpio_readl(GPIO_INT_STA(gpio)), in dbg_gpio_show()
399 tegra_gpio_readl(GPIO_INT_ENB(gpio)), in dbg_gpio_show()
400 tegra_gpio_readl(GPIO_INT_LVL(gpio))); in dbg_gpio_show()
481 int gpio; in tegra_gpio_probe() local
541 int gpio = tegra_gpio_compose(i, j, 0); in tegra_gpio_probe() local
542 tegra_gpio_writel(0x00, GPIO_INT_ENB(gpio)); in tegra_gpio_probe()
554 for (gpio = 0; gpio < tegra_gpio_chip.ngpio; gpio++) { in tegra_gpio_probe()
555 int irq = irq_create_mapping(irq_domain, gpio); in tegra_gpio_probe()
558 bank = &tegra_gpio_banks[GPIO_BANK(gpio)]; in tegra_gpio_probe()