Re: [PATCH] gpio: search for gpio label if gpio is not found through bank name

2020-01-29 Thread Simon Glass
Hi Heiko,

On Tue, 14 Jan 2020 at 02:29, Heiko Schocher  wrote:
>
> Hello Simon,
>
> Am 10.12.2019 um 13:39 schrieb Simon Glass:
> > Hi Heiko,
> >
> > On Wed, 30 Oct 2019 at 04:29, Heiko Schocher  wrote:
> >>
> >> dm_gpio_lookup_name() searches for a gpio through
> >> the bank name. But we have also gpio labels, and it
> >> makes sense to search for a gpio also in the labels
> >> we have defined, if no gpio is found through the
> >> bank name definition.
> >>
> >> This is useful for example if you have a wp pin on
> >> different gpios on different board versions.
> >>
> >> If dm_gpio_lookup_name() searches also for the gpio labels,
> >> you can give the gpio an unique label name and search
> >> for this label, and do not need to differ between
> >> board revisions.
> >>
> >> Signed-off-by: Heiko Schocher 
> >> ---
> >>
> >> Example on the aristainetos board:
> >>
> >> => gpio clear wp_spi_nor.gpio-hog
> >> gpio: pin wp_spi_nor.gpio-hog (gpio 47) value is 0
> >> =>
> >>
> >> before this patch, you need to know where your
> >> pin is:
> >>
> >> => gpio clear GPIO2_15
> >> gpio: pin GPIO2_15 (gpio 47) value is 0
> >> =>
> >>
> >> travis build:
> >> https://travis-ci.org/hsdenx/u-boot-test/builds/604290746
> >>
> >>   drivers/gpio/gpio-uclass.c | 20 
> >>   1 file changed, 20 insertions(+)
> >
> > Thanks for making this so clear.
> >
> > I have been wondering whether this should be enabled by a CONFIG but
> > in fact it doesn't add much and the lookup function is only called by
> > those who are not using the device-tree phandle mechanism. >
> > But I think it needs two changes:
> > - Move code into a separate function called from dm_gpio_lookup_name()
>
> done.
>
> > - Add a sandbox test for both cases
>
> Do you mean to add tests in "test/dm/gpio.c" ?

Yes that's right.

Regards,
SImon


Re: [PATCH] gpio: search for gpio label if gpio is not found through bank name

2020-01-14 Thread Heiko Schocher

Hello Simon,

Am 10.12.2019 um 13:39 schrieb Simon Glass:

Hi Heiko,

On Wed, 30 Oct 2019 at 04:29, Heiko Schocher  wrote:


dm_gpio_lookup_name() searches for a gpio through
the bank name. But we have also gpio labels, and it
makes sense to search for a gpio also in the labels
we have defined, if no gpio is found through the
bank name definition.

This is useful for example if you have a wp pin on
different gpios on different board versions.

If dm_gpio_lookup_name() searches also for the gpio labels,
you can give the gpio an unique label name and search
for this label, and do not need to differ between
board revisions.

Signed-off-by: Heiko Schocher 
---

Example on the aristainetos board:

=> gpio clear wp_spi_nor.gpio-hog
gpio: pin wp_spi_nor.gpio-hog (gpio 47) value is 0
=>

before this patch, you need to know where your
pin is:

=> gpio clear GPIO2_15
gpio: pin GPIO2_15 (gpio 47) value is 0
=>

travis build:
https://travis-ci.org/hsdenx/u-boot-test/builds/604290746

  drivers/gpio/gpio-uclass.c | 20 
  1 file changed, 20 insertions(+)


Thanks for making this so clear.

I have been wondering whether this should be enabled by a CONFIG but
in fact it doesn't add much and the lookup function is only called by
those who are not using the device-tree phandle mechanism. >
But I think it needs two changes:
- Move code into a separate function called from dm_gpio_lookup_name()


done.


- Add a sandbox test for both cases


Do you mean to add tests in "test/dm/gpio.c" ?

Thanks!

bye,
Heiko
--
DENX Software Engineering GmbH,  Managing Director: Wolfgang Denk
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: +49-8142-66989-52   Fax: +49-8142-66989-80   Email: h...@denx.de


Re: [PATCH] gpio: search for gpio label if gpio is not found through bank name

2019-12-10 Thread Simon Glass
Hi Heiko,

On Wed, 30 Oct 2019 at 04:29, Heiko Schocher  wrote:
>
> dm_gpio_lookup_name() searches for a gpio through
> the bank name. But we have also gpio labels, and it
> makes sense to search for a gpio also in the labels
> we have defined, if no gpio is found through the
> bank name definition.
>
> This is useful for example if you have a wp pin on
> different gpios on different board versions.
>
> If dm_gpio_lookup_name() searches also for the gpio labels,
> you can give the gpio an unique label name and search
> for this label, and do not need to differ between
> board revisions.
>
> Signed-off-by: Heiko Schocher 
> ---
>
> Example on the aristainetos board:
>
> => gpio clear wp_spi_nor.gpio-hog
> gpio: pin wp_spi_nor.gpio-hog (gpio 47) value is 0
> =>
>
> before this patch, you need to know where your
> pin is:
>
> => gpio clear GPIO2_15
> gpio: pin GPIO2_15 (gpio 47) value is 0
> =>
>
> travis build:
> https://travis-ci.org/hsdenx/u-boot-test/builds/604290746
>
>  drivers/gpio/gpio-uclass.c | 20 
>  1 file changed, 20 insertions(+)

Thanks for making this so clear.

I have been wondering whether this should be enabled by a CONFIG but
in fact it doesn't add much and the lookup function is only called by
those who are not using the device-tree phandle mechanism.

But I think it needs two changes:
- Move code into a separate function called from dm_gpio_lookup_name()
- Add a sandbox test for both cases

Regards,
Simon


[U-Boot] [PATCH] gpio: search for gpio label if gpio is not found through bank name

2019-10-30 Thread Heiko Schocher
dm_gpio_lookup_name() searches for a gpio through
the bank name. But we have also gpio labels, and it
makes sense to search for a gpio also in the labels
we have defined, if no gpio is found through the
bank name definition.

This is useful for example if you have a wp pin on
different gpios on different board versions.

If dm_gpio_lookup_name() searches also for the gpio labels,
you can give the gpio an unique label name and search
for this label, and do not need to differ between
board revisions.

Signed-off-by: Heiko Schocher 
---

Example on the aristainetos board:

=> gpio clear wp_spi_nor.gpio-hog
gpio: pin wp_spi_nor.gpio-hog (gpio 47) value is 0
=>

before this patch, you need to know where your
pin is:

=> gpio clear GPIO2_15
gpio: pin GPIO2_15 (gpio 47) value is 0
=>

travis build:
https://travis-ci.org/hsdenx/u-boot-test/builds/604290746

 drivers/gpio/gpio-uclass.c | 20 
 1 file changed, 20 insertions(+)

diff --git a/drivers/gpio/gpio-uclass.c b/drivers/gpio/gpio-uclass.c
index 90fbed455b..755744bc00 100644
--- a/drivers/gpio/gpio-uclass.c
+++ b/drivers/gpio/gpio-uclass.c
@@ -79,6 +79,26 @@ int dm_gpio_lookup_name(const char *name, struct gpio_desc 
*desc)
if (!strncasecmp(name, uc_priv->bank_name, len)) {
if (!strict_strtoul(name + len, 10, ))
break;
+   } else {
+   /*
+* if we did not found a gpio through its bank
+* name, we search for a valid gpio label.
+*/
+   bool found = 0;
+
+   len = strlen(name);
+   for (offset = 0; offset < uc_priv->gpio_count;
+offset++) {
+   if (!uc_priv->name[offset])
+   continue;
+   if (!strncmp(name, uc_priv->name[offset],
+len)) {
+   found = 1;
+   break;
+   }
+   }
+   if (found)
+   break;
}
}
 
-- 
2.21.0

___
U-Boot mailing list
U-Boot@lists.denx.de
https://lists.denx.de/listinfo/u-boot