Changeset 29292


Ignore:
Timestamp:
2011-11-22T19:50:51+01:00 (6 years ago)
Author:
blogic
Message:

lantiq:

  • fixes ath5k eeprom handling
  • fixes sx76x
  • adds sx76x to userland api
  • minor style cleanups

Signed-of-by: Andrej Vlašić <andrej.vlasic0@…>

Location:
trunk/target/linux/lantiq
Files:
2 added
6 edited
1 copied

Legend:

Unmodified
Added
Removed
  • trunk/target/linux/lantiq/base-files/etc/uci-defaults/leds

    r29004 r29292  
    9393 
    9494GIGASX76X) 
    95         set_led_netdev "wifi" "wifi" "soc:green:wifi" "ath0" 
     95        set_led_wlan "wifi" "wifi" "soc:green:wifi" "phy0radio" 
     96        set_led_netdev "online" "online" "soc:green:online" "nas0" 
    9697        set_led_usbdev "usb" "USB" "soc:green:usb" "1-1" 
     98        set_led_default "phone1" "fxs1" "soc:green:phone1" "0" 
     99        set_led_default "phone2" "fxs2" "soc:green:phone2" "0" 
     100        set_led_default "line" "line" "soc:green:line" "0" 
    97101        ;; 
    98102esac 
  • trunk/target/linux/lantiq/base-files/etc/uci-defaults/network

    r29161 r29292  
    116116 
    117117case "$board" in 
     118GIGASX76X) 
     119        set_interface_lan "eth0.1" 
     120        add_switch "eth0" "1" "1" 
     121        add_switch_vlan "eth0" "1" "1 2 3 4 5t" 
     122        set_atm_wan "1" "32" "llc" "bridged" 
     123        ;; 
     124 
    118125*) 
    119126        # custom foo goes here 
  • trunk/target/linux/lantiq/danube/profiles/003-gigaset.mk

    r28998 r29292  
    22  NAME:=GIGASX76X - Gigaset SX761,SX762,SX763 
    33  PACKAGES:= kmod-usb-core kmod-usb-dwc-otg kmod-ledtrig-usbdev \ 
    4         kmod-ltq-dsl-firmware-b-danube 
     4        kmod-ath5k wpad-mini kmod-ltq-dsl-firmware-b-danube 
    55endef 
    66 
  • trunk/target/linux/lantiq/files-3.1/arch/mips/lantiq/xway/dev-wifi-ath5k.h

    r29289 r29292  
    11/* 
    22 *  Copyright (C) 2011 John Crispin <blogic@openwrt.org> 
     3 *  Copyright (C) 2011 Andrej VlaÅ¡ić <andrej.vlasic0@gmail.com> 
    34 * 
    45 *  This program is free software; you can redistribute it and/or modify it 
     
    78 */ 
    89 
    9 #ifndef _DEV_WIFI_RT2X00_H__ 
    10 #define _DEV_WIFI_RT2X00_H__ 
     10#ifndef _DEV_WIFI_ATH5K_H__ 
     11#define _DEV_WIFI_ATH5K_H__ 
    1112 
    12 extern void ltq_register_rt2x00(const char *firmware); 
     13extern void ltq_register_ath5k(u16 *eeprom_data, u8 *macaddr); 
    1314 
    1415#endif 
  • trunk/target/linux/lantiq/files-3.1/arch/mips/lantiq/xway/mach-arv45xx.c

    r29129 r29292  
    2727#include "../machtypes.h" 
    2828#include "dev-wifi-rt2x00.h" 
     29#include "dev-wifi-ath5k.h" 
    2930#include "devices.h" 
    3031#include "dev-dwc_otg.h" 
     
    178179}; 
    179180 
    180 static struct gpio_button 
    181 arv4518pw_gpio_buttons[] __initdata = { 
    182         { .desc = "wifi", .type = EV_KEY, .code = BTN_0, .threshold = 3, .gpio = 28, .active_low = 1, }, 
    183         { .desc = "wps", .type = EV_KEY, .code = BTN_1, .threshold = 3, .gpio = 29, .active_low = 1, }, 
    184         { .desc = "reset", .type = EV_KEY, .code = BTN_2, .threshold = 3, .gpio = 30, .active_low = 1, }, 
     181static struct gpio_keys_button 
     182arv4518pw_gpio_keys[] __initdata = { 
     183        { 
     184                .desc           = "wifi", 
     185                .type           = EV_KEY, 
     186                .code           = BTN_0, 
     187                .debounce_interval = LTQ_KEYS_DEBOUNCE_INTERVAL, 
     188                .gpio           = 28, 
     189                .active_low     = 1, 
     190        }, 
     191        { 
     192                .desc           = "reset", 
     193                .type           = EV_KEY, 
     194                .code           = BTN_1, 
     195                .debounce_interval = LTQ_KEYS_DEBOUNCE_INTERVAL, 
     196                .gpio           = 30, 
     197                .active_low     = 1, 
     198        }, 
     199        { 
     200                .desc           = "wps", 
     201                .type           = EV_KEY, 
     202                .code           = BTN_2, 
     203                .debounce_interval = LTQ_KEYS_DEBOUNCE_INTERVAL, 
     204                .gpio           = 29, 
     205                .active_low     = 1, 
     206        }, 
    185207}; 
    186208 
     
    249271}; 
    250272 
    251 static struct gpio_button 
    252 arv752dpw22_gpio_buttons[] __initdata = { 
    253         { .desc = "btn0", .type = EV_KEY, .code = BTN_0, .threshold = 3, .gpio = 12, .active_low = 1, }, 
    254         { .desc = "btn1", .type = EV_KEY, .code = BTN_1, .threshold = 3, .gpio = 13, .active_low = 1, }, 
    255         { .desc = "btn2", .type = EV_KEY, .code = BTN_2, .threshold = 3, .gpio = 28, .active_low = 1, }, 
     273static struct gpio_keys_button 
     274arv752dpw22_gpio_keys[] __initdata = { 
     275        { 
     276                .desc           = "btn0", 
     277                .type           = EV_KEY, 
     278                .code           = BTN_0, 
     279                .debounce_interval = LTQ_KEYS_DEBOUNCE_INTERVAL, 
     280                .gpio           = 12, 
     281                .active_low     = 1, 
     282        }, 
     283        { 
     284                .desc           = "btn1", 
     285                .type           = EV_KEY, 
     286                .code           = BTN_1, 
     287                .debounce_interval = LTQ_KEYS_DEBOUNCE_INTERVAL, 
     288                .gpio           = 13, 
     289                .active_low     = 1, 
     290        }, 
     291        { 
     292                .desc           = "btn2", 
     293                .type           = EV_KEY, 
     294                .code           = BTN_2, 
     295                .debounce_interval = LTQ_KEYS_DEBOUNCE_INTERVAL, 
     296                .gpio           = 28, 
     297                .active_low     = 1, 
     298        }, 
    256299}; 
    257300 
     
    266309}; 
    267310 
    268 static struct gpio_button 
    269 arv7518pw_gpio_buttons[] __initdata = { 
    270         { .desc = "reset", .type = EV_KEY, .code = BTN_0, .threshold = 3, .gpio = 23, .active_low = 1, }, 
    271         { .desc = "wifi", .type = EV_KEY, .code = BTN_1, .threshold = 3, .gpio = 25, .active_low = 1, }, 
     311static struct gpio_keys_button 
     312arv7518pw_gpio_keys[] __initdata = { 
     313        { 
     314                .desc           = "reset", 
     315                .type           = EV_KEY, 
     316                .code           = BTN_0, 
     317                .debounce_interval = LTQ_KEYS_DEBOUNCE_INTERVAL, 
     318                .gpio           = 23, 
     319                .active_low     = 1, 
     320        }, 
     321        { 
     322                .desc           = "wifi", 
     323                .type           = EV_KEY, 
     324                .code           = BTN_1, 
     325                .debounce_interval = LTQ_KEYS_DEBOUNCE_INTERVAL, 
     326                .gpio           = 25, 
     327                .active_low     = 1, 
     328        }, 
     329}; 
     330 
     331static struct gpio_keys_button 
     332arv7525pw_gpio_keys[] __initdata = { 
     333        { 
     334                .desc           = "restart", 
     335                .type           = EV_KEY, 
     336                .code           = BTN_0, 
     337                .debounce_interval = LTQ_KEYS_DEBOUNCE_INTERVAL, 
     338                .gpio           = 29, 
     339                .active_low     = 1, 
     340        }, 
    272341}; 
    273342 
     
    300369 
    301370static u16 arv45xx_ath5k_eeprom_data[ATH5K_PLAT_EEP_MAX_WORDS]; 
    302 static struct ath5k_platform_data arv45xx_ath5k_platform_data; 
    303  
    304 /*static int arv45xx_pci_plat_dev_init(struct pci_dev *dev) 
    305 { 
    306         dev->dev.platform_data = &arv45xx_ath5k_platform_data; 
    307         return 0; 
    308 } 
    309 */ 
     371static u8 arv45xx_ath5k_eeprom_mac[6]; 
     372 
    310373void __init 
    311374arv45xx_register_ath5k(void) 
     
    313376#define ARV45XX_BRN_ATH         0x3f0478 
    314377        int i; 
    315         unsigned char eeprom_mac[6]; 
    316378        static u16 eeprom_data[ATH5K_PLAT_EEP_MAX_WORDS]; 
    317379        u32 *p = (u32*)arv45xx_ath5k_eeprom_data; 
    318380 
    319         memcpy_fromio(eeprom_mac, 
     381        memcpy_fromio(arv45xx_ath5k_eeprom_mac, 
    320382                (void *)KSEG1ADDR(LTQ_FLASH_START + ARV45XX_BRN_MAC), 6); 
    321         eeprom_mac[5]++; 
     383        arv45xx_ath5k_eeprom_mac[5]++; 
    322384        memcpy_fromio(arv45xx_ath5k_eeprom_data, 
    323385                (void *)KSEG1ADDR(LTQ_FLASH_START + ARV45XX_BRN_ATH), ATH5K_PLAT_EEP_MAX_WORDS); 
     
    335397                } 
    336398        } 
    337         arv45xx_ath5k_platform_data.eeprom_data = arv45xx_ath5k_eeprom_data; 
    338         arv45xx_ath5k_platform_data.macaddr = eeprom_mac; 
    339         //lqpci_plat_dev_init = arv45xx_pci_plat_dev_init; 
    340399} 
    341400 
     
    382441        ltq_register_gpio_ebu(ARV4518PW_EBU); 
    383442        ltq_add_device_gpio_leds(-1, ARRAY_SIZE(arv4518pw_gpio_leds), arv4518pw_gpio_leds); 
    384         ltq_register_gpio_buttons(arv4518pw_gpio_buttons, ARRAY_SIZE(arv4518pw_gpio_buttons)); 
     443        ltq_register_gpio_keys_polled(-1, LTQ_KEYS_POLL_INTERVAL, 
     444                                ARRAY_SIZE(arv4518pw_gpio_keys), arv4518pw_gpio_keys); 
    385445        ltq_register_nor(&arv45xx_flash_data); 
    386446        ltq_pci_data.gpio = PCI_GNT2 | PCI_REQ2; 
    387447        ltq_register_pci(&ltq_pci_data); 
    388448        ltq_register_madwifi_eep(ARV4518PW_MADWIFI_ADDR); 
     449        ltq_register_ath5k(arv45xx_ath5k_eeprom_data, arv45xx_ath5k_eeprom_mac); 
    389450        xway_register_dwc(ARV4518PW_USB); 
    390451        arv45xx_register_ethernet(); 
    391         arv45xx_register_ath5k(); 
    392452 
    393453        gpio_request(ARV4518PW_SWITCH_RESET, "switch"); 
     
    480540                        "ARV4525PW - Speedport W502V", 
    481541                        arv4525pw_init); 
    482  
    483 static struct gpio_keys_button 
    484 arv7525pw_gpio_keys[] __initdata = { 
    485         { 
    486                 .desc           = "restart", 
    487                 .type           = EV_KEY, 
    488                 .code           = BTN_0, 
    489                 .debounce_interval = LTQ_KEYS_DEBOUNCE_INTERVAL, 
    490                 .gpio           = 29, 
    491                 .active_low     = 1, 
    492         }, 
    493 }; 
    494542 
    495543static void __init 
     
    505553        ltq_register_pci(&ltq_pci_data); 
    506554        ltq_eth_data.mii_mode = PHY_INTERFACE_MODE_MII; 
    507         arv45xx_register_ethernet(); 
    508555        ltq_register_rt2x00("RT2860.eeprom"); 
    509556        ltq_register_tapi(); 
     557        arv45xx_register_ethernet(); 
    510558} 
    511559 
     
    523571        ltq_register_gpio_ebu(ARV7518PW_EBU); 
    524572        ltq_add_device_gpio_leds(-1, ARRAY_SIZE(arv7518pw_gpio_leds), arv7518pw_gpio_leds); 
    525         ltq_register_gpio_buttons(arv7518pw_gpio_buttons, ARRAY_SIZE(arv7518pw_gpio_buttons)); 
     573        ltq_register_gpio_keys_polled(-1, LTQ_KEYS_POLL_INTERVAL, 
     574                                ARRAY_SIZE(arv7518pw_gpio_keys), arv7518pw_gpio_keys); 
    526575        ltq_register_nor(&arv75xx_flash_data); 
    527576        ltq_register_pci(&ltq_pci_data); 
     
    546595        ltq_register_gpio_ebu(ARV752DPW22_EBU); 
    547596        ltq_add_device_gpio_leds(-1, ARRAY_SIZE(arv752dpw22_gpio_leds), arv752dpw22_gpio_leds); 
    548         ltq_register_gpio_buttons(arv752dpw22_gpio_buttons, ARRAY_SIZE(arv752dpw22_gpio_buttons)); 
     597        ltq_register_gpio_keys_polled(-1, LTQ_KEYS_POLL_INTERVAL, 
     598                                ARRAY_SIZE(arv752dpw22_gpio_keys), arv752dpw22_gpio_keys); 
    549599        ltq_register_nor(&arv75xx_flash_data); 
    550600        ltq_pci_data.irq[15] = (INT_NUM_IM3_IRL0 + 31); 
  • trunk/target/linux/lantiq/files-3.1/arch/mips/lantiq/xway/mach-gigasx76x.c

    r29002 r29292  
    3131 
    3232#include "../machtypes.h" 
     33#include "dev-wifi-ath5k.h" 
    3334#include "devices.h" 
    3435#include "dev-dwc_otg.h" 
     36 
     37#include "mach-gigasx76x.h" 
    3538 
    3639#define UBOOT_ENV_OFFSET        0x010000 
     
    6366static struct gpio_led 
    6467gigasx76x_gpio_leds[] __initdata = { 
     68 
    6569        { .name = "soc:green:usb", .gpio = 202, }, 
    6670        { .name = "soc:green:wifi", .gpio = 203, }, 
     
    7478static struct gpio_keys_button 
    7579gigasx76x_gpio_keys[] __initdata = { 
    76 { 
    77         .desc   = "restart", 
    78         .type   = EV_KEY, 
    79         .code   = KEY_RESTART, 
    80         .debounce_interval = LTQ_KEYS_DEBOUNCE_INTERVAL, 
    81         .gpio   = 14, 
    82         .active_low     = 1, 
    83 }, 
    84 { 
    85         .desc   = "wps", 
    86         .type   = EV_KEY, 
    87         .code   = KEY_WPS_BUTTON, 
    88         .debounce_interval = LTQ_KEYS_DEBOUNCE_INTERVAL, 
    89         .gpio   = 22, 
    90         .active_low     = 1, 
    91 }, 
     80        { 
     81                .desc           = "wps", 
     82                .type           = EV_KEY, 
     83                .code           = BTN_0, 
     84                .debounce_interval = LTQ_KEYS_DEBOUNCE_INTERVAL, 
     85                .gpio           = 22, 
     86                .active_low     = 1, 
     87        }, 
     88        /*{ 
     89                .desc           = "factory", 
     90                .type           = EV_KEY, 
     91                .code           = BTN_1, 
     92                .debounce_interval = LTQ_KEYS_DEBOUNCE_INTERVAL, 
     93                .gpio           = 14, 
     94                .active_low     = 1, 
     95        },*/ 
    9296}; 
    9397 
     
    148152} 
    149153 
     154static u16 gigasx76x_ath5k_eeprom_data[ATH5K_PLAT_EEP_MAX_WORDS]; 
     155static u8 gigasx76x_ath5k_eeprom_mac[6]; 
     156 
    150157static int __init gigasx76x_register_ethernet(void) { 
    151158        u_int8_t addr[6]; 
     
    153160        char *uboot_env_page; 
    154161        char *mac; 
     162        char *boardid; 
    155163 
    156164        uboot_env_page = ioremap(LTQ_FLASH_START + UBOOT_ENV_OFFSET, UBOOT_ENV_SIZE); 
     
    159167 
    160168        mac = get_uboot_env_var(uboot_env_page, UBOOT_ENV_SIZE, "\0ethaddr=", 9); 
     169        boardid = get_uboot_env_var(uboot_env_page, UBOOT_ENV_SIZE, "\0boardid=", 9); 
    161170 
    162171        if (!mac) { 
     172        goto error_fail; 
     173        } 
     174 
     175        if (!boardid) { 
    163176        goto error_fail; 
    164177        } 
     
    188201        ltq_register_etop(&ltq_eth_data); 
    189202 
     203        memcpy(&gigasx76x_ath5k_eeprom_mac, addr, 6); 
     204        gigasx76x_ath5k_eeprom_mac[5]++; 
     205 
     206        if (strncmp(boardid, "sx763", 5) == 0) { 
     207                printk("GIGASX76X: Board id is sx763."); 
     208                memcpy(&gigasx76x_ath5k_eeprom_data, sx763_eeprom_data, ATH5K_PLAT_EEP_MAX_WORDS); 
     209        } else if (strncmp(boardid, "sx762", 5) == 0) { 
     210                        printk("GIGASX76X: Board id is sx762."); 
     211                        memcpy(&gigasx76x_ath5k_eeprom_data, sx762_eeprom_data, ATH5K_PLAT_EEP_MAX_WORDS); 
     212        } else { 
     213                printk("GIGASX76X: Board id is unknown, fix uboot_env data."); 
     214        } 
     215 
    190216        return 0; 
    191217 
     
    202228        ltq_register_nor(&gigasx76x_flash_data); 
    203229        ltq_register_pci(&ltq_pci_data); 
    204         gigasx76x_register_ethernet(); 
    205         xway_register_dwc(GIGASX76X_USB); 
    206230        ltq_register_tapi(); 
    207231        ltq_register_madwifi_eep(GIGASX76X_MADWIFI_ADDR); 
    208232        ltq_add_device_gpio_leds(-1, ARRAY_SIZE(gigasx76x_gpio_leds), gigasx76x_gpio_leds); 
    209233        ltq_register_gpio_keys_polled(-1, LTQ_KEYS_POLL_INTERVAL, ARRAY_SIZE(gigasx76x_gpio_keys), gigasx76x_gpio_keys); 
     234        ltq_register_ath5k(gigasx76x_ath5k_eeprom_data, gigasx76x_ath5k_eeprom_mac); 
     235        xway_register_dwc(GIGASX76X_USB); 
     236        gigasx76x_register_ethernet(); 
    210237} 
    211238 
  • trunk/target/linux/lantiq/patches/211-devices.patch

    r29129 r29292  
    5050 obj-y := sysctrl.o reset.o gpio.o gpio_stp.o gpio_ebu.o devices.o dma.o nand.o timer.o 
    5151  
    52 +obj-y += dev-dwc_otg.o dev-wifi-rt2x00.o 
     52+obj-y += dev-dwc_otg.o dev-wifi-rt2x00.o dev-wifi-ath5k.o 
    5353+ 
    5454 obj-$(CONFIG_SOC_XWAY) += clk-xway.o prom-xway.o 
Note: See TracChangeset for help on using the changeset viewer.