Lines Matching refs:irqd

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