diff mbox

[U-Boot] gpio: mxs: add name_to_gpio() function

Message ID 1450218477-28372-1-git-send-email-mans@mansr.com
State Awaiting Upstream
Delegated to: Stefano Babic
Headers show

Commit Message

Måns Rullgård Dec. 15, 2015, 10:27 p.m. UTC
Override the default name_to_gpio() function with one that
accepts strings of the form bank:pin.  If a colon is present
in the provided name, it behaves like the default version.

This lets the "gpio" command work with sane names rather than
requiring the user to enter the bank/pin composite in decimal.

Signed-off-by: Mans Rullgard <mans@mansr.com>
---
 drivers/gpio/mxs_gpio.c | 15 +++++++++++++++
 1 file changed, 15 insertions(+)

Comments

Stefano Babic Jan. 3, 2016, 3:05 p.m. UTC | #1
On 15/12/2015 23:27, Mans Rullgard wrote:
> Override the default name_to_gpio() function with one that
> accepts strings of the form bank:pin.  If a colon is present
> in the provided name, it behaves like the default version.
> 
> This lets the "gpio" command work with sane names rather than
> requiring the user to enter the bank/pin composite in decimal.
> 
> Signed-off-by: Mans Rullgard <mans@mansr.com>
> ---
>  drivers/gpio/mxs_gpio.c | 15 +++++++++++++++
>  1 file changed, 15 insertions(+)
> 
> diff --git a/drivers/gpio/mxs_gpio.c b/drivers/gpio/mxs_gpio.c
> index da0199b..b54a10b 100644
> --- a/drivers/gpio/mxs_gpio.c
> +++ b/drivers/gpio/mxs_gpio.c
> @@ -114,3 +114,18 @@ int gpio_free(unsigned gpio)
>  {
>  	return 0;
>  }
> +
> +int name_to_gpio(const char *name)
> +{
> +	unsigned bank, pin;
> +	char *end;
> +
> +	bank = simple_strtoul(name, &end, 10);
> +
> +	if (!*end || *end != ':')
> +		return bank;
> +
> +	pin = simple_strtoul(end + 1, NULL, 10);
> +
> +	return (bank << MXS_PAD_BANK_SHIFT) | (pin << MXS_PAD_PIN_SHIFT);
> +}
> 

Reviewed-by: Stefano Babic <sbabic@denx.de>

Best regards,
Stefano Babic
diff mbox

Patch

diff --git a/drivers/gpio/mxs_gpio.c b/drivers/gpio/mxs_gpio.c
index da0199b..b54a10b 100644
--- a/drivers/gpio/mxs_gpio.c
+++ b/drivers/gpio/mxs_gpio.c
@@ -114,3 +114,18 @@  int gpio_free(unsigned gpio)
 {
 	return 0;
 }
+
+int name_to_gpio(const char *name)
+{
+	unsigned bank, pin;
+	char *end;
+
+	bank = simple_strtoul(name, &end, 10);
+
+	if (!*end || *end != ':')
+		return bank;
+
+	pin = simple_strtoul(end + 1, NULL, 10);
+
+	return (bank << MXS_PAD_BANK_SHIFT) | (pin << MXS_PAD_PIN_SHIFT);
+}