Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 81854f82 authored by Marek Vasut's avatar Marek Vasut Committed by Eric Miao
Browse files

[ARM] pxa: Add support for suspend on PalmTX, T5 and LD

parent 8c8aa5fa
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -87,6 +87,7 @@
#define PALMLD_IDE_SIZE		0x00100000

#define PALMLD_PHYS_IO_START	0x40000000
#define PALMLD_STR_BASE		0xa0200000

/* BATTERY */
#define PALMLD_BAT_MAX_VOLTAGE		4000	/* 4.00V maximum voltage */
+1 −0
Original line number Diff line number Diff line
@@ -59,6 +59,7 @@
/* Various addresses  */
#define PALMT5_PHYS_RAM_START	0xa0000000
#define PALMT5_PHYS_IO_START	0x40000000
#define PALMT5_STR_BASE		0xa0200000

/* TOUCHSCREEN */
#define AC97_LINK_FRAME		21
+2 −0
Original line number Diff line number Diff line
@@ -78,6 +78,8 @@
#define PALMTX_PHYS_RAM_START	0xa0000000
#define PALMTX_PHYS_IO_START	0x40000000

#define PALMTX_STR_BASE		0xa0200000

#define PALMTX_PHYS_FLASH_START	PXA_CS0_PHYS	/* ChipSelect 0 */
#define PALMTX_PHYS_NAND_START	PXA_CS1_PHYS	/* ChipSelect 1 */

+32 −4
Original line number Diff line number Diff line
@@ -24,6 +24,7 @@
#include <linux/gpio.h>
#include <linux/wm97xx_batt.h>
#include <linux/power_supply.h>
#include <linux/sysdev.h>

#include <asm/mach-types.h>
#include <asm/mach/arch.h>
@@ -68,10 +69,10 @@ static unsigned long palmld_pin_config[] __initdata = {
	GPIO47_FICP_TXD,

	/* MATRIX KEYPAD */
	GPIO100_KP_MKIN_0,
	GPIO101_KP_MKIN_1,
	GPIO102_KP_MKIN_2,
	GPIO97_KP_MKIN_3,
	GPIO100_KP_MKIN_0 | WAKEUP_ON_LEVEL_HIGH,
	GPIO101_KP_MKIN_1 | WAKEUP_ON_LEVEL_HIGH,
	GPIO102_KP_MKIN_2 | WAKEUP_ON_LEVEL_HIGH,
	GPIO97_KP_MKIN_3 | WAKEUP_ON_LEVEL_HIGH,
	GPIO103_KP_MKOUT_0,
	GPIO104_KP_MKOUT_1,
	GPIO105_KP_MKOUT_2,
@@ -506,6 +507,33 @@ static struct pxafb_mach_info palmld_lcd_screen = {
	.lcd_conn	= LCD_COLOR_TFT_16BPP | LCD_PCLK_EDGE_FALL,
};

/******************************************************************************
 * Power management - standby
 ******************************************************************************/
#ifdef CONFIG_PM
static u32 *addr __initdata;
static u32 resume[3] __initdata = {
	0xe3a00101,	/* mov	r0,	#0x40000000 */
	0xe380060f,	/* orr	r0, r0, #0x00f00000 */
	0xe590f008,	/* ldr	pc, [r0, #0x08] */
};

static int __init palmld_pm_init(void)
{
	int i;

	/* this is where the bootloader jumps */
	addr = phys_to_virt(PALMLD_STR_BASE);

	for (i = 0; i < 3; i++)
		addr[i] = resume[i];

	return 0;
}

device_initcall(palmld_pm_init);
#endif

/******************************************************************************
 * Machine init
 ******************************************************************************/
+31 −4
Original line number Diff line number Diff line
@@ -75,10 +75,10 @@ static unsigned long palmt5_pin_config[] __initdata = {
	GPIO95_GPIO,	/* usb power */

	/* MATRIX KEYPAD */
	GPIO100_KP_MKIN_0,
	GPIO101_KP_MKIN_1,
	GPIO102_KP_MKIN_2,
	GPIO97_KP_MKIN_3,
	GPIO100_KP_MKIN_0 | WAKEUP_ON_LEVEL_HIGH,
	GPIO101_KP_MKIN_1 | WAKEUP_ON_LEVEL_HIGH,
	GPIO102_KP_MKIN_2 | WAKEUP_ON_LEVEL_HIGH,
	GPIO97_KP_MKIN_3 | WAKEUP_ON_LEVEL_HIGH,
	GPIO103_KP_MKOUT_0,
	GPIO104_KP_MKOUT_1,
	GPIO105_KP_MKOUT_2,
@@ -449,6 +449,33 @@ static struct pxafb_mach_info palmt5_lcd_screen = {
	.lcd_conn	= LCD_COLOR_TFT_16BPP | LCD_PCLK_EDGE_FALL,
};

/******************************************************************************
 * Power management - standby
 ******************************************************************************/
#ifdef CONFIG_PM
static u32 *addr __initdata;
static u32 resume[3] __initdata = {
	0xe3a00101,	/* mov	r0,	#0x40000000 */
	0xe380060f,	/* orr	r0, r0, #0x00f00000 */
	0xe590f008,	/* ldr	pc, [r0, #0x08] */
};

static int __init palmt5_pm_init(void)
{
	int i;

	/* this is where the bootloader jumps */
	addr = phys_to_virt(PALMT5_STR_BASE);

	for (i = 0; i < 3; i++)
		addr[i] = resume[i];

	return 0;
}

device_initcall(palmt5_pm_init);
#endif

/******************************************************************************
 * Machine init
 ******************************************************************************/
Loading