Changeset 10968


Ignore:
Timestamp:
2008-04-28T20:46:05+02:00 (9 years ago)
Author:
juhosg
Message:

[ixp4xx] update Avila patches

Location:
trunk/target/linux/ixp4xx/patches-2.6.24
Files:
1 added
5 edited

Legend:

Unmodified
Added
Removed
  • trunk/target/linux/ixp4xx/patches-2.6.24/296-avila_mac_plat_info.patch

    r10866 r10968  
    33--- linux-2.6.24.2.orig/arch/arm/mach-ixp4xx/avila-setup.c 
    44+++ linux-2.6.24.2/arch/arm/mach-ixp4xx/avila-setup.c 
    5 @@ -132,12 +132,42 @@ static struct platform_device avila_pata 
     5@@ -132,6 +132,31 @@ static struct platform_device avila_pata 
    66        .resource               = avila_pata_resources, 
    77 }; 
    88  
    99+/* Built-in 10/100 Ethernet MAC interfaces */ 
    10 +static struct eth_plat_info avila_plat_eth[] = { 
    11 +       { 
    12 +               .phy            = 0, 
    13 +               .rxq            = 3, 
    14 +               .txreadyq       = 20, 
    15 +       }, { 
    16 +               .phy            = 1, 
    17 +               .rxq            = 4, 
    18 +               .txreadyq       = 21, 
    19 +       } 
     10+static struct eth_plat_info avila_npeb_data = { 
     11+       .phy            = 0, 
     12+       .rxq            = 3, 
     13+       .txreadyq       = 20, 
    2014+}; 
    2115+ 
    22 +static struct platform_device avila_eth[] = { 
    23 +       { 
    24 +               .name                   = "ixp4xx_eth", 
    25 +               .id                     = IXP4XX_ETH_NPEB, 
    26 +               .dev.platform_data      = avila_plat_eth, 
    27 +       }, { 
    28 +               .name                   = "ixp4xx_eth", 
    29 +               .id                     = IXP4XX_ETH_NPEC, 
    30 +               .dev.platform_data      = avila_plat_eth + 1, 
    31 +       } 
     16+static struct eth_plat_info avila_npec_data = { 
     17+       .phy            = 1, 
     18+       .rxq            = 4, 
     19+       .txreadyq       = 21, 
     20+}; 
     21+ 
     22+static struct platform_device avila_npeb_device = { 
     23+       .name                   = "ixp4xx_eth", 
     24+       .id                     = IXP4XX_ETH_NPEB, 
     25+       .dev.platform_data      = &avila_npeb_data, 
     26+}; 
     27+ 
     28+static struct platform_device avila_npec_device = { 
     29+       .name                   = "ixp4xx_eth", 
     30+       .id                     = IXP4XX_ETH_NPEC, 
     31+       .dev.platform_data      = &avila_npec_data, 
    3232+}; 
    3333+ 
     
    3535        &avila_i2c_gpio, 
    3636        &avila_flash, 
    37         &avila_uart 
    38  }; 
    39   
    40 +static struct platform_device *avila_eth_devices[] = { 
    41 +       &avila_eth[0], 
    42 +       &avila_eth[1] 
    43 +}; 
    44 + 
    45  static void __init avila_init(void) 
    46  { 
    47         ixp4xx_sys_init(); 
    48 @@ -159,6 +189,7 @@ static void __init avila_init(void) 
     37@@ -159,6 +184,8 @@ static void __init avila_init(void) 
    4938  
    5039        platform_device_register(&avila_pata); 
    5140  
    52 +       platform_add_devices(avila_eth_devices, ARRAY_SIZE(avila_eth_devices)); 
     41+       platform_device_register(avila_npeb_device); 
     42+       platform_device_register(avila_npec_device); 
    5343 } 
    5444  
  • trunk/target/linux/ixp4xx/patches-2.6.24/298-avila_rtc_fixup.patch

    r10164 r10968  
    1 diff -uprN linux-2.6.23.orig/arch/arm/mach-ixp4xx/avila-setup.c linux-2.6.23/arch/arm/mach-ixp4xx/avila-setup.c 
    2 --- linux-2.6.23.orig/arch/arm/mach-ixp4xx/avila-setup.c        2007-10-09 15:31:38.000000000 -0500 
    3 +++ linux-2.6.23/arch/arm/mach-ixp4xx/avila-setup.c     2007-10-11 01:08:21.000000000 -0500 
    4 @@ -138,6 +138,35 @@ static struct platform_device *avila_dev 
     1Index: linux-2.6.24.2/arch/arm/mach-ixp4xx/avila-setup.c 
     2=================================================================== 
     3--- linux-2.6.24.2.orig/arch/arm/mach-ixp4xx/avila-setup.c 
     4+++ linux-2.6.24.2/arch/arm/mach-ixp4xx/avila-setup.c 
     5@@ -163,6 +163,35 @@ static struct platform_device *avila_dev 
    56        &avila_uart 
    67 }; 
     
    910+ 
    1011+static void __init avila_fixup(struct machine_desc *desc, 
    11 +                struct tag *tags, char **cmdline, struct meminfo *mi) 
     12+                       struct tag *tags, char **cmdline, struct meminfo *mi) 
    1213+{ 
    13 +    struct tag *t = tags; 
    14 +    char *p = *cmdline; 
     14+       struct tag *t = tags; 
     15+       char *p = *cmdline; 
    1516+ 
    16 +    /* Find the end of the tags table, taking note of any cmdline tag. */ 
    17 +    for (; t->hdr.size; t = tag_next(t)) { 
    18 +        if (t->hdr.tag == ATAG_CMDLINE) { 
    19 +            p = t->u.cmdline.cmdline; 
    20 +        } 
    21 +    } 
     17+       /* Find the end of the tags table, taking note of any cmdline tag. */ 
     18+       for (; t->hdr.size; t = tag_next(t)) { 
     19+               if (t->hdr.tag == ATAG_CMDLINE) { 
     20+                       p = t->u.cmdline.cmdline; 
     21+               } 
     22+       } 
    2223+ 
    23 +    /* Overwrite the end of the table with a new cmdline tag. */ 
    24 +    t->hdr.tag = ATAG_CMDLINE; 
    25 +    t->hdr.size = (sizeof (struct tag_header) + 
    26 +        strlen(avila_rtc_probe) + strlen(p) + 1 + 4) >> 2; 
    27 +    strlcpy(t->u.cmdline.cmdline, avila_rtc_probe, COMMAND_LINE_SIZE); 
    28 +    strlcpy(t->u.cmdline.cmdline + strlen(avila_rtc_probe), p, 
    29 +        COMMAND_LINE_SIZE - strlen(avila_rtc_probe)); 
     24+       /* Overwrite the end of the table with a new cmdline tag. */ 
     25+       t->hdr.tag = ATAG_CMDLINE; 
     26+       t->hdr.size = (sizeof (struct tag_header) + 
     27+               strlen(avila_rtc_probe) + strlen(p) + 1 + 4) >> 2; 
     28+       strlcpy(t->u.cmdline.cmdline, avila_rtc_probe, COMMAND_LINE_SIZE); 
     29+       strlcpy(t->u.cmdline.cmdline + strlen(avila_rtc_probe), p, 
     30+               COMMAND_LINE_SIZE - strlen(avila_rtc_probe)); 
    3031+ 
    31 +    /* Terminate the table. */ 
    32 +    t = tag_next(t); 
    33 +    t->hdr.tag = ATAG_NONE; 
    34 +    t->hdr.size = 0; 
     32+       /* Terminate the table. */ 
     33+       t = tag_next(t); 
     34+       t->hdr.tag = ATAG_NONE; 
     35+       t->hdr.size = 0; 
    3536+} 
    3637+ 
     
    3839 { 
    3940        ixp4xx_sys_init(); 
    40 @@ -165,6 +194,7 @@ MACHINE_START(AVILA, "Gateworks Avila Ne 
     41@@ -192,6 +221,7 @@ MACHINE_START(AVILA, "Gateworks Avila Ne 
    4142        /* Maintainer: Deepak Saxena <dsaxena@plexity.net> */ 
    4243        .phys_io        = IXP4XX_PERIPHERAL_BASE_PHYS, 
     
    4647        .init_irq       = ixp4xx_init_irq, 
    4748        .timer          = &ixp4xx_timer, 
    48 @@ -182,6 +212,7 @@ MACHINE_START(LOFT, "Giant Shoulder Inc  
     49@@ -209,6 +239,7 @@ MACHINE_START(LOFT, "Giant Shoulder Inc  
    4950        /* Maintainer: Tom Billman <kernel@giantshoulderinc.com> */ 
    5051        .phys_io        = IXP4XX_PERIPHERAL_BASE_PHYS, 
  • trunk/target/linux/ixp4xx/patches-2.6.24/300-avila_fetch_mac.patch

    r10868 r10968  
    2222  
    2323 #include <asm/types.h> 
    24 @@ -177,6 +185,118 @@ static struct platform_device *avila_eth 
    25         &avila_eth[1] 
    26  }; 
    27   
     24@@ -29,6 +37,13 @@ 
     25 #include <asm/mach/arch.h> 
     26 #include <asm/mach/flash.h> 
     27  
     28+struct avila_board_info { 
     29+       unsigned char   *model; 
     30+       void            (* setup)(void); 
     31+}; 
     32+ 
     33+static struct avila_board_info *avila_info __initdata; 
     34+ 
     35 static struct flash_platform_data avila_flash_data = { 
     36        .map_name       = "cfi_probe", 
     37        .width          = 2, 
     38@@ -192,10 +207,160 @@ static void __init avila_fixup(struct ma 
     39        t->hdr.size = 0; 
     40 } 
     41  
     42+static void __init avila_gw23xx_setup(void) 
     43+{ 
     44+       platform_device_register(&avila_npeb_device); 
     45+       platform_device_register(&avila_npec_device); 
     46+} 
     47+ 
    2848+#ifdef CONFIG_SENSORS_EEPROM 
    29 +struct avila_board_info { 
    30 +       unsigned char *model; 
    31 +       int     npes_used; 
    32 +       int     npeb_phy; 
    33 +       int     npec_phy; 
    34 +}; 
    35 + 
    36 +static struct avila_board_info avila_boards[] = { 
     49+static void __init avila_gw2342_setup(void) 
     50+{ 
     51+       platform_device_register(&avila_npeb_device); 
     52+       platform_device_register(&avila_npec_device); 
     53+} 
     54+ 
     55+static void __init avila_gw2345_setup(void) 
     56+{ 
     57+       avila_npeb_data.phy = IXP4XX_ETH_PHY_MAX_ADDR; 
     58+       avila_npeb_data.phy_mask = 0x1e; /* ports 1-4 of the KS8995 switch */ 
     59+       platform_device_register(&avila_npeb_device); 
     60+ 
     61+       avila_npec_data.phy = 5; /* port 5 of the KS8995 switch */ 
     62+       platform_device_register(&avila_npec_device); 
     63+} 
     64+ 
     65+static void __init avila_gw2347_setup(void) 
     66+{ 
     67+       platform_device_register(&avila_npeb_device); 
     68+} 
     69+ 
     70+static void __init avila_gw2348_setup(void) 
     71+{ 
     72+       platform_device_register(&avila_npeb_device); 
     73+       platform_device_register(&avila_npec_device); 
     74+} 
     75+ 
     76+static void __init avila_gw2353_setup(void) 
     77+{ 
     78+       platform_device_register(&avila_npeb_device); 
     79+} 
     80+ 
     81+static void __init avila_gw2355_setup(void) 
     82+{ 
     83+       avila_npeb_data.phy = IXP4XX_ETH_PHY_MAX_ADDR; 
     84+       avila_npeb_data.phy_mask = 0x1e; /* ports 1-4 of the KS8995 switch */ 
     85+       platform_device_register(&avila_npeb_device); 
     86+ 
     87+       avila_npec_data.phy = 5; 
     88+       platform_device_register(&avila_npec_device); 
     89+} 
     90+ 
     91+static void __init avila_gw2357_setup(void) 
     92+{ 
     93+       platform_device_register(&avila_npeb_device); 
     94+} 
     95+ 
     96+static struct avila_board_info avila_boards[] __initdata = { 
    3797+       { 
    3898+               .model          = "GW2342", 
    39 +               .npes_used      = 2, 
    40 +               .npeb_phy       = 0, 
    41 +               .npec_phy       = 1, 
     99+               .setup          = avila_gw2342_setup, 
     100+       }, { 
     101+               .model          = "GW2345", 
     102+               .setup          = avila_gw2345_setup, 
    42103+       }, { 
    43104+               .model          = "GW2347", 
    44 +               .npes_used      = 1, 
    45 +               .npeb_phy       = 1, 
    46 +       }, { 
    47 +               .model          = "GW2348-2", 
    48 +               .npes_used      = 2, 
    49 +               .npeb_phy       = 0, 
    50 +               .npec_phy       = 1, 
    51 +       }, { 
    52 +               .model          = "GW2348-4", 
    53 +               .npes_used      = 2, 
    54 +               .npeb_phy       = 0, 
    55 +               .npec_phy       = 1, 
     105+               .setup          = avila_gw2347_setup, 
     106+       }, { 
     107+               .model          = "GW2348", 
     108+               .setup          = avila_gw2348_setup, 
    56109+       }, { 
    57110+               .model          = "GW2353", 
    58 +               .npes_used      = 1, 
    59 +               .npeb_phy       = 1, 
     111+               .setup          = avila_gw2353_setup, 
    60112+       }, { 
    61113+               .model          = "GW2355", 
    62 +               .npes_used      = 2, 
    63 +               .npeb_phy       = -1, 
    64 +               .npec_phy       = 1, 
     114+               .setup          = avila_gw2355_setup, 
    65115+       }, { 
    66116+               .model          = "GW2357", 
    67 +               .npes_used      = 1, 
    68 +               .npeb_phy       = 1, 
     117+               .setup          = avila_gw2357_setup, 
    69118+       } 
    70119+}; 
    71120+ 
    72 +static struct avila_board_info *avila_find_board_info(char *model) 
     121+static struct avila_board_info * __init avila_find_board_info(char *model) 
    73122+{ 
    74123+       int i; 
     
    92141+}; 
    93142+ 
    94 +static int avila_eeprom_notify(struct notifier_block *self, 
     143+static int __init avila_eeprom_notify(struct notifier_block *self, 
    95144+                       unsigned long event, void *t) 
    96145+{ 
    97146+       struct eeprom_data *ee = t; 
    98 +       struct avila_board_info *info = NULL; 
    99147+       struct avila_eeprom_header hdr; 
     148+ 
     149+       if (avila_info) 
     150+               return NOTIFY_DONE; 
    100151+ 
    101152+       /* The eeprom is at address 0x51 */ 
     
    104155+ 
    105156+       ee->attr->read(&ee->client.dev.kobj, ee->attr, (char *)&hdr, 
    106 +               0, sizeof(hdr)); 
     157+                                                       0, sizeof(hdr)); 
    107158+ 
    108159+       if (hdr.magic[0] != 'G' || hdr.magic[1] != 'W') 
    109160+               return NOTIFY_DONE; 
    110161+ 
    111 +       memcpy(&avila_plat_eth[0].hwaddr, hdr.mac0, ETH_ALEN); 
    112 +       memcpy(&avila_plat_eth[1].hwaddr, hdr.mac1, ETH_ALEN); 
    113 + 
    114 +       info = avila_find_board_info(hdr.model); 
    115 + 
    116 +       if (info) { 
    117 +               printk(KERN_DEBUG "Running on Gateworks Avila %s\n", 
    118 +                                                       info->model); 
    119 +               avila_plat_eth[0].phy = info->npeb_phy; 
    120 +               avila_plat_eth[1].phy = info->npec_phy; 
    121 +               platform_add_devices(avila_eth_devices, 
    122 +                       info->npes_used); 
    123 +       } else { 
    124 +               printk(KERN_INFO "Unknown/missing Avila model number" 
    125 +                                       " -- defaults will be used\n"); 
    126 +               platform_add_devices(avila_eth_devices, 
    127 +                       ARRAY_SIZE(avila_eth_devices)); 
    128 +       } 
    129 + 
    130 +       unregister_eeprom_notifier(self); 
     162+       memcpy(&avila_npeb_data.hwaddr, hdr.mac0, ETH_ALEN); 
     163+       memcpy(&avila_npec_data.hwaddr, hdr.mac1, ETH_ALEN); 
     164+ 
     165+       avila_info = avila_find_board_info(hdr.model); 
    131166+ 
    132167+       return NOTIFY_OK; 
    133168+} 
    134169+ 
    135 +static struct notifier_block avila_eeprom_notifier = { 
     170+static struct notifier_block avila_eeprom_notifier __initdata = { 
    136171+       .notifier_call = avila_eeprom_notify 
    137172+}; 
    138 +#endif 
     173+ 
     174+static void __init avila_register_eeprom_notifier(void) 
     175+{ 
     176+       register_eeprom_notifier(&avila_eeprom_notifier); 
     177+} 
     178+ 
     179+static void __init avila_unregister_eeprom_notifier(void) 
     180+{ 
     181+       unregister_eeprom_notifier(&avila_eeprom_notifier); 
     182+} 
     183+#else /* CONFIG_SENSORS_EEPROM */ 
     184+static inline void avila_register_eeprom_notifier(void) {}; 
     185+static inline void avila_unregister_eeprom_notifier(void) {}; 
     186+#endif /* CONFIG_SENSORS_EEPROM */ 
    139187+ 
    140188 static void __init avila_init(void) 
    141189 { 
    142190        ixp4xx_sys_init(); 
    143 @@ -201,7 +321,11 @@ static void __init avila_init(void) 
     191  
     192+       /* 
     193+        * These devices are present on all Avila models and don't need any 
     194+        * model specific setup. 
     195+        */ 
     196        avila_flash_resource.start = IXP4XX_EXP_BUS_BASE(0); 
     197        avila_flash_resource.end = 
     198                IXP4XX_EXP_BUS_BASE(0) + ixp4xx_exp_bus_size - 1; 
     199@@ -213,9 +378,28 @@ static void __init avila_init(void) 
    144200  
    145201        platform_device_register(&avila_pata); 
    146202  
    147 +#ifdef CONFIG_SENSORS_EEPROM 
    148 +       register_eeprom_notifier(&avila_eeprom_notifier); 
    149 +#else 
    150         platform_add_devices(avila_eth_devices, ARRAY_SIZE(avila_eth_devices)); 
    151 +#endif 
     203-       platform_device_register(avila_npeb_device); 
     204-       platform_device_register(avila_npec_device); 
     205+       avila_register_eeprom_notifier(); 
     206+} 
     207+ 
     208+static int __init avila_model_setup(void) 
     209+{ 
     210+       if (!machine_is_avila()) 
     211+               return 0; 
     212+ 
     213+       if (avila_info) { 
     214+               printk(KERN_DEBUG "Running on Gateworks Avila %s\n", 
     215+                                                       avila_info->model); 
     216+               avila_info->setup(); 
     217+       } else { 
     218+               printk(KERN_INFO "Unknown/missing Avila model number" 
     219+                                               " -- defaults will be used\n"); 
     220+               avila_gw23xx_setup(); 
     221+       } 
     222+ 
     223+       avila_unregister_eeprom_notifier(); 
     224+       return 0; 
    152225 } 
     226+late_initcall(avila_model_setup); 
    153227  
    154228 MACHINE_START(AVILA, "Gateworks Avila Network Platform") 
     229        /* Maintainer: Deepak Saxena <dsaxena@plexity.net> */ 
  • trunk/target/linux/ixp4xx/patches-2.6.24/301-avila_led.patch

    r10866 r10968  
    33--- linux-2.6.24.2.orig/include/asm-arm/arch-ixp4xx/avila.h 
    44+++ linux-2.6.24.2/include/asm-arm/arch-ixp4xx/avila.h 
    5 @@ -36,4 +36,5 @@ 
     5@@ -36,4 +36,6 @@ 
    66 #define AVILA_PCI_INTC_PIN     9 
    77 #define AVILA_PCI_INTD_PIN     8 
    88  
    99- 
    10 +/* User LED */ 
    11 +#define AVILA_LED_USER_GPIO    3 
     10+/* User LEDs */ 
     11+#define AVILA_GW23XX_LED_USER_GPIO     3 
     12+#define AVILA_GW23X7_LED_USER_GPIO     4 
    1213Index: linux-2.6.24.2/arch/arm/mach-ixp4xx/avila-setup.c 
    1314=================================================================== 
    1415--- linux-2.6.24.2.orig/arch/arm/mach-ixp4xx/avila-setup.c 
    1516+++ linux-2.6.24.2/arch/arm/mach-ixp4xx/avila-setup.c 
    16 @@ -174,10 +174,31 @@ static struct platform_device avila_eth[ 
    17         } 
     17@@ -26,6 +26,7 @@ 
     18 # include <linux/eeprom.h> 
     19 #endif 
     20  
     21+#include <linux/leds.h> 
     22 #include <linux/i2c-gpio.h> 
     23  
     24 #include <asm/types.h> 
     25@@ -172,6 +173,25 @@ static struct platform_device avila_npec 
     26        .dev.platform_data      = &avila_npec_data, 
    1827 }; 
    1928  
    20 +#ifdef CONFIG_LEDS_IXP4XX 
    21 +static struct resource avila_led_resources[] = { 
     29+static struct gpio_led avila_leds[] = { 
    2230+       { 
    23 +               .name           = "user", 
    24 +               .start          = AVILA_LED_USER_GPIO, 
    25 +               .end            = AVILA_LED_USER_GPIO, 
    26 +               .flags          = IXP4XX_GPIO_LOW, 
    27 +       }, 
     31+               .name           = "user",  /* green led */ 
     32+               .gpio           = AVILA_GW23XX_LED_USER_GPIO, 
     33+               .active_low     = 1, 
     34+       } 
    2835+}; 
    2936+ 
    30 +static struct platform_device avila_leds = { 
    31 +       .name                   = "IXP4XX-GPIO-LED", 
     37+static struct gpio_led_platform_data avila_leds_data = { 
     38+       .num_leds               = 1, 
     39+       .leds                   = avila_leds, 
     40+}; 
     41+ 
     42+static struct platform_device avila_leds_device = { 
     43+       .name                   = "leds-gpio", 
    3244+       .id                     = -1, 
    33 +       .num_resources          = ARRAY_SIZE(avila_led_resources), 
    34 +       .resource               = avila_led_resources, 
     45+       .dev.platform_data      = &avila_leds_data, 
    3546+}; 
    36 +#endif 
    3747+ 
    3848 static struct platform_device *avila_devices[] __initdata = { 
    3949        &avila_i2c_gpio, 
    4050        &avila_flash, 
    41 -       &avila_uart 
    42 +       &avila_uart, 
    43 +#ifdef CONFIG_LEDS_IXP4XX 
    44 +       &avila_leds, 
    45 +#endif 
    46  }; 
     51@@ -211,6 +231,8 @@ static void __init avila_gw23xx_setup(vo 
     52 { 
     53        platform_device_register(&avila_npeb_device); 
     54        platform_device_register(&avila_npec_device); 
     55+ 
     56+       platform_device_register(&avila_leds_device); 
     57 } 
    4758  
    48  static struct platform_device *avila_eth_devices[] = { 
     59 #ifdef CONFIG_SENSORS_EEPROM 
     60@@ -218,6 +240,8 @@ static void __init avila_gw2342_setup(vo 
     61 { 
     62        platform_device_register(&avila_npeb_device); 
     63        platform_device_register(&avila_npec_device); 
     64+ 
     65+       platform_device_register(&avila_leds_device); 
     66 } 
     67  
     68 static void __init avila_gw2345_setup(void) 
     69@@ -228,22 +252,30 @@ static void __init avila_gw2345_setup(vo 
     70  
     71        avila_npec_data.phy = 5; /* port 5 of the KS8995 switch */ 
     72        platform_device_register(&avila_npec_device); 
     73+ 
     74+       platform_device_register(&avila_leds_device); 
     75 } 
     76  
     77 static void __init avila_gw2347_setup(void) 
     78 { 
     79        platform_device_register(&avila_npeb_device); 
     80+ 
     81+       avila_leds[0].gpio = AVILA_GW23X7_LED_USER_GPIO; 
     82+       platform_device_register(&avila_leds_device); 
     83 } 
     84  
     85 static void __init avila_gw2348_setup(void) 
     86 { 
     87        platform_device_register(&avila_npeb_device); 
     88        platform_device_register(&avila_npec_device); 
     89+ 
     90+       platform_device_register(&avila_leds_device); 
     91 } 
     92  
     93 static void __init avila_gw2353_setup(void) 
     94 { 
     95        platform_device_register(&avila_npeb_device); 
     96+       platform_device_register(&avila_leds_device); 
     97 } 
     98  
     99 static void __init avila_gw2355_setup(void) 
     100@@ -254,11 +286,16 @@ static void __init avila_gw2355_setup(vo 
     101  
     102        avila_npec_data.phy = 5; 
     103        platform_device_register(&avila_npec_device); 
     104+ 
     105+       platform_device_register(&avila_leds_device); 
     106 } 
     107  
     108 static void __init avila_gw2357_setup(void) 
     109 { 
     110        platform_device_register(&avila_npeb_device); 
     111+ 
     112+       avila_leds[0].gpio = AVILA_GW23X7_LED_USER_GPIO; 
     113+       platform_device_register(&avila_leds_device); 
     114 } 
     115  
     116 static struct avila_board_info avila_boards[] __initdata = { 
  • trunk/target/linux/ixp4xx/patches-2.6.24/302-avila_gpio_device.patch

    r10867 r10968  
    33--- linux-2.6.24.2.orig/arch/arm/mach-ixp4xx/avila-setup.c 
    44+++ linux-2.6.24.2/arch/arm/mach-ixp4xx/avila-setup.c 
    5 @@ -192,6 +192,24 @@ static struct platform_device avila_leds 
     5@@ -192,10 +192,28 @@ static struct platform_device avila_leds 
     6        .dev.platform_data      = &avila_leds_data, 
    67 }; 
    7  #endif 
    88  
    9 +#ifdef CONFIG_GPIO_DEVICE 
    109+static struct resource avila_gpio_resources[] = { 
    1110+       { 
    1211+               .name   = "gpio", 
     12+               /* FIXME: gpio mask should be model specific */ 
    1313+               .start  = AVILA_GPIO_MASK, 
    1414+               .end    = AVILA_GPIO_MASK, 
     
    2323+       .resource               = avila_gpio_resources, 
    2424+}; 
    25 +#endif 
    2625+ 
    2726 static struct platform_device *avila_devices[] __initdata = { 
    2827        &avila_i2c_gpio, 
    2928        &avila_flash, 
    30 @@ -199,6 +217,9 @@ static struct platform_device *avila_dev 
    31  #ifdef CONFIG_LEDS_IXP4XX 
    32         &avila_leds, 
    33  #endif 
    34 +#ifdef CONFIG_GPIO_DEVICE 
     29-       &avila_uart 
     30+       &avila_uart, 
    3531+       &avila_gpio, 
    36 +#endif 
    3732 }; 
    3833  
    39  static struct platform_device *avila_eth_devices[] = { 
     34 static char avila_rtc_probe[] __initdata = "rtc-ds1672.probe=0,0x68 "; 
    4035Index: linux-2.6.24.2/include/asm-arm/arch-ixp4xx/avila.h 
    4136=================================================================== 
    4237--- linux-2.6.24.2.orig/include/asm-arm/arch-ixp4xx/avila.h 
    4338+++ linux-2.6.24.2/include/asm-arm/arch-ixp4xx/avila.h 
    44 @@ -38,3 +38,6 @@ 
    45   
    46  /* User LED */ 
    47  #define AVILA_LED_USER_GPIO    3 
     39@@ -39,3 +39,6 @@ 
     40 /* User LEDs */ 
     41 #define AVILA_GW23XX_LED_USER_GPIO     3 
     42 #define AVILA_GW23X7_LED_USER_GPIO     4 
    4843+ 
    4944+/* gpio mask used by platform device */ 
    50 +#define AVILA_GPIO_MASK                (1 << 1) | (1 << 3) | (1 << 5) | (1 << 7) | (1 << 9) 
     45+#define AVILA_GPIO_MASK        (1 << 1) | (1 << 3) | (1 << 5) | (1 << 7) | (1 << 9) 
Note: See TracChangeset for help on using the changeset viewer.