use newer config.guess and config.sub for packages then the shipped ones
[openwrt.git] / package / broadcom-diag / src / diag.c
index c6ce85b..7866b9f 100644 (file)
@@ -101,9 +101,12 @@ enum {
 
        /* Trendware */
        TEW411BRPP,
+       
+       /* SimpleTech */
+       STI_NAS,
 };
 
-static void __init wl700ge_init(void) {
+static void __init bcm4780_init(void) {
                int pin = 1 << 3;
 
                /* Enables GPIO 3 that controls HDD and led power on ASUS WL-700gE */
@@ -287,7 +290,7 @@ static struct platform_t __initdata platforms[] = {
 #endif
                        { .name = "diag",       .gpio = 1 << 1, .polarity = REVERSE }, // actual name ready
                },
-               .platform_init = wl700ge_init,
+               .platform_init = bcm4780_init,
        },
        /* Buffalo */
        [WHR_G54S] = {
@@ -500,7 +503,7 @@ static struct platform_t __initdata platforms[] = {
                        { .name = "reset",      .gpio = 1 << 2 },
                },
                .leds           = {
-                       { .name = "power",      .gpio = 1 << 3, .polarity = REVERSE },
+                       { .name = "power",      .gpio = 1 << 3, .polarity = NORMAL },
                },
        },
        /* Trendware */
@@ -515,6 +518,18 @@ static struct platform_t __initdata platforms[] = {
                        { .name = "bridge",     .gpio = 1 << 6, .polarity = NORMAL },
                },
        },
+       /* SimpleTech */
+       [STI_NAS] = {
+               .name      = "SimpleTech SimpleShare NAS",
+               .buttons        = {
+                       { .name = "reset",      .gpio = 1 << 7 }, // on back, hardwired, always resets device regardless OS state
+                       { .name = "power",      .gpio = 1 << 0 }, // on back
+               },
+               .leds      = {
+                       { .name = "diag",       .gpio = 1 << 1, .polarity = REVERSE }, // actual name ready
+               },
+               .platform_init = bcm4780_init,
+       },
 };
 
 static struct platform_t __init *platform_detect(void)
@@ -524,8 +539,11 @@ static struct platform_t __init *platform_detect(void)
        boardnum = getvar("boardnum");
        boardtype = getvar("boardtype");
 
-       if (strncmp(getvar("model_no"), "WL700",5) == 0) {
-               return &platforms[WL700GE]; }
+       if (strcmp(getvar("nvram_type"), "cfe") == 0)
+               return &platforms[WGT634U];
+       
+       if (strncmp(getvar("model_no"), "WL700",5) == 0)
+               return &platforms[WL700GE];
 
        if (strncmp(getvar("pmon_ver"), "CFE", 3) == 0) {
                /* CFE based - newer hardware */
@@ -627,6 +645,9 @@ static struct platform_t __init *platform_detect(void)
                return &platforms[TEW411BRPP];
        }
 
+       if (!strncmp(boardnum, "04FN52", 6)) /* SimpleTech SimpleShare */
+               return &platforms[STI_NAS];
+
        /* not found */
        return NULL;
 }
@@ -654,8 +675,14 @@ static void unregister_buttons(struct button_t *b)
        gpio_set_irqenable(0, button_handler);
 }
 
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,20)
+static void hotplug_button(struct work_struct *work)
+{
+       struct event_t *event = container_of(work, struct event_t, wq);
+#else
 static void hotplug_button(struct event_t *event)
 {
+#endif
 #if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,0)
        call_usermodehelper (event->argv[0], event->argv, event->envp, 1);
 #else
@@ -703,7 +730,11 @@ static irqreturn_t button_handler(int irq, void *dev_id, struct pt_regs *regs)
                        scratch += sprintf (scratch, "SEEN=%ld", (jiffies - b->seen)/HZ) + 1;
                        event->envp[i] = 0;
 
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,20)
+                       INIT_WORK(&event->wq, (void *)(void *)hotplug_button);
+#else
                        INIT_WORK(&event->wq, (void *)(void *)hotplug_button, (void *)event);
+#endif
                        schedule_work(&event->wq);
                }
 
This page took 0.029457 seconds and 4 git commands to generate.