Changeset 9357


Ignore:
Timestamp:
2007-10-19T05:02:49+02:00 (10 years ago)
Author:
ejka
Message:

fritzbox leds detection (thanks Axel Gembe)

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/target/linux/ar7/files/arch/mips/ar7/platform.c

    r9253 r9357  
    3232#include <linux/vlynq.h> 
    3333#include <linux/leds.h> 
     34#include <linux/string.h> 
    3435 
    3536#include <asm/addrspace.h> 
     
    323324}; 
    324325 
    325 static struct gpio_led fb_leds[] = { 
     326static struct gpio_led fb_sl_leds[] = { 
    326327        { .name = "1", .gpio = 7, }, 
    327328        { .name = "2", .gpio = 13, .active_low = 1, }, 
     
    388389                dev_addr[i] = (char2hex(mac[i * 3]) << 4) + 
    389390                        char2hex(mac[i * 3 + 1]); 
     391} 
     392 
     393static void __init detect_leds(void) 
     394{ 
     395        char *prId; 
     396 
     397        /* Default LEDs */ 
     398        ar7_led_data.num_leds = ARRAY_SIZE(default_leds); 
     399        ar7_led_data.leds = default_leds; 
     400 
     401        /* FIXME: the whole thing is unreliable */ 
     402        prId = prom_getenv("ProductID"); 
     403         
     404        /* If we can't get the product id from PROM, use the default LEDs */ 
     405        if (!prId) 
     406                return; 
     407 
     408        if (strstr(prId, "Fritz_Box_FON")) { 
     409                ar7_led_data.num_leds = ARRAY_SIZE(fb_fon_leds); 
     410                ar7_led_data.leds = fb_fon_leds; 
     411        } else if (strstr(prId, "Fritz_Box_")) { 
     412                ar7_led_data.num_leds = ARRAY_SIZE(fb_sl_leds); 
     413                ar7_led_data.leds = fb_sl_leds; 
     414        } 
    390415} 
    391416 
     
    473498                return res; 
    474499 
    475 #warning FIXME: add model detection 
    476         ar7_led_data.num_leds = ARRAY_SIZE(default_leds); 
    477         ar7_led_data.leds = default_leds; 
     500        detect_leds(); 
    478501        res = platform_device_register(&ar7_gpio_leds); 
    479502        if (res) 
Note: See TracChangeset for help on using the changeset viewer.