projects
/
openwrt
/
openwrt.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
|
inline
| side by side (parent:
af60762
)
register GPIO-connected LEDs for known boards
author
Florian Fainelli
<florian@openwrt.org>
Sat, 18 Jul 2009 00:40:23 +0000
(
00:40
+0000)
committer
Florian Fainelli
<florian@openwrt.org>
Sat, 18 Jul 2009 00:40:23 +0000
(
00:40
+0000)
SVN-Revision: 16887
target/linux/brcm63xx/base-files/etc/diag.sh
[new file with mode: 0755]
patch
|
blob
target/linux/brcm63xx/config-2.6.27
patch
|
blob
|
history
target/linux/brcm63xx/files/arch/mips/bcm63xx/boards/board_bcm963xx.c
patch
|
blob
|
history
target/linux/brcm63xx/files/include/asm-mips/mach-bcm63xx/board_bcm963xx.h
patch
|
blob
|
history
diff --git a/target/linux/brcm63xx/base-files/etc/diag.sh
b/target/linux/brcm63xx/base-files/etc/diag.sh
new file mode 100755
(executable)
index 0000000..
325e480
--- /dev/null
+++ b/
target/linux/brcm63xx/base-files/etc/diag.sh
@@ -0,0
+1,12
@@
+#!/bin/sh
+# Copyright (C) 2009 OpenWrt.org
+
+set_state() {
+ case "$1" in
+ done)
+ [ -d /sys/class/leds/power ] && {
+ echo 1 >/sys/class/leds/power/brightness
+ }
+ ;;
+ esac
+}
diff --git
a/target/linux/brcm63xx/config-2.6.27
b/target/linux/brcm63xx/config-2.6.27
index 387df15f715dde31e7dddef7f46019886659cad3..1b638dc25abac360888bbd2cb06575edfd884922 100644
(file)
--- a/
target/linux/brcm63xx/config-2.6.27
+++ b/
target/linux/brcm63xx/config-2.6.27
@@
-77,6
+77,7
@@
CONFIG_GENERIC_GPIO=y
# CONFIG_GENERIC_HARDIRQS_NO__DO_IRQ is not set
CONFIG_GPIOLIB=y
CONFIG_GPIO_DEVICE=y
# CONFIG_GENERIC_HARDIRQS_NO__DO_IRQ is not set
CONFIG_GPIOLIB=y
CONFIG_GPIO_DEVICE=y
+CONFIG_GPIO_SYSFS=y
# CONFIG_HAMRADIO is not set
CONFIG_HAS_DMA=y
CONFIG_HAS_IOMEM=y
# CONFIG_HAMRADIO is not set
CONFIG_HAS_DMA=y
CONFIG_HAS_IOMEM=y
@@
-108,7
+109,7
@@
CONFIG_IRQ_CPU=y
# CONFIG_ISDN is not set
CONFIG_KEXEC=y
CONFIG_LBD=y
# CONFIG_ISDN is not set
CONFIG_KEXEC=y
CONFIG_LBD=y
-# CONFIG_LEDS_GPIO is not set
+CONFIG_LEDS_GPIO=y
# CONFIG_LEDS_TRIGGER_HEARTBEAT is not set
# CONFIG_LEMOTE_FULONG is not set
# CONFIG_MACH_ALCHEMY is not set
# CONFIG_LEDS_TRIGGER_HEARTBEAT is not set
# CONFIG_LEMOTE_FULONG is not set
# CONFIG_MACH_ALCHEMY is not set
diff --git
a/target/linux/brcm63xx/files/arch/mips/bcm63xx/boards/board_bcm963xx.c
b/target/linux/brcm63xx/files/arch/mips/bcm63xx/boards/board_bcm963xx.c
index e3ae72bff28faabf9fae4986e34ae15e1091d8fb..52d4c27a089e5f7ed7f45f6c9c595d730423e185 100644
(file)
--- a/
target/linux/brcm63xx/files/arch/mips/bcm63xx/boards/board_bcm963xx.c
+++ b/
target/linux/brcm63xx/files/arch/mips/bcm63xx/boards/board_bcm963xx.c
@@
-4,6
+4,7
@@
* for more details.
*
* Copyright (C) 2008 Maxime Bizon <mbizon@freebox.fr>
* for more details.
*
* Copyright (C) 2008 Maxime Bizon <mbizon@freebox.fr>
+ * Copyright (C) 2009 Florian Fainelli <florian@openwrt.org>
*/
#include <linux/init.h>
*/
#include <linux/init.h>
@@
-54,6
+55,35
@@
static struct board_info __initdata board_96338gw = {
},
.has_ohci0 = 1,
},
.has_ohci0 = 1,
+
+ .leds = {
+ {
+ .name = "adsl",
+ .gpio = 3,
+ .active_low = 1,
+ },
+ {
+ .name = "ses",
+ .gpio = 5,
+ .active_low = 1,
+ },
+ {
+ .name = "ppp-fail",
+ .gpio = 4,
+ .active_low = 1,
+ },
+ {
+ .name = "power",
+ .gpio = 0,
+ .active_low = 1,
+ .default_trigger = "default-on",
+ },
+ {
+ .name = "stop",
+ .gpio = 1,
+ .active_low = 1,
+ }
+ },
};
static struct board_info __initdata board_96338w = {
};
static struct board_info __initdata board_96338w = {
@@
-64,7
+94,36
@@
static struct board_info __initdata board_96338w = {
.enet0 = {
.force_speed_100 = 1,
.force_duplex_full = 1,
.enet0 = {
.force_speed_100 = 1,
.force_duplex_full = 1,
- }
+ },
+
+ .leds = {
+ {
+ .name = "adsl",
+ .gpio = 3,
+ .active_low = 1,
+ },
+ {
+ .name = "ses",
+ .gpio = 5,
+ .active_low = 1,
+ },
+ {
+ .name = "ppp-fail",
+ .gpio = 4,
+ .active_low = 1,
+ },
+ {
+ .name = "power",
+ .gpio = 0,
+ .active_low = 1,
+ .default_trigger = "default-on",
+ },
+ {
+ .name = "stop",
+ .gpio = 1,
+ .active_low = 1,
+ },
+ },
};
#endif
};
#endif
@@
-93,6
+152,36
@@
static struct board_info __initdata board_96348r = {
.has_phy = 1,
.use_internal_phy = 1,
},
.has_phy = 1,
.use_internal_phy = 1,
},
+
+ .leds = {
+ {
+ .name = "adsl-fail",
+ .gpio = 2,
+ .active_low = 1,
+ },
+ {
+ .name = "ppp",
+ .gpio = 3,
+ .active_low = 1,
+ },
+ {
+ .name = "ppp-fail",
+ .gpio = 4,
+ .active_low = 1,
+ },
+ {
+ .name = "power",
+ .gpio = 0,
+ .active_low = 1,
+ .default_trigger = "default-on",
+
+ },
+ {
+ .name = "stop",
+ .gpio = 1,
+ .active_low = 1,
+ },
+ },
};
static struct board_info __initdata board_96348gw_10 = {
};
static struct board_info __initdata board_96348gw_10 = {
@@
-123,6
+212,35
@@
static struct board_info __initdata board_96348gw_10 = {
.cs = 2,
.ext_irq = 2,
},
.cs = 2,
.ext_irq = 2,
},
+
+ .leds = {
+ {
+ .name = "adsl-fail",
+ .gpio = 2,
+ .active_low = 1,
+ },
+ {
+ .name = "ppp",
+ .gpio = 3,
+ .active_low = 1,
+ },
+ {
+ .name = "ppp-fail",
+ .gpio = 4,
+ .active_low = 1,
+ },
+ {
+ .name = "power",
+ .gpio = 0,
+ .active_low = 1,
+ .default_trigger = "default-on",
+ },
+ {
+ .name = "stop",
+ .gpio = 1,
+ .active_low = 1,
+ },
+ },
};
static struct board_info __initdata board_96348gw_11 = {
};
static struct board_info __initdata board_96348gw_11 = {
@@
-147,6
+265,35
@@
static struct board_info __initdata board_96348gw_11 = {
.has_ohci0 = 1,
.has_pccard = 1,
.has_ehci0 = 1,
.has_ohci0 = 1,
.has_pccard = 1,
.has_ehci0 = 1,
+
+ .leds = {
+ {
+ .name = "adsl-fail",
+ .gpio = 2,
+ .active_low = 1,
+ },
+ {
+ .name = "ppp",
+ .gpio = 3,
+ .active_low = 1,
+ },
+ {
+ .name = "ppp-fail",
+ .gpio = 4,
+ .active_low = 1,
+ },
+ {
+ .name = "power",
+ .gpio = 0,
+ .active_low = 1,
+ .default_trigger = "default-on",
+ },
+ {
+ .name = "stop",
+ .gpio = 1,
+ .active_low = 1,
+ },
+ },
};
static struct board_info __initdata board_96348gw = {
};
static struct board_info __initdata board_96348gw = {
@@
-175,6
+322,35
@@
static struct board_info __initdata board_96348gw = {
.ext_irq = 2,
.cs = 2,
},
.ext_irq = 2,
.cs = 2,
},
+
+ .leds = {
+ {
+ .name = "adsl-fail",
+ .gpio = 2,
+ .active_low = 1,
+ },
+ {
+ .name = "ppp",
+ .gpio = 3,
+ .active_low = 1,
+ },
+ {
+ .name = "ppp-fail",
+ .gpio = 4,
+ .active_low = 1,
+ },
+ {
+ .name = "power",
+ .gpio = 0,
+ .active_low = 1,
+ .default_trigger = "default-on",
+ },
+ {
+ .name = "stop",
+ .gpio = 1,
+ .active_low = 1,
+ },
+ },
};
static struct board_info __initdata board_FAST2404 = {
};
static struct board_info __initdata board_FAST2404 = {
@@
-270,6
+446,33
@@
static struct board_info __initdata board_96358vw = {
.has_ohci0 = 1,
.has_pccard = 1,
.has_ehci0 = 1,
.has_ohci0 = 1,
.has_pccard = 1,
.has_ehci0 = 1,
+
+ .leds = {
+ {
+ .name = "adsl-fail",
+ .gpio = 15,
+ .active_low = 1,
+ },
+ {
+ .name = "ppp",
+ .gpio = 22,
+ .active_low = 1,
+ },
+ {
+ .name = "ppp-fail",
+ .gpio = 23,
+ .active_low = 1,
+ },
+ {
+ .name = "power",
+ .gpio = 4,
+ .default_trigger = "default-on",
+ },
+ {
+ .name = "stop",
+ .gpio = 5,
+ },
+ },
};
static struct board_info __initdata board_96358vw2 = {
};
static struct board_info __initdata board_96358vw2 = {
@@
-294,6
+497,29
@@
static struct board_info __initdata board_96358vw2 = {
.has_ohci0 = 1,
.has_pccard = 1,
.has_ehci0 = 1,
.has_ohci0 = 1,
.has_pccard = 1,
.has_ehci0 = 1,
+
+ .leds = {
+ {
+ .name = "adsl",
+ .gpio = 22,
+ .active_low = 1,
+ },
+ {
+ .name = "ppp-fail",
+ .gpio = 23,
+ },
+ {
+ .name = "power",
+ .gpio = 5,
+ .active_low = 1,
+ .default_trigger = "default-on",
+ },
+ {
+ .name = "stop",
+ .gpio = 4,
+ .active_low = 1,
+ },
+ },
};
static struct board_info __initdata board_AGPFS0 = {
};
static struct board_info __initdata board_AGPFS0 = {
@@
-546,6
+772,14
@@
static struct resource gpiodev_resource = {
.start = 0xFFFFFFFF,
};
.start = 0xFFFFFFFF,
};
+static struct gpio_led_platform_data bcm63xx_led_data;
+
+static struct platform_device bcm63xx_gpio_leds = {
+ .name = "leds-gpio",
+ .id = 0,
+ .dev.platform_data = &bcm63xx_led_data,
+};
+
/*
* third stage init callback, register all board devices.
*/
/*
* third stage init callback, register all board devices.
*/
@@
-606,6
+840,11
@@
int __init board_register_devices(void)
/* Register GPIODEV */
platform_device_register_simple("GPIODEV", 0, &gpiodev_resource, 1);
/* Register GPIODEV */
platform_device_register_simple("GPIODEV", 0, &gpiodev_resource, 1);
+ bcm63xx_led_data.num_leds = ARRAY_SIZE(board.leds);
+ bcm63xx_led_data.leds = board.leds;
+
+ platform_device_register(&bcm63xx_gpio_leds);
+
return 0;
}
return 0;
}
diff --git
a/target/linux/brcm63xx/files/include/asm-mips/mach-bcm63xx/board_bcm963xx.h
b/target/linux/brcm63xx/files/include/asm-mips/mach-bcm63xx/board_bcm963xx.h
index 85d1e5f418c55e49aebc387c3f30230b20b34148..d154b2859ee2d5a83dc1b7deb41dba4a85902b6a 100644
(file)
--- a/
target/linux/brcm63xx/files/include/asm-mips/mach-bcm63xx/board_bcm963xx.h
+++ b/
target/linux/brcm63xx/files/include/asm-mips/mach-bcm63xx/board_bcm963xx.h
@@
-2,6
+2,8
@@
#define BOARD_BCM963XX_H_
#include <linux/types.h>
#define BOARD_BCM963XX_H_
#include <linux/types.h>
+#include <linux/gpio.h>
+#include <linux/leds.h>
#include <bcm63xx_dev_enet.h>
#include <bcm63xx_dev_dsp.h>
#include <bcm63xx_dev_enet.h>
#include <bcm63xx_dev_dsp.h>
@@
-51,6
+53,9
@@
struct board_info {
/* DSP config */
struct bcm63xx_dsp_platform_data dsp;
/* DSP config */
struct bcm63xx_dsp_platform_data dsp;
+
+ /* GPIO LEDs */
+ struct gpio_led leds[5];
};
#endif /* ! BOARD_BCM963XX_H_ */
};
#endif /* ! BOARD_BCM963XX_H_ */