* [U-Boot] [PATCH 0/3] gpio_led driver updates
@ 2013-11-07 23:03 Igor Grinberg
2013-11-07 23:03 ` [U-Boot] [PATCH 1/3] README: document the CONFIG_GPIO_LED symbol Igor Grinberg
` (2 more replies)
0 siblings, 3 replies; 10+ messages in thread
From: Igor Grinberg @ 2013-11-07 23:03 UTC (permalink / raw)
To: u-boot
This simple series enhances the gpio_led driver a bit by
some documentation, checking the return value of gpio_request() call,
and finally adding support for inverted polarity GPIOs.
Igor Grinberg (3):
README: document the CONFIG_GPIO_LED symbol
gpio_led: check gpio_request() return value
gpio_led: add support for inverted polarity
README | 15 +++++++++++++++
drivers/misc/gpio_led.c | 33 ++++++++++++++++++++++++++++++---
2 files changed, 45 insertions(+), 3 deletions(-)
--
1.8.1.5
^ permalink raw reply [flat|nested] 10+ messages in thread
* [U-Boot] [PATCH 1/3] README: document the CONFIG_GPIO_LED symbol
2013-11-07 23:03 [U-Boot] [PATCH 0/3] gpio_led driver updates Igor Grinberg
@ 2013-11-07 23:03 ` Igor Grinberg
2013-11-25 21:56 ` [U-Boot] [U-Boot, " Tom Rini
2013-11-07 23:03 ` [U-Boot] [PATCH 2/3] gpio_led: check gpio_request() return value Igor Grinberg
2013-11-07 23:03 ` [U-Boot] [PATCH 3/3] gpio_led: add support for inverted polarity Igor Grinberg
2 siblings, 1 reply; 10+ messages in thread
From: Igor Grinberg @ 2013-11-07 23:03 UTC (permalink / raw)
To: u-boot
The CONFIG_GPIO_LED symbol does not have any documentation in the README
file. Document the CONFIG_GPIO_LED symbol.
Signed-off-by: Igor Grinberg <grinberg@compulab.co.il>
---
README | 8 ++++++++
1 file changed, 8 insertions(+)
diff --git a/README b/README
index 09662a4..55c71fa 100644
--- a/README
+++ b/README
@@ -1951,6 +1951,14 @@ CBFS (Coreboot Filesystem) support
kernel). Defining CONFIG_STATUS_LED enables this
feature in U-Boot.
+ Additional options:
+
+ CONFIG_GPIO_LED
+ The status LED can be connected to a GPIO pin.
+ In such cases, the gpio_led driver can be used as a
+ status LED backend implementation. Define CONFIG_GPIO_LED
+ to include the gpio_led driver in the U-Boot binary.
+
- CAN Support: CONFIG_CAN_DRIVER
Defining CONFIG_CAN_DRIVER enables CAN driver support
--
1.8.1.5
^ permalink raw reply related [flat|nested] 10+ messages in thread
* [U-Boot] [PATCH 2/3] gpio_led: check gpio_request() return value
2013-11-07 23:03 [U-Boot] [PATCH 0/3] gpio_led driver updates Igor Grinberg
2013-11-07 23:03 ` [U-Boot] [PATCH 1/3] README: document the CONFIG_GPIO_LED symbol Igor Grinberg
@ 2013-11-07 23:03 ` Igor Grinberg
2013-11-10 15:27 ` Igor Grinberg
2013-11-25 21:56 ` [U-Boot] [U-Boot, " Tom Rini
2013-11-07 23:03 ` [U-Boot] [PATCH 3/3] gpio_led: add support for inverted polarity Igor Grinberg
2 siblings, 2 replies; 10+ messages in thread
From: Igor Grinberg @ 2013-11-07 23:03 UTC (permalink / raw)
To: u-boot
Add a check for the gpio_request() function return value and do not try
to configure the GPIO if the gpio_request() call fails.
Also, print an error message indicating the gpio_request() has failed.
Signed-off-by: Igor Grinberg <grinberg@compulab.co.il>
---
drivers/misc/gpio_led.c | 6 +++++-
1 file changed, 5 insertions(+), 1 deletion(-)
diff --git a/drivers/misc/gpio_led.c b/drivers/misc/gpio_led.c
index 3fedddc..de20419 100644
--- a/drivers/misc/gpio_led.c
+++ b/drivers/misc/gpio_led.c
@@ -11,7 +11,11 @@
void __led_init(led_id_t mask, int state)
{
- gpio_request(mask, "gpio_led");
+ if (gpio_request(mask, "gpio_led") != 0) {
+ printf("%s: failed requesting GPIO%lu!\n", __func__, mask);
+ return;
+ }
+
gpio_direction_output(mask, state == STATUS_LED_ON);
}
--
1.8.1.5
^ permalink raw reply related [flat|nested] 10+ messages in thread
* [U-Boot] [PATCH 3/3] gpio_led: add support for inverted polarity
2013-11-07 23:03 [U-Boot] [PATCH 0/3] gpio_led driver updates Igor Grinberg
2013-11-07 23:03 ` [U-Boot] [PATCH 1/3] README: document the CONFIG_GPIO_LED symbol Igor Grinberg
2013-11-07 23:03 ` [U-Boot] [PATCH 2/3] gpio_led: check gpio_request() return value Igor Grinberg
@ 2013-11-07 23:03 ` Igor Grinberg
2013-11-10 15:28 ` Igor Grinberg
` (2 more replies)
2 siblings, 3 replies; 10+ messages in thread
From: Igor Grinberg @ 2013-11-07 23:03 UTC (permalink / raw)
To: u-boot
Some GPIO connected LEDs have inverted polarity.
Introduce new config option: CONFIG_GPIO_LED_INVERTED_TABLE for the
specifying the inverted GPIO LEDs list and add support for this in the
gpio_led driver.
Signed-off-by: Igor Grinberg <grinberg@compulab.co.il>
---
README | 7 +++++++
drivers/misc/gpio_led.c | 27 +++++++++++++++++++++++++--
2 files changed, 32 insertions(+), 2 deletions(-)
diff --git a/README b/README
index 55c71fa..b8bad51 100644
--- a/README
+++ b/README
@@ -1959,6 +1959,13 @@ CBFS (Coreboot Filesystem) support
status LED backend implementation. Define CONFIG_GPIO_LED
to include the gpio_led driver in the U-Boot binary.
+ CONFIG_GPIO_LED_INVERTED_TABLE
+ Some GPIO connected LEDs may have inverted polarity in which
+ case the GPIO high value corresponds to LED off state and
+ GPIO low value corresponds to LED on state.
+ In such cases CONFIG_GPIO_LED_INVERTED_TABLE may be defined
+ with a list of GPIO LEDs that have inverted polarity.
+
- CAN Support: CONFIG_CAN_DRIVER
Defining CONFIG_CAN_DRIVER enables CAN driver support
diff --git a/drivers/misc/gpio_led.c b/drivers/misc/gpio_led.c
index de20419..3e95727 100644
--- a/drivers/misc/gpio_led.c
+++ b/drivers/misc/gpio_led.c
@@ -9,19 +9,42 @@
#include <status_led.h>
#include <asm/gpio.h>
+#ifndef CONFIG_GPIO_LED_INVERTED_TABLE
+#define CONFIG_GPIO_LED_INVERTED_TABLE {}
+#endif
+
+static led_id_t gpio_led_inv[] = CONFIG_GPIO_LED_INVERTED_TABLE;
+
+static int gpio_led_gpio_value(led_id_t mask, int state)
+{
+ int i, gpio_value = (state == STATUS_LED_ON);
+
+ for (i = 0; i < ARRAY_SIZE(gpio_led_inv); i++) {
+ if (gpio_led_inv[i] == mask)
+ gpio_value = !gpio_value;
+ }
+
+ return gpio_value;
+}
+
void __led_init(led_id_t mask, int state)
{
+ int gpio_value;
+
if (gpio_request(mask, "gpio_led") != 0) {
printf("%s: failed requesting GPIO%lu!\n", __func__, mask);
return;
}
- gpio_direction_output(mask, state == STATUS_LED_ON);
+ gpio_value = gpio_led_gpio_value(mask, state);
+ gpio_direction_output(mask, gpio_value);
}
void __led_set(led_id_t mask, int state)
{
- gpio_set_value(mask, state == STATUS_LED_ON);
+ int gpio_value = gpio_led_gpio_value(mask, state);
+
+ gpio_set_value(mask, gpio_value);
}
void __led_toggle(led_id_t mask)
--
1.8.1.5
^ permalink raw reply related [flat|nested] 10+ messages in thread
* [U-Boot] [PATCH 2/3] gpio_led: check gpio_request() return value
2013-11-07 23:03 ` [U-Boot] [PATCH 2/3] gpio_led: check gpio_request() return value Igor Grinberg
@ 2013-11-10 15:27 ` Igor Grinberg
2013-11-25 21:56 ` [U-Boot] [U-Boot, " Tom Rini
1 sibling, 0 replies; 10+ messages in thread
From: Igor Grinberg @ 2013-11-10 15:27 UTC (permalink / raw)
To: u-boot
On 11/08/13 01:03, Igor Grinberg wrote:
> Add a check for the gpio_request() function return value and do not try
> to configure the GPIO if the gpio_request() call fails.
> Also, print an error message indicating the gpio_request() has failed.
>
> Signed-off-by: Igor Grinberg <grinberg@compulab.co.il>
Tested-by: Ilya Ledvich <ilya@compulab.co.il>
> ---
> drivers/misc/gpio_led.c | 6 +++++-
> 1 file changed, 5 insertions(+), 1 deletion(-)
>
> diff --git a/drivers/misc/gpio_led.c b/drivers/misc/gpio_led.c
> index 3fedddc..de20419 100644
> --- a/drivers/misc/gpio_led.c
> +++ b/drivers/misc/gpio_led.c
> @@ -11,7 +11,11 @@
>
> void __led_init(led_id_t mask, int state)
> {
> - gpio_request(mask, "gpio_led");
> + if (gpio_request(mask, "gpio_led") != 0) {
> + printf("%s: failed requesting GPIO%lu!\n", __func__, mask);
> + return;
> + }
> +
> gpio_direction_output(mask, state == STATUS_LED_ON);
> }
>
>
--
Regards,
Igor.
^ permalink raw reply [flat|nested] 10+ messages in thread
* [U-Boot] [PATCH 3/3] gpio_led: add support for inverted polarity
2013-11-07 23:03 ` [U-Boot] [PATCH 3/3] gpio_led: add support for inverted polarity Igor Grinberg
@ 2013-11-10 15:28 ` Igor Grinberg
2013-11-11 1:19 ` Otavio Salvador
2013-11-25 21:56 ` [U-Boot] [U-Boot, " Tom Rini
2 siblings, 0 replies; 10+ messages in thread
From: Igor Grinberg @ 2013-11-10 15:28 UTC (permalink / raw)
To: u-boot
On 11/08/13 01:03, Igor Grinberg wrote:
> Some GPIO connected LEDs have inverted polarity.
> Introduce new config option: CONFIG_GPIO_LED_INVERTED_TABLE for the
> specifying the inverted GPIO LEDs list and add support for this in the
> gpio_led driver.
>
> Signed-off-by: Igor Grinberg <grinberg@compulab.co.il>
Tested-by: Ilya Ledvich <ilya@compulab.co.il>
on cm-t335.
> ---
> README | 7 +++++++
> drivers/misc/gpio_led.c | 27 +++++++++++++++++++++++++--
> 2 files changed, 32 insertions(+), 2 deletions(-)
>
> diff --git a/README b/README
> index 55c71fa..b8bad51 100644
> --- a/README
> +++ b/README
> @@ -1959,6 +1959,13 @@ CBFS (Coreboot Filesystem) support
> status LED backend implementation. Define CONFIG_GPIO_LED
> to include the gpio_led driver in the U-Boot binary.
>
> + CONFIG_GPIO_LED_INVERTED_TABLE
> + Some GPIO connected LEDs may have inverted polarity in which
> + case the GPIO high value corresponds to LED off state and
> + GPIO low value corresponds to LED on state.
> + In such cases CONFIG_GPIO_LED_INVERTED_TABLE may be defined
> + with a list of GPIO LEDs that have inverted polarity.
> +
> - CAN Support: CONFIG_CAN_DRIVER
>
> Defining CONFIG_CAN_DRIVER enables CAN driver support
> diff --git a/drivers/misc/gpio_led.c b/drivers/misc/gpio_led.c
> index de20419..3e95727 100644
> --- a/drivers/misc/gpio_led.c
> +++ b/drivers/misc/gpio_led.c
> @@ -9,19 +9,42 @@
> #include <status_led.h>
> #include <asm/gpio.h>
>
> +#ifndef CONFIG_GPIO_LED_INVERTED_TABLE
> +#define CONFIG_GPIO_LED_INVERTED_TABLE {}
> +#endif
> +
> +static led_id_t gpio_led_inv[] = CONFIG_GPIO_LED_INVERTED_TABLE;
> +
> +static int gpio_led_gpio_value(led_id_t mask, int state)
> +{
> + int i, gpio_value = (state == STATUS_LED_ON);
> +
> + for (i = 0; i < ARRAY_SIZE(gpio_led_inv); i++) {
> + if (gpio_led_inv[i] == mask)
> + gpio_value = !gpio_value;
> + }
> +
> + return gpio_value;
> +}
> +
> void __led_init(led_id_t mask, int state)
> {
> + int gpio_value;
> +
> if (gpio_request(mask, "gpio_led") != 0) {
> printf("%s: failed requesting GPIO%lu!\n", __func__, mask);
> return;
> }
>
> - gpio_direction_output(mask, state == STATUS_LED_ON);
> + gpio_value = gpio_led_gpio_value(mask, state);
> + gpio_direction_output(mask, gpio_value);
> }
>
> void __led_set(led_id_t mask, int state)
> {
> - gpio_set_value(mask, state == STATUS_LED_ON);
> + int gpio_value = gpio_led_gpio_value(mask, state);
> +
> + gpio_set_value(mask, gpio_value);
> }
>
> void __led_toggle(led_id_t mask)
>
--
Regards,
Igor.
^ permalink raw reply [flat|nested] 10+ messages in thread
* [U-Boot] [PATCH 3/3] gpio_led: add support for inverted polarity
2013-11-07 23:03 ` [U-Boot] [PATCH 3/3] gpio_led: add support for inverted polarity Igor Grinberg
2013-11-10 15:28 ` Igor Grinberg
@ 2013-11-11 1:19 ` Otavio Salvador
2013-11-25 21:56 ` [U-Boot] [U-Boot, " Tom Rini
2 siblings, 0 replies; 10+ messages in thread
From: Otavio Salvador @ 2013-11-11 1:19 UTC (permalink / raw)
To: u-boot
On Thu, Nov 7, 2013 at 9:03 PM, Igor Grinberg <grinberg@compulab.co.il> wrote:
> Some GPIO connected LEDs have inverted polarity.
> Introduce new config option: CONFIG_GPIO_LED_INVERTED_TABLE for the
> specifying the inverted GPIO LEDs list and add support for this in the
> gpio_led driver.
>
> Signed-off-by: Igor Grinberg <grinberg@compulab.co.il>
Neat; I will test this in the board I have same situation and see if
it works for my case fully but this seems to be a lean and simply
solution for the issue.
--
Otavio Salvador O.S. Systems
http://www.ossystems.com.br http://code.ossystems.com.br
Mobile: +55 (53) 9981-7854 Mobile: +1 (347) 903-9750
^ permalink raw reply [flat|nested] 10+ messages in thread
* [U-Boot] [U-Boot, 1/3] README: document the CONFIG_GPIO_LED symbol
2013-11-07 23:03 ` [U-Boot] [PATCH 1/3] README: document the CONFIG_GPIO_LED symbol Igor Grinberg
@ 2013-11-25 21:56 ` Tom Rini
0 siblings, 0 replies; 10+ messages in thread
From: Tom Rini @ 2013-11-25 21:56 UTC (permalink / raw)
To: u-boot
On Fri, Nov 08, 2013 at 01:03:50AM +0200, Igor Grinberg wrote:
> The CONFIG_GPIO_LED symbol does not have any documentation in the README
> file. Document the CONFIG_GPIO_LED symbol.
>
> Signed-off-by: Igor Grinberg <grinberg@compulab.co.il>
Applied to u-boot/master, thanks!
--
Tom
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 836 bytes
Desc: Digital signature
URL: <http://lists.denx.de/pipermail/u-boot/attachments/20131125/a6d7f856/attachment.pgp>
^ permalink raw reply [flat|nested] 10+ messages in thread
* [U-Boot] [U-Boot, 2/3] gpio_led: check gpio_request() return value
2013-11-07 23:03 ` [U-Boot] [PATCH 2/3] gpio_led: check gpio_request() return value Igor Grinberg
2013-11-10 15:27 ` Igor Grinberg
@ 2013-11-25 21:56 ` Tom Rini
1 sibling, 0 replies; 10+ messages in thread
From: Tom Rini @ 2013-11-25 21:56 UTC (permalink / raw)
To: u-boot
On Fri, Nov 08, 2013 at 01:03:51AM +0200, Igor Grinberg wrote:
> Add a check for the gpio_request() function return value and do not try
> to configure the GPIO if the gpio_request() call fails.
> Also, print an error message indicating the gpio_request() has failed.
>
> Signed-off-by: Igor Grinberg <grinberg@compulab.co.il>
> Tested-by: Ilya Ledvich <ilya@compulab.co.il>
Applied to u-boot/master, thanks!
--
Tom
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 836 bytes
Desc: Digital signature
URL: <http://lists.denx.de/pipermail/u-boot/attachments/20131125/cfd2d937/attachment.pgp>
^ permalink raw reply [flat|nested] 10+ messages in thread
* [U-Boot] [U-Boot, 3/3] gpio_led: add support for inverted polarity
2013-11-07 23:03 ` [U-Boot] [PATCH 3/3] gpio_led: add support for inverted polarity Igor Grinberg
2013-11-10 15:28 ` Igor Grinberg
2013-11-11 1:19 ` Otavio Salvador
@ 2013-11-25 21:56 ` Tom Rini
2 siblings, 0 replies; 10+ messages in thread
From: Tom Rini @ 2013-11-25 21:56 UTC (permalink / raw)
To: u-boot
On Fri, Nov 08, 2013 at 01:03:52AM +0200, Igor Grinberg wrote:
> Some GPIO connected LEDs have inverted polarity.
> Introduce new config option: CONFIG_GPIO_LED_INVERTED_TABLE for the
> specifying the inverted GPIO LEDs list and add support for this in the
> gpio_led driver.
>
> Signed-off-by: Igor Grinberg <grinberg@compulab.co.il>
> Tested-by: Ilya Ledvich <ilya@compulab.co.il>
Applied to u-boot/master, thanks!
--
Tom
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 836 bytes
Desc: Digital signature
URL: <http://lists.denx.de/pipermail/u-boot/attachments/20131125/f5db6619/attachment.pgp>
^ permalink raw reply [flat|nested] 10+ messages in thread
end of thread, other threads:[~2013-11-25 21:56 UTC | newest]
Thread overview: 10+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2013-11-07 23:03 [U-Boot] [PATCH 0/3] gpio_led driver updates Igor Grinberg
2013-11-07 23:03 ` [U-Boot] [PATCH 1/3] README: document the CONFIG_GPIO_LED symbol Igor Grinberg
2013-11-25 21:56 ` [U-Boot] [U-Boot, " Tom Rini
2013-11-07 23:03 ` [U-Boot] [PATCH 2/3] gpio_led: check gpio_request() return value Igor Grinberg
2013-11-10 15:27 ` Igor Grinberg
2013-11-25 21:56 ` [U-Boot] [U-Boot, " Tom Rini
2013-11-07 23:03 ` [U-Boot] [PATCH 3/3] gpio_led: add support for inverted polarity Igor Grinberg
2013-11-10 15:28 ` Igor Grinberg
2013-11-11 1:19 ` Otavio Salvador
2013-11-25 21:56 ` [U-Boot] [U-Boot, " Tom Rini
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox