Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

Merge master.kernel.org:/home/rmk/linux-2.6-arm

* master.kernel.org:/home/rmk/linux-2.6-arm:
[ARM] Update mach-types
[ARM] orion5x: D-link DNS-323 rev. B1 power-off
[ARM] Orion5x: add GPIO LED and buttons for wrt350n v2
[ARM] pxa: fix irq suspend/resume for pxa25x
[ARM] pxa: fix the incorrect naming of AC97 reset pin config for pxa26x
[ARM] pxa/corgi: fix incorrect default GPIO for UDC Vbus
[ARM] Kirkwood: drive USB VBUS pin on rd88f6192-nas high on boot
[ARM] Orion: fix PCIe inbound window programming when RAM size is not a power of two

+192 -13
+6
arch/arm/mach-kirkwood/rd88f6192-nas-setup.c
··· 13 13 #include <linux/platform_device.h> 14 14 #include <linux/ata_platform.h> 15 15 #include <linux/mv643xx_eth.h> 16 + #include <linux/gpio.h> 16 17 #include <linux/spi/flash.h> 17 18 #include <linux/spi/spi.h> 18 19 #include <linux/spi/orion_spi.h> ··· 53 52 * Basic setup. Needs to be called early. 54 53 */ 55 54 kirkwood_init(); 55 + 56 + orion_gpio_set_valid(RD88F6192_GPIO_USB_VBUS, 1); 57 + if (gpio_request(RD88F6192_GPIO_USB_VBUS, "USB VBUS") != 0 || 58 + gpio_direction_output(RD88F6192_GPIO_USB_VBUS, 1) != 0) 59 + pr_err("RD-88F6192-NAS: failed to setup USB VBUS GPIO\n"); 56 60 57 61 kirkwood_ehci_init(); 58 62 kirkwood_ge00_init(&rd88f6192_ge00_data);
+27 -6
arch/arm/mach-orion5x/dns323-setup.c
··· 12 12 13 13 #include <linux/kernel.h> 14 14 #include <linux/init.h> 15 + #include <linux/delay.h> 15 16 #include <linux/platform_device.h> 16 17 #include <linux/pci.h> 17 18 #include <linux/irq.h> ··· 33 32 34 33 #define DNS323_GPIO_LED_RIGHT_AMBER 1 35 34 #define DNS323_GPIO_LED_LEFT_AMBER 2 35 + #define DNS323_GPIO_SYSTEM_UP 3 36 36 #define DNS323_GPIO_LED_POWER 5 37 37 #define DNS323_GPIO_OVERTEMP 6 38 38 #define DNS323_GPIO_RTC 7 ··· 241 239 { 242 240 .name = "power:blue", 243 241 .gpio = DNS323_GPIO_LED_POWER, 244 - .active_low = 1, 242 + .default_state = LEDS_GPIO_DEFSTATE_ON, 245 243 }, { 246 244 .name = "right:amber", 247 245 .gpio = DNS323_GPIO_LED_RIGHT_AMBER, ··· 336 334 { 0, MPP_UNUSED }, 337 335 { 1, MPP_GPIO }, /* right amber LED (sata ch0) */ 338 336 { 2, MPP_GPIO }, /* left amber LED (sata ch1) */ 339 - { 3, MPP_UNUSED }, 337 + { 3, MPP_GPIO }, /* system up flag */ 340 338 { 4, MPP_GPIO }, /* power button LED */ 341 339 { 5, MPP_GPIO }, /* power button LED */ 342 340 { 6, MPP_GPIO }, /* GMT G751-2f overtemp */ ··· 374 372 }, 375 373 }; 376 374 377 - /* DNS-323 specific power off method */ 378 - static void dns323_power_off(void) 375 + /* DNS-323 rev. A specific power off method */ 376 + static void dns323a_power_off(void) 379 377 { 380 378 pr_info("%s: triggering power-off...\n", __func__); 381 379 gpio_set_value(DNS323_GPIO_POWER_OFF, 1); 380 + } 381 + 382 + /* DNS-323 rev B specific power off method */ 383 + static void dns323b_power_off(void) 384 + { 385 + pr_info("%s: triggering power-off...\n", __func__); 386 + /* Pin has to be changed to 1 and back to 0 to do actual power off. */ 387 + gpio_set_value(DNS323_GPIO_POWER_OFF, 1); 388 + mdelay(100); 389 + gpio_set_value(DNS323_GPIO_POWER_OFF, 0); 382 390 } 383 391 384 392 static void __init dns323_init(void) ··· 436 424 if (dns323_dev_id() == MV88F5182_DEV_ID) 437 425 orion5x_sata_init(&dns323_sata_data); 438 426 439 - /* register dns323 specific power-off method */ 427 + /* The 5182 has flag to indicate the system is up. Without this flag 428 + * set, power LED will flash and cannot be controlled via leds-gpio. 429 + */ 430 + if (dns323_dev_id() == MV88F5182_DEV_ID) 431 + gpio_set_value(DNS323_GPIO_SYSTEM_UP, 1); 432 + 433 + /* Register dns323 specific power-off method */ 440 434 if (gpio_request(DNS323_GPIO_POWER_OFF, "POWEROFF") != 0 || 441 435 gpio_direction_output(DNS323_GPIO_POWER_OFF, 0) != 0) 442 436 pr_err("DNS323: failed to setup power-off GPIO\n"); 443 - pm_power_off = dns323_power_off; 437 + if (dns323_dev_id() == MV88F5182_DEV_ID) 438 + pm_power_off = dns323b_power_off; 439 + else 440 + pm_power_off = dns323a_power_off; 444 441 } 445 442 446 443 /* Warning: D-Link uses a wrong mach-type (=526) in their bootloader */
+79
arch/arm/mach-orion5x/wrt350n-v2-setup.c
··· 15 15 #include <linux/mtd/physmap.h> 16 16 #include <linux/mv643xx_eth.h> 17 17 #include <linux/ethtool.h> 18 + #include <linux/leds.h> 19 + #include <linux/gpio_keys.h> 20 + #include <linux/input.h> 18 21 #include <net/dsa.h> 19 22 #include <asm/mach-types.h> 20 23 #include <asm/gpio.h> ··· 27 24 #include "common.h" 28 25 #include "mpp.h" 29 26 27 + /* 28 + * LEDs attached to GPIO 29 + */ 30 + static struct gpio_led wrt350n_v2_led_pins[] = { 31 + { 32 + .name = "wrt350nv2:green:power", 33 + .gpio = 0, 34 + .active_low = 1, 35 + }, { 36 + .name = "wrt350nv2:green:security", 37 + .gpio = 1, 38 + .active_low = 1, 39 + }, { 40 + .name = "wrt350nv2:orange:power", 41 + .gpio = 5, 42 + .active_low = 1, 43 + }, { 44 + .name = "wrt350nv2:green:usb", 45 + .gpio = 6, 46 + .active_low = 1, 47 + }, { 48 + .name = "wrt350nv2:green:wireless", 49 + .gpio = 7, 50 + .active_low = 1, 51 + }, 52 + }; 53 + 54 + static struct gpio_led_platform_data wrt350n_v2_led_data = { 55 + .leds = wrt350n_v2_led_pins, 56 + .num_leds = ARRAY_SIZE(wrt350n_v2_led_pins), 57 + }; 58 + 59 + static struct platform_device wrt350n_v2_leds = { 60 + .name = "leds-gpio", 61 + .id = -1, 62 + .dev = { 63 + .platform_data = &wrt350n_v2_led_data, 64 + }, 65 + }; 66 + 67 + /* 68 + * Buttons attached to GPIO 69 + */ 70 + static struct gpio_keys_button wrt350n_v2_buttons[] = { 71 + { 72 + .code = KEY_RESTART, 73 + .gpio = 3, 74 + .desc = "Reset Button", 75 + .active_low = 1, 76 + }, { 77 + .code = KEY_WLAN, 78 + .gpio = 2, 79 + .desc = "WPS Button", 80 + .active_low = 1, 81 + }, 82 + }; 83 + 84 + static struct gpio_keys_platform_data wrt350n_v2_button_data = { 85 + .buttons = wrt350n_v2_buttons, 86 + .nbuttons = ARRAY_SIZE(wrt350n_v2_buttons), 87 + }; 88 + 89 + static struct platform_device wrt350n_v2_button_device = { 90 + .name = "gpio-keys", 91 + .id = -1, 92 + .num_resources = 0, 93 + .dev = { 94 + .platform_data = &wrt350n_v2_button_data, 95 + }, 96 + }; 97 + 98 + /* 99 + * General setup 100 + */ 30 101 static struct orion5x_mpp_mode wrt350n_v2_mpp_modes[] __initdata = { 31 102 { 0, MPP_GPIO }, /* Power LED green (0=on) */ 32 103 { 1, MPP_GPIO }, /* Security LED (0=on) */ ··· 217 140 orion5x_setup_dev_boot_win(WRT350N_V2_NOR_BOOT_BASE, 218 141 WRT350N_V2_NOR_BOOT_SIZE); 219 142 platform_device_register(&wrt350n_v2_nor_flash); 143 + platform_device_register(&wrt350n_v2_leds); 144 + platform_device_register(&wrt350n_v2_button_device); 220 145 } 221 146 222 147 static int __init wrt350n_v2_pci_map_irq(struct pci_dev *dev, u8 slot, u8 pin)
+1
arch/arm/mach-pxa/corgi.c
··· 457 457 * USB Device Controller 458 458 */ 459 459 static struct pxa2xx_udc_mach_info udc_info __initdata = { 460 + .gpio_vbus = -1, 460 461 /* no connect GPIO; corgi can't tell connection status */ 461 462 .gpio_pullup = CORGI_GPIO_USB_PULLUP, 462 463 };
+4 -2
arch/arm/mach-pxa/include/mach/mfp-pxa25x.h
··· 169 169 #define GPIO86_nSDCS2 MFP_CFG_OUT(GPIO86, AF0, DRIVE_HIGH) 170 170 #define GPIO87_nSDCS3 MFP_CFG_OUT(GPIO87, AF0, DRIVE_HIGH) 171 171 #define GPIO88_RDnWR MFP_CFG_OUT(GPIO88, AF0, DRIVE_HIGH) 172 - #define GPIO89_nACRESET MFP_CFG_OUT(GPIO89, AF0, DRIVE_HIGH) 173 172 174 173 /* USB */ 175 174 #define GPIO9_USB_RCV MFP_CFG_IN(GPIO9, AF1) ··· 185 186 #define GPIO30_ASSP_TXD MFP_CFG_OUT(GPIO30, AF3, DRIVE_LOW) 186 187 #define GPIO31_ASSP_SFRM_IN MFP_CFG_IN(GPIO31, AF1) 187 188 #define GPIO31_ASSP_SFRM_OUT MFP_CFG_OUT(GPIO31, AF3, DRIVE_LOW) 188 - #endif 189 + 190 + /* AC97 */ 191 + #define GPIO89_AC97_nRESET MFP_CFG_OUT(GPIO89, AF0, DRIVE_HIGH) 192 + #endif /* CONFIG_CPU_PXA26x */ 189 193 190 194 #endif /* __ASM_ARCH_MFP_PXA25X_H */
+10 -4
arch/arm/mach-pxa/irq.c
··· 164 164 saved_icmr[i] = _ICMR(irq); 165 165 _ICMR(irq) = 0; 166 166 } 167 - for (i = 0; i < pxa_internal_irq_nr; i++) 168 - saved_ipr[i] = IPR(i); 167 + 168 + if (cpu_is_pxa27x() || cpu_is_pxa3xx()) { 169 + for (i = 0; i < pxa_internal_irq_nr; i++) 170 + saved_ipr[i] = IPR(i); 171 + } 169 172 170 173 return 0; 171 174 } ··· 177 174 { 178 175 int i, irq = PXA_IRQ(0); 179 176 177 + if (cpu_is_pxa27x() || cpu_is_pxa3xx()) { 178 + for (i = 0; i < pxa_internal_irq_nr; i++) 179 + IPR(i) = saved_ipr[i]; 180 + } 181 + 180 182 for (i = 0; irq < PXA_IRQ(pxa_internal_irq_nr); i++, irq += 32) { 181 183 _ICMR(irq) = saved_icmr[i]; 182 184 _ICLR(irq) = 0; 183 185 } 184 - for (i = 0; i < pxa_internal_irq_nr; i++) 185 - IPR(i) = saved_ipr[i]; 186 186 187 187 ICCR = 1; 188 188 return 0;
+6
arch/arm/plat-orion/pcie.c
··· 133 133 } 134 134 135 135 /* 136 + * Round up 'size' to the nearest power of two. 137 + */ 138 + if ((size & (size - 1)) != 0) 139 + size = 1 << fls(size); 140 + 141 + /* 136 142 * Setup BAR[1] to all DRAM banks. 137 143 */ 138 144 writel(dram->cs[0].base, base + PCIE_BAR_LO_OFF(1));
+59 -1
arch/arm/tools/mach-types
··· 12 12 # 13 13 # http://www.arm.linux.org.uk/developer/machines/?action=new 14 14 # 15 - # Last update: Wed Dec 16 20:06:34 2009 15 + # Last update: Thu Jan 28 22:15:54 2010 16 16 # 17 17 # machine_is_xxx CONFIG_xxxx MACH_TYPE_xxx number 18 18 # ··· 2536 2536 c3ax03 MACH_C3AX03 C3AX03 2549 2537 2537 mxt_td60 MACH_MXT_TD60 MXT_TD60 2550 2538 2538 esyx MACH_ESYX ESYX 2551 2539 + dove_db2 MACH_DOVE_DB2 DOVE_DB2 2552 2539 2540 bulldog MACH_BULLDOG BULLDOG 2553 2540 2541 derell_me2000 MACH_DERELL_ME2000 DERELL_ME2000 2554 2541 2542 bcmring_base MACH_BCMRING_BASE BCMRING_BASE 2555 ··· 2556 2555 cezanne MACH_CEZANNE CEZANNE 2569 2557 2556 lucca MACH_LUCCA LUCCA 2570 2558 2557 supersmart MACH_SUPERSMART SUPERSMART 2571 2558 + arm11_board MACH_CS_MISANO CS_MISANO 2572 2559 2559 magnolia2 MACH_MAGNOLIA2 MAGNOLIA2 2573 2560 2560 emxx MACH_EMXX EMXX 2574 2561 2561 outlaw MACH_OUTLAW OUTLAW 2575 ··· 2580 2578 phrazer_bulldog MACH_PHRAZER_BULLDOG PHRAZER_BULLDOG 2593 2581 2579 omap3_bulldog MACH_OMAP3_BULLDOG OMAP3_BULLDOG 2594 2582 2580 pca101 MACH_PCA101 PCA101 2595 2581 + buzzc MACH_BUZZC BUZZC 2596 2582 + sasie2 MACH_SASIE2 SASIE2 2597 2583 + davinci_cio MACH_DAVINCI_CIO DAVINCI_CIO 2598 2584 + smartmeter_dl MACH_SMARTMETER_DL SMARTMETER_DL 2599 2585 + wzl6410 MACH_WZL6410 WZL6410 2600 2586 + wzl6410m MACH_WZL6410M WZL6410M 2601 2587 + wzl6410f MACH_WZL6410F WZL6410F 2602 2588 + wzl6410i MACH_WZL6410I WZL6410I 2603 2589 + spacecom1 MACH_SPACECOM1 SPACECOM1 2604 2590 + pingu920 MACH_PINGU920 PINGU920 2605 2591 + bravoc MACH_BRAVOC BRAVOC 2606 2592 + cybo2440 MACH_CYBO2440 CYBO2440 2607 2593 + vdssw MACH_VDSSW VDSSW 2608 2594 + romulus MACH_ROMULUS ROMULUS 2609 2595 + omap_magic MACH_OMAP_MAGIC OMAP_MAGIC 2610 2596 + eltd100 MACH_ELTD100 ELTD100 2611 2597 + capc7117 MACH_CAPC7117 CAPC7117 2612 2598 + swan MACH_SWAN SWAN 2613 2599 + veu MACH_VEU VEU 2614 2600 + rm2 MACH_RM2 RM2 2615 2601 + tt2100 MACH_TT2100 TT2100 2616 2602 + venice MACH_VENICE VENICE 2617 2603 + pc7323 MACH_PC7323 PC7323 2618 2604 + masp MACH_MASP MASP 2619 2605 + fujitsu_tvstbsoc0 MACH_FUJITSU_TVSTBSOC FUJITSU_TVSTBSOC 2620 2606 + fujitsu_tvstbsoc1 MACH_FUJITSU_TVSTBSOC1 FUJITSU_TVSTBSOC1 2621 2607 + lexikon MACH_LEXIKON LEXIKON 2622 2608 + mini2440v2 MACH_MINI2440V2 MINI2440V2 2623 2609 + icontrol MACH_ICONTROL ICONTROL 2624 2610 + sheevad MACH_SHEEVAD SHEEVAD 2625 2611 + qsd8x50a_st1_1 MACH_QSD8X50A_ST1_1 QSD8X50A_ST1_1 2626 2612 + qsd8x50a_st1_5 MACH_QSD8X50A_ST1_5 QSD8X50A_ST1_5 2627 2613 + bee MACH_BEE BEE 2628 2614 + mx23evk MACH_MX23EVK MX23EVK 2629 2615 + ap4evb MACH_AP4EVB AP4EVB 2630 2616 + stockholm MACH_STOCKHOLM STOCKHOLM 2631 2617 + lpc_h3131 MACH_LPC_H3131 LPC_H3131 2632 2618 + stingray MACH_STINGRAY STINGRAY 2633 2619 + kraken MACH_KRAKEN KRAKEN 2634 2620 + gw2388 MACH_GW2388 GW2388 2635 2621 + jadecpu MACH_JADECPU JADECPU 2636 2622 + carlisle MACH_CARLISLE CARLISLE 2637 2623 + lux_sf9 MACH_LUX_SFT9 LUX_SFT9 2638 2624 + nemid_tb MACH_NEMID_TB NEMID_TB 2639 2625 + terrier MACH_TERRIER TERRIER 2640 2626 + turbot MACH_TURBOT TURBOT 2641 2627 + sanddab MACH_SANDDAB SANDDAB 2642 2628 + mx35_cicada MACH_MX35_CICADA MX35_CICADA 2643 2629 + ghi2703d MACH_GHI2703D GHI2703D 2644 2630 + lux_sfx9 MACH_LUX_SFX9 LUX_SFX9 2645 2631 + lux_sf9g MACH_LUX_SF9G LUX_SF9G 2646 2632 + lux_edk9 MACH_LUX_EDK9 LUX_EDK9 2647 2633 + hw90240 MACH_HW90240 HW90240 2648 2634 + dm365_leopard MACH_DM365_LEOPARD DM365_LEOPARD 2649 2635 + mityomapl138 MACH_MITYOMAPL138 MITYOMAPL138 2650 2636 + scat110 MACH_SCAT110 SCAT110 2651