|
|
|
@ -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); |
|
|
|
|
} |
|
|
|
|