Changeset 11676


Ignore:
Timestamp:
2008-07-06T02:59:48+02:00 (8 years ago)
Author:
blogic
Message:

make atheros wifi cards used on arcaydian 4519 ifxmips based boards work

Location:
trunk
Files:
2 added
4 edited

Legend:

Unmodified
Added
Removed
  • trunk/target/linux/ifxmips/config-2.6.25

    r11607 r11676  
    9494CONFIG_KALLSYMS=y 
    9595# CONFIG_LEDS_ALIX is not set 
    96 # CONFIG_LEDS_GPIO is not set 
     96CONFIG_LEDS_GPIO=y 
    9797CONFIG_LEDS_IFXMIPS=y 
    9898# CONFIG_LEMOTE_FULONG is not set 
  • trunk/target/linux/ifxmips/files/arch/mips/ifxmips/board.c

    r11674 r11676  
    3333#include <linux/etherdevice.h> 
    3434#include <asm/ifxmips/ifxmips.h> 
     35#include <linux/leds.h> 
    3536 
    3637#define MAX_BOARD_NAME_LEN              32 
     
    120121        .num_resources    =     1, 
    121122}; 
     123 
     124#ifdef CONFIG_LEDS_GPIO 
     125static struct gpio_led arv4519_leds[] = { 
     126        { .name = "ifxmips:green:power0", .gpio = 3, .active_low = 0, }, 
     127        { .name = "ifxmips:red:power1", .gpio = 7, .active_low = 1, }, 
     128        { .name = "ifxmips:green:adsl", .gpio = 4, .active_low = 1, }, 
     129        { .name = "ifxmips:green:internet0", .gpio = 5, .active_low = 0, }, 
     130        { .name = "ifxmips:red:internet1", .gpio = 8, .active_low = 1, }, 
     131        { .name = "ifxmips:green:wlan", .gpio = 6, .active_low = 1, }, 
     132        { .name = "ifxmips:green:usb", .gpio = 19, .active_low = 1, }, 
     133}; 
     134 
     135static const struct gpio_led_platform_data arv4519_led_data = { 
     136        .num_leds = ARRAY_SIZE(arv4519_leds), 
     137        .leds = (void *) arv4519_leds, 
     138}; 
     139 
     140static struct platform_device arv4519_gpio_leds = { 
     141        .name = "leds-gpio", 
     142        .id = -1, 
     143        .dev = { 
     144                .platform_data = (void *) &arv4519_led_data, 
     145         } 
     146}; 
     147#endif 
    122148 
    123149const char* 
     
    236262                .devs = 
    237263                { 
    238                         &ifxmips_led, &ifxmips_gpio, &ifxmips_mii, 
     264                        &ifxmips_gpio, &ifxmips_mii, 
    239265                        &ifxmips_mtd, &ifxmips_wdt, &ifxmips_gpio_dev, 
     266#ifdef CONFIG_LEDS_GPIO 
     267                        &arv4519_gpio_leds, 
     268#endif 
    240269                }, 
    241270                .reset_resource = 
     
    278307        return ifxmips_brn; 
    279308} 
     309EXPORT_SYMBOL(ifxmips_has_brn_block); 
    280310 
    281311struct ifxmips_board* 
  • trunk/target/linux/ifxmips/files/drivers/watchdog/ifxmips_wdt.c

    r11607 r11676  
    123123{ 
    124124        ifxmips_wdt_enable(wdt_timeout); 
    125         printk("ifxmips_wdt: activated"); 
    126125        return nonseekable_open(inode, file); 
    127126} 
  • trunk/target/linux/ifxmips/files/include/asm-mips/mach-ifxmips/gpio.h

    r11578 r11676  
    2727#include <asm/ifxmips/ifxmips_gpio.h> 
    2828 
     29#define GPIO_TO_PORT(x) ((x > 15)?(1):(0)) 
     30#define GPIO_TO_GPIO(x) ((x > 15)?(x-16):(x)) 
     31 
    2932static inline int gpio_direction_input(unsigned gpio) { 
    30         ifxmips_port_set_dir_in(0, gpio); 
     33        ifxmips_port_set_open_drain(GPIO_TO_PORT(gpio), GPIO_TO_GPIO(gpio)); 
     34        ifxmips_port_clear_altsel0(GPIO_TO_PORT(gpio), GPIO_TO_GPIO(gpio)); 
     35    ifxmips_port_clear_altsel1(GPIO_TO_PORT(gpio), GPIO_TO_GPIO(gpio)); 
     36        ifxmips_port_set_dir_in(GPIO_TO_PORT(gpio), GPIO_TO_GPIO(gpio)); 
    3137        return 0; 
    3238} 
    3339 
    3440static inline int gpio_direction_output(unsigned gpio, int value) { 
    35         ifxmips_port_set_dir_out(0, gpio); 
     41        ifxmips_port_clear_open_drain(GPIO_TO_PORT(gpio), GPIO_TO_GPIO(gpio)); 
     42        ifxmips_port_clear_altsel0(GPIO_TO_PORT(gpio), GPIO_TO_GPIO(gpio)); 
     43        ifxmips_port_clear_altsel1(GPIO_TO_PORT(gpio), GPIO_TO_GPIO(gpio)); 
     44        ifxmips_port_set_dir_out(GPIO_TO_PORT(gpio), GPIO_TO_GPIO(gpio)); 
    3645        return 0; 
    3746} 
    3847 
    3948static inline int gpio_get_value(unsigned gpio) { 
    40         ifxmips_port_get_input(0, gpio); 
     49        ifxmips_port_get_input(GPIO_TO_PORT(gpio), GPIO_TO_GPIO(gpio)); 
    4150        return 0; 
    4251} 
    4352 
    4453static inline void gpio_set_value(unsigned gpio, int value) { 
    45         ifxmips_port_set_output(0, gpio); 
     54        if(value) 
     55                ifxmips_port_set_output(GPIO_TO_PORT(gpio), GPIO_TO_GPIO(gpio)); 
     56        else 
     57                ifxmips_port_clear_output(GPIO_TO_PORT(gpio), GPIO_TO_GPIO(gpio)); 
    4658} 
    4759 
Note: See TracChangeset for help on using the changeset viewer.