• Home
  • Raw
  • Download

Lines Matching refs:irqd

59 static void exynos_irq_mask(struct irq_data *irqd)  in exynos_irq_mask()  argument
61 struct irq_chip *chip = irq_data_get_irq_chip(irqd); in exynos_irq_mask()
63 struct samsung_pin_bank *bank = irq_data_get_irq_chip_data(irqd); in exynos_irq_mask()
72 mask |= 1 << irqd->hwirq; in exynos_irq_mask()
78 static void exynos_irq_ack(struct irq_data *irqd) in exynos_irq_ack() argument
80 struct irq_chip *chip = irq_data_get_irq_chip(irqd); in exynos_irq_ack()
82 struct samsung_pin_bank *bank = irq_data_get_irq_chip_data(irqd); in exynos_irq_ack()
86 writel(1 << irqd->hwirq, d->virt_base + reg_pend); in exynos_irq_ack()
89 static void exynos_irq_unmask(struct irq_data *irqd) in exynos_irq_unmask() argument
91 struct irq_chip *chip = irq_data_get_irq_chip(irqd); in exynos_irq_unmask()
93 struct samsung_pin_bank *bank = irq_data_get_irq_chip_data(irqd); in exynos_irq_unmask()
107 if (irqd_get_trigger_type(irqd) & IRQ_TYPE_LEVEL_MASK) in exynos_irq_unmask()
108 exynos_irq_ack(irqd); in exynos_irq_unmask()
113 mask &= ~(1 << irqd->hwirq); in exynos_irq_unmask()
119 static int exynos_irq_set_type(struct irq_data *irqd, unsigned int type) in exynos_irq_set_type() argument
121 struct irq_chip *chip = irq_data_get_irq_chip(irqd); in exynos_irq_set_type()
123 struct samsung_pin_bank *bank = irq_data_get_irq_chip_data(irqd); in exynos_irq_set_type()
125 unsigned int shift = EXYNOS_EINT_CON_LEN * irqd->hwirq; in exynos_irq_set_type()
151 irq_set_handler_locked(irqd, handle_edge_irq); in exynos_irq_set_type()
153 irq_set_handler_locked(irqd, handle_level_irq); in exynos_irq_set_type()
163 static int exynos_irq_request_resources(struct irq_data *irqd) in exynos_irq_request_resources() argument
165 struct irq_chip *chip = irq_data_get_irq_chip(irqd); in exynos_irq_request_resources()
167 struct samsung_pin_bank *bank = irq_data_get_irq_chip_data(irqd); in exynos_irq_request_resources()
170 unsigned int shift = EXYNOS_EINT_CON_LEN * irqd->hwirq; in exynos_irq_request_resources()
177 ret = gpiochip_lock_as_irq(&bank->gpio_chip, irqd->hwirq); in exynos_irq_request_resources()
181 bank->name, irqd->hwirq); in exynos_irq_request_resources()
186 shift = irqd->hwirq * bank_type->fld_width[PINCFG_TYPE_FUNC]; in exynos_irq_request_resources()
201 static void exynos_irq_release_resources(struct irq_data *irqd) in exynos_irq_release_resources() argument
203 struct irq_chip *chip = irq_data_get_irq_chip(irqd); in exynos_irq_release_resources()
205 struct samsung_pin_bank *bank = irq_data_get_irq_chip_data(irqd); in exynos_irq_release_resources()
208 unsigned int shift = EXYNOS_EINT_CON_LEN * irqd->hwirq; in exynos_irq_release_resources()
215 shift = irqd->hwirq * bank_type->fld_width[PINCFG_TYPE_FUNC]; in exynos_irq_release_resources()
227 gpiochip_unlock_as_irq(&bank->gpio_chip, irqd->hwirq); in exynos_irq_release_resources()
359 static int exynos_wkup_irq_set_wake(struct irq_data *irqd, unsigned int on) in exynos_wkup_irq_set_wake() argument
361 struct samsung_pin_bank *bank = irq_data_get_irq_chip_data(irqd); in exynos_wkup_irq_set_wake()
362 unsigned long bit = 1UL << (2 * bank->eint_offset + irqd->hwirq); in exynos_wkup_irq_set_wake()
364 pr_info("wake %s for irq %d\n", on ? "enabled" : "disabled", irqd->irq); in exynos_wkup_irq_set_wake()