forked from mirrors/linux
		
	ARM: pxa: use generic gpio operation instead of gpio register
Remove the code of accessing gpio register. Use the generic read operation instead. Signed-off-by: Haojian Zhuang <haojian.zhuang@marvell.com>
This commit is contained in:
		
							parent
							
								
									df664d2081
								
							
						
					
					
						commit
						9bf448c66d
					
				
					 2 changed files with 25 additions and 5 deletions
				
			
		|  | @ -40,7 +40,9 @@ static struct gpio charger_gpios[] = { | |||
| 	{ CORGI_GPIO_ADC_TEMP_ON, GPIOF_OUT_INIT_LOW, "ADC Temp On" }, | ||||
| 	{ CORGI_GPIO_CHRG_ON,	  GPIOF_OUT_INIT_LOW, "Charger On" }, | ||||
| 	{ CORGI_GPIO_CHRG_UKN,	  GPIOF_OUT_INIT_LOW, "Charger Unknown" }, | ||||
| 	{ CORGI_GPIO_AC_IN,	  GPIOF_IN, "Charger Detection" }, | ||||
| 	{ CORGI_GPIO_KEY_INT,	  GPIOF_IN, "Key Interrupt" }, | ||||
| 	{ CORGI_GPIO_WAKEUP,	  GPIOF_IN, "System wakeup notification" }, | ||||
| }; | ||||
| 
 | ||||
| static void corgi_charger_init(void) | ||||
|  | @ -90,7 +92,12 @@ static int corgi_should_wakeup(unsigned int resume_on_alarm) | |||
| { | ||||
| 	int is_resume = 0; | ||||
| 
 | ||||
| 	dev_dbg(sharpsl_pm.dev, "GPLR0 = %x,%x\n", GPLR0, PEDR); | ||||
| 	dev_dbg(sharpsl_pm.dev, "PEDR = %x, GPIO_AC_IN = %d, " | ||||
| 		"GPIO_CHRG_FULL = %d, GPIO_KEY_INT = %d, GPIO_WAKEUP = %d\n", | ||||
| 		PEDR, gpio_get_value(CORGI_GPIO_AC_IN), | ||||
| 		gpio_get_value(CORGI_GPIO_CHRG_FULL), | ||||
| 		gpio_get_value(CORGI_GPIO_KEY_INT), | ||||
| 		gpio_get_value(CORGI_GPIO_WAKEUP)); | ||||
| 
 | ||||
| 	if ((PEDR & GPIO_bit(CORGI_GPIO_AC_IN))) { | ||||
| 		if (sharpsl_pm.machinfo->read_devdata(SHARPSL_STATUS_ACIN)) { | ||||
|  | @ -124,14 +131,21 @@ static int corgi_should_wakeup(unsigned int resume_on_alarm) | |||
| 
 | ||||
| static unsigned long corgi_charger_wakeup(void) | ||||
| { | ||||
| 	return ~GPLR0 & ( GPIO_bit(CORGI_GPIO_AC_IN) | GPIO_bit(CORGI_GPIO_KEY_INT) | GPIO_bit(CORGI_GPIO_WAKEUP) ); | ||||
| 	unsigned long ret; | ||||
| 
 | ||||
| 	ret = (!gpio_get_value(CORGI_GPIO_AC_IN) << GPIO_bit(CORGI_GPIO_AC_IN)) | ||||
| 		| (!gpio_get_value(CORGI_GPIO_KEY_INT) | ||||
| 		<< GPIO_bit(CORGI_GPIO_KEY_INT)) | ||||
| 		| (!gpio_get_value(CORGI_GPIO_WAKEUP) | ||||
| 		<< GPIO_bit(CORGI_GPIO_WAKEUP)); | ||||
| 	return ret; | ||||
| } | ||||
| 
 | ||||
| unsigned long corgipm_read_devdata(int type) | ||||
| { | ||||
| 	switch(type) { | ||||
| 	case SHARPSL_STATUS_ACIN: | ||||
| 		return ((GPLR(CORGI_GPIO_AC_IN) & GPIO_bit(CORGI_GPIO_AC_IN)) != 0); | ||||
| 		return !gpio_get_value(CORGI_GPIO_AC_IN); | ||||
| 	case SHARPSL_STATUS_LOCK: | ||||
| 		return gpio_get_value(sharpsl_pm.machinfo->gpio_batlock); | ||||
| 	case SHARPSL_STATUS_CHRGFULL: | ||||
|  |  | |||
|  | @ -41,6 +41,7 @@ static int spitz_last_ac_status; | |||
| static struct gpio spitz_charger_gpios[] = { | ||||
| 	{ SPITZ_GPIO_KEY_INT,	GPIOF_IN, "Keyboard Interrupt" }, | ||||
| 	{ SPITZ_GPIO_SYNC,	GPIOF_IN, "Sync" }, | ||||
| 	{ SPITZ_GPIO_AC_IN,     GPIOF_IN, "Charger Detection" }, | ||||
| 	{ SPITZ_GPIO_ADC_TEMP_ON, GPIOF_OUT_INIT_LOW, "ADC Temp On" }, | ||||
| 	{ SPITZ_GPIO_JK_B,	  GPIOF_OUT_INIT_LOW, "JK B" }, | ||||
| 	{ SPITZ_GPIO_CHRG_ON,	  GPIOF_OUT_INIT_LOW, "Charger On" }, | ||||
|  | @ -169,14 +170,19 @@ static int spitz_should_wakeup(unsigned int resume_on_alarm) | |||
| 
 | ||||
| static unsigned long spitz_charger_wakeup(void) | ||||
| { | ||||
| 	return (~GPLR0 & GPIO_bit(SPITZ_GPIO_KEY_INT)) | (GPLR0 & GPIO_bit(SPITZ_GPIO_SYNC)); | ||||
| 	unsigned long ret; | ||||
| 	ret = (!gpio_get_value(SPITZ_GPIO_KEY_INT) | ||||
| 		<< GPIO_bit(SPITZ_GPIO_KEY_INT)) | ||||
| 		| (!gpio_get_value(SPITZ_GPIO_SYNC) | ||||
| 		<< GPIO_bit(SPITZ_GPIO_SYNC)); | ||||
| 	return ret; | ||||
| } | ||||
| 
 | ||||
| unsigned long spitzpm_read_devdata(int type) | ||||
| { | ||||
| 	switch (type) { | ||||
| 	case SHARPSL_STATUS_ACIN: | ||||
| 		return (((~GPLR(SPITZ_GPIO_AC_IN)) & GPIO_bit(SPITZ_GPIO_AC_IN)) != 0); | ||||
| 		return !gpio_get_value(SPITZ_GPIO_AC_IN); | ||||
| 	case SHARPSL_STATUS_LOCK: | ||||
| 		return gpio_get_value(sharpsl_pm.machinfo->gpio_batlock); | ||||
| 	case SHARPSL_STATUS_CHRGFULL: | ||||
|  |  | |||
		Loading…
	
		Reference in a new issue
	
	 Haojian Zhuang
						Haojian Zhuang