Lines Matching refs:sih
56 struct sih { struct
78 static const struct sih *sih_modules; argument
109 static const struct sih sih_modules_twl4030[6] = {
169 static const struct sih sih_modules_twl5031[8] = {
317 const struct sih *sih; in twl4030_init_sih_modules() local
330 sih = sih_modules; in twl4030_init_sih_modules()
331 for (i = 0; i < nr_sih_modules; i++, sih++) { in twl4030_init_sih_modules()
333 if (!sih->bytes_ixr) in twl4030_init_sih_modules()
337 if (sih->irq_lines <= line) in twl4030_init_sih_modules()
340 status = twl_i2c_write(sih->module, buf, in twl4030_init_sih_modules()
341 sih->mask[line].imr_offset, sih->bytes_ixr); in twl4030_init_sih_modules()
344 status, sih->name, "IMR"); in twl4030_init_sih_modules()
354 if (sih->set_cor) { in twl4030_init_sih_modules()
355 status = twl_i2c_write_u8(sih->module, in twl4030_init_sih_modules()
357 sih->control_offset); in twl4030_init_sih_modules()
360 status, sih->name, "SIH_CTRL"); in twl4030_init_sih_modules()
364 sih = sih_modules; in twl4030_init_sih_modules()
365 for (i = 0; i < nr_sih_modules; i++, sih++) { in twl4030_init_sih_modules()
370 if (!sih->bytes_ixr) in twl4030_init_sih_modules()
374 if (sih->irq_lines <= line) in twl4030_init_sih_modules()
384 status = twl_i2c_read(sih->module, rxbuf, in twl4030_init_sih_modules()
385 sih->mask[line].isr_offset, sih->bytes_ixr); in twl4030_init_sih_modules()
388 status, sih->name, "ISR"); in twl4030_init_sih_modules()
390 if (!sih->set_cor) { in twl4030_init_sih_modules()
391 status = twl_i2c_write(sih->module, buf, in twl4030_init_sih_modules()
392 sih->mask[line].isr_offset, in twl4030_init_sih_modules()
393 sih->bytes_ixr); in twl4030_init_sih_modules()
417 const struct sih *sih; member
476 const struct sih *sih = agent->sih; in twl4030_sih_bus_sync_unlock() local
490 status = twl_i2c_write(sih->module, imr.bytes, in twl4030_sih_bus_sync_unlock()
491 sih->mask[irq_line].imr_offset, in twl4030_sih_bus_sync_unlock()
492 sih->bytes_ixr); in twl4030_sih_bus_sync_unlock()
511 status = twl_i2c_read(sih->module, bytes, in twl4030_sih_bus_sync_unlock()
512 sih->edr_offset, sih->bytes_edr); in twl4030_sih_bus_sync_unlock()
538 status = twl_i2c_write(sih->module, bytes, in twl4030_sih_bus_sync_unlock()
539 sih->edr_offset, sih->bytes_edr); in twl4030_sih_bus_sync_unlock()
560 static inline int sih_read_isr(const struct sih *sih) in sih_read_isr() argument
571 status = twl_i2c_read(sih->module, isr.bytes, in sih_read_isr()
572 sih->mask[irq_line].isr_offset, sih->bytes_ixr); in sih_read_isr()
584 const struct sih *sih = agent->sih; in handle_twl4030_sih() local
588 isr = sih_read_isr(sih); in handle_twl4030_sih()
592 sih->name, isr); in handle_twl4030_sih()
602 if (irq < sih->bits) in handle_twl4030_sih()
606 sih->name, irq); in handle_twl4030_sih()
615 const struct sih *sih = NULL; in twl4030_sih_setup() local
621 for (sih_mod = 0, sih = sih_modules; sih_mod < nr_sih_modules; in twl4030_sih_setup()
622 sih_mod++, sih++) { in twl4030_sih_setup()
623 if (sih->module == module && sih->set_cor) { in twl4030_sih_setup()
639 agent->sih = sih; in twl4030_sih_setup()
643 for (i = 0; i < sih->bits; i++) { in twl4030_sih_setup()
656 agent->irq_name = kasprintf(GFP_KERNEL, "twl4030_%s", sih->name); in twl4030_sih_setup()
659 agent->irq_name ?: sih->name, NULL); in twl4030_sih_setup()
661 dev_info(dev, "%s (irq %d) chaining IRQs %d..%d\n", sih->name, in twl4030_sih_setup()