| From d233a3e6d42d6c68e71f5e1ca9e46af22474e3ed Mon Sep 17 00:00:00 2001 |
| From: =?UTF-8?q?Heiko=20St=C3=BCbner?= <heiko@sntech.de> |
| Date: Thu, 6 Jun 2013 16:44:25 +0200 |
| Subject: pinctrl: add pinconf-generic define for a pin-default pull |
| |
| There exist controllers that don't support to set the pull to up or down |
| separately but instead automatically set the pull direction based on |
| embedded knowledge inside the controller, for example depending on the |
| selected mux function of the pin. |
| |
| Therefore this patch adds another config option to use this default |
| pull-state for a pin where it is not possible to know or decide if the |
| pin will be pulled up or down. |
| |
| Signed-off-by: Heiko Stuebner <heiko@sntech.de> |
| Reviewed-by: Stephen Warren <swarren@nvidia.com> |
| Signed-off-by: Linus Walleij <linus.walleij@linaro.org> |
| (cherry picked from commit 7970cb770dffa23cb20a36f46602e688e075f5d9) |
| Signed-off-by: Simon Horman <horms+renesas@verge.net.au> |
| --- |
| drivers/pinctrl/pinconf-generic.c | 2 ++ |
| include/linux/pinctrl/pinconf-generic.h | 5 +++++ |
| 2 files changed, 7 insertions(+) |
| |
| diff --git a/drivers/pinctrl/pinconf-generic.c b/drivers/pinctrl/pinconf-generic.c |
| index 7c593dbd..5810d150 100644 |
| --- a/drivers/pinctrl/pinconf-generic.c |
| +++ b/drivers/pinctrl/pinconf-generic.c |
| @@ -40,6 +40,8 @@ static struct pin_config_item conf_items[] = { |
| PCONFDUMP(PIN_CONFIG_BIAS_BUS_HOLD, "input bias bus hold", NULL), |
| PCONFDUMP(PIN_CONFIG_BIAS_PULL_UP, "input bias pull up", NULL), |
| PCONFDUMP(PIN_CONFIG_BIAS_PULL_DOWN, "input bias pull down", NULL), |
| + PCONFDUMP(PIN_CONFIG_BIAS_PULL_PIN_DEFAULT, |
| + "input bias pull to pin specific state", NULL), |
| PCONFDUMP(PIN_CONFIG_DRIVE_PUSH_PULL, "output drive push pull", NULL), |
| PCONFDUMP(PIN_CONFIG_DRIVE_OPEN_DRAIN, "output drive open drain", NULL), |
| PCONFDUMP(PIN_CONFIG_DRIVE_OPEN_SOURCE, "output drive open source", NULL), |
| diff --git a/include/linux/pinctrl/pinconf-generic.h b/include/linux/pinctrl/pinconf-generic.h |
| index ac05b3cf..d414a772 100644 |
| --- a/include/linux/pinctrl/pinconf-generic.h |
| +++ b/include/linux/pinctrl/pinconf-generic.h |
| @@ -40,6 +40,10 @@ |
| * @PIN_CONFIG_BIAS_PULL_DOWN: the pin will be pulled down (usually with high |
| * impedance to GROUND). If the argument is != 0 pull-down is enabled, |
| * if it is 0, pull-down is disabled. |
| + * @PIN_CONFIG_BIAS_PULL_PIN_DEFAULT: the pin will be pulled up or down based |
| + * on embedded knowledge of the controller, like current mux function. |
| + * If the argument is != 0 pull up/down is enabled, if it is 0, |
| + * the pull is disabled. |
| * @PIN_CONFIG_DRIVE_PUSH_PULL: the pin will be driven actively high and |
| * low, this is the most typical case and is typically achieved with two |
| * active transistors on the output. Setting this config will enable |
| @@ -86,6 +90,7 @@ enum pin_config_param { |
| PIN_CONFIG_BIAS_BUS_HOLD, |
| PIN_CONFIG_BIAS_PULL_UP, |
| PIN_CONFIG_BIAS_PULL_DOWN, |
| + PIN_CONFIG_BIAS_PULL_PIN_DEFAULT, |
| PIN_CONFIG_DRIVE_PUSH_PULL, |
| PIN_CONFIG_DRIVE_OPEN_DRAIN, |
| PIN_CONFIG_DRIVE_OPEN_SOURCE, |
| -- |
| 1.8.4.3.gca3854a |
| |