From: Stefano Babic <sbabic@denx.de>
To: u-boot@lists.denx.de
Subject: [U-Boot] [PATCH] M28: Added pin name support in GPIO driver
Date: Wed, 23 Nov 2011 10:07:39 +0100 [thread overview]
Message-ID: <4ECCB7DB.8040607@denx.de> (raw)
In-Reply-To: <B0658F55E67EDE4A914644632835B2CAF7F1E5@DEUTERIUM.delien.local>
On 22/11/2011 16:40, Robert Deli?n wrote:
> This patch adds adds pin name support in the GPIO driver. With this patch applied, the gpio command supports pins to be addressed with friendly names.
>
> The user's manual refers to pins by the bank number they're in and their number within that bank. With this patch the friendly naming convention to address pin number 5 in bank 3 is b3p5. But names like B00000003p005 are interpreted correctly too.
>
> Signed-off-by: Robert Deli?n <robert@delien.nl>
> diff --git a/arch/arm/include/asm/arch-mx28/gpio.h b/arch/arm/include/asm/arch-mx28/gpio.h
> index be1c944..5ae66e6 100644
> --- a/arch/arm/include/asm/arch-mx28/gpio.h
> +++ b/arch/arm/include/asm/arch-mx28/gpio.h
> @@ -23,8 +23,44 @@
> #ifndef __MX28_GPIO_H__
> #define __MX28_GPIO_H__
>
> +#include <linux/ctype.h>
> +#include <asm/errno.h>
> +#include <asm/arch/iomux.h>
> +
> #ifdef CONFIG_MXS_GPIO
> void mxs_gpio_init(void);
> +
> +static inline int name_to_gpio(const char *name)
> +{
> + int pin_nr;
> +
> + if (name[0] >= '0' && name[0] <= '9') {
> + pin_nr = simple_strtoul(name, (char **)&name, 10);
> + if (name[0])
> + return -EINVAL;
Why do we need this check ? We have already copied / converted the
number in pin_nr, we do not need to check in the string again. And you
do not need to update name, because you are returning in any case.
But still you should check for (name != NULL) before accessing with
(name[0] >= '0' && name[0] <= '9')
> +
> + if (tolower(name[0]) == 'b') {
> + name++;
> + pin_nr = (simple_strtoul(name, (char **)&name, 10) << MXS_PAD_BANK_SHIFT) & MXS_PAD_BANK_MASK;
Does the name come from the user with the "gpio" command, right ? Then
the user can set any possible value here. Should we not check for the
maximum accepted value for MX28 GPIO before shifting ?
> + } else
> + return -EINVAL;
> +
> + if (tolower(name[0]) == 'p') {
> + name++;
> + pin_nr |= (simple_strtoul(name, (char **)&name, 10) << MXS_PAD_PIN_SHIFT) & MXS_PAD_PIN_MASK;
> + } else
> + return -EINVAL;
Ditto
Best regards,
Stefano Babic
--
=====================================================================
DENX Software Engineering GmbH, MD: Wolfgang Denk & Detlev Zundel
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: +49-8142-66989-0 Fax: +49-8142-66989-80 Email: office at denx.de
=====================================================================
next prev parent reply other threads:[~2011-11-23 9:07 UTC|newest]
Thread overview: 14+ messages / expand[flat|nested] mbox.gz Atom feed top
2011-11-22 15:40 [U-Boot] [PATCH] M28: Added pin name support in GPIO driver Robert Deliën
2011-11-22 18:28 ` Marek Vasut
2011-11-22 19:13 ` Robert Deliën
2011-11-22 19:32 ` Marek Vasut
2011-11-22 20:49 ` Robert Deliën
2011-11-22 22:18 ` Mike Frysinger
2011-11-22 22:37 ` Marek Vasut
2011-11-23 10:08 ` Robert Deliën
2011-11-23 22:18 ` Mike Frysinger
2011-11-22 21:10 ` Mike Frysinger
2011-11-22 21:11 ` Mike Frysinger
2011-11-23 9:07 ` Stefano Babic [this message]
2011-11-23 9:51 ` Robert Deliën
2011-11-23 22:11 ` Mike Frysinger
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=4ECCB7DB.8040607@denx.de \
--to=sbabic@denx.de \
--cc=u-boot@lists.denx.de \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.