Blackfin: debug-mmrs: generalize pint logic
authorMike Frysinger <vapier@gentoo.org>
Sun, 26 Jun 2011 17:49:50 +0000 (13:49 -0400)
committerMike Frysinger <vapier@gentoo.org>
Sat, 23 Jul 2011 05:18:26 +0000 (01:18 -0400)
Don't bind the code to specific CPU defines.

Signed-off-by: Mike Frysinger <vapier@gentoo.org>
arch/blackfin/kernel/debug-mmrs.c

index 3ae029654650b5d0ee809648cca543b0d64f1fe2..92f664826281ae300f616bce29ae81f3923a120b 100644 (file)
@@ -322,6 +322,29 @@ bfin_debug_mmrs_hmdma(struct dentry *parent, unsigned long base, int num)
 }
 #define HMDMA(num) bfin_debug_mmrs_hmdma(parent, HMDMA##num##_CONTROL, num)
 
+/*
+ * Peripheral Interrupts (PINT/GPIO)
+ */
+#ifdef PINT0_MASK_SET
+#define __PINT(uname, lname) __REGS(pint, #uname, lname)
+static void __init __maybe_unused
+bfin_debug_mmrs_pint(struct dentry *parent, unsigned long base, int num)
+{
+       char buf[32], *_buf = REGS_STR_PFX(buf, PINT, num);
+       __PINT(MASK_SET, mask_set);
+       __PINT(MASK_CLEAR, mask_clear);
+       __PINT(REQUEST, request);
+       __PINT(ASSIGN, assign);
+       __PINT(EDGE_SET, edge_set);
+       __PINT(EDGE_CLEAR, edge_clear);
+       __PINT(INVERT_SET, invert_set);
+       __PINT(INVERT_CLEAR, invert_clear);
+       __PINT(PINSTATE, pinstate);
+       __PINT(LATCH, latch);
+}
+#define PINT(num) bfin_debug_mmrs_pint(parent, PINT##num##_MASK_SET, num)
+#endif
+
 /*
  * Port/GPIO
  */
@@ -1270,6 +1293,14 @@ static int __init bfin_debug_mmrs_init(void)
        D32(OTP_DATA3);
 #endif
 
+#ifdef PINT0_MASK_SET
+       parent = debugfs_create_dir("pint", top);
+       PINT(0);
+       PINT(1);
+       PINT(2);
+       PINT(3);
+#endif
+
 #ifdef PIXC_CTL
        parent = debugfs_create_dir("pixc", top);
        D16(PIXC_CTL);
@@ -1833,7 +1864,6 @@ static int __init bfin_debug_mmrs_init(void)
        {
                int num;
                unsigned long base;
-               char *_buf, buf[32];
 
                base = PORTA_FER;
                for (num = 0; num < 10; ++num) {
@@ -1841,24 +1871,6 @@ static int __init bfin_debug_mmrs_init(void)
                        base += sizeof(struct bfin_gpio_regs);
                }
 
-#define __PINT(uname, lname) __REGS(pint, #uname, lname)
-               parent = debugfs_create_dir("pint", top);
-               base = PINT0_MASK_SET;
-               for (num = 0; num < 4; ++num) {
-                       _buf = REGS_STR_PFX(buf, PINT, num);
-                       __PINT(MASK_SET, mask_set);
-                       __PINT(MASK_CLEAR, mask_clear);
-                       __PINT(REQUEST, request);
-                       __PINT(ASSIGN, assign);
-                       __PINT(EDGE_SET, edge_set);
-                       __PINT(EDGE_CLEAR, edge_clear);
-                       __PINT(INVERT_SET, invert_set);
-                       __PINT(INVERT_CLEAR, invert_clear);
-                       __PINT(PINSTATE, pinstate);
-                       __PINT(LATCH, latch);
-                       base += sizeof(struct bfin_pint_regs);
-               }
-
        }
 #endif /* BF54x */