diff options
author | Laxman Dewangan <ldewangan@nvidia.com> | 2013-11-27 15:30:00 +0530 |
---|---|---|
committer | Laxman Dewangan <ldewangan@nvidia.com> | 2013-11-28 01:24:17 -0800 |
commit | 24724cc5d21d4dcda0d26e64238ffc1657389780 (patch) | |
tree | a8a949509277bbe893800d09255d269e7d4efc39 /drivers/pinctrl | |
parent | 8416afe381eb7739150b4b89a51713efa926e95a (diff) |
pinctrl: tegra: add debugfs for dumping pincontrol registers
This will help the debugging of pincontrol by matching with
register settings.
Change-Id: I8af731b3208c7d0786d9c7ea18e2b758f33b1058
Signed-off-by: Laxman Dewangan <ldewangan@nvidia.com>
Reviewed-on: http://git-master/r/336159
GVS: Gerrit_Virtual_Submit
Diffstat (limited to 'drivers/pinctrl')
-rw-r--r-- | drivers/pinctrl/pinctrl-tegra.c | 36 |
1 files changed, 36 insertions, 0 deletions
diff --git a/drivers/pinctrl/pinctrl-tegra.c b/drivers/pinctrl/pinctrl-tegra.c index 28ff6370df0f..0f30d4a8152c 100644 --- a/drivers/pinctrl/pinctrl-tegra.c +++ b/drivers/pinctrl/pinctrl-tegra.c @@ -2122,6 +2122,40 @@ static const struct file_operations debug_drive_fops = { .release = single_release, }; +static int dbg_reg_pinmux_show(struct seq_file *s, void *unused) +{ + int i; + u32 offset; + u32 reg; + int bank; + + for (i = 0; i < pmx->soc->ngroups; i++) { + if (pmx->soc->groups[i].drv_reg < 0) { + bank = pmx->soc->groups[i].mux_bank; + offset = pmx->soc->groups[i].mux_reg; + } else { + bank = pmx->soc->groups[i].drv_bank; + offset = pmx->soc->groups[i].drv_reg; + } + reg = pmx_readl(pmx, bank, offset); + seq_printf(s, "Bank: %d Reg: 0x%08x Val: 0x%08x\n", + bank, offset, reg); + } + return 0; +} + +static int dbg_reg_pinmux_open(struct inode *inode, struct file *file) +{ + return single_open(file, dbg_reg_pinmux_show, &inode->i_private); +} + +static const struct file_operations debug_reg_fops = { + .open = dbg_reg_pinmux_open, + .read = seq_read, + .llseek = seq_lseek, + .release = single_release, +}; + static int __init tegra_pinctrl_debuginit(void) { if (!pmx) @@ -2131,6 +2165,8 @@ static int __init tegra_pinctrl_debuginit(void) NULL, NULL, &debug_fops); (void) debugfs_create_file("tegra_pinctrl_drive", S_IRUGO, NULL, NULL, &debug_drive_fops); + (void) debugfs_create_file("tegra_pinctrl_reg", S_IRUGO, + NULL, NULL, &debug_reg_fops); return 0; } late_initcall(tegra_pinctrl_debuginit); |