Leds have been tested on rb111/112 and rb153
[openwrt/svn-archive/archive.git] / target / linux / adm5120 / files / drivers / leds / leds-adm5120.c
index 368a13b7c63c5b7fecdd5b94a614139b45b58934..1474e8880da57191e30664c8a44f519edda2d5b8 100644 (file)
@@ -89,21 +89,20 @@ LED_ARRAY(np27g) { /* FIXME: untested */
 };
 #endif
 
-#if defined(CONFIG_LEDS_ADM5120_EXPERIMENTAL)
-LED_ARRAY(np28g) { /* FIXME: untested */
-       LED_STD(ADM5120_GPIO_xxxx, "lan1",      NULL),
-       LED_STD(ADM5120_GPIO_xxxx, "lan2",      NULL),
-       LED_STD(ADM5120_GPIO_xxxx, "lan3",      NULL),
-       LED_STD(ADM5120_GPIO_xxxx, "wan",       NULL),
-       LED_STD(ADM5120_GPIO_xxxx, "wlan",      NULL),
-       LED_STD(ADM5120_GPIO_xxxx, "usb1",      NULL),
-       LED_STD(ADM5120_GPIO_xxxx, "usb2",      NULL),
-       LED_STD(ADM5120_GPIO_xxxx, "usb3",      NULL),
-       LED_STD(ADM5120_GPIO_xxxx, "usb4",      NULL),
-       LED_INV(ADM5120_GPIO_PIN2, "power",     NULL),
-       LED_STD(ADM5120_GPIO_xxxx, "diag",      NULL),
+LED_ARRAY(np28g) {
+       LED_INV(ADM5120_GPIO_PIN2, "diag",      NULL),
+       LED_INV(ADM5120_GPIO_PIN3, "power",     NULL),
+       LED_INV(ADM5120_GPIO_PIN6, "wan_cond",  NULL),
+       LED_INV(ADM5120_GPIO_PIN7, "wifi",      NULL),
+       LED_INV(ADM5120_GPIO_P0L2, "usb1",      NULL),
+       LED_INV(ADM5120_GPIO_P1L0, "lan1",      NULL),
+       LED_INV(ADM5120_GPIO_P1L2, "usb2",      NULL),
+       LED_INV(ADM5120_GPIO_P2L0, "lan2",      NULL),
+       LED_INV(ADM5120_GPIO_P2L2, "usb3",      NULL),
+       LED_INV(ADM5120_GPIO_P3L0, "lan3",      NULL),
+       LED_INV(ADM5120_GPIO_P3L2, "usb4",      NULL),
+       LED_INV(ADM5120_GPIO_P4L0, "wan",       NULL),
 };
-#endif
 
 LED_ARRAY(wp54g) {
        LED_INV(ADM5120_GPIO_PIN2, "diag",      NULL),
@@ -130,20 +129,50 @@ LED_ARRAY(br6104k) {
        LED_INV(ADM5120_GPIO_P4L0, "lan4_lnkact",       NULL),
 };
 
+LED_ARRAY(br61x4wg) {
+       LED_STD(ADM5120_GPIO_PIN0, "power",             NULL),
+       LED_STD(ADM5120_GPIO_PIN5, "wlan",              NULL),
+       LED_INV(ADM5120_GPIO_P0L1, "wan_speed",         NULL),
+       LED_INV(ADM5120_GPIO_P0L0, "wan_lnkact",        NULL),
+       LED_INV(ADM5120_GPIO_P1L1, "lan1_speed",        NULL),
+       LED_INV(ADM5120_GPIO_P1L0, "lan1_lnkact",       NULL),
+       LED_INV(ADM5120_GPIO_P2L1, "lan2_speed",        NULL),
+       LED_INV(ADM5120_GPIO_P2L0, "lan2_lnkact",       NULL),
+       LED_INV(ADM5120_GPIO_P3L1, "lan3_speed",        NULL),
+       LED_INV(ADM5120_GPIO_P3L0, "lan3_lnkact",       NULL),
+       LED_INV(ADM5120_GPIO_P4L1, "lan4_speed",        NULL),
+       LED_INV(ADM5120_GPIO_P4L0, "lan4_lnkact",       NULL),
+};
+
 /*
  * Mikrotik boards
  */
-#if defined(CONFIG_LEDS_ADM5120_EXPERIMENTAL)
-LED_ARRAY(rb100) { /* FIXME: untested */
-       LED_STD(ADM5120_GPIO_PIN6, "power",     NULL),
+LED_ARRAY(rb100) {
        LED_STD(ADM5120_GPIO_PIN3, "user",      NULL),
+        LED_INV(ADM5120_GPIO_P0L1, "lan0_speed",       NULL),
+        LED_INV(ADM5120_GPIO_P0L0, "lan0_lnkact",      NULL),
+};
+
+LED_ARRAY(rb153) {
+       LED_STD(ADM5120_GPIO_PIN5, "user",              NULL),
+        LED_INV(ADM5120_GPIO_P0L1, "lan0_speed",       NULL),
+        LED_INV(ADM5120_GPIO_P0L0, "lan0_lnkact",      NULL),
+        LED_INV(ADM5120_GPIO_P1L1, "lan4_speed",       NULL),
+        LED_INV(ADM5120_GPIO_P1L0, "lan4_lnkact",      NULL),
+        LED_INV(ADM5120_GPIO_P2L1, "lan3_speed",       NULL),
+        LED_INV(ADM5120_GPIO_P2L0, "lan3_lnkact",       NULL),
+        LED_INV(ADM5120_GPIO_P3L1, "lan2_speed",        NULL),
+        LED_INV(ADM5120_GPIO_P3L0, "lan3_lnkact",       NULL),
+        LED_INV(ADM5120_GPIO_P4L1, "lan1_speed",        NULL),
+        LED_INV(ADM5120_GPIO_P4L0, "lan1_lnkact",       NULL),
 };
-#endif
 
+#ifdef CONFIG_LEDS_ADM5120_EXPERIMENTAL
 LED_ARRAY(rb133) {
        LED_STD(ADM5120_GPIO_PIN6, "power",     NULL),
        LED_STD(ADM5120_GPIO_PIN5, "user",      NULL),
 };
+#endif
 
 /*
  * ZyXEL boards
@@ -225,6 +254,8 @@ LED_ARRAY(generic) {
 static struct mach_data machines[] __initdata = {
        MACH_DATA(MACH_ADM5120_GENERIC, generic),
        /* Compex */
+       MACH_DATA(MACH_ADM5120_NP28G,   np28g),
+       MACH_DATA(MACH_ADM5120_NP28GHS, np28g),
        MACH_DATA(MACH_ADM5120_WP54AG,  wp54g),
        MACH_DATA(MACH_ADM5120_WP54G,   wp54g),
        MACH_DATA(MACH_ADM5120_WP54G_WRT, wp54g),
@@ -232,20 +263,20 @@ static struct mach_data machines[] __initdata = {
        MACH_DATA(MACH_ADM5120_WPP54G,  wp54g),
        /* Edimax */
        MACH_DATA(MACH_ADM5120_BR6104K, br6104k),
+       MACH_DATA(MACH_ADM5120_BR61x4WG, br61x4wg),
        /* Mikrotik */
        MACH_DATA(MACH_ADM5120_RB_133,  rb133),
        MACH_DATA(MACH_ADM5120_RB_133C, rb133),
        /* ZyXEL */
        MACH_DATA(MACH_ADM5120_P334WT,  p334wt),
+       MACH_DATA(MACH_ADM5120_RB_111,  rb100),
+       MACH_DATA(MACH_ADM5120_RB_112,  rb100),
+       MACH_DATA(MACH_ADM5120_RB_153,  rb153),
 #if defined(CONFIG_LEDS_ADM5120_EXPERIMENTAL)
        /* untested */
        MACH_DATA(MACH_ADM5120_P334,    p334),
        MACH_DATA(MACH_ADM5120_P335,    p335),
-       MACH_DATA(MACH_ADM5120_RB_111,  rb100),
-       MACH_DATA(MACH_ADM5120_RB_112,  rb100),
        MACH_DATA(MACH_ADM5120_NP27G,   np27g),
-       MACH_DATA(MACH_ADM5120_NP28G,   np28g),
-       MACH_DATA(MACH_ADM5120_NP28GHS, np28g),
 #endif
 };
 
@@ -303,7 +334,7 @@ adm5120_leds_init(void)
 
        mach = adm5120_leds_findmach(mips_machtype);
        if (mach == NULL) {
-               /* the board is not yet supported */
+               printk(KERN_ERR "leds-adm5120: unsupported board\n");
                ret = -EINVAL;
                goto err;
        }