Lines Matching refs:irqd
52 static void exynos_irq_mask(struct irq_data *irqd)
54 struct irq_chip *chip = irq_data_get_irq_chip(irqd);
56 struct samsung_pin_bank *bank = irq_data_get_irq_chip_data(irqd);
64 mask |= 1 << irqd->hwirq;
70 static void exynos_irq_ack(struct irq_data *irqd)
72 struct irq_chip *chip = irq_data_get_irq_chip(irqd);
74 struct samsung_pin_bank *bank = irq_data_get_irq_chip_data(irqd);
77 writel(1 << irqd->hwirq, bank->eint_base + reg_pend);
80 static void exynos_irq_unmask(struct irq_data *irqd)
82 struct irq_chip *chip = irq_data_get_irq_chip(irqd);
84 struct samsung_pin_bank *bank = irq_data_get_irq_chip_data(irqd);
97 if (irqd_get_trigger_type(irqd) & IRQ_TYPE_LEVEL_MASK)
98 exynos_irq_ack(irqd);
103 mask &= ~(1 << irqd->hwirq);
109 static int exynos_irq_set_type(struct irq_data *irqd, unsigned int type)
111 struct irq_chip *chip = irq_data_get_irq_chip(irqd);
113 struct samsung_pin_bank *bank = irq_data_get_irq_chip_data(irqd);
114 unsigned int shift = EXYNOS_EINT_CON_LEN * irqd->hwirq;
140 irq_set_handler_locked(irqd, handle_edge_irq);
142 irq_set_handler_locked(irqd, handle_level_irq);
152 static int exynos_irq_request_resources(struct irq_data *irqd)
154 struct samsung_pin_bank *bank = irq_data_get_irq_chip_data(irqd);
160 ret = gpiochip_lock_as_irq(&bank->gpio_chip, irqd->hwirq);
164 bank->name, irqd->hwirq);
169 shift = irqd->hwirq * bank_type->fld_width[PINCFG_TYPE_FUNC];
184 static void exynos_irq_release_resources(struct irq_data *irqd)
186 struct samsung_pin_bank *bank = irq_data_get_irq_chip_data(irqd);
192 shift = irqd->hwirq * bank_type->fld_width[PINCFG_TYPE_FUNC];
204 gpiochip_unlock_as_irq(&bank->gpio_chip, irqd->hwirq);
339 static int exynos_wkup_irq_set_wake(struct irq_data *irqd, unsigned int on)
341 struct irq_chip *chip = irq_data_get_irq_chip(irqd);
343 struct samsung_pin_bank *bank = irq_data_get_irq_chip_data(irqd);
344 unsigned long bit = 1UL << (2 * bank->eint_offset + irqd->hwirq);
346 pr_info("wake %s for irq %d\n", on ? "enabled" : "disabled", irqd->irq);