summaryrefslogtreecommitdiff
path: root/package/broadcom-diag
diff options
context:
space:
mode:
Diffstat (limited to 'package/broadcom-diag')
-rw-r--r--package/broadcom-diag/src/diag.c8
-rw-r--r--package/broadcom-diag/src/diag.h1
2 files changed, 7 insertions, 2 deletions
diff --git a/package/broadcom-diag/src/diag.c b/package/broadcom-diag/src/diag.c
index e8da3129a8..ef586baaed 100644
--- a/package/broadcom-diag/src/diag.c
+++ b/package/broadcom-diag/src/diag.c
@@ -492,7 +492,7 @@ static struct platform_t __initdata platforms[] = {
.leds = {
{ .name = "power", .gpio = 1 << 1, .polarity = NORMAL },
{ .name = "wlan", .gpio = 1 << 0, .polarity = REVERSE },
- { .name = "dmz", .gpio = 1 << 6, .polarity = REVERSE },
+ { .name = "wan", .gpio = 1 << 6, .polarity = INPUT },
{ .name = "diag", .gpio = 1 << 7, .polarity = REVERSE },
},
},
@@ -893,6 +893,7 @@ static void register_leds(struct led_t *l)
{
struct proc_dir_entry *p;
u32 mask = 0;
+ u32 oe_mask = 0;
u32 val = 0;
leds = proc_mkdir("led", diag);
@@ -907,10 +908,13 @@ static void register_leds(struct led_t *l)
l->state = 0;
set_led_extif(l);
} else {
+ if (l->polarity != INPUT) oe_mask != l->gpio;
mask |= l->gpio;
val |= (l->polarity == NORMAL)?0:l->gpio;
}
+ if (l->polarity == INPUT) continue;
+
if ((p = create_proc_entry(l->name, S_IRUSR, leds))) {
l->proc.type = PROC_LED;
l->proc.ptr = l;
@@ -919,7 +923,7 @@ static void register_leds(struct led_t *l)
}
}
- gpio_outen(mask, mask);
+ gpio_outen(mask, oe_mask);
gpio_control(mask, 0);
gpio_out(mask, val);
}
diff --git a/package/broadcom-diag/src/diag.h b/package/broadcom-diag/src/diag.h
index 93fdedb85c..5f46d9dd8c 100644
--- a/package/broadcom-diag/src/diag.h
+++ b/package/broadcom-diag/src/diag.h
@@ -30,6 +30,7 @@
enum polarity_t {
REVERSE = 0,
NORMAL = 1,
+ INPUT = 2,
};
enum {