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