diff options
author | Niklas Söderlund <niklas.soderlund+renesas@ragnatech.se> | 2016-09-06 17:14:14 +0200 |
---|---|---|
committer | Geert Uytterhoeven <geert+renesas@glider.be> | 2016-09-12 10:58:23 +0200 |
commit | 40ade582194668aa4336a30f96c9d592c46a1928 (patch) | |
tree | b8c9aec6edced88f3e7bbcecfe9a7441ba9f7971 /drivers/pinctrl | |
parent | c30716894e96ed1e76bf32ae68c5438350700496 (diff) | |
download | lwn-40ade582194668aa4336a30f96c9d592c46a1928.tar.gz lwn-40ade582194668aa4336a30f96c9d592c46a1928.zip |
pinctrl: sh-pfc: Return pinconf with arguments in packed format
The pinconf-generic code expects configurations with arguments to be
returned in a packed format in order to be displayed properly by
pinconf_generic_dump_one().
Reading /sys/kernel/debug/pinctrl/e6060000.pfc/pinconf-pins on
r8a7795/salvator-x now shows:
pin 101 (GP_3_5): output drive strength (9 mA), pin power source (3300 selector)
Instead of:
pin 101 (GP_3_5): output drive strength (0 mA), pin power source (0 selector)
Signed-off-by: Niklas Söderlund <niklas.soderlund+renesas@ragnatech.se>
Tested-by: Geert Uytterhoeven <geert+renesas@glider.be>
Signed-off-by: Geert Uytterhoeven <geert+renesas@glider.be>
Diffstat (limited to 'drivers/pinctrl')
-rw-r--r-- | drivers/pinctrl/sh-pfc/pinctrl.c | 8 |
1 files changed, 5 insertions, 3 deletions
diff --git a/drivers/pinctrl/sh-pfc/pinctrl.c b/drivers/pinctrl/sh-pfc/pinctrl.c index e208ee04a9f4..c5772584594c 100644 --- a/drivers/pinctrl/sh-pfc/pinctrl.c +++ b/drivers/pinctrl/sh-pfc/pinctrl.c @@ -596,6 +596,7 @@ static int sh_pfc_pinconf_get(struct pinctrl_dev *pctldev, unsigned _pin, struct sh_pfc *pfc = pmx->pfc; enum pin_config_param param = pinconf_to_config_param(*config); unsigned long flags; + unsigned int arg; if (!sh_pfc_pinconf_validate(pfc, _pin, param)) return -ENOTSUPP; @@ -616,7 +617,7 @@ static int sh_pfc_pinconf_get(struct pinctrl_dev *pctldev, unsigned _pin, if (bias != param) return -EINVAL; - *config = 0; + arg = 0; break; } @@ -627,7 +628,7 @@ static int sh_pfc_pinconf_get(struct pinctrl_dev *pctldev, unsigned _pin, if (ret < 0) return ret; - *config = ret; + arg = ret; break; } @@ -646,7 +647,7 @@ static int sh_pfc_pinconf_get(struct pinctrl_dev *pctldev, unsigned _pin, val = sh_pfc_read_reg(pfc, pocctrl, 32); spin_unlock_irqrestore(&pfc->lock, flags); - *config = (val & BIT(bit)) ? 3300 : 1800; + arg = (val & BIT(bit)) ? 3300 : 1800; break; } @@ -654,6 +655,7 @@ static int sh_pfc_pinconf_get(struct pinctrl_dev *pctldev, unsigned _pin, return -ENOTSUPP; } + *config = pinconf_to_config_packed(param, arg); return 0; } |