seq_printf(m, "chip: None\n");
                return;
        }
-       seq_printf(m, "%*schip:    %s\n", ind, "", chip->name);
-       seq_printf(m, "%*sflags:   0x%lx\n", ind + 1, "", chip->flags);
+       seq_printf(m, "%*schip:    ", ind, "");
+       if (chip->irq_print_chip)
+               chip->irq_print_chip(data, m);
+       else
+               seq_printf(m, "%s", chip->name);
+       seq_printf(m, "\n%*sflags:   0x%lx\n", ind + 1, "", chip->flags);
        irq_debug_show_bits(m, ind, chip->flags, irqchip_flags,
                            ARRAY_SIZE(irqchip_flags));
 }