Lines Matching refs:rc5t583
142 struct rc5t583 *rc5t583 = irq_data_get_irq_chip_data(irq_data); in rc5t583_irq_lock() local
143 mutex_lock(&rc5t583->irq_lock); in rc5t583_irq_lock()
148 struct rc5t583 *rc5t583 = irq_data_get_irq_chip_data(irq_data); in rc5t583_irq_unmask() local
149 unsigned int __irq = irq_data->irq - rc5t583->irq_base; in rc5t583_irq_unmask()
152 rc5t583->group_irq_en[data->grp_index] |= 1 << data->grp_index; in rc5t583_irq_unmask()
153 rc5t583->intc_inten_reg |= 1 << data->master_bit; in rc5t583_irq_unmask()
154 rc5t583->irq_en_reg[data->mask_reg_index] |= 1 << data->int_en_bit; in rc5t583_irq_unmask()
159 struct rc5t583 *rc5t583 = irq_data_get_irq_chip_data(irq_data); in rc5t583_irq_mask() local
160 unsigned int __irq = irq_data->irq - rc5t583->irq_base; in rc5t583_irq_mask()
163 rc5t583->group_irq_en[data->grp_index] &= ~(1 << data->grp_index); in rc5t583_irq_mask()
164 if (!rc5t583->group_irq_en[data->grp_index]) in rc5t583_irq_mask()
165 rc5t583->intc_inten_reg &= ~(1 << data->master_bit); in rc5t583_irq_mask()
167 rc5t583->irq_en_reg[data->mask_reg_index] &= ~(1 << data->int_en_bit); in rc5t583_irq_mask()
172 struct rc5t583 *rc5t583 = irq_data_get_irq_chip_data(irq_data); in rc5t583_irq_set_type() local
173 unsigned int __irq = irq_data->irq - rc5t583->irq_base; in rc5t583_irq_set_type()
190 rc5t583->gpedge_reg[gpedge_index] &= ~(3 << gpedge_bit_pos); in rc5t583_irq_set_type()
191 rc5t583->gpedge_reg[gpedge_index] |= (val << gpedge_bit_pos); in rc5t583_irq_set_type()
200 struct rc5t583 *rc5t583 = irq_data_get_irq_chip_data(irq_data); in rc5t583_irq_sync_unlock() local
204 for (i = 0; i < ARRAY_SIZE(rc5t583->gpedge_reg); i++) { in rc5t583_irq_sync_unlock()
205 ret = rc5t583_write(rc5t583->dev, gpedge_add[i], in rc5t583_irq_sync_unlock()
206 rc5t583->gpedge_reg[i]); in rc5t583_irq_sync_unlock()
208 dev_warn(rc5t583->dev, in rc5t583_irq_sync_unlock()
213 for (i = 0; i < ARRAY_SIZE(rc5t583->irq_en_reg); i++) { in rc5t583_irq_sync_unlock()
214 ret = rc5t583_write(rc5t583->dev, irq_en_add[i], in rc5t583_irq_sync_unlock()
215 rc5t583->irq_en_reg[i]); in rc5t583_irq_sync_unlock()
217 dev_warn(rc5t583->dev, in rc5t583_irq_sync_unlock()
222 ret = rc5t583_write(rc5t583->dev, RC5T583_INTC_INTEN, in rc5t583_irq_sync_unlock()
223 rc5t583->intc_inten_reg); in rc5t583_irq_sync_unlock()
225 dev_warn(rc5t583->dev, in rc5t583_irq_sync_unlock()
229 mutex_unlock(&rc5t583->irq_lock); in rc5t583_irq_sync_unlock()
234 struct rc5t583 *rc5t583 = irq_data_get_irq_chip_data(irq_data); in rc5t583_irq_set_wake() local
235 return irq_set_irq_wake(rc5t583->chip_irq, on); in rc5t583_irq_set_wake()
243 struct rc5t583 *rc5t583 = data; in rc5t583_irq() local
254 ret = rc5t583_read(rc5t583->dev, RC5T583_INTC_INTMON, &master_int); in rc5t583_irq()
256 dev_err(rc5t583->dev, in rc5t583_irq()
266 ret = rc5t583_read(rc5t583->dev, irq_mon_add[i], &int_sts[i]); in rc5t583_irq()
268 dev_warn(rc5t583->dev, in rc5t583_irq()
287 ret = rc5t583_write(rc5t583->dev, irq_clr_add[i], in rc5t583_irq()
290 dev_warn(rc5t583->dev, in rc5t583_irq()
305 (rc5t583->group_irq_en[data->master_bit] & in rc5t583_irq()
307 handle_nested_irq(rc5t583->irq_base + i); in rc5t583_irq()
323 int rc5t583_irq_init(struct rc5t583 *rc5t583, int irq, int irq_base) in rc5t583_irq_init() argument
328 dev_warn(rc5t583->dev, "No interrupt support on IRQ base\n"); in rc5t583_irq_init()
332 mutex_init(&rc5t583->irq_lock); in rc5t583_irq_init()
336 ret = rc5t583_write(rc5t583->dev, irq_en_add[i], in rc5t583_irq_init()
337 rc5t583->irq_en_reg[i]); in rc5t583_irq_init()
339 dev_warn(rc5t583->dev, in rc5t583_irq_init()
345 ret = rc5t583_write(rc5t583->dev, gpedge_add[i], in rc5t583_irq_init()
346 rc5t583->gpedge_reg[i]); in rc5t583_irq_init()
348 dev_warn(rc5t583->dev, in rc5t583_irq_init()
353 ret = rc5t583_write(rc5t583->dev, RC5T583_INTC_INTEN, 0x0); in rc5t583_irq_init()
355 dev_warn(rc5t583->dev, in rc5t583_irq_init()
361 ret = rc5t583_write(rc5t583->dev, irq_clr_add[i], 0); in rc5t583_irq_init()
363 dev_warn(rc5t583->dev, in rc5t583_irq_init()
368 rc5t583->irq_base = irq_base; in rc5t583_irq_init()
369 rc5t583->chip_irq = irq; in rc5t583_irq_init()
372 int __irq = i + rc5t583->irq_base; in rc5t583_irq_init()
373 irq_set_chip_data(__irq, rc5t583); in rc5t583_irq_init()
380 ret = devm_request_threaded_irq(rc5t583->dev, irq, NULL, rc5t583_irq, in rc5t583_irq_init()
381 IRQF_ONESHOT, "rc5t583", rc5t583); in rc5t583_irq_init()
383 dev_err(rc5t583->dev, in rc5t583_irq_init()