projects
/
firefly-linux-kernel-4.4.55.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
|
inline
| side by side (parent:
5f2449d
)
pinctrl: msm: Replace lookup tables with math
author
Stephen Boyd
<sboyd@codeaurora.org>
Fri, 7 Mar 2014 06:44:44 +0000
(22:44 -0800)
committer
Linus Walleij
<linus.walleij@linaro.org>
Wed, 12 Mar 2014 14:12:28 +0000
(15:12 +0100)
We don't need to waste space with these lookup tables, just do
the math directly.
Signed-off-by: Stephen Boyd <sboyd@codeaurora.org>
Acked-by: Bjorn Andersson <bjorn.andersson@sonymobile.com>
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
drivers/pinctrl/pinctrl-msm.c
patch
|
blob
|
history
diff --git
a/drivers/pinctrl/pinctrl-msm.c
b/drivers/pinctrl/pinctrl-msm.c
index b6eb88cf124f27e67d2b80dbd73b0c19f9a849b5..4527e8d1ea9a2d7f5482a0157940d033d398751a 100644
(file)
--- a/
drivers/pinctrl/pinctrl-msm.c
+++ b/
drivers/pinctrl/pinctrl-msm.c
@@
-263,8
+263,10
@@
static int msm_config_set(struct pinctrl_dev *pctldev, unsigned int pin,
#define MSM_PULL_DOWN 1
#define MSM_PULL_UP 3
#define MSM_PULL_DOWN 1
#define MSM_PULL_UP 3
-static const unsigned msm_regval_to_drive[] = { 2, 4, 6, 8, 10, 12, 14, 16 };
-static const unsigned msm_drive_to_regval[] = { -1, -1, 0, -1, 1, -1, 2, -1, 3, -1, 4, -1, 5, -1, 6, -1, 7 };
+static unsigned msm_regval_to_drive(u32 val)
+{
+ return (val + 1) * 2;
+}
static int msm_config_group_get(struct pinctrl_dev *pctldev,
unsigned int group,
static int msm_config_group_get(struct pinctrl_dev *pctldev,
unsigned int group,
@@
-301,7
+303,7
@@
static int msm_config_group_get(struct pinctrl_dev *pctldev,
arg = arg == MSM_PULL_UP;
break;
case PIN_CONFIG_DRIVE_STRENGTH:
arg = arg == MSM_PULL_UP;
break;
case PIN_CONFIG_DRIVE_STRENGTH:
- arg = msm_regval_to_drive
[arg]
;
+ arg = msm_regval_to_drive
(arg)
;
break;
case PIN_CONFIG_OUTPUT:
/* Pin is not output */
break;
case PIN_CONFIG_OUTPUT:
/* Pin is not output */
@@
-362,10
+364,10
@@
static int msm_config_group_set(struct pinctrl_dev *pctldev,
break;
case PIN_CONFIG_DRIVE_STRENGTH:
/* Check for invalid values */
break;
case PIN_CONFIG_DRIVE_STRENGTH:
/* Check for invalid values */
- if (arg >
= ARRAY_SIZE(msm_drive_to_regval)
)
+ if (arg >
16 || arg < 2 || (arg % 2) != 0
)
arg = -1;
else
arg = -1;
else
- arg =
msm_drive_to_regval[arg]
;
+ arg =
(arg / 2) - 1
;
break;
case PIN_CONFIG_OUTPUT:
/* set output value */
break;
case PIN_CONFIG_OUTPUT:
/* set output value */
@@
-558,7
+560,7
@@
static void msm_gpio_dbg_show_one(struct seq_file *s,
pull = (ctl_reg >> g->pull_bit) & 3;
seq_printf(s, " %-8s: %-3s %d", g->name, is_out ? "out" : "in", func);
pull = (ctl_reg >> g->pull_bit) & 3;
seq_printf(s, " %-8s: %-3s %d", g->name, is_out ? "out" : "in", func);
- seq_printf(s, " %dmA", msm_regval_to_drive
[drive]
);
+ seq_printf(s, " %dmA", msm_regval_to_drive
(drive)
);
seq_printf(s, " %s", pulls[pull]);
}
seq_printf(s, " %s", pulls[pull]);
}