Commit 06e12b79 authored by Jonathan Marek's avatar Jonathan Marek Committed by Linus Walleij
Browse files

pinctrl: qcom: print egpio mode in debugfs



When egpio_enable bit is cleared, the gpio is driven by SSC/LPASS TLMM and
the APSS TLMM settings are ignored. Reflect that in the debugfs dump.

Signed-off-by: default avatarJonathan Marek <jonathan@marek.ca>
Link: https://lore.kernel.org/r/20220210131210.24605-2-jonathan@marek.ca


Signed-off-by: default avatarLinus Walleij <linus.walleij@linaro.org>
parent c74803ee
Loading
Loading
Loading
Loading
+9 −0
Original line number Diff line number Diff line
@@ -615,6 +615,7 @@ static void msm_gpio_dbg_show_one(struct seq_file *s,
	int drive;
	int pull;
	int val;
	int egpio_enable;
	u32 ctl_reg, io_reg;

	static const char * const pulls_keeper[] = {
@@ -641,12 +642,20 @@ static void msm_gpio_dbg_show_one(struct seq_file *s,
	func = (ctl_reg >> g->mux_bit) & 7;
	drive = (ctl_reg >> g->drv_bit) & 7;
	pull = (ctl_reg >> g->pull_bit) & 3;
	egpio_enable = 0;
	if (pctrl->soc->egpio_func && ctl_reg & BIT(g->egpio_present))
		egpio_enable = !(ctl_reg & BIT(g->egpio_enable));

	if (is_out)
		val = !!(io_reg & BIT(g->out_bit));
	else
		val = !!(io_reg & BIT(g->in_bit));

	if (egpio_enable) {
		seq_printf(s, " %-8s: egpio\n", g->name);
		return;
	}

	seq_printf(s, " %-8s: %-3s", g->name, is_out ? "out" : "in");
	seq_printf(s, " %-4s func%d", val ? "high" : "low", func);
	seq_printf(s, " %dmA", msm_regval_to_drive(drive));