1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465 |
- From 1c11b14dd6d740e997919f0bf789bf921548dc0f Mon Sep 17 00:00:00 2001
- From: Bjorn Andersson <[email protected]>
- Date: Mon, 31 Mar 2014 14:49:55 -0700
- Subject: [PATCH 037/182] 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: Bjorn Andersson <[email protected]>
- Signed-off-by: Linus Walleij <[email protected]>
- ---
- drivers/pinctrl/pinctrl-msm.c | 4 ++--
- drivers/pinctrl/pinctrl-msm.h | 3 ++-
- drivers/pinctrl/pinctrl-msm8x74.c | 3 ++-
- 3 files changed, 6 insertions(+), 4 deletions(-)
- --- a/drivers/pinctrl/pinctrl-msm.c
- +++ b/drivers/pinctrl/pinctrl-msm.c
- @@ -145,12 +145,12 @@ static int msm_pinmux_enable(struct pinc
- 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);
- --- a/drivers/pinctrl/pinctrl-msm.h
- +++ b/drivers/pinctrl/pinctrl-msm.h
- @@ -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;
- --- a/drivers/pinctrl/pinctrl-msm8x74.c
- +++ b/drivers/pinctrl/pinctrl-msm8x74.c
- @@ -341,7 +341,7 @@ static const unsigned int sdc2_data_pins
- .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
- MSM_MUX_##f6, \
- MSM_MUX_##f7 \
- }, \
- + .nfuncs = 8, \
- .ctl_reg = 0x1000 + 0x10 * id, \
- .io_reg = 0x1004 + 0x10 * id, \
- .intr_cfg_reg = 0x1008 + 0x10 * id, \
|