2 * Support for virtual IRQ subgroups debugfs mapping.
4 * Copyright (C) 2010 Paul Mundt
6 * Modelled after arch/powerpc/kernel/irq.c.
8 * This file is subject to the terms and conditions of the GNU General Public
9 * License. See the file "COPYING" in the main directory of this archive
12 #include <linux/seq_file.h>
14 #include <linux/init.h>
15 #include <linux/irq.h>
16 #include <linux/debugfs.h>
17 #include "internals.h"
19 static int intc_irq_xlate_debug(struct seq_file
*m
, void *priv
)
23 seq_printf(m
, "%-5s %-7s %-15s\n", "irq", "enum", "chip name");
25 for (i
= 1; i
< nr_irqs
; i
++) {
26 struct intc_map_entry
*entry
= intc_irq_xlate_get(i
);
27 struct intc_desc_int
*desc
= entry
->desc
;
32 seq_printf(m
, "%5d ", i
);
33 seq_printf(m
, "0x%05x ", entry
->enum_id
);
34 seq_printf(m
, "%-15s\n", desc
->chip
.name
);
40 static int intc_irq_xlate_open(struct inode
*inode
, struct file
*file
)
42 return single_open(file
, intc_irq_xlate_debug
, inode
->i_private
);
45 static const struct file_operations intc_irq_xlate_fops
= {
46 .open
= intc_irq_xlate_open
,
49 .release
= single_release
,
52 static int __init
intc_irq_xlate_init(void)
55 * XXX.. use arch_debugfs_dir here when all of the intc users are
58 if (debugfs_create_file("intc_irq_xlate", S_IRUGO
, NULL
, NULL
,
59 &intc_irq_xlate_fops
) == NULL
)
64 fs_initcall(intc_irq_xlate_init
);