* [PATCH v6 1/3] gpio-uclass.c: save the GPIOD flags also in the gpio descriptor
2020-05-22 9:08 [PATCH v6 0/3] gpio: add possibility to search for gpio label name Heiko Schocher
@ 2020-05-22 9:08 ` Heiko Schocher
2020-05-22 23:13 ` Simon Glass
` (2 more replies)
2020-05-22 9:08 ` [PATCH v6 2/3] sandbox, test: add test for GPIO_HOG function Heiko Schocher
2020-05-22 9:08 ` [PATCH v6 3/3] gpio: search for gpio label if gpio is not found through bank name Heiko Schocher
2 siblings, 3 replies; 13+ messages in thread
From: Heiko Schocher @ 2020-05-22 9:08 UTC (permalink / raw)
To: u-boot
save the GPIOD_ flags also in the gpio descriptor.
Signed-off-by: Heiko Schocher <hs@denx.de>
Reviewed-by: Patrick Delaunay <patrick.delaunay@st.com>
Fixes: 788ea834124b ("gpio: add function _dm_gpio_set_dir_flags")
---
Changes in v6:
- add reviewed by from Patrick and Fixes tag
Changes in v5:
- add comment from patrick, update the descriptor flags
in _dm_gpio_set_dir_flags() if setting direction was OK.
Changes in v4:
- new in version 4
Changes in v3: None
Changes in v2: None
drivers/gpio/gpio-uclass.c | 8 ++++----
1 file changed, 4 insertions(+), 4 deletions(-)
diff --git a/drivers/gpio/gpio-uclass.c b/drivers/gpio/gpio-uclass.c
index 9eeab22eef..f016532354 100644
--- a/drivers/gpio/gpio-uclass.c
+++ b/drivers/gpio/gpio-uclass.c
@@ -600,6 +600,10 @@ static int _dm_gpio_set_dir_flags(struct gpio_desc *desc, ulong flags)
}
}
+ /* save the flags also in descriptor */
+ if (!ret)
+ desc->flags = flags;
+
return ret;
}
@@ -615,10 +619,6 @@ int dm_gpio_set_dir_flags(struct gpio_desc *desc, ulong flags)
flags |= desc->flags;
ret = _dm_gpio_set_dir_flags(desc, flags);
- /* update the descriptor flags */
- if (ret)
- desc->flags = flags;
-
return ret;
}
--
2.24.1
^ permalink raw reply related [flat|nested] 13+ messages in thread* [PATCH v6 1/3] gpio-uclass.c: save the GPIOD flags also in the gpio descriptor
2020-05-22 9:08 ` [PATCH v6 1/3] gpio-uclass.c: save the GPIOD flags also in the gpio descriptor Heiko Schocher
@ 2020-05-22 23:13 ` Simon Glass
2020-06-30 16:19 ` Walter Lozano
2020-07-05 21:58 ` Tom Rini
2 siblings, 0 replies; 13+ messages in thread
From: Simon Glass @ 2020-05-22 23:13 UTC (permalink / raw)
To: u-boot
On Fri, 22 May 2020 at 03:09, Heiko Schocher <hs@denx.de> wrote:
>
> save the GPIOD_ flags also in the gpio descriptor.
>
> Signed-off-by: Heiko Schocher <hs@denx.de>
> Reviewed-by: Patrick Delaunay <patrick.delaunay@st.com>
> Fixes: 788ea834124b ("gpio: add function _dm_gpio_set_dir_flags")
>
> ---
>
> Changes in v6:
> - add reviewed by from Patrick and Fixes tag
>
> Changes in v5:
> - add comment from patrick, update the descriptor flags
> in _dm_gpio_set_dir_flags() if setting direction was OK.
>
> Changes in v4:
> - new in version 4
>
> Changes in v3: None
> Changes in v2: None
>
> drivers/gpio/gpio-uclass.c | 8 ++++----
> 1 file changed, 4 insertions(+), 4 deletions(-)
Reviewed-by: Simon Glass <sjg@chromium.org>
^ permalink raw reply [flat|nested] 13+ messages in thread* [PATCH v6 1/3] gpio-uclass.c: save the GPIOD flags also in the gpio descriptor
2020-05-22 9:08 ` [PATCH v6 1/3] gpio-uclass.c: save the GPIOD flags also in the gpio descriptor Heiko Schocher
2020-05-22 23:13 ` Simon Glass
@ 2020-06-30 16:19 ` Walter Lozano
2020-07-01 15:24 ` Walter Lozano
2020-07-05 21:58 ` Tom Rini
2 siblings, 1 reply; 13+ messages in thread
From: Walter Lozano @ 2020-06-30 16:19 UTC (permalink / raw)
To: u-boot
Hi Heiko
On 22/5/20 06:08, Heiko Schocher wrote:
> save the GPIOD_ flags also in the gpio descriptor.
>
> Signed-off-by: Heiko Schocher <hs@denx.de>
> Reviewed-by: Patrick Delaunay <patrick.delaunay@st.com>
> Fixes: 788ea834124b ("gpio: add function _dm_gpio_set_dir_flags")
Thanks for this fix, without it the MMC driver of my iMX6 Hummingboard
produces "Card did not respond to voltage select!" and does not work.
> ---
>
> Changes in v6:
> - add reviewed by from Patrick and Fixes tag
>
> Changes in v5:
> - add comment from patrick, update the descriptor flags
> in _dm_gpio_set_dir_flags() if setting direction was OK.
>
> Changes in v4:
> - new in version 4
>
> Changes in v3: None
> Changes in v2: None
>
> drivers/gpio/gpio-uclass.c | 8 ++++----
> 1 file changed, 4 insertions(+), 4 deletions(-)
>
> diff --git a/drivers/gpio/gpio-uclass.c b/drivers/gpio/gpio-uclass.c
> index 9eeab22eef..f016532354 100644
> --- a/drivers/gpio/gpio-uclass.c
> +++ b/drivers/gpio/gpio-uclass.c
> @@ -600,6 +600,10 @@ static int _dm_gpio_set_dir_flags(struct gpio_desc *desc, ulong flags)
> }
> }
>
> + /* save the flags also in descriptor */
> + if (!ret)
> + desc->flags = flags;
> +
> return ret;
> }
>
> @@ -615,10 +619,6 @@ int dm_gpio_set_dir_flags(struct gpio_desc *desc, ulong flags)
> flags |= desc->flags;
> ret = _dm_gpio_set_dir_flags(desc, flags);
>
> - /* update the descriptor flags */
> - if (ret)
> - desc->flags = flags;
> -
> return ret;
> }
>
Regards,
Walter
^ permalink raw reply [flat|nested] 13+ messages in thread* [PATCH v6 1/3] gpio-uclass.c: save the GPIOD flags also in the gpio descriptor
2020-06-30 16:19 ` Walter Lozano
@ 2020-07-01 15:24 ` Walter Lozano
0 siblings, 0 replies; 13+ messages in thread
From: Walter Lozano @ 2020-07-01 15:24 UTC (permalink / raw)
To: u-boot
On 30/6/20 13:19, Walter Lozano wrote:
> Hi Heiko
>
> On 22/5/20 06:08, Heiko Schocher wrote:
>> save the GPIOD_ flags also in the gpio descriptor.
>>
>> Signed-off-by: Heiko Schocher <hs@denx.de>
>> Reviewed-by: Patrick Delaunay <patrick.delaunay@st.com>
>> Fixes: 788ea834124b ("gpio: add function _dm_gpio_set_dir_flags")
>
>
> Thanks for this fix, without it the MMC driver of my iMX6 Hummingboard
> produces "Card did not respond to voltage select!" and does not work.
Tested-by: Walter Lozano <walter.lozano@collabora.com>
Regards,
Walter
>
>> ---
>>
>> Changes in v6:
>> - add reviewed by from Patrick and Fixes tag
>>
>> Changes in v5:
>> - add comment from patrick, update the descriptor flags
>> ?? in _dm_gpio_set_dir_flags() if setting direction was OK.
>>
>> Changes in v4:
>> - new in version 4
>>
>> Changes in v3: None
>> Changes in v2: None
>>
>> ? drivers/gpio/gpio-uclass.c | 8 ++++----
>> ? 1 file changed, 4 insertions(+), 4 deletions(-)
>>
>> diff --git a/drivers/gpio/gpio-uclass.c b/drivers/gpio/gpio-uclass.c
>> index 9eeab22eef..f016532354 100644
>> --- a/drivers/gpio/gpio-uclass.c
>> +++ b/drivers/gpio/gpio-uclass.c
>> @@ -600,6 +600,10 @@ static int _dm_gpio_set_dir_flags(struct
>> gpio_desc *desc, ulong flags)
>> ????????? }
>> ????? }
>> ? +??? /* save the flags also in descriptor */
>> +??? if (!ret)
>> +??????? desc->flags = flags;
>> +
>> ????? return ret;
>> ? }
>> ? @@ -615,10 +619,6 @@ int dm_gpio_set_dir_flags(struct gpio_desc
>> *desc, ulong flags)
>> ????? flags |= desc->flags;
>> ????? ret = _dm_gpio_set_dir_flags(desc, flags);
>> ? -??? /* update the descriptor flags */
>> -??? if (ret)
>> -??????? desc->flags = flags;
>> -
>> ????? return ret;
>> ? }
>
>
> Regards,
>
> Walter
>
^ permalink raw reply [flat|nested] 13+ messages in thread
* [PATCH v6 1/3] gpio-uclass.c: save the GPIOD flags also in the gpio descriptor
2020-05-22 9:08 ` [PATCH v6 1/3] gpio-uclass.c: save the GPIOD flags also in the gpio descriptor Heiko Schocher
2020-05-22 23:13 ` Simon Glass
2020-06-30 16:19 ` Walter Lozano
@ 2020-07-05 21:58 ` Tom Rini
2 siblings, 0 replies; 13+ messages in thread
From: Tom Rini @ 2020-07-05 21:58 UTC (permalink / raw)
To: u-boot
On Fri, May 22, 2020 at 11:08:56AM +0200, Heiko Schocher wrote:
> save the GPIOD_ flags also in the gpio descriptor.
>
> Signed-off-by: Heiko Schocher <hs@denx.de>
> Reviewed-by: Patrick Delaunay <patrick.delaunay@st.com>
> Fixes: 788ea834124b ("gpio: add function _dm_gpio_set_dir_flags")
> Reviewed-by: Simon Glass <sjg@chromium.org>
> Tested-by: Walter Lozano <walter.lozano@collabora.com>
Applied to u-boot/master, thanks!
--
Tom
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 659 bytes
Desc: not available
URL: <https://lists.denx.de/pipermail/u-boot/attachments/20200705/aab9978b/attachment.sig>
^ permalink raw reply [flat|nested] 13+ messages in thread
* [PATCH v6 2/3] sandbox, test: add test for GPIO_HOG function
2020-05-22 9:08 [PATCH v6 0/3] gpio: add possibility to search for gpio label name Heiko Schocher
2020-05-22 9:08 ` [PATCH v6 1/3] gpio-uclass.c: save the GPIOD flags also in the gpio descriptor Heiko Schocher
@ 2020-05-22 9:08 ` Heiko Schocher
2020-07-05 21:58 ` Tom Rini
2020-05-22 9:08 ` [PATCH v6 3/3] gpio: search for gpio label if gpio is not found through bank name Heiko Schocher
2 siblings, 1 reply; 13+ messages in thread
From: Heiko Schocher @ 2020-05-22 9:08 UTC (permalink / raw)
To: u-boot
currently gpio hog function is not tested with "ut dm gpio"
so add some basic tests for gpio hog functionality.
For this enable GPIO_HOG in sandbox_defconfig, add
in DTS some gpio hog entries, and add testcase in
"ut dm gpio" command.
Signed-off-by: Heiko Schocher <hs@denx.de>
Reviewed-by: Simon Glass <sjg@chromium.org>
---
Changes in v6: None
Changes in v5:
- add Reviewed-by tag from Simon
Changes in v4:
- rebased to current master ac14bc4169
Changes in v3: None
Changes in v2:
- add basic gpio hog test functions
arch/sandbox/dts/test.dts | 20 ++++++++++++++++++++
configs/sandbox64_defconfig | 1 +
configs/sandbox_defconfig | 1 +
configs/sandbox_flattree_defconfig | 1 +
configs/sandbox_spl_defconfig | 1 +
test/dm/gpio.c | 23 +++++++++++++++++++++++
6 files changed, 47 insertions(+)
diff --git a/arch/sandbox/dts/test.dts b/arch/sandbox/dts/test.dts
index 5ce5e28476..24bb3ce36f 100644
--- a/arch/sandbox/dts/test.dts
+++ b/arch/sandbox/dts/test.dts
@@ -343,6 +343,26 @@
#gpio-cells = <1>;
gpio-bank-name = "a";
sandbox,gpio-count = <20>;
+ hog_input_active_low {
+ gpio-hog;
+ input;
+ gpios = <0 GPIO_ACTIVE_LOW>;
+ };
+ hog_input_active_high {
+ gpio-hog;
+ input;
+ gpios = <1 GPIO_ACTIVE_HIGH>;
+ };
+ hog_output_low {
+ gpio-hog;
+ output-low;
+ gpios = <2 GPIO_ACTIVE_HIGH>;
+ };
+ hog_output_high {
+ gpio-hog;
+ output-high;
+ gpios = <3 GPIO_ACTIVE_HIGH>;
+ };
};
gpio_b: extra-gpios {
diff --git a/configs/sandbox64_defconfig b/configs/sandbox64_defconfig
index c1237ea296..39dc3dc687 100644
--- a/configs/sandbox64_defconfig
+++ b/configs/sandbox64_defconfig
@@ -98,6 +98,7 @@ CONFIG_DM_DEMO_SIMPLE=y
CONFIG_DM_DEMO_SHAPE=y
CONFIG_BOARD=y
CONFIG_BOARD_SANDBOX=y
+CONFIG_GPIO_HOG=y
CONFIG_PM8916_GPIO=y
CONFIG_SANDBOX_GPIO=y
CONFIG_I2C_CROS_EC_TUNNEL=y
diff --git a/configs/sandbox_defconfig b/configs/sandbox_defconfig
index 9445d78118..9015458070 100644
--- a/configs/sandbox_defconfig
+++ b/configs/sandbox_defconfig
@@ -115,6 +115,7 @@ CONFIG_BOARD_SANDBOX=y
CONFIG_DMA=y
CONFIG_DMA_CHANNELS=y
CONFIG_SANDBOX_DMA=y
+CONFIG_GPIO_HOG=y
CONFIG_PM8916_GPIO=y
CONFIG_SANDBOX_GPIO=y
CONFIG_DM_HWSPINLOCK=y
diff --git a/configs/sandbox_flattree_defconfig b/configs/sandbox_flattree_defconfig
index a4a7ae8379..b5a85e1278 100644
--- a/configs/sandbox_flattree_defconfig
+++ b/configs/sandbox_flattree_defconfig
@@ -83,6 +83,7 @@ CONFIG_DM_DEMO_SIMPLE=y
CONFIG_DM_DEMO_SHAPE=y
CONFIG_BOARD=y
CONFIG_BOARD_SANDBOX=y
+CONFIG_GPIO_HOG=y
CONFIG_PM8916_GPIO=y
CONFIG_SANDBOX_GPIO=y
CONFIG_I2C_CROS_EC_TUNNEL=y
diff --git a/configs/sandbox_spl_defconfig b/configs/sandbox_spl_defconfig
index 945fe54d20..7341fa3221 100644
--- a/configs/sandbox_spl_defconfig
+++ b/configs/sandbox_spl_defconfig
@@ -102,6 +102,7 @@ CONFIG_DM_DEMO_SHAPE=y
CONFIG_BOARD=y
CONFIG_BOARD_SANDBOX=y
CONFIG_SPL_FIRMWARE=y
+CONFIG_GPIO_HOG=y
CONFIG_PM8916_GPIO=y
CONFIG_SANDBOX_GPIO=y
CONFIG_I2C_CROS_EC_TUNNEL=y
diff --git a/test/dm/gpio.c b/test/dm/gpio.c
index b5ee4e4f87..ecba566983 100644
--- a/test/dm/gpio.c
+++ b/test/dm/gpio.c
@@ -20,6 +20,7 @@ static int dm_test_gpio(struct unit_test_state *uts)
unsigned int offset, gpio;
struct dm_gpio_ops *ops;
struct udevice *dev;
+ struct gpio_desc *desc;
const char *name;
int offset_count;
char buf[80];
@@ -109,6 +110,28 @@ static int dm_test_gpio(struct unit_test_state *uts)
ut_asserteq_str("a", name);
ut_asserteq(20, offset_count);
+ /* add gpio hog tests */
+ ut_assertok(gpio_hog_lookup_name("hog_input_active_low", &desc));
+ ut_asserteq(GPIOD_IS_IN | GPIOD_ACTIVE_LOW, desc->flags);
+ ut_asserteq(0, desc->offset);
+ ut_asserteq(1, dm_gpio_get_value(desc));
+ ut_assertok(gpio_hog_lookup_name("hog_input_active_high", &desc));
+ ut_asserteq(GPIOD_IS_IN, desc->flags);
+ ut_asserteq(1, desc->offset);
+ ut_asserteq(0, dm_gpio_get_value(desc));
+ ut_assertok(gpio_hog_lookup_name("hog_output_low", &desc));
+ ut_asserteq(GPIOD_IS_OUT, desc->flags);
+ ut_asserteq(2, desc->offset);
+ ut_asserteq(0, dm_gpio_get_value(desc));
+ ut_assertok(dm_gpio_set_value(desc, 1));
+ ut_asserteq(1, dm_gpio_get_value(desc));
+ ut_assertok(gpio_hog_lookup_name("hog_output_high", &desc));
+ ut_asserteq(GPIOD_IS_OUT, desc->flags);
+ ut_asserteq(3, desc->offset);
+ ut_asserteq(1, dm_gpio_get_value(desc));
+ ut_assertok(dm_gpio_set_value(desc, 0));
+ ut_asserteq(0, dm_gpio_get_value(desc));
+
return 0;
}
DM_TEST(dm_test_gpio, DM_TESTF_SCAN_PDATA | DM_TESTF_SCAN_FDT);
--
2.24.1
^ permalink raw reply related [flat|nested] 13+ messages in thread* [PATCH v6 3/3] gpio: search for gpio label if gpio is not found through bank name
2020-05-22 9:08 [PATCH v6 0/3] gpio: add possibility to search for gpio label name Heiko Schocher
2020-05-22 9:08 ` [PATCH v6 1/3] gpio-uclass.c: save the GPIOD flags also in the gpio descriptor Heiko Schocher
2020-05-22 9:08 ` [PATCH v6 2/3] sandbox, test: add test for GPIO_HOG function Heiko Schocher
@ 2020-05-22 9:08 ` Heiko Schocher
2020-07-08 3:03 ` Tom Rini
2020-07-20 8:30 ` Michal Simek
2 siblings, 2 replies; 13+ messages in thread
From: Heiko Schocher @ 2020-05-22 9:08 UTC (permalink / raw)
To: u-boot
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 <hs@denx.de>
Reviewed-by: Simon Glass <sjg@chromium.org>
---
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:
Changes in v6:
- add Reviewed-by tag from Simon
- add additional comments from Simon:
- remove "default n" in Kconfig for SPL_DM_GPIO_LOOKUP_LABEL
- type of function in same line as the function
- add negativ test, where label is not found
Changes in v5: None
Changes in v4:
- rebased to current master ac14bc4169
Changes in v3:
- add comment from Simon Glass
make this new function configurable through Kconfig
option DM_GPIO_LOOKUP_LABEL
Changes in v2:
- add comment from Simon Glass
move code into seperate function dm_gpio_lookup_label()
add test if dm_gpio_lookup_label() works
drivers/gpio/Kconfig | 21 +++++++++++++++++
drivers/gpio/gpio-uclass.c | 46 ++++++++++++++++++++++++++++++++++++++
test/dm/gpio.c | 9 ++++++++
3 files changed, 76 insertions(+)
diff --git a/drivers/gpio/Kconfig b/drivers/gpio/Kconfig
index d87f6cc105..829c68eda1 100644
--- a/drivers/gpio/Kconfig
+++ b/drivers/gpio/Kconfig
@@ -46,6 +46,27 @@ config GPIO_HOG
is a mechanism providing automatic GPIO request and config-
uration as part of the gpio-controller's driver probe function.
+config DM_GPIO_LOOKUP_LABEL
+ bool "Enable searching for gpio labelnames"
+ depends on DM_GPIO
+ default y
+ help
+ This option enables searching for gpio names in
+ the defined gpio labels, if the search for the
+ gpio bank name failed. This makes sense if you use
+ different gpios on different hardware versions
+ for the same functionality in board code.
+
+config SPL_DM_GPIO_LOOKUP_LABEL
+ bool "Enable searching for gpio labelnames"
+ depends on DM_GPIO && SPL_DM && SPL_GPIO_SUPPORT
+ help
+ This option enables searching for gpio names in
+ the defined gpio labels, if the search for the
+ gpio bank name failed. This makes sense if you use
+ different gpios on different hardware versions
+ for the same functionality in board code.
+
config ALTERA_PIO
bool "Altera PIO driver"
depends on DM_GPIO
diff --git a/drivers/gpio/gpio-uclass.c b/drivers/gpio/gpio-uclass.c
index f016532354..ab17fa8a5d 100644
--- a/drivers/gpio/gpio-uclass.c
+++ b/drivers/gpio/gpio-uclass.c
@@ -68,6 +68,45 @@ static int gpio_to_device(unsigned int gpio, struct gpio_desc *desc)
return ret ? ret : -ENOENT;
}
+#if CONFIG_IS_ENABLED(DM_GPIO_LOOKUP_LABEL)
+/**
+ * dm_gpio_lookup_label() - look for name in gpio device
+ *
+ * search in uc_priv, if there is a gpio with labelname same
+ * as name.
+ *
+ * @name: name which is searched
+ * @uc_priv: gpio_dev_priv pointer.
+ * @offset: gpio offset within the device
+ * @return: 0 if found, -ENOENT if not.
+ */
+static int dm_gpio_lookup_label(const char *name,
+ struct gpio_dev_priv *uc_priv, ulong *offset)
+{
+ int len;
+ int i;
+
+ *offset = -1;
+ len = strlen(name);
+ for (i = 0; i < uc_priv->gpio_count; i++) {
+ if (!uc_priv->name[i])
+ continue;
+ if (!strncmp(name, uc_priv->name[i], len)) {
+ *offset = i;
+ return 0;
+ }
+ }
+ return -ENOENT;
+}
+#else
+static int
+dm_gpio_lookup_label(const char *name, struct gpio_dev_priv *uc_priv,
+ ulong *offset)
+{
+ return -ENOENT;
+}
+#endif
+
int dm_gpio_lookup_name(const char *name, struct gpio_desc *desc)
{
struct gpio_dev_priv *uc_priv = NULL;
@@ -96,6 +135,13 @@ int dm_gpio_lookup_name(const char *name, struct gpio_desc *desc)
if (!strict_strtoul(name + len, 10, &offset))
break;
}
+
+ /*
+ * if we did not found a gpio through its bank
+ * name, we search for a valid gpio label.
+ */
+ if (!dm_gpio_lookup_label(name, uc_priv, &offset))
+ break;
}
if (!dev)
diff --git a/test/dm/gpio.c b/test/dm/gpio.c
index ecba566983..fcee1fe598 100644
--- a/test/dm/gpio.c
+++ b/test/dm/gpio.c
@@ -132,6 +132,15 @@ static int dm_test_gpio(struct unit_test_state *uts)
ut_assertok(dm_gpio_set_value(desc, 0));
ut_asserteq(0, dm_gpio_get_value(desc));
+ /* Check if lookup for labels work */
+ ut_assertok(gpio_lookup_name("hog_input_active_low", &dev, &offset,
+ &gpio));
+ ut_asserteq_str(dev->name, "base-gpios");
+ ut_asserteq(0, offset);
+ ut_asserteq(CONFIG_SANDBOX_GPIO_COUNT + 0, gpio);
+ ut_assert(gpio_lookup_name("hog_not_exist", &dev, &offset,
+ &gpio));
+
return 0;
}
DM_TEST(dm_test_gpio, DM_TESTF_SCAN_PDATA | DM_TESTF_SCAN_FDT);
--
2.24.1
^ permalink raw reply related [flat|nested] 13+ messages in thread* [PATCH v6 3/3] gpio: search for gpio label if gpio is not found through bank name
2020-05-22 9:08 ` [PATCH v6 3/3] gpio: search for gpio label if gpio is not found through bank name Heiko Schocher
@ 2020-07-08 3:03 ` Tom Rini
2020-07-20 8:30 ` Michal Simek
1 sibling, 0 replies; 13+ messages in thread
From: Tom Rini @ 2020-07-08 3:03 UTC (permalink / raw)
To: u-boot
On Fri, May 22, 2020 at 11:08:59AM +0200, 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 <hs@denx.de>
> Reviewed-by: Simon Glass <sjg@chromium.org>
Applied to u-boot/master, thanks!
--
Tom
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 659 bytes
Desc: not available
URL: <https://lists.denx.de/pipermail/u-boot/attachments/20200707/5fa1f5d1/attachment.sig>
^ permalink raw reply [flat|nested] 13+ messages in thread
* [PATCH v6 3/3] gpio: search for gpio label if gpio is not found through bank name
2020-05-22 9:08 ` [PATCH v6 3/3] gpio: search for gpio label if gpio is not found through bank name Heiko Schocher
2020-07-08 3:03 ` Tom Rini
@ 2020-07-20 8:30 ` Michal Simek
2020-07-21 6:40 ` Heiko Schocher
1 sibling, 1 reply; 13+ messages in thread
From: Michal Simek @ 2020-07-20 8:30 UTC (permalink / raw)
To: u-boot
Hi Heiko,
p? 22. 5. 2020 v 11:10 odes?latel Heiko Schocher <hs@denx.de> napsal:
>
> 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 <hs@denx.de>
> Reviewed-by: Simon Glass <sjg@chromium.org>
> ---
>
> 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
> =>
I spotted this patch and I am curious if you have thought about also
supporting gpio-line-names.
Thanks,
Michal
^ permalink raw reply [flat|nested] 13+ messages in thread
* [PATCH v6 3/3] gpio: search for gpio label if gpio is not found through bank name
2020-07-20 8:30 ` Michal Simek
@ 2020-07-21 6:40 ` Heiko Schocher
2020-07-21 13:18 ` Michal Simek
0 siblings, 1 reply; 13+ messages in thread
From: Heiko Schocher @ 2020-07-21 6:40 UTC (permalink / raw)
To: u-boot
Hi Michal,
Am 20.07.2020 um 10:30 schrieb Michal Simek:
> Hi Heiko,
>
> p? 22. 5. 2020 v 11:10 odes?latel Heiko Schocher <hs@denx.de> napsal:
>>
>> 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 <hs@denx.de>
>> Reviewed-by: Simon Glass <sjg@chromium.org>
>> ---
>>
>> 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
>> =>
>
> I spotted this patch and I am curious if you have thought about also
> supporting gpio-line-names.
Yes, that would be a good extension!
searching for "gpio-line-names" in u-boot source shows only an entry in
./doc/device-tree-bindings/gpio/gpio.txt
and some DTS files in arch/arm
but no driver code, which handles the property, so there is some
work to do.
Currently I have no project (and time) to give this a chance...
But if the code, which handle "gpio-line-names" saves the name in
"struct gpio_dev_priv name", DM_GPIO_LOOKUP_LABEL based code should
work with it.
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: hs at denx.de
^ permalink raw reply [flat|nested] 13+ messages in thread
* [PATCH v6 3/3] gpio: search for gpio label if gpio is not found through bank name
2020-07-21 6:40 ` Heiko Schocher
@ 2020-07-21 13:18 ` Michal Simek
0 siblings, 0 replies; 13+ messages in thread
From: Michal Simek @ 2020-07-21 13:18 UTC (permalink / raw)
To: u-boot
On 21. 07. 20 8:40, Heiko Schocher wrote:
> Hi Michal,
>
> Am 20.07.2020 um 10:30 schrieb Michal Simek:
>> Hi Heiko,
>>
>> p? 22. 5. 2020 v 11:10 odes?latel Heiko Schocher <hs@denx.de> napsal:
>>>
>>> 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 <hs@denx.de>
>>> Reviewed-by: Simon Glass <sjg@chromium.org>
>>> ---
>>>
>>> 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
>>> =>
>>
>> I spotted this patch and I am curious if you have thought about also
>> supporting gpio-line-names.
>
> Yes, that would be a good extension!
>
> searching for "gpio-line-names" in u-boot source shows only an entry in
>
> ./doc/device-tree-bindings/gpio/gpio.txt
>
> and some DTS files in arch/arm
>
> but no driver code, which handles the property, so there is some
> work to do.
>
> Currently I have no project (and time) to give this a chance...
>
> But if the code, which handle "gpio-line-names" saves the name in
> "struct gpio_dev_priv name", DM_GPIO_LOOKUP_LABEL based code should
> work with it.
I have sent a patch for it. Please take a look.
Thanks,
Michal
^ permalink raw reply [flat|nested] 13+ messages in thread