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()
240 struct rc5t583 *rc5t583 = data; in rc5t583_irq() local
251 ret = rc5t583_read(rc5t583->dev, RC5T583_INTC_INTMON, &master_int); in rc5t583_irq()
253 dev_err(rc5t583->dev, in rc5t583_irq()
263 ret = rc5t583_read(rc5t583->dev, irq_mon_add[i], &int_sts[i]); in rc5t583_irq()
265 dev_warn(rc5t583->dev, in rc5t583_irq()
284 ret = rc5t583_write(rc5t583->dev, irq_clr_add[i], in rc5t583_irq()
287 dev_warn(rc5t583->dev, in rc5t583_irq()
302 (rc5t583->group_irq_en[data->master_bit] & in rc5t583_irq()
304 handle_nested_irq(rc5t583->irq_base + i); in rc5t583_irq()
320 int rc5t583_irq_init(struct rc5t583 *rc5t583, int irq, int irq_base) in rc5t583_irq_init() argument
325 dev_warn(rc5t583->dev, "No interrupt support on IRQ base\n"); in rc5t583_irq_init()
329 mutex_init(&rc5t583->irq_lock); in rc5t583_irq_init()
333 ret = rc5t583_write(rc5t583->dev, irq_en_add[i], in rc5t583_irq_init()
334 rc5t583->irq_en_reg[i]); in rc5t583_irq_init()
336 dev_warn(rc5t583->dev, in rc5t583_irq_init()
342 ret = rc5t583_write(rc5t583->dev, gpedge_add[i], in rc5t583_irq_init()
343 rc5t583->gpedge_reg[i]); in rc5t583_irq_init()
345 dev_warn(rc5t583->dev, in rc5t583_irq_init()
350 ret = rc5t583_write(rc5t583->dev, RC5T583_INTC_INTEN, 0x0); in rc5t583_irq_init()
352 dev_warn(rc5t583->dev, in rc5t583_irq_init()
358 ret = rc5t583_write(rc5t583->dev, irq_clr_add[i], 0); in rc5t583_irq_init()
360 dev_warn(rc5t583->dev, in rc5t583_irq_init()
365 rc5t583->irq_base = irq_base; in rc5t583_irq_init()
366 rc5t583->chip_irq = irq; in rc5t583_irq_init()
369 int __irq = i + rc5t583->irq_base; in rc5t583_irq_init()
370 irq_set_chip_data(__irq, rc5t583); in rc5t583_irq_init()
377 ret = devm_request_threaded_irq(rc5t583->dev, irq, NULL, rc5t583_irq, in rc5t583_irq_init()
378 IRQF_ONESHOT, "rc5t583", rc5t583); in rc5t583_irq_init()
380 dev_err(rc5t583->dev, in rc5t583_irq_init()