2019-06-04 11:11:33 +03:00
// SPDX-License-Identifier: GPL-2.0-only
2007-09-12 06:13:17 +04:00
/*
* linux / arch / arm / mach - pxa / mfp . c
*
* PXA3xx Multi - Function Pin Support
*
* Copyright ( C ) 2007 Marvell Internation Ltd .
*
2007-10-30 10:01:38 +03:00
* 2007 - 08 - 21 : eric miao < eric . miao @ marvell . com >
2007-09-12 06:13:17 +04:00
* initial version
*/
# include <linux/module.h>
# include <linux/kernel.h>
# include <linux/init.h>
# include <linux/io.h>
2011-04-23 00:03:11 +04:00
# include <linux/syscore_ops.h>
2007-09-12 06:13:17 +04:00
2008-08-05 19:14:15 +04:00
# include <mach/hardware.h>
2015-01-30 12:45:33 +03:00
# include "mfp-pxa3xx.h"
2008-08-05 19:14:15 +04:00
# include <mach/pxa3xx-regs.h>
2007-09-12 06:13:17 +04:00
2008-01-08 18:12:22 +03:00
# ifdef CONFIG_PM
/*
* Configure the MFPs appropriately for suspend / resume .
* FIXME : this should probably depend on which system state we ' re
* entering - for instance , we might not want to place MFP pins in
* a pull - down mode if they ' re an active low chip select , and we ' re
* just entering standby .
*/
2011-04-23 00:03:11 +04:00
static int pxa3xx_mfp_suspend ( void )
2008-01-08 18:12:22 +03:00
{
2009-01-15 11:42:56 +03:00
mfp_config_lpm ( ) ;
2008-01-08 18:12:22 +03:00
return 0 ;
}
2011-04-23 00:03:11 +04:00
static void pxa3xx_mfp_resume ( void )
2008-01-08 18:12:22 +03:00
{
2009-01-15 11:42:56 +03:00
mfp_config_run ( ) ;
2008-01-29 02:00:02 +03:00
/* clear RDH bit when MFP settings are restored
*
* NOTE : the last 3 bits DxS are write - 1 - to - clear so carefully
* preserve them here in case they will be referenced later
*/
ASCR & = ~ ( ASCR_RDH | ASCR_D1S | ASCR_D2S | ASCR_D3S ) ;
2008-01-08 18:12:22 +03:00
}
2008-02-04 05:07:09 +03:00
# else
# define pxa3xx_mfp_suspend NULL
# define pxa3xx_mfp_resume NULL
# endif
2008-01-08 18:12:22 +03:00
2011-04-23 00:03:11 +04:00
struct syscore_ops pxa3xx_mfp_syscore_ops = {
2008-01-08 18:12:22 +03:00
. suspend = pxa3xx_mfp_suspend ,
2011-04-23 00:03:11 +04:00
. resume = pxa3xx_mfp_resume ,
2008-01-08 18:12:22 +03:00
} ;