Lines Matching refs:hwirq
65 int hwirq; in hlwd_gpio_irqhandler() local
100 for_each_set_bit(hwirq, &pending, 32) { in hlwd_gpio_irqhandler()
101 int irq = irq_find_mapping(hlwd->gpioc.irq.domain, hwirq); in hlwd_gpio_irqhandler()
114 iowrite32be(BIT(data->hwirq), hlwd->regs + HW_GPIOB_INTFLAG); in hlwd_gpio_irq_ack()
126 mask &= ~BIT(data->hwirq); in hlwd_gpio_irq_mask()
140 mask |= BIT(data->hwirq); in hlwd_gpio_irq_unmask()
151 static void hlwd_gpio_irq_setup_emulation(struct hlwd_gpio *hlwd, int hwirq, in hlwd_gpio_irq_setup_emulation() argument
158 state = ioread32be(hlwd->regs + HW_GPIOB_IN) & BIT(hwirq); in hlwd_gpio_irq_setup_emulation()
159 level &= ~BIT(hwirq); in hlwd_gpio_irq_setup_emulation()
160 level |= state ^ BIT(hwirq); in hlwd_gpio_irq_setup_emulation()
163 hlwd->edge_emulation |= BIT(hwirq); in hlwd_gpio_irq_setup_emulation()
164 hlwd->rising_edge &= ~BIT(hwirq); in hlwd_gpio_irq_setup_emulation()
165 hlwd->falling_edge &= ~BIT(hwirq); in hlwd_gpio_irq_setup_emulation()
167 hlwd->rising_edge |= BIT(hwirq); in hlwd_gpio_irq_setup_emulation()
169 hlwd->falling_edge |= BIT(hwirq); in hlwd_gpio_irq_setup_emulation()
181 hlwd->edge_emulation &= ~BIT(data->hwirq); in hlwd_gpio_irq_set_type()
186 level |= BIT(data->hwirq); in hlwd_gpio_irq_set_type()
191 level &= ~BIT(data->hwirq); in hlwd_gpio_irq_set_type()
197 hlwd_gpio_irq_setup_emulation(hlwd, data->hwirq, flow_type); in hlwd_gpio_irq_set_type()