123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110 |
- From 2d9ffb1a3f87396c3b792124870ef63fc27c568f Mon Sep 17 00:00:00 2001
- From: Stephen Boyd <[email protected]>
- Date: Thu, 6 Mar 2014 22:44:46 -0800
- Subject: [PATCH 032/182] pinctrl: msm: Simplify msm_config_reg() and callers
- We don't need to check for a negative reg here because reg is
- always the same and is always non-negative. Also, collapse the
- switch statement down for the duplicate cases.
- Signed-off-by: Stephen Boyd <[email protected]>
- Acked-by: Bjorn Andersson <[email protected]>
- Signed-off-by: Linus Walleij <[email protected]>
- ---
- drivers/pinctrl/pinctrl-msm.c | 29 +++++------------------------
- 1 file changed, 5 insertions(+), 24 deletions(-)
- --- a/drivers/pinctrl/pinctrl-msm.c
- +++ b/drivers/pinctrl/pinctrl-msm.c
- @@ -200,28 +200,17 @@ static const struct pinmux_ops msm_pinmu
- static int msm_config_reg(struct msm_pinctrl *pctrl,
- const struct msm_pingroup *g,
- unsigned param,
- - s16 *reg,
- unsigned *mask,
- unsigned *bit)
- {
- switch (param) {
- case PIN_CONFIG_BIAS_DISABLE:
- - *reg = g->ctl_reg;
- - *bit = g->pull_bit;
- - *mask = 3;
- - break;
- case PIN_CONFIG_BIAS_PULL_DOWN:
- - *reg = g->ctl_reg;
- - *bit = g->pull_bit;
- - *mask = 3;
- - break;
- case PIN_CONFIG_BIAS_PULL_UP:
- - *reg = g->ctl_reg;
- *bit = g->pull_bit;
- *mask = 3;
- break;
- case PIN_CONFIG_DRIVE_STRENGTH:
- - *reg = g->ctl_reg;
- *bit = g->drv_bit;
- *mask = 7;
- break;
- @@ -230,12 +219,6 @@ static int msm_config_reg(struct msm_pin
- return -ENOTSUPP;
- }
-
- - if (*reg < 0) {
- - dev_err(pctrl->dev, "Config param %04x not supported on group %s\n",
- - param, g->name);
- - return -ENOTSUPP;
- - }
- -
- return 0;
- }
-
- @@ -273,17 +256,16 @@ static int msm_config_group_get(struct p
- unsigned mask;
- unsigned arg;
- unsigned bit;
- - s16 reg;
- int ret;
- u32 val;
-
- g = &pctrl->soc->groups[group];
-
- - ret = msm_config_reg(pctrl, g, param, ®, &mask, &bit);
- + ret = msm_config_reg(pctrl, g, param, &mask, &bit);
- if (ret < 0)
- return ret;
-
- - val = readl(pctrl->regs + reg);
- + val = readl(pctrl->regs + g->ctl_reg);
- arg = (val >> bit) & mask;
-
- /* Convert register value to pinconf value */
- @@ -323,7 +305,6 @@ static int msm_config_group_set(struct p
- unsigned mask;
- unsigned arg;
- unsigned bit;
- - s16 reg;
- int ret;
- u32 val;
- int i;
- @@ -334,7 +315,7 @@ static int msm_config_group_set(struct p
- param = pinconf_to_config_param(configs[i]);
- arg = pinconf_to_config_argument(configs[i]);
-
- - ret = msm_config_reg(pctrl, g, param, ®, &mask, &bit);
- + ret = msm_config_reg(pctrl, g, param, &mask, &bit);
- if (ret < 0)
- return ret;
-
- @@ -369,10 +350,10 @@ static int msm_config_group_set(struct p
- }
-
- spin_lock_irqsave(&pctrl->lock, flags);
- - val = readl(pctrl->regs + reg);
- + val = readl(pctrl->regs + g->ctl_reg);
- val &= ~(mask << bit);
- val |= arg << bit;
- - writel(val, pctrl->regs + reg);
- + writel(val, pctrl->regs + g->ctl_reg);
- spin_unlock_irqrestore(&pctrl->lock, flags);
- }
-
|