? kernel26/arch/arm/mach-pxa/h5400/.built-in.o.cmd
? kernel26/arch/arm/mach-pxa/h5400/.h5400.o.cmd
? kernel26/arch/arm/mach-pxa/h5400/.h5400_lcd.o.cmd
? kernel26/arch/arm/mach-pxa/h5400/.h5400_wifi.o.cmd
Index: kernel26/arch/arm/mach-pxa/h5400/h5400.c
===================================================================
RCS file: /cvs/linux/kernel26/arch/arm/mach-pxa/h5400/h5400.c,v
retrieving revision 1.58
diff -u -r1.58 h5400.c
--- kernel26/arch/arm/mach-pxa/h5400/h5400.c	18 Feb 2008 18:11:39 -0000	1.58
+++ kernel26/arch/arm/mach-pxa/h5400/h5400.c	18 May 2008 22:15:54 -0000
@@ -20,6 +20,7 @@
  *
  * 2002-08-23   Jamey Hicks        GPIO and IRQ support for iPAQ H5400
  * 2008-02-14   Michal Panczyk        Merge back the BT functions
+ * 2008-05-14   Michal Panczyk        Led triger changes - make leds blink.
  *
  */
 
@@ -71,6 +72,8 @@
 
 #include "../generic.h"
 
+DEFINE_LED_TRIGGER(bluetooth);
+
 /***********************************************************************************/
 /*      EGPIO, etc                                                                 */
 /***********************************************************************************/
@@ -155,13 +158,13 @@
                  */
 		mdelay(2);
 		SET_H5400_GPIO(BT_M_RESET, on);
-		led_trigger_event_shared(h5400_radio_trig, LED_FULL);
+		led_trigger_event(bluetooth, LED_FULL);
 	} else {
 		samcop_set_gpio_b(&h5400_samcop.dev,
 		                  SAMCOP_GPIO_GPB_BLUETOOTH_3V0_ON,
 		                  ~SAMCOP_GPIO_GPB_BLUETOOTH_3V0_ON);
 		SET_H5400_GPIO(BT_2V8_N, !on);
-		led_trigger_event_shared(h5400_radio_trig, LED_OFF);
+		led_trigger_event(bluetooth, LED_OFF);
 	}
 }
 
@@ -330,9 +333,6 @@
  * LEDs
  */
 
-DEFINE_LED_TRIGGER_SHARED_GLOBAL(h5400_radio_trig);
-EXPORT_SYMBOL(h5400_radio_trig);
-
 static struct samcop_led h5400_leds[] = {
 	{
 		.led_cdev = {
@@ -353,6 +353,7 @@
 	{
 		.led_cdev = {
 			.name = "h5400:red-left",
+			.default_trigger = "wifi",
 			.flags = LED_SUPPORTS_HWTIMER,
 		},
 		.hw_num = 2,
@@ -367,7 +368,7 @@
 	{
 		.led_cdev = {
 			.name = "h5400:blue",
-			.default_trigger = "h5400-radio",
+			.default_trigger = "bluetooth",
 			.flags = LED_SUPPORTS_HWTIMER,
 		},
 		.hw_num = 4,
@@ -819,7 +820,7 @@
 static void __init
 h5400_init (void)
 {
-	led_trigger_register_shared("h5400-radio", &h5400_radio_trig);
+	led_trigger_register_hwtimer("bluetooth", &bluetooth);
 	h5000_fixup_power_irqs ();
 	platform_device_register (&h5000_flash[0]);
 	platform_device_register (&h5000_flash[1]);
Index: kernel26/arch/arm/mach-pxa/h5400/h5400_wifi.c
===================================================================
RCS file: /cvs/linux/kernel26/arch/arm/mach-pxa/h5400/h5400_wifi.c,v
retrieving revision 1.11
diff -u -r1.11 h5400_wifi.c
--- kernel26/arch/arm/mach-pxa/h5400/h5400_wifi.c	18 Jul 2007 13:21:02 -0000	1.11
+++ kernel26/arch/arm/mach-pxa/h5400/h5400_wifi.c	18 May 2008 22:15:54 -0000
@@ -21,110 +21,52 @@
  */
 
 #include <linux/module.h>
-#include <linux/platform_device.h>
-#include <linux/version.h>
-#include <linux/init.h>
 #include <linux/device.h>
-#include <linux/usb.h>
-#include <linux/slab.h>
-#define CONFIG_PCI
-#include <linux/pci.h> /* pci_pool defs */
 #include <linux/leds.h>
 
-#include <asm/arch/hardware.h>
-#include <asm/irq.h>
-
 #include <asm/arch-pxa/h5400.h>
 #include <asm/arch-pxa/h5400-asic.h>
-
 #include <linux/mfd/samcop_base.h>
 
-typedef struct ohci ohci_t;
-
-extern int hc_add_ohci(struct pci_dev *dev, int irq, void *mem_base, unsigned long flags,
-				 ohci_t **ohci, const char *name, const char *slot_name);
-extern void hc_remove_ohci(ohci_t *ohci);
+DEFINE_LED_TRIGGER(wifi);
 
 static void 
-h5400_ohci_remove (struct device *dev)
-{
-#if 0
-#warning port to kernel 2.6
-	if (dev->driver_data) {
-		hc_remove_ohci (dev->driver_data);
-		dev->driver_data = NULL;
-	}
-#endif
-
-	samcop_set_gpio_b (dev->parent, SAMCOP_GPIO_GPB_RF_POWER_ON | SAMCOP_GPIO_GPB_WLAN_POWER_ON, 0);
-	led_trigger_event_shared(h5400_radio_trig, LED_OFF);
+h5400_wifi_remove (void)
+{	
+	printk("Stopping h5000 wifi interface\n");
+	samcop_set_gpio_b (&h5400_samcop.dev, SAMCOP_GPIO_GPB_RF_POWER_ON | SAMCOP_GPIO_GPB_WLAN_POWER_ON, 0);
+	led_trigger_event(wifi, LED_OFF);
+	led_trigger_unregister_hwtimer(wifi);
 }
 
-static int 
-h5400_ohci_probe (struct device *dev)
+static void 
+h5400_wifi_start (void)
 {
-	struct platform_device *sdev;
-	int irq;
-	void *mem_base;
-	unsigned long flags = 0;
-	int result = 0;
-
-	sdev = to_platform_device (dev);
-	mem_base = (void *)sdev->resource[1].start;
-	irq = sdev->resource[2].start;
-
-	/* make sure the clocks are enabled */
-	samcop_clock_enable (dev->parent, SAMCOP_CPM_CLKCON_USBHOST_CLKEN, 1);
-	samcop_clock_enable (dev->parent, SAMCOP_CPM_CLKCON_UCLK_EN, 0);
-
+	int ret=request_module("ohci_hcd");
+	if (ret==0) {
+	printk("Starting h5000 wifi interface\n");
 	/* both needed? */
-	samcop_set_gpio_b (dev->parent, SAMCOP_GPIO_GPB_RF_POWER_ON | SAMCOP_GPIO_GPB_WLAN_POWER_ON, 
+	samcop_set_gpio_b (&h5400_samcop.dev, SAMCOP_GPIO_GPB_RF_POWER_ON | SAMCOP_GPIO_GPB_WLAN_POWER_ON, 
 			   SAMCOP_GPIO_GPB_RF_POWER_ON | SAMCOP_GPIO_GPB_WLAN_POWER_ON);
+        led_trigger_register_hwtimer("wifi", &wifi);
+	led_trigger_event(wifi, LED_FULL);
+	}
+	else 
+	printk("Starting h5000 wifi interface failed - ohci_hcd module missing\n");
+}	
 
-	led_trigger_event_shared(h5400_radio_trig, LED_FULL);
-#if 0
-#warning port to kernel 2.6
-	msleep (100);
-
-	result = hc_add_ohci (pcidev, irq, mem_base, flags, (ohci_t **)&dev->driver_data, "h5400-ohci", "asic");
-	if (result)
-		h5400_ohci_remove (dev);
-#endif
-
-	return result;
-}
-
-static int
-h5400_ohci_suspend (struct device *dev, pm_message_t msg)
-{
-	return 0;
-}
-
-static int
-h5400_ohci_resume (struct device *dev)
-{
-	return 0;
-}
-
-struct device_driver h5400_usb_device_driver = {
-	.name     = "h5400 wifi",
-	.probe    = h5400_ohci_probe,
-	.shutdown = h5400_ohci_remove,
-	.suspend  = h5400_ohci_suspend,
-	.resume   = h5400_ohci_resume
-};
-
-static int __init
-h5400_ohci_init (void)
+static void __init h5400_wifi_init(void)
 {
-	return driver_register (&h5400_usb_device_driver);
+	h5400_wifi_start();
+	return;
+	
 }
-
-static void __exit
-h5400_ohci_exit (void)
+static void __exit h5400_wifi_exit(void)
 {
-	driver_unregister (&h5400_usb_device_driver);
+	h5400_wifi_remove();
+	return;
 }
 
-module_init(h5400_ohci_init);
-module_exit(h5400_ohci_exit);
+module_init(h5400_wifi_init);
+module_exit(h5400_wifi_exit);
+MODULE_LICENSE("GPL");
