Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

[PATCH] LED driver for the Soekris net5501 board.

3 views
Skip to first unread message

Bjarke Istrup Pedersen

unread,
Feb 28, 2010, 12:10:02 PM2/28/10
to
LED driver for the Soekris net5501 board.
It is based on the previously submitted code by Alessandro Zummo, but is changed to use the new GPIO driver with 2.6.33, and the driver has been moved to drivers/leds where it belongs.

Signed-off-by: Bjarke Istrup Pedersen <gurli...@gentoo.org>
---
drivers/leds/Kconfig | 9 ++++
drivers/leds/Makefile | 1 +
drivers/leds/leds-net5501.c | 95 +++++++++++++++++++++++++++++++++++++++++++
3 files changed, 105 insertions(+), 0 deletions(-)
create mode 100644 drivers/leds/leds-net5501.c

diff --git a/drivers/leds/Kconfig b/drivers/leds/Kconfig
index 8a0e1ec..fa12ab5 100644
--- a/drivers/leds/Kconfig
+++ b/drivers/leds/Kconfig
@@ -58,6 +58,15 @@ config LEDS_NET48XX
This option enables support for the Soekris net4801 and net4826 error
LED.

+config LEDS_NET5501
+ tristate "LED Support for Soekris net5501 series Error LED"
+ depends on LEDS_CLASS && LEDS_GPIO_PLATFORM && GPIO_CS5535
+ select LEDS_TRIGGER_DEFAULT_ON
+ default n
+ help
+ Add support for the Soekris net5501 board (detection, error led
+ and GPIO).
+
config LEDS_FSG
tristate "LED Support for the Freecom FSG-3"
depends on LEDS_CLASS && MACH_FSG
diff --git a/drivers/leds/Makefile b/drivers/leds/Makefile
index 9e63869..123609a 100644
--- a/drivers/leds/Makefile
+++ b/drivers/leds/Makefile
@@ -12,6 +12,7 @@ obj-$(CONFIG_LEDS_MIKROTIK_RB532) += leds-rb532.o
obj-$(CONFIG_LEDS_S3C24XX) += leds-s3c24xx.o
obj-$(CONFIG_LEDS_AMS_DELTA) += leds-ams-delta.o
obj-$(CONFIG_LEDS_NET48XX) += leds-net48xx.o
+obj-$(CONFIG_LEDS_NET5501) += leds-net5501.o
obj-$(CONFIG_LEDS_WRAP) += leds-wrap.o
obj-$(CONFIG_LEDS_ALIX2) += leds-alix2.o
obj-$(CONFIG_LEDS_H1940) += leds-h1940.o
diff --git a/drivers/leds/leds-net5501.c b/drivers/leds/leds-net5501.c
new file mode 100644
index 0000000..90f82bf
--- /dev/null
+++ b/drivers/leds/leds-net5501.c
@@ -0,0 +1,95 @@
+/*
+ * Soekris board support code
+ *
+ * Copyright (C) 2008-2009 Tower Technologies
+ * Written by Alessandro Zummo <a.z...@towertech.it>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License version 2
+ * as published by the Free Software Foundation.
+ */
+
+#include <linux/kernel.h>
+#include <linux/init.h>
+#include <linux/io.h>
+#include <linux/string.h>
+#include <linux/leds.h>
+#include <linux/platform_device.h>
+#include <linux/gpio.h>
+
+#include <asm/geode.h>
+
+static struct gpio_led net5501_leds[] = {
+ {
+ .name = "error",
+ .gpio = 6,
+ .default_trigger = "default-on",
+ },
+};
+
+static struct gpio_led_platform_data net5501_leds_data = {
+ .num_leds = ARRAY_SIZE(net5501_leds),
+ .leds = net5501_leds,
+};
+
+static struct platform_device net5501_leds_dev = {
+ .name = "leds-gpio",
+ .id = -1,
+ .dev.platform_data = &net5501_leds_data,
+};
+
+static void __init init_net5501(void)
+{
+ platform_device_register(&net5501_leds_dev);
+}
+
+struct soekris_board {
+ u16 offset;
+ char *sig;
+ u8 len;
+ void (*init)(void);
+};
+
+static struct soekris_board __initdata boards[] = {
+ { 0xb7b, "net5501", 7, init_net5501 }, /* net5501 v1.33/1.33c */
+ { 0xb1f, "net5501", 7, init_net5501 }, /* net5501 v1.32i */
+};
+
+static int __init soekris_init(void)
+{
+ int i;
+ unsigned char *rombase, *bios;
+
+ if (!is_geode())
+ return 0;
+
+ rombase = ioremap(0xffff0000, 0xffff);
+ if (!rombase)
+ {
+ printk(KERN_INFO "Soekris net5501 LED driver failed to get rombase");
+ return 0;
+ }
+
+ bios = rombase + 0x20; /* null terminated */
+
+ if (strncmp(bios, "comBIOS", 7))
+ goto unmap;
+
+ for (i = 0; i < ARRAY_SIZE(boards); i++) {
+ unsigned char *model = rombase + boards[i].offset;
+
+ if (strncmp(model, boards[i].sig, boards[i].len) == 0) {
+ printk(KERN_INFO "Soekris %s: %s\n", model, bios);
+
+ if (boards[i].init)
+ boards[i].init();
+ break;
+ }
+ }
+
+unmap:
+ iounmap(rombase);
+ return 0;
+}
+
+arch_initcall(soekris_init);
--
1.7.0

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majo...@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/

Andrew Morton

unread,
Mar 2, 2010, 6:10:02 PM3/2/10
to
On Sun, 28 Feb 2010 17:01:13 +0000
Bjarke Istrup Pedersen <gurli...@gentoo.org> wrote:

> LED driver for the Soekris net5501 board.

Thanks, I queued this for sending to Richard.

> It is based on the previously submitted code by Alessandro Zummo, but is changed to use the new GPIO driver with 2.6.33, and the driver has been moved to drivers/leds where it belongs.

It should have Alessandro's Signed-off-by: at least.

It perhaps should have his From:, also. Please work out with Alessandro
who should be credited as primary author of this driver.

> Signed-off-by: Bjarke Istrup Pedersen <gurli...@gentoo.org>
>

> ...

Alessandro Zummo

unread,
Mar 2, 2010, 6:30:02 PM3/2/10
to
On Tue, 2 Mar 2010 15:05:47 -0800
Andrew Morton <ak...@linux-foundation.org> wrote:

> It should have Alessandro's Signed-off-by: at least.
>
> It perhaps should have his From:, also. Please work out with Alessandro
> who should be credited as primary author of this driver.

I'm checking it, been busy :(

--

Best regards,

Alessandro Zummo,
Tower Technologies - Torino, Italy

http://www.towertech.it

Bjarke Istrup Pedersen

unread,
Mar 3, 2010, 3:50:02 AM3/3/10
to
2010/3/3 Alessandro Zummo <a.z...@towertech.it>:

> On Tue, 2 Mar 2010 15:05:47 -0800
> Andrew Morton <ak...@linux-foundation.org> wrote:
>
>> It should have Alessandro's Signed-off-by: at least.
>>
>> It perhaps should have his From:, also. 嚙瞑lease work out with Alessandro

>> who should be credited as primary author of this driver.
>
> 嚙瘢'm checking it, been busy :(
>
> --
>
> 嚙畿est regards,
>
> 嚙璀lessandro Zummo,
> 嚙確ower Technologies - Torino, Italy
>
> 嚙篁ttp://www.towertech.it

>
> --
> To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
> the body of a message to majo...@vger.kernel.org
> More majordomo info at 嚙篁ttp://vger.kernel.org/majordomo-info.html
> Please read the FAQ at 嚙篁ttp://www.tux.org/lkml/
>

He's more then welcome to take credit for it, since it is his work
that I've just fixed a few things with.
All that I care for, is that it gets added, so more people can benefit
from it :-)

The signed-off part was generated by git, and I simply forgot to add
Alessandro to it.

Best regards,
Bjarke Istrup Pedersen.

0 new messages