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

Commit 3c25381f authored by Bjorn Andersson's avatar Bjorn Andersson Committed by Linus Walleij
Browse files

pinctrl: msm: Make number of functions variable



The various pins may have different number of functions defined, so make this
number definable per pin instead of just increasing it to the largest one for
all of the platforms.

Signed-off-by: default avatarBjorn Andersson <bjorn.andersson@sonymobile.com>
Signed-off-by: default avatarLinus Walleij <linus.walleij@linaro.org>
parent 130cbe30
Loading
Loading
Loading
Loading
+2 −2
Original line number Diff line number Diff line
@@ -145,12 +145,12 @@ static int msm_pinmux_enable(struct pinctrl_dev *pctldev,
	if (WARN_ON(g->mux_bit < 0))
		return -EINVAL;

	for (i = 0; i < ARRAY_SIZE(g->funcs); i++) {
	for (i = 0; i < g->nfuncs; i++) {
		if (g->funcs[i] == function)
			break;
	}

	if (WARN_ON(i == ARRAY_SIZE(g->funcs)))
	if (WARN_ON(i == g->nfuncs))
		return -EINVAL;

	spin_lock_irqsave(&pctrl->lock, flags);
+2 −1
Original line number Diff line number Diff line
@@ -65,7 +65,8 @@ struct msm_pingroup {
	const unsigned *pins;
	unsigned npins;

	unsigned funcs[8];
	unsigned *funcs;
	unsigned nfuncs;

	s16 ctl_reg;
	s16 io_reg;
+2 −1
Original line number Diff line number Diff line
@@ -341,7 +341,7 @@ static const unsigned int sdc2_data_pins[] = { 151 };
		.name = "gpio" #id,			\
		.pins = gpio##id##_pins,		\
		.npins = ARRAY_SIZE(gpio##id##_pins),	\
		.funcs = {				\
		.funcs = (int[]){			\
			MSM_MUX_NA, /* gpio mode */	\
			MSM_MUX_##f1,			\
			MSM_MUX_##f2,			\
@@ -351,6 +351,7 @@ static const unsigned int sdc2_data_pins[] = { 151 };
			MSM_MUX_##f6,			\
			MSM_MUX_##f7			\
		},					\
		.nfuncs = 8,				\
		.ctl_reg = 0x1000 + 0x10 * id,		\
		.io_reg = 0x1004 + 0x10 * id,		\
		.intr_cfg_reg = 0x1008 + 0x10 * id,	\