Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 0a7e5413 authored by Mike Frysinger's avatar Mike Frysinger
Browse files

Blackfin: debug-mmrs: generalize pint logic



Don't bind the code to specific CPU defines.

Signed-off-by: default avatarMike Frysinger <vapier@gentoo.org>
parent 82ed5f73
Loading
Loading
Loading
Loading
+31 −19
Original line number Diff line number Diff line
@@ -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 */