summaryrefslogtreecommitdiff
path: root/drivers/pinctrl
diff options
context:
space:
mode:
authorLaxman Dewangan <ldewangan@nvidia.com>2013-11-27 15:30:00 +0530
committerLaxman Dewangan <ldewangan@nvidia.com>2013-11-28 01:24:17 -0800
commit24724cc5d21d4dcda0d26e64238ffc1657389780 (patch)
treea8a949509277bbe893800d09255d269e7d4efc39 /drivers/pinctrl
parent8416afe381eb7739150b4b89a51713efa926e95a (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.c36
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);