• Home
  • History
  • Annotate
  • Raw
  • Download
  • only in /netgear-R7000-V1.0.7.12_1.2.5/components/opensource/linux/linux-2.6.36/drivers/mfd/

Lines Matching refs:sih

66 struct sih {
88 static const struct sih *sih_modules;
118 static const struct sih sih_modules_twl4030[6] = {
177 static const struct sih sih_modules_twl5031[8] = {
377 const struct sih *sih;
390 sih = sih_modules;
391 for (i = 0; i < nr_sih_modules; i++, sih++) {
394 if (!sih->bytes_ixr)
398 if (sih->irq_lines <= line)
401 status = twl_i2c_write(sih->module, buf,
402 sih->mask[line].imr_offset, sih->bytes_ixr);
405 status, sih->name, "IMR");
414 if (sih->set_cor) {
415 status = twl_i2c_write_u8(sih->module,
417 sih->control_offset);
420 status, sih->name, "SIH_CTRL");
424 sih = sih_modules;
425 for (i = 0; i < nr_sih_modules; i++, sih++) {
430 if (!sih->bytes_ixr)
434 if (sih->irq_lines <= line)
443 status = twl_i2c_read(sih->module, rxbuf,
444 sih->mask[line].isr_offset, sih->bytes_ixr);
447 status, sih->name, "ISR");
449 if (!sih->set_cor)
450 status = twl_i2c_write(sih->module, buf,
451 sih->mask[line].isr_offset,
452 sih->bytes_ixr);
483 const struct sih *sih;
496 const struct sih *sih;
508 sih = agent->sih;
513 sih = NULL;
515 if (!sih)
519 status = twl_i2c_write(sih->module, imr.bytes,
520 sih->mask[irq_line].imr_offset, sih->bytes_ixr);
529 const struct sih *sih;
540 sih = edge_change ? agent->sih : NULL;
542 if (!sih)
550 status = twl_i2c_read(sih->module, bytes + 1,
551 sih->edr_offset, sih->bytes_edr);
584 status = twl_i2c_write(sih->module, bytes,
585 sih->edr_offset, sih->bytes_edr);
602 struct sih_agent *sih = get_irq_chip_data(irq);
606 sih->imr |= BIT(irq - sih->irq_base);
607 sih->imr_change_pending = true;
608 queue_work(wq, &sih->mask_work);
614 struct sih_agent *sih = get_irq_chip_data(irq);
618 sih->imr &= ~BIT(irq - sih->irq_base);
619 sih->imr_change_pending = true;
620 queue_work(wq, &sih->mask_work);
626 struct sih_agent *sih = get_irq_chip_data(irq);
642 sih->edge_change |= BIT(irq - sih->irq_base);
643 queue_work(wq, &sih->edge_work);
658 static inline int sih_read_isr(const struct sih *sih)
668 status = twl_i2c_read(sih->module, isr.bytes,
669 sih->mask[irq_line].isr_offset, sih->bytes_ixr);
681 const struct sih *sih = agent->sih;
686 isr = sih_read_isr(sih);
691 sih->name, isr);
701 if (irq < sih->bits)
705 sih->name, irq);
717 const struct sih *sih = NULL;
724 for (sih_mod = 0, sih = sih_modules;
726 sih_mod++, sih++) {
727 if (sih->module == module && sih->set_cor) {
728 if (!WARN((irq_base + sih->bits) > NR_IRQS,
730 irq_base + sih->bits,
731 sih->name))
746 agent->sih = sih;
751 for (i = 0; i < sih->bits; i++) {
768 pr_info("twl4030: %s (irq %d) chaining IRQs %d..%d\n", sih->name,