All pastes #262669 Raw Edit

Diff

public text v1 · immutable
#262669 ·published 2006-11-30 19:55 UTC
rendered paste body
Index: arch/arm/mach-pxa/hx4700/hx4700_core.c===================================================================RCS file: /cvs/linux/kernel26/arch/arm/mach-pxa/hx4700/hx4700_core.c,vretrieving revision 1.35diff -u -r1.35 hx4700_core.c--- arch/arm/mach-pxa/hx4700/hx4700_core.c	18 Nov 2006 00:34:29 -0000	1.35+++ arch/arm/mach-pxa/hx4700/hx4700_core.c	30 Nov 2006 18:35:34 -0000@@ -74,7 +74,7 @@ int hx4700_udc_detect( void ) {-	return (asic3_get_gpio_status_d(&hx4700_asic3.dev)+	return (asic3_get_gpio_status_d(&hx4700_asic3) 			& (1 << GPIOD_USBC_DETECT_N)) ? 0 : 1; } @@ -86,7 +86,7 @@ 	unsigned int statusd; 	int connected; -	statusd = asic3_get_gpio_status_d( &hx4700_asic3.dev );+	statusd = asic3_get_gpio_status_d( &hx4700_asic3 ); 	connected = (statusd & (1<<GPIOD_COM_DCD)) != 0; 	if (connected) 	    set_irq_type( serial_irq, IRQT_FALLING ); @@ -111,7 +111,7 @@ 	/* Turn off external clocks here, because hx4700_power and asic3_mmc 	 * scared to do so to not hurt each other. (-5 mA) */ #if 0-	asic3_set_clock_cdex(&hx4700_asic3.dev,+	asic3_set_clock_cdex(&hx4700_asic3, 		CLOCK_CDEX_EX0 | CLOCK_CDEX_EX1, 0 | 0); #endif 	/* 0x20c2 is HTC clock value@@ -133,7 +133,7 @@ 	 * CLOCK_CDEX_EX0		1 	 * CLOCK_CDEX_EX1		0 	 * */-	asic3_set_clock_cdex(&hx4700_asic3.dev, 0xffff, 0x21c2);+	asic3_set_clock_cdex(&hx4700_asic3, 0xffff, 0x21c2);  	*egpios = 0;	/* turn off all egpio power */ 	/*@@ -192,7 +192,7 @@ 		OSCR4 = 0;      /* This starts the timer */ 	} -	asic3_set_extcf_select(&hx4700_asic3.dev, ASIC3_EXTCF_OWM_EN, 0);+	asic3_set_extcf_select(&hx4700_asic3, ASIC3_EXTCF_OWM_EN, 0);  	return 0; }@@ -289,9 +289,9 @@ 		return -ENODEV;  	/* UART IRQ */-        serial_irq = asic3_irq_base( &hx4700_asic3.dev ) + ASIC3_GPIOD_IRQ_BASE+        serial_irq = asic3_irq_base( &hx4700_asic3 ) + ASIC3_GPIOD_IRQ_BASE                 + GPIOD_COM_DCD;-	statusd = asic3_get_gpio_status_d( &hx4700_asic3.dev );+	statusd = asic3_get_gpio_status_d( &hx4700_asic3 ); 	connected = (statusd & (1<<GPIOD_COM_DCD)) != 0; 	// printk( KERN_INFO "Serial: connected=%d\n", connected ); 	if (connected)Index: arch/arm/mach-pxa/hx4700/hx4700_pcmcia.c===================================================================RCS file: /cvs/linux/kernel26/arch/arm/mach-pxa/hx4700/hx4700_pcmcia.c,vretrieving revision 1.22diff -u -r1.22 hx4700_pcmcia.c--- arch/arm/mach-pxa/hx4700/hx4700_pcmcia.c	18 Nov 2006 00:34:29 -0000	1.22+++ arch/arm/mach-pxa/hx4700/hx4700_pcmcia.c	30 Nov 2006 18:35:34 -0000@@ -93,7 +93,7 @@ 	_debug_func ("\n");  	/* Turn on sleep mode, I think */-	asic3_set_extcf_select(&hx4700_asic3.dev,+	asic3_set_extcf_select(&hx4700_asic3, 		ASIC3_EXTCF_CF0_SLEEP_MODE | ASIC3_EXTCF_CF1_SLEEP_MODE | 		ASIC3_EXTCF_CF0_BUF_EN     | ASIC3_EXTCF_CF1_BUF_EN     | 		ASIC3_EXTCF_CF0_PWAIT_EN   | ASIC3_EXTCF_CF1_PWAIT_EN,@@ -104,10 +104,10 @@ 	); 	mdelay(50); -	statusd = asic3_get_gpio_status_d( &hx4700_asic3.dev );+	statusd = asic3_get_gpio_status_d( &hx4700_asic3 ); 	power_en = (statusd & (1<<GPIOD_CF_CD_N)) ? 0 : 1; -	irq = hx4700_cd_irq[0].irq = asic3_irq_base( &hx4700_asic3.dev )+	irq = hx4700_cd_irq[0].irq = asic3_irq_base( &hx4700_asic3 ) 			+ ASIC3_GPIOD_IRQ_BASE + GPIOD_CF_CD_N; 	skt->irq = HX4700_IRQ( CF_RNB ); @@ -150,7 +150,7 @@ { 	int statusd; -	statusd = asic3_get_gpio_status_d( &hx4700_asic3.dev );+	statusd = asic3_get_gpio_status_d( &hx4700_asic3 ); 	// printk( "hx4700_pcmcia_socket_state: statusd=0x%x\n", statusd ); 	state->detect = (statusd & (1<<GPIOD_CF_CD_N)) ? 0 : 1; 	state->ready  = GET_HX4700_GPIO( CF_RNB ) ? 1 : 0;@@ -162,10 +162,10 @@  #if 0 	if (state->detect)-	    asic3_set_gpio_status_c( &hx4700_asic3.dev, 1<<GPIOC_CIOR_N,+	    asic3_set_gpio_status_c( &hx4700_asic3, 1<<GPIOC_CIOR_N, 		1<<GPIOC_CIOR_N ); 	else-	    asic3_set_gpio_status_c( &hx4700_asic3.dev, 1<<GPIOC_CIOR_N, 0 );+	    asic3_set_gpio_status_c( &hx4700_asic3, 1<<GPIOC_CIOR_N, 0 ); #endif  	_debug( "detect:%d ready:%d vcc:%d\n",@@ -178,7 +178,7 @@ { 	int statusc; -	statusc = asic3_get_gpio_status_c( &hx4700_asic3.dev );+	statusc = asic3_get_gpio_status_c( &hx4700_asic3 ); 	/* Silently ignore Vpp, output enable, speaker enable. */ 	_debug_func( "Reset:%d Vcc:%d Astatusc=0x%x\n", 	    (state->flags & SS_RESET) ? 1 : 0, state->Vcc,@@ -187,7 +187,7 @@ 	hx4700_cf_reset( state->flags & SS_RESET ); 	if (state->Vcc == 0) { 		/* Turn on sleep mode, I think.  No docs for these bits. */-		asic3_set_extcf_select(&hx4700_asic3.dev,+		asic3_set_extcf_select(&hx4700_asic3, 			ASIC3_EXTCF_CF0_SLEEP_MODE | ASIC3_EXTCF_CF1_SLEEP_MODE | 			ASIC3_EXTCF_CF0_BUF_EN     | ASIC3_EXTCF_CF1_BUF_EN     | 			ASIC3_EXTCF_CF0_PWAIT_EN   | ASIC3_EXTCF_CF1_PWAIT_EN,@@ -204,7 +204,7 @@ 		hx4700_egpio_enable( EGPIO4_CF_3V3_ON ); 		mdelay(1); 		/* Turn on CF stuff without messing with SD bit 14.  */-		asic3_set_extcf_select(&hx4700_asic3.dev,+		asic3_set_extcf_select(&hx4700_asic3, 			ASIC3_EXTCF_CF0_SLEEP_MODE | ASIC3_EXTCF_CF1_SLEEP_MODE | 			ASIC3_EXTCF_CF0_BUF_EN     | ASIC3_EXTCF_CF1_BUF_EN     | 			ASIC3_EXTCF_CF0_PWAIT_EN   | ASIC3_EXTCF_CF1_PWAIT_EN,Index: arch/arm/mach-pxa/hx4700/hx4700_power.c===================================================================RCS file: /cvs/linux/kernel26/arch/arm/mach-pxa/hx4700/hx4700_power.c,vretrieving revision 1.22diff -u -r1.22 hx4700_power.c--- arch/arm/mach-pxa/hx4700/hx4700_power.c	28 Nov 2006 03:51:51 -0000	1.22+++ arch/arm/mach-pxa/hx4700/hx4700_power.c	30 Nov 2006 18:35:40 -0000@@ -382,19 +382,19 @@ w1_init(void) {     /* Turn on external clocks and the OWM clock */-    asic3_set_clock_cdex(&hx4700_asic3.dev,+    asic3_set_clock_cdex(&hx4700_asic3,         CLOCK_CDEX_EX0 | CLOCK_CDEX_EX1 | CLOCK_CDEX_OWM,         CLOCK_CDEX_EX0 | CLOCK_CDEX_EX1 | CLOCK_CDEX_OWM);      mdelay(1); -    asic3_set_extcf_reset(&hx4700_asic3.dev, (1 << 6), (1 << 6));+    asic3_set_extcf_reset(&hx4700_asic3, (1 << 6), (1 << 6));     mdelay(1);-    asic3_set_extcf_reset(&hx4700_asic3.dev, (1 << 6), 0);+    asic3_set_extcf_reset(&hx4700_asic3, (1 << 6), 0);     mdelay(1);      /* Clear OWM_SMB, set OWM_EN */-    asic3_set_extcf_select(&hx4700_asic3.dev,+    asic3_set_extcf_select(&hx4700_asic3,         ASIC3_EXTCF_OWM_SMB | ASIC3_EXTCF_OWM_EN,         0                   | ASIC3_EXTCF_OWM_EN); @@ -609,7 +609,7 @@      if(!module_data.initialized) return; -    retval = asic3_get_gpio_status_d( &hx4700_asic3.dev );+    retval = asic3_get_gpio_status_d( &hx4700_asic3 );     ac_in  = (retval & (1<<GPIOD_AC_IN_N)) == 0;     usb_in = (retval & (1<<GPIOD_USBC_DETECT_N)) == 0;     printk( KERN_INFO "hx4700 power_change: ac_in=%d\n", ac_in );@@ -741,7 +741,7 @@     }  -    module_data.w1_irq = asic3_irq_base(&hx4700_asic3.dev) + ASIC3_OWM_IRQ;+    module_data.w1_irq = asic3_irq_base(&hx4700_asic3) + ASIC3_OWM_IRQ;     retval = request_irq(module_data.w1_irq, w1_isr, SA_INTERRUPT, driver_name, &module_data);     if(retval) {         printk(KERN_NOTICE "%s: Unable to get interrupt %d: %d\n",@@ -811,9 +811,9 @@         return -ENODEV;     } -    module_data.usb_irq = asic3_irq_base( &hx4700_asic3.dev ) + ASIC3_GPIOD_IRQ_BASE+    module_data.usb_irq = asic3_irq_base( &hx4700_asic3 ) + ASIC3_GPIOD_IRQ_BASE         + GPIOD_USBC_DETECT_N;-    module_data.ac_irq = asic3_irq_base( &hx4700_asic3.dev ) + ASIC3_GPIOD_IRQ_BASE+    module_data.ac_irq = asic3_irq_base( &hx4700_asic3 ) + ASIC3_GPIOD_IRQ_BASE         + GPIOD_AC_IN_N;     module_data.initialized = 1; @@ -846,12 +846,12 @@ {     /* Turn off OWM clock.  I hate to touch the others because they might be      * used by other devices like MMC. */-    asic3_set_clock_cdex(&hx4700_asic3.dev,+    asic3_set_clock_cdex(&hx4700_asic3,         /* CLOCK_CDEX_EX0 | CLOCK_CDEX_EX1 | */ CLOCK_CDEX_OWM,         /* CLOCK_CDEX_EX0 | CLOCK_CDEX_EX1 | */ 0);      /* Clear OWM_EN */-    asic3_set_extcf_select(&hx4700_asic3.dev,+    asic3_set_extcf_select(&hx4700_asic3,         ASIC3_EXTCF_OWM_EN, 0);      mdelay(1);@@ -923,7 +923,7 @@     disable_irq(module_data.w1_irq);     enable_irq(module_data.w1_irq);     /* Clear OWM_SMB, set OWM_EN */-    asic3_set_extcf_select(&hx4700_asic3.dev, ASIC3_EXTCF_OWM_EN, ASIC3_EXTCF_OWM_EN);+    asic3_set_extcf_select(&hx4700_asic3, ASIC3_EXTCF_OWM_EN, ASIC3_EXTCF_OWM_EN);     return 0; } Index: arch/arm/mach-pxa/hx4700/hx4700_ts.c===================================================================RCS file: /cvs/linux/kernel26/arch/arm/mach-pxa/hx4700/hx4700_ts.c,vretrieving revision 1.31diff -u -r1.31 hx4700_ts.c--- arch/arm/mach-pxa/hx4700/hx4700_ts.c	20 Nov 2006 21:21:56 -0000	1.31+++ arch/arm/mach-pxa/hx4700/hx4700_ts.c	30 Nov 2006 18:35:40 -0000@@ -143,7 +143,7 @@     /*      * alternate between rising and falling, based on pin status      */-    statusd = asic3_get_gpio_status_d( &hx4700_asic3.dev );+    statusd = asic3_get_gpio_status_d( &hx4700_asic3 );     key->rising = (statusd & key->gpiod_bit) == 0;     set_irq_type( irq, key->rising ? IRQT_RISING : IRQT_FALLING );     input_report_key( ts_data->input, key->key, key->rising );@@ -463,7 +463,7 @@     asic3_key[0].gpiod_bit = (1<<GPIOD_KEY_AP2_N);     asic3_key[0].rising = 0;     asic3_key[0].key = _KEY_CALENDAR;-    irq = asic3_irq_base( &hx4700_asic3.dev ) + ASIC3_GPIOD_IRQ_BASE+    irq = asic3_irq_base( &hx4700_asic3 ) + ASIC3_GPIOD_IRQ_BASE             + GPIOD_KEY_AP2_N;     err = request_irq( irq, key_isr, SA_INTERRUPT, "HX4700 AP2 Key",         (void *)&asic3_key[0] );@@ -478,7 +478,7 @@     asic3_key[1].gpiod_bit = (1<<GPIOD_KEY_AP4_N);     asic3_key[1].rising = 0;     asic3_key[1].key = _KEY_HOMEPAGE;-    irq = asic3_irq_base( &hx4700_asic3.dev ) + ASIC3_GPIOD_IRQ_BASE+    irq = asic3_irq_base( &hx4700_asic3 ) + ASIC3_GPIOD_IRQ_BASE             + GPIOD_KEY_AP4_N;     err = request_irq( irq, key_isr, SA_INTERRUPT, "HX4700 AP4 Key",         (void *)&asic3_key[1] );@@ -493,7 +493,7 @@     asic3_key[2].gpiod_bit = (1<<GPIOD_AUD_RECORD_N);     asic3_key[2].rising = 0;     asic3_key[2].key = _KEY_RECORD;-    irq = asic3_irq_base( &hx4700_asic3.dev ) + ASIC3_GPIOD_IRQ_BASE+    irq = asic3_irq_base( &hx4700_asic3 ) + ASIC3_GPIOD_IRQ_BASE             + GPIOD_AUD_RECORD_N;     err = request_irq( irq, key_isr, SA_INTERRUPT, "HX4700 Record",         (void *)&asic3_key[2] );Index: drivers/input/keyboard/asic3_keys.c===================================================================RCS file: /cvs/linux/kernel26/drivers/input/keyboard/asic3_keys.c,vretrieving revision 1.7diff -u -r1.7 asic3_keys.c--- drivers/input/keyboard/asic3_keys.c	28 Nov 2006 20:26:11 -0000	1.7+++ drivers/input/keyboard/asic3_keys.c	30 Nov 2006 18:35:47 -0000@@ -30,11 +30,11 @@ 	struct asic3_keys_platform_data *pdata = data; 	int i, base_irq; -	base_irq = asic3_irq_base(pdata->asic3_dev);+	base_irq = asic3_irq_base(pdata->asic3_pdev); 	for (i = 0; i < pdata->nbuttons; i++) { 		struct asic3_keys_button *b = &pdata->buttons[i]; 		if ((base_irq + b->gpio) == irq) {-			int state = !!asic3_get_gpio_bit(pdata->asic3_dev, b->gpio);+			int state = !!asic3_get_gpio_bit(pdata->asic3_pdev, b->gpio); 			if (state) 				set_irq_type(irq, IRQ_TYPE_EDGE_FALLING); 			else@@ -61,7 +61,7 @@ 		external_input = 0; 	} -	base_irq = asic3_irq_base(pdata->asic3_dev);+	base_irq = asic3_irq_base(pdata->asic3_pdev);  	for (i = 0; i < pdata->nbuttons; i++) { 		struct asic3_keys_button *b = &pdata->buttons[i];@@ -83,7 +83,7 @@ 	struct asic3_keys_platform_data *pdata = pdev->dev.platform_data; 	int i, base_irq; -	base_irq = asic3_irq_base(pdata->asic3_dev);+	base_irq = asic3_irq_base(pdata->asic3_pdev); 	for (i = 0; i < pdata->nbuttons; i++) { 		free_irq(base_irq + pdata->buttons[i].gpio, NULL); 	}Index: drivers/leds/leds-asic3.c===================================================================RCS file: /cvs/linux/kernel26/drivers/leds/leds-asic3.c,vretrieving revision 1.3diff -u -r1.3 leds-asic3.c--- drivers/leds/leds-asic3.c	29 Nov 2006 17:49:39 -0000	1.3+++ drivers/leds/leds-asic3.c	30 Nov 2006 18:35:47 -0000@@ -34,28 +34,28 @@ 	struct asic3_led *led = container_of(led_cdev, struct asic3_led, 	                                     led_cdev); 	struct asic3_leds_machinfo *machinfo = led->machinfo;-	struct device *asic3_dev = &machinfo->asic3_pdev->dev;+	struct platform_device *asic3_pdev = &machinfo->asic3_pdev;  	dbg("%s:%s %d-%s %d\n", __FILE__, __FUNCTION__, led->hw_num, 	    led->led_cdev.name, b);  	if (b == LED_OFF) {-		asic3_set_led(asic3_dev, led->hw_num, 0, 16);-		asic3_set_gpio_out_c(asic3_dev, led->hw_num, 0);+		asic3_set_led(asic3_pdev, led->hw_num, 0, 16);+		asic3_set_gpio_out_c(asic3_pdev, led->hw_num, 0); 	} 	else {-		asic3_set_gpio_out_c(asic3_dev, led->hw_num, led->hw_num);+		asic3_set_gpio_out_c(asic3_pdev, led->hw_num, led->hw_num); 		#ifdef CONFIG_LEDS_TRIGGER_TIMER_ASIC3 		if (led_cdev->trigger && led_cdev->trigger->is_led_supported && 			       led_cdev->trigger->is_led_supported(led_cdev)) { 			struct asic3_timer_data *td = led_cdev->trigger_data; 			if (!td) return;-			asic3_set_led(asic3_dev, led->hw_num, td->delay_on/8,+			asic3_set_led(asic3_pdev, led->hw_num, td->delay_on/8, 					   (td->delay_on + td->delay_off)/8); 		} 		else  		#endif-		asic3_set_led(asic3_dev, led->hw_num, 16, 16);+		asic3_set_led(asic3_pdev, led->hw_num, 16, 16); 	}  	return;@@ -72,7 +72,7 @@  	// Turn on clocks early, for the case if trigger would enable 	// led immediately after led_classdev_register().-	asic3_set_clock_cdex(&machinfo->asic3_pdev->dev,+	asic3_set_clock_cdex(&machinfo->asic3_pdev, 		CLOCK_CDEX_LED0 | CLOCK_CDEX_LED1 | CLOCK_CDEX_LED2, 		CLOCK_CDEX_LED0 | CLOCK_CDEX_LED1 | CLOCK_CDEX_LED2); @@ -92,7 +92,7 @@ out_err: 	while (--i >= 0) led_classdev_unregister(&leds[i].led_cdev); -	asic3_set_clock_cdex(&machinfo->asic3_pdev->dev,+	asic3_set_clock_cdex(&machinfo->asic3_pdev, 		CLOCK_CDEX_LED0 | CLOCK_CDEX_LED1 | CLOCK_CDEX_LED2, 		0               | 0               | 0); @@ -111,7 +111,7 @@ 	for (i = 0; i < machinfo->num_leds; i++) 		led_classdev_unregister(&leds[i].led_cdev); 	-	asic3_set_clock_cdex(&machinfo->asic3_pdev->dev,+	asic3_set_clock_cdex(&machinfo->asic3_pdev, 		CLOCK_CDEX_LED0 | CLOCK_CDEX_LED1 | CLOCK_CDEX_LED2, 		0               | 0               | 0); Index: drivers/mmc/asic3_mmc.c===================================================================RCS file: /cvs/linux/kernel26/drivers/mmc/asic3_mmc.c,vretrieving revision 1.18diff -u -r1.18 asic3_mmc.c--- drivers/mmc/asic3_mmc.c	2 Sep 2006 23:55:15 -0000	1.18+++ drivers/mmc/asic3_mmc.c	30 Nov 2006 18:35:48 -0000@@ -62,7 +62,7 @@  struct asic3_mmc_host {     void                    *ctl_base;-    struct device           *asic3_dev;       /* asic3 device */+    struct platform_device  *asic3_pdev;       /* asic3 device */     unsigned long           bus_shift;     struct mmc_command      *cmd;     struct mmc_request      *mrq;@@ -656,28 +656,28 @@     /* ASIC3_MMC_REG(host, SD_CTRL, TransactionCtrl) = 0x1000; */  -    asic3_set_sdhwctrl(host->asic3_dev, ASIC3_SDHWCTRL_SDPWR, ASIC3_SDHWCTRL_SDPWR); /* turn on power at controller(?) */+    asic3_set_sdhwctrl(host->asic3_pdev, ASIC3_SDHWCTRL_SDPWR, ASIC3_SDHWCTRL_SDPWR); /* turn on power at controller(?) */  }  static void-hwinit(struct asic3_mmc_host *host, struct device *dev)+hwinit(struct asic3_mmc_host *host, struct platform_device *pdev) {     /* Not sure if it must be done bit by bit, but leaving as-is */-    asic3_set_sdhwctrl(host->asic3_dev, ASIC3_SDHWCTRL_LEVCD, ASIC3_SDHWCTRL_LEVCD);-    asic3_set_sdhwctrl(host->asic3_dev, ASIC3_SDHWCTRL_LEVWP, ASIC3_SDHWCTRL_LEVWP);-    asic3_set_sdhwctrl(host->asic3_dev, ~0xfffe, 0);-    asic3_set_sdhwctrl(host->asic3_dev, ~0xfffb, 0);+    asic3_set_sdhwctrl(host->asic3_pdev, ASIC3_SDHWCTRL_LEVCD, ASIC3_SDHWCTRL_LEVCD);+    asic3_set_sdhwctrl(host->asic3_pdev, ASIC3_SDHWCTRL_LEVWP, ASIC3_SDHWCTRL_LEVWP);+    asic3_set_sdhwctrl(host->asic3_pdev, ~0xfffe, 0);+    asic3_set_sdhwctrl(host->asic3_pdev, ~0xfffb, 0); -    asic3_set_clock_cdex (host->asic3_dev,+    asic3_set_clock_cdex (host->asic3_pdev,         CLOCK_CDEX_EX1 | CLOCK_CDEX_EX0, CLOCK_CDEX_EX1 | CLOCK_CDEX_EX0);     msleep(1); -    asic3_set_clock_sel (host->asic3_dev,+    asic3_set_clock_sel (host->asic3_pdev,         ASIC3_MMC_DRIVER_CLOCK_SEL_MASK, 	ASIC3_MMC_DRIVER_CLOCK_SEL_BITS); -    asic3_set_clock_cdex (host->asic3_dev,+    asic3_set_clock_cdex (host->asic3_pdev,         ASIC3_MMC_DRIVER_CLOCK_CDEX_MASK, 	ASIC3_MMC_DRIVER_CLOCK_CDEX_BITS);     msleep(1);@@ -686,7 +686,7 @@     ASIC3_MMC_REG(host, CLOCK, CDEX) &= 0xfffb; #endif -    asic3_set_extcf_select(host->asic3_dev, ASIC3_EXTCF_SD_MEM_ENABLE, ASIC3_EXTCF_SD_MEM_ENABLE);+    asic3_set_extcf_select(host->asic3_pdev, ASIC3_EXTCF_SD_MEM_ENABLE, ASIC3_EXTCF_SD_MEM_ENABLE);      /* Long Delay */     if( !machine_is_h4700())@@ -697,9 +697,9 @@  #ifdef CONFIG_PM static int-mmc_suspend(struct device *dev, pm_message_t state)+mmc_suspend(struct platform_device *pdev, pm_message_t state) {-    struct mmc_host *mmc = dev_get_drvdata(dev);+    struct mmc_host *mmc = platform_get_drvdata(pdev);     struct asic3_mmc_host *host = mmc_priv(mmc);     int ret; @@ -722,7 +722,7 @@     /* power down */     ASIC3_MMC_REG(host, SD_CONFIG, SDHC_Power1) = 0; -    asic3_set_clock_cdex (host->asic3_dev,+    asic3_set_clock_cdex (host->asic3_pdev,         CLOCK_CDEX_SD_HOST | CLOCK_CDEX_SD_BUS, 0); #if 0     /* disable core clock */@@ -731,20 +731,20 @@ #endif      /* Put in suspend mode */-    asic3_set_sdhwctrl(host->asic3_dev, ASIC3_SDHWCTRL_SUSPEND, ASIC3_SDHWCTRL_SUSPEND);+    asic3_set_sdhwctrl(host->asic3_pdev, ASIC3_SDHWCTRL_SUSPEND, ASIC3_SDHWCTRL_SUSPEND);     return 0; }  static int-mmc_resume(struct device *dev)+mmc_resume(struct platform_device *pdev) {-    struct mmc_host *mmc = dev_get_drvdata(dev);+    struct mmc_host *mmc = platform_get_drvdata(pdev);     struct asic3_mmc_host *host = mmc_priv(mmc);      printk(KERN_INFO "%s: starting resume\n", DRIVER_NAME); -    asic3_set_sdhwctrl(host->asic3_dev, ASIC3_SDHWCTRL_SUSPEND, 0);-    hwinit(host, dev);+    asic3_set_sdhwctrl(host->asic3_pdev, ASIC3_SDHWCTRL_SUSPEND, 0);+    hwinit(host, pdev);      /* re-enable card remove / insert interrupt */     ASIC3_MMC_REG(host, SD_CTRL, IntMaskCard) = ~(@@ -761,17 +761,16 @@ #endif  static int-mmc_probe(struct device *dev)+mmc_probe(struct platform_device *pdev) {     struct mmc_host *mmc;     struct asic3_mmc_host *host;     int retval = 0;-    struct platform_device *pdev = to_platform_device (dev);-    struct tmio_mmc_hwconfig *mmc_config = (struct tmio_mmc_hwconfig *)dev->platform_data;+    struct tmio_mmc_hwconfig *mmc_config = (struct tmio_mmc_hwconfig *)pdev->dev.platform_data;      host = 0; -    mmc = mmc_alloc_host(sizeof(struct asic3_mmc_host) + 128, dev);+    mmc = mmc_alloc_host(sizeof(struct asic3_mmc_host) + 128, &pdev->dev);     if (!mmc) {         retval = -ENOMEM;         goto exceptional_return;@@ -779,11 +778,11 @@      host = mmc_priv(mmc);     host->mmc = mmc;-    dev_set_drvdata(dev, mmc);+    platform_set_drvdata(pdev, mmc);      host->ctl_base = 0;     host->bus_shift = mmc_config->address_shift;-    host->asic3_dev = pdev->dev.parent;+    host->asic3_pdev = to_platform_device(pdev->dev.parent);     host->clock_for_sd = 0;      tasklet_init(&mmc_data_read_tasklet, mmc_data_transfer, (unsigned long)host);@@ -803,7 +802,7 @@     mmc->f_max = 24000000; /* ARIC: not sure what these should be */     mmc->ocr_avail = MMC_VDD_32_33; -    hwinit(host, dev);+    hwinit(host, pdev);       host->irq = pdev->resource[1].start;@@ -835,11 +834,11 @@ }  static int-mmc_remove(struct device *dev)+mmc_remove(struct platform_device *pdev) {-    struct mmc_host *mmc = dev_get_drvdata(dev);+    struct mmc_host *mmc = platform_get_drvdata(pdev); -    dev_set_drvdata(dev, NULL);+    platform_set_drvdata(pdev, NULL);      if (mmc) {         struct asic3_mmc_host *host = mmc_priv(mmc);@@ -854,26 +853,27 @@  /* ------------------- device registration ----------------------- */ -static struct device_driver mmc_asic3_driver = {-    .name    = DRIVER_NAME,-    .bus     = &platform_bus_type,-    .probe   = mmc_probe,-    .remove  = mmc_remove,+static struct platform_driver mmc_asic3_driver = {+    .probe    = mmc_probe,+    .remove   = mmc_remove, #ifdef CONFIG_PM-    .suspend = mmc_suspend,-    .resume  = mmc_resume,+    .suspend  = mmc_suspend,+    .resume   = mmc_resume, #endif+    .driver   = {+        .name = DRIVER_NAME,+    }, };  static int __init mmc_init(void) {-    driver_register(&mmc_asic3_driver);+    platform_driver_register(&mmc_asic3_driver);     return 0; }  static void __exit mmc_exit(void) {-    driver_unregister(&mmc_asic3_driver);+    platform_driver_unregister(&mmc_asic3_driver); }  late_initcall(mmc_init);Index: drivers/soc/asic3_base.c===================================================================RCS file: /cvs/linux/kernel26/drivers/soc/asic3_base.c,vretrieving revision 1.21diff -u -r1.21 asic3_base.c--- drivers/soc/asic3_base.c	19 Nov 2006 23:08:17 -0000	1.21+++ drivers/soc/asic3_base.c	30 Nov 2006 18:35:53 -0000@@ -49,29 +49,29 @@  static spinlock_t asic3_gpio_lock; -static int asic3_remove (struct device *dev);+static int asic3_remove (struct platform_device *pdev);  static inline unsigned long-asic3_address (struct device *dev, unsigned int reg)+asic3_address (struct platform_device *pdev, unsigned int reg) { 	struct asic3_data *adata; -	adata = (struct asic3_data *)dev->driver_data;+	adata = (struct asic3_data *)platform_get_drvdata(pdev);  	return (unsigned long)adata->mapping + (reg >> (2 - adata->bus_shift)); }  void-asic3_write_register (struct device *dev, unsigned int reg, unsigned long value)+asic3_write_register (struct platform_device *pdev, unsigned int reg, unsigned long value) {-	__raw_writew (value, asic3_address (dev, reg));+	__raw_writew (value, asic3_address (pdev, reg)); } EXPORT_SYMBOL(asic3_write_register);  unsigned long-asic3_read_register (struct device *dev, unsigned int reg)+asic3_read_register (struct platform_device *pdev, unsigned int reg) {-	return __raw_readw (asic3_address (dev, reg));+	return __raw_readw (asic3_address (pdev, reg)); } EXPORT_SYMBOL(asic3_read_register); @@ -89,20 +89,20 @@  #define ASIC3_GPIO_FN(get_fn_name, set_fn_name, REG)			\ u32                                                                     \-get_fn_name (struct device *dev)					\+get_fn_name (struct platform_device *pdev)				\ {                                                                       \-	return asic3_read_register (dev, REG);				\+	return asic3_read_register (pdev, REG);				\ }                                                                       \ EXPORT_SYMBOL( get_fn_name );						\                                                                         \ void                                                                    \-set_fn_name (struct device *dev, u32 bits, u32 val)                     \+set_fn_name (struct platform_device *pdev, u32 bits, u32 val)           \ {                                                                       \ 	unsigned long flags;						\ 									\ 	spin_lock_irqsave (&asic3_gpio_lock, flags);			\-	val |= (asic3_read_register (dev, REG) & ~bits);		\-	asic3_write_register (dev, REG, val);				\+	val |= (asic3_read_register (pdev, REG) & ~bits);		\+	asic3_write_register (pdev, REG, val);				\ 	spin_unlock_irqrestore (&asic3_gpio_lock, flags);		\ }                                                                       \ EXPORT_SYMBOL(set_fn_name);@@ -135,18 +135,18 @@ ASIC3_GPIO_FUNCTIONS(c, C) ASIC3_GPIO_FUNCTIONS(d, D) -int asic3_get_gpio_bit(struct device *dev, int gpio)+int asic3_get_gpio_bit(struct platform_device *pdev, int gpio) { 	u32 mask = ASIC3_GPIO_bit(gpio); 	switch (gpio >> 4) { 		case _IPAQ_ASIC3_GPIO_BANK_A:-			return asic3_get_gpio_status_a(dev) & mask;+			return asic3_get_gpio_status_a(pdev) & mask; 		case _IPAQ_ASIC3_GPIO_BANK_B:-			return asic3_get_gpio_status_b(dev) & mask;+			return asic3_get_gpio_status_b(pdev) & mask; 		case _IPAQ_ASIC3_GPIO_BANK_C:-			return asic3_get_gpio_status_c(dev) & mask;+			return asic3_get_gpio_status_c(pdev) & mask; 		case _IPAQ_ASIC3_GPIO_BANK_D:-			return asic3_get_gpio_status_d(dev) & mask;+			return asic3_get_gpio_status_d(pdev) & mask; 	}  	printk("%s: invalid GPIO value 0x%x", __FUNCTION__, gpio);@@ -156,9 +156,9 @@ EXPORT_SYMBOL(asic3_get_gpio_bit);  int-asic3_irq_base (struct device *dev)+asic3_irq_base (struct platform_device *pdev) {-	struct asic3_data *asic = dev->driver_data;+	struct asic3_data *asic = platform_get_drvdata(pdev);  	return asic->irq_base; }@@ -166,9 +166,9 @@ EXPORT_SYMBOL(asic3_irq_base);  void -asic3_set_led (struct device *dev, int led_num, int duty_time, int cycle_time)+asic3_set_led (struct platform_device *pdev, int led_num, int duty_time, int cycle_time) {-	struct asic3_data *asic = dev->driver_data;+	struct asic3_data *asic = platform_get_drvdata(pdev); 	unsigned int led_base;  	/* it's a macro thing: see #define _IPAQ_ASIC_LED_0_Base for why you@@ -200,9 +200,9 @@ EXPORT_SYMBOL(asic3_set_led);  void-asic3_set_clock_sel (struct device *dev, unsigned long bits, unsigned long val)+asic3_set_clock_sel (struct platform_device *pdev, unsigned long bits, unsigned long val) {-	struct asic3_data *asic = dev->driver_data;+	struct asic3_data *asic = platform_get_drvdata(pdev); 	unsigned long flags, v;  	spin_lock_irqsave (&asic3_gpio_lock, flags);@@ -214,9 +214,9 @@ EXPORT_SYMBOL (asic3_set_clock_sel);  void-asic3_set_clock_cdex (struct device *dev, unsigned long bits, unsigned long val)+asic3_set_clock_cdex (struct platform_device *pdev, unsigned long bits, unsigned long val) {-	struct asic3_data *asic = dev->driver_data;+	struct asic3_data *asic = platform_get_drvdata(pdev); 	unsigned long flags, v;  	spin_lock_irqsave (&asic3_gpio_lock, flags);@@ -228,9 +228,9 @@ EXPORT_SYMBOL (asic3_set_clock_cdex);  void-asic3_set_extcf_select (struct device *dev, unsigned long bits, unsigned long val)+asic3_set_extcf_select (struct platform_device *pdev, unsigned long bits, unsigned long val) {-	struct asic3_data *asic = dev->driver_data;+	struct asic3_data *asic = platform_get_drvdata(pdev); 	unsigned long flags, v;  	spin_lock_irqsave (&asic3_gpio_lock, flags);@@ -242,9 +242,9 @@ EXPORT_SYMBOL (asic3_set_extcf_select);  void-asic3_set_extcf_reset (struct device *dev, unsigned long bits, unsigned long val)+asic3_set_extcf_reset (struct platform_device *pdev, unsigned long bits, unsigned long val) {-	struct asic3_data *asic = dev->driver_data;+	struct asic3_data *asic = platform_get_drvdata(pdev); 	unsigned long flags, v;  	spin_lock_irqsave (&asic3_gpio_lock, flags);@@ -256,9 +256,9 @@ EXPORT_SYMBOL (asic3_set_extcf_reset);  void-asic3_set_sdhwctrl (struct device *dev, unsigned long bits, unsigned long val)+asic3_set_sdhwctrl (struct platform_device *pdev, unsigned long bits, unsigned long val) {-        struct asic3_data *asic = dev->driver_data;+        struct asic3_data *asic = platform_get_drvdata(pdev);         unsigned long flags, v;          spin_lock_irqsave (&asic3_gpio_lock, flags);@@ -559,12 +559,11 @@ }  int-asic3_register_mmc (struct device *dev)+asic3_register_mmc (struct platform_device *pdev) { 	struct platform_device *sdev = kmalloc (sizeof (*sdev), GFP_KERNEL); 	struct tmio_mmc_hwconfig *mmc_config = kmalloc (sizeof (*mmc_config), GFP_KERNEL);-	struct platform_device *pdev = to_platform_device (dev);-	struct asic3_data *asic = dev->driver_data;+	struct asic3_data *asic = platform_get_drvdata(pdev); 	struct resource *res; 	int rc; @@ -577,7 +576,7 @@  	sdev->id = TMIO_MMC_DEVICE_ID; 	sdev->name = "asic3_mmc";-	sdev->dev.parent = dev;+	sdev->dev.parent = &pdev->dev; 	sdev->num_resources = 2; 	sdev->dev.platform_data = mmc_config; 	sdev->dev.release = asic3_release;@@ -611,9 +610,9 @@ EXPORT_SYMBOL(asic3_register_mmc);  int-asic3_unregister_mmc (struct device *dev)+asic3_unregister_mmc (struct platform_device *pdev) {-	struct asic3_data *asic = dev->driver_data;+	struct asic3_data *asic = platform_get_drvdata(pdev); 	platform_device_unregister (asic->mmc_dev); 	asic->mmc_dev = 0; @@ -622,10 +621,9 @@ EXPORT_SYMBOL(asic3_unregister_mmc);  static int -asic3_probe (struct device *dev)+asic3_probe (struct platform_device *pdev) {-	struct platform_device *pdev = to_platform_device (dev);-	struct asic3_platform_data *pdata = dev->platform_data;+	struct asic3_platform_data *pdata = pdev->dev.platform_data; 	struct asic3_data *asic; 	unsigned long clksel; @@ -635,7 +633,7 @@ 	memset (asic, 0, sizeof (*asic));  	spin_lock_init (&asic3_gpio_lock);-	dev->driver_data = asic;+	platform_set_drvdata(pdev, asic);  	asic->mapping = ioremap ((unsigned long)pdev->resource[0].start, IPAQ_ASIC3_MAP_SIZE); 	if (!asic->mapping) {@@ -658,46 +656,46 @@ 	__asic3_write_register (asic, _IPAQ_ASIC3_GPIO_C_Base + _IPAQ_ASIC3_GPIO_Mask, 0xffff); 	__asic3_write_register (asic, _IPAQ_ASIC3_GPIO_D_Base + _IPAQ_ASIC3_GPIO_Mask, 0xffff); -	asic3_set_gpio_sleepmask_a (dev, 0xffff, 0xffff);-	asic3_set_gpio_sleepmask_b (dev, 0xffff, 0xffff);-	asic3_set_gpio_sleepmask_c (dev, 0xffff, 0xffff);-	asic3_set_gpio_sleepmask_d (dev, 0xffff, 0xffff);+	asic3_set_gpio_sleepmask_a (pdev, 0xffff, 0xffff);+	asic3_set_gpio_sleepmask_b (pdev, 0xffff, 0xffff);+	asic3_set_gpio_sleepmask_c (pdev, 0xffff, 0xffff);+	asic3_set_gpio_sleepmask_d (pdev, 0xffff, 0xffff);  	if (pdata) {-		asic3_set_gpio_out_a(dev, 0xffff, pdata->gpio_a.init);-		asic3_set_gpio_out_b(dev, 0xffff, pdata->gpio_b.init);-		asic3_set_gpio_out_c(dev, 0xffff, pdata->gpio_c.init);-		asic3_set_gpio_out_d(dev, 0xffff, pdata->gpio_d.init);--		asic3_set_gpio_dir_a(dev, 0xffff, pdata->gpio_a.dir);-		asic3_set_gpio_dir_b(dev, 0xffff, pdata->gpio_b.dir);-		asic3_set_gpio_dir_c(dev, 0xffff, pdata->gpio_c.dir);-		asic3_set_gpio_dir_d(dev, 0xffff, pdata->gpio_d.dir);--		asic3_set_gpio_sleepmask_a(dev, 0xffff, pdata->gpio_a.sleep_mask);-		asic3_set_gpio_sleepmask_b(dev, 0xffff, pdata->gpio_b.sleep_mask);-		asic3_set_gpio_sleepmask_c(dev, 0xffff, pdata->gpio_c.sleep_mask);-		asic3_set_gpio_sleepmask_d(dev, 0xffff, pdata->gpio_d.sleep_mask);--		asic3_set_gpio_sleepout_a(dev, 0xffff, pdata->gpio_a.sleep_out);-		asic3_set_gpio_sleepout_b(dev, 0xffff, pdata->gpio_b.sleep_out);-		asic3_set_gpio_sleepout_c(dev, 0xffff, pdata->gpio_c.sleep_out);-		asic3_set_gpio_sleepout_d(dev, 0xffff, pdata->gpio_d.sleep_out);--		asic3_set_gpio_battfaultout_a(dev, 0xffff, pdata->gpio_a.batt_fault_out);-		asic3_set_gpio_battfaultout_b(dev, 0xffff, pdata->gpio_b.batt_fault_out);-		asic3_set_gpio_battfaultout_c(dev, 0xffff, pdata->gpio_c.batt_fault_out);-		asic3_set_gpio_battfaultout_d(dev, 0xffff, pdata->gpio_d.batt_fault_out);--		asic3_set_gpio_sleepconf_a(dev, 0xffff, pdata->gpio_a.sleep_conf);-		asic3_set_gpio_sleepconf_b(dev, 0xffff, pdata->gpio_b.sleep_conf);-		asic3_set_gpio_sleepconf_c(dev, 0xffff, pdata->gpio_c.sleep_conf);-		asic3_set_gpio_sleepconf_d(dev, 0xffff, pdata->gpio_d.sleep_conf);--		asic3_set_gpio_alt_fn_a(dev, 0xffff, pdata->gpio_a.alt_function);-		asic3_set_gpio_alt_fn_b(dev, 0xffff, pdata->gpio_b.alt_function);-		asic3_set_gpio_alt_fn_c(dev, 0xffff, pdata->gpio_c.alt_function);-		asic3_set_gpio_alt_fn_d(dev, 0xffff, pdata->gpio_d.alt_function);+		asic3_set_gpio_out_a(pdev, 0xffff, pdata->gpio_a.init);+		asic3_set_gpio_out_b(pdev, 0xffff, pdata->gpio_b.init);+		asic3_set_gpio_out_c(pdev, 0xffff, pdata->gpio_c.init);+		asic3_set_gpio_out_d(pdev, 0xffff, pdata->gpio_d.init);++		asic3_set_gpio_dir_a(pdev, 0xffff, pdata->gpio_a.dir);+		asic3_set_gpio_dir_b(pdev, 0xffff, pdata->gpio_b.dir);+		asic3_set_gpio_dir_c(pdev, 0xffff, pdata->gpio_c.dir);+		asic3_set_gpio_dir_d(pdev, 0xffff, pdata->gpio_d.dir);++		asic3_set_gpio_sleepmask_a(pdev, 0xffff, pdata->gpio_a.sleep_mask);+		asic3_set_gpio_sleepmask_b(pdev, 0xffff, pdata->gpio_b.sleep_mask);+		asic3_set_gpio_sleepmask_c(pdev, 0xffff, pdata->gpio_c.sleep_mask);+		asic3_set_gpio_sleepmask_d(pdev, 0xffff, pdata->gpio_d.sleep_mask);++		asic3_set_gpio_sleepout_a(pdev, 0xffff, pdata->gpio_a.sleep_out);+		asic3_set_gpio_sleepout_b(pdev, 0xffff, pdata->gpio_b.sleep_out);+		asic3_set_gpio_sleepout_c(pdev, 0xffff, pdata->gpio_c.sleep_out);+		asic3_set_gpio_sleepout_d(pdev, 0xffff, pdata->gpio_d.sleep_out);++		asic3_set_gpio_battfaultout_a(pdev, 0xffff, pdata->gpio_a.batt_fault_out);+		asic3_set_gpio_battfaultout_b(pdev, 0xffff, pdata->gpio_b.batt_fault_out);+		asic3_set_gpio_battfaultout_c(pdev, 0xffff, pdata->gpio_c.batt_fault_out);+		asic3_set_gpio_battfaultout_d(pdev, 0xffff, pdata->gpio_d.batt_fault_out);++		asic3_set_gpio_sleepconf_a(pdev, 0xffff, pdata->gpio_a.sleep_conf);+		asic3_set_gpio_sleepconf_b(pdev, 0xffff, pdata->gpio_b.sleep_conf);+		asic3_set_gpio_sleepconf_c(pdev, 0xffff, pdata->gpio_c.sleep_conf);+		asic3_set_gpio_sleepconf_d(pdev, 0xffff, pdata->gpio_d.sleep_conf);++		asic3_set_gpio_alt_fn_a(pdev, 0xffff, pdata->gpio_a.alt_function);+		asic3_set_gpio_alt_fn_b(pdev, 0xffff, pdata->gpio_b.alt_function);+		asic3_set_gpio_alt_fn_c(pdev, 0xffff, pdata->gpio_c.alt_function);+		asic3_set_gpio_alt_fn_d(pdev, 0xffff, pdata->gpio_d.alt_function); 	}  	asic->irq_nr = -1;@@ -712,7 +710,7 @@ 		asic->irq_base = alloc_irq_space (ASIC3_NR_IRQS); 		if (asic->irq_base == -1) { 			printk("asic3: unable to allocate %d IRQs\n", ASIC3_NR_IRQS);-			asic3_remove (dev);+			asic3_remove (pdev); 			return -ENOMEM; 		} @@ -749,9 +747,9 @@  	if (pdev->num_resources > 2) { 		int rc;-		rc = asic3_register_mmc (dev);+		rc = asic3_register_mmc (pdev); 		if (rc) {-			asic3_remove (dev);+			asic3_remove (pdev); 			return rc; 		} 	}@@ -763,11 +761,11 @@ }  static int-asic3_remove (struct device *dev)+asic3_remove (struct platform_device *pdev) { 	struct asic3_data *asic;-	struct asic3_platform_data *pdata = dev->platform_data;-	asic = dev->driver_data;+	struct asic3_platform_data *pdata = pdev->dev.platform_data;+	asic = platform_get_drvdata(pdev);  	if (pdata && pdata->child_platform_devs && pdata->num_child_platform_devs != 0) { 		int i;@@ -792,7 +790,7 @@ 	}  	if (asic->mmc_dev)-		asic3_unregister_mmc (dev);+		asic3_unregister_mmc (pdev);  	__asic3_write_register (asic, _IPAQ_ASIC3_CLOCK_Base + _IPAQ_ASIC3_CLOCK_SEL, 0); 	__asic3_write_register (asic, _IPAQ_ASIC3_INTR_Base + _IPAQ_ASIC3_INTR_IntMask, 0);@@ -805,16 +803,16 @@ }  static void-asic3_shutdown (struct device *dev)+asic3_shutdown (struct platform_device *pdev) { }  static unsigned short suspend_cdex;  static int-asic3_suspend (struct device *dev, pm_message_t state)+asic3_suspend (struct platform_device *pdev, pm_message_t state) {-	struct asic3_data *asic = dev->driver_data;+	struct asic3_data *asic = platform_get_drvdata(pdev); 	suspend_cdex = __asic3_read_register (asic, 		_IPAQ_ASIC3_CLOCK_Base + _IPAQ_ASIC3_CLOCK_CDEX); 	/* The LEDs are still active during suspend */@@ -825,9 +823,9 @@ }  static int-asic3_resume (struct device *dev)+asic3_resume (struct platform_device *pdev) {-	struct asic3_data *asic = dev->driver_data;+	struct asic3_data *asic = platform_get_drvdata(pdev);  	__asic3_write_register (asic, _IPAQ_ASIC3_INTR_Base + _IPAQ_ASIC3_CLOCK_CDEX, 		suspend_cdex );@@ -844,29 +842,29 @@ 	return 0; } -static struct device_driver asic3_device_driver = {-	.name		= "asic3",-	.bus		= &platform_bus_type,-+static struct platform_driver asic3_driver = { 	.probe		= asic3_probe, 	.remove		= asic3_remove, 	.suspend	= asic3_suspend, 	.resume		= asic3_resume, 	.shutdown	= asic3_shutdown,+	.driver		= {+		.name	= "asic3",+	}, };  static int __init  asic3_base_init (void) { 	int retval = 0;-	retval = driver_register (&asic3_device_driver);+	retval = platform_driver_register (&asic3_driver); 	return retval; }  static void __exit  asic3_base_exit (void) {-	driver_unregister (&asic3_device_driver);+	platform_driver_unregister (&asic3_driver); }  #ifdef MODULEIndex: include/asm-arm/hardware/asic3_keys.h===================================================================RCS file: /cvs/linux/kernel26/include/asm-arm/hardware/asic3_keys.h,vretrieving revision 1.4diff -u -r1.4 asic3_keys.h--- include/asm-arm/hardware/asic3_keys.h	5 Nov 2006 17:44:28 -0000	1.4+++ include/asm-arm/hardware/asic3_keys.h	30 Nov 2006 18:35:56 -0000@@ -13,5 +13,5 @@ 	struct asic3_keys_button *buttons; 	int nbuttons;         struct input_dev *input;-        struct device *asic3_dev;+        struct platform_device *asic3_pdev; };Index: include/linux/soc/asic3_base.h===================================================================RCS file: /cvs/linux/kernel26/include/linux/soc/asic3_base.h,vretrieving revision 1.8diff -u -r1.8 asic3_base.h--- include/linux/soc/asic3_base.h	18 Nov 2006 00:34:30 -0000	1.8+++ include/linux/soc/asic3_base.h	30 Nov 2006 18:36:00 -0000@@ -1,7 +1,7 @@ /* Private defines - for internal use only */ #define HDR_IPAQ_ASIC3_ACTION(ACTION,action,fn,FN)                  \-u32  asic3_get_gpio_ ## action ## _ ## fn (struct device *dev);      \-void asic3_set_gpio_ ## action ## _ ## fn (struct device *dev, u32 bits, u32 val);+u32  asic3_get_gpio_ ## action ## _ ## fn (struct platform_device *pdev);      \+void asic3_set_gpio_ ## action ## _ ## fn (struct platform_device *pdev, u32 bits, u32 val);  #define HDR_IPAQ_ASIC3_FN(fn,FN)                       \ 	HDR_IPAQ_ASIC3_ACTION ( MASK,mask,fn,FN)               \@@ -34,22 +34,22 @@  /* Public API */ -extern int asic3_irq_base (struct device *dev);+extern int asic3_irq_base (struct platform_device *pdev); -void asic3_write_register (struct device *dev, unsigned int reg, unsigned long value);-unsigned long asic3_read_register (struct device *dev, unsigned int reg);+void asic3_write_register (struct platform_device *pdev, unsigned int reg, unsigned long value);+unsigned long asic3_read_register (struct platform_device *pdev, unsigned int reg); -extern void asic3_set_clock_sel (struct device *dev, unsigned long bits, unsigned long val);-extern u32  asic3_get_clock_cdex (struct device *dev);-extern void asic3_set_clock_cdex (struct device *dev, unsigned long bits, unsigned long val);-extern void asic3_set_extcf_select (struct device *dev, unsigned long bits, unsigned long val);-extern void asic3_set_extcf_reset (struct device *dev, unsigned long bits, unsigned long val);-extern void asic3_set_sdhwctrl (struct device *dev, unsigned long bits, unsigned long val);+extern void asic3_set_clock_sel (struct platform_device *pdev, unsigned long bits, unsigned long val);+extern u32  asic3_get_clock_cdex (struct platform_device *pdev);+extern void asic3_set_clock_cdex (struct platform_device *pdev, unsigned long bits, unsigned long val);+extern void asic3_set_extcf_select (struct platform_device *pdev, unsigned long bits, unsigned long val);+extern void asic3_set_extcf_reset (struct platform_device *pdev, unsigned long bits, unsigned long val);+extern void asic3_set_sdhwctrl (struct platform_device *pdev, unsigned long bits, unsigned long val); -void asic3_set_led( struct device *dev, int led_num, int duty_time, int cycle_time);+void asic3_set_led( struct platform_device *pdev, int led_num, int duty_time, int cycle_time); -extern int asic3_register_mmc (struct device *dev);-extern int asic3_unregister_mmc (struct device *dev);+extern int asic3_register_mmc (struct platform_device *pdev);+extern int asic3_unregister_mmc (struct platform_device *pdev);  /* Accessors for GPIO banks */ HDR_IPAQ_ASIC3_FN(a, A)@@ -64,4 +64,4 @@  #define ASIC3_GPIO_bit(gpio) (1 << (gpio & 0xf)) -extern int asic3_get_gpio_bit(struct device *dev, int gpio);+extern int asic3_get_gpio_bit(struct platform_device *pdev, int gpio);