ARM: OMAP4: PM: Add SAR RAM support
This patch adds SAR RAM support on OMAP4430. SAR RAM used to save and restore the HW context in low power modes. Signed-off-by: Santosh Shilimkar <santosh.shilimkar@ti.com> Acked-by: Jean Pihet <j-pihet@ti.com> Reviewed-by: Kevin Hilman <khilman@ti.com> Tested-by: Vishwanath BS <vishwanath.bs@ti.com> Signed-off-by: Kevin Hilman <khilman@ti.com>
This commit is contained in:
parent
02afe8a7f2
commit
501f0c751d
|
@ -182,6 +182,7 @@ static inline void __iomem *omap4_get_scu_base(void)
|
||||||
|
|
||||||
extern void __init gic_init_irq(void);
|
extern void __init gic_init_irq(void);
|
||||||
extern void omap_smc1(u32 fn, u32 arg);
|
extern void omap_smc1(u32 fn, u32 arg);
|
||||||
|
extern void __iomem *omap4_get_sar_ram_base(void);
|
||||||
|
|
||||||
#ifdef CONFIG_SMP
|
#ifdef CONFIG_SMP
|
||||||
/* Needed for secondary core boot */
|
/* Needed for secondary core boot */
|
||||||
|
|
|
@ -24,11 +24,14 @@
|
||||||
#include <mach/hardware.h>
|
#include <mach/hardware.h>
|
||||||
|
|
||||||
#include "common.h"
|
#include "common.h"
|
||||||
|
#include "omap4-sar-layout.h"
|
||||||
|
|
||||||
#ifdef CONFIG_CACHE_L2X0
|
#ifdef CONFIG_CACHE_L2X0
|
||||||
static void __iomem *l2cache_base;
|
static void __iomem *l2cache_base;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
static void __iomem *sar_ram_base;
|
||||||
|
|
||||||
void __init gic_init_irq(void)
|
void __init gic_init_irq(void)
|
||||||
{
|
{
|
||||||
void __iomem *omap_irq_base;
|
void __iomem *omap_irq_base;
|
||||||
|
@ -118,3 +121,30 @@ static int __init omap_l2_cache_init(void)
|
||||||
}
|
}
|
||||||
early_initcall(omap_l2_cache_init);
|
early_initcall(omap_l2_cache_init);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
void __iomem *omap4_get_sar_ram_base(void)
|
||||||
|
{
|
||||||
|
return sar_ram_base;
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
* SAR RAM used to save and restore the HW
|
||||||
|
* context in low power modes
|
||||||
|
*/
|
||||||
|
static int __init omap4_sar_ram_init(void)
|
||||||
|
{
|
||||||
|
/*
|
||||||
|
* To avoid code running on other OMAPs in
|
||||||
|
* multi-omap builds
|
||||||
|
*/
|
||||||
|
if (!cpu_is_omap44xx())
|
||||||
|
return -ENOMEM;
|
||||||
|
|
||||||
|
/* Static mapping, never released */
|
||||||
|
sar_ram_base = ioremap(OMAP44XX_SAR_RAM_BASE, SZ_16K);
|
||||||
|
if (WARN_ON(!sar_ram_base))
|
||||||
|
return -ENOMEM;
|
||||||
|
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
early_initcall(omap4_sar_ram_init);
|
||||||
|
|
22
arch/arm/mach-omap2/omap4-sar-layout.h
Normal file
22
arch/arm/mach-omap2/omap4-sar-layout.h
Normal file
|
@ -0,0 +1,22 @@
|
||||||
|
/*
|
||||||
|
* omap4-sar-layout.h: OMAP4 SAR RAM layout header file
|
||||||
|
*
|
||||||
|
* Copyright (C) 2011 Texas Instruments, Inc.
|
||||||
|
* Santosh Shilimkar <santosh.shilimkar@ti.com>
|
||||||
|
*
|
||||||
|
* This program is free software; you can redistribute it and/or modify
|
||||||
|
* it under the terms of the GNU General Public License version 2 as
|
||||||
|
* published by the Free Software Foundation.
|
||||||
|
*/
|
||||||
|
#ifndef OMAP_ARCH_OMAP4_SAR_LAYOUT_H
|
||||||
|
#define OMAP_ARCH_OMAP4_SAR_LAYOUT_H
|
||||||
|
|
||||||
|
/*
|
||||||
|
* SAR BANK offsets from base address OMAP44XX_SAR_RAM_BASE
|
||||||
|
*/
|
||||||
|
#define SAR_BANK1_OFFSET 0x0000
|
||||||
|
#define SAR_BANK2_OFFSET 0x1000
|
||||||
|
#define SAR_BANK3_OFFSET 0x2000
|
||||||
|
#define SAR_BANK4_OFFSET 0x3000
|
||||||
|
|
||||||
|
#endif
|
|
@ -45,6 +45,7 @@
|
||||||
#define OMAP44XX_WKUPGEN_BASE 0x48281000
|
#define OMAP44XX_WKUPGEN_BASE 0x48281000
|
||||||
#define OMAP44XX_MCPDM_BASE 0x40132000
|
#define OMAP44XX_MCPDM_BASE 0x40132000
|
||||||
#define OMAP44XX_MCPDM_L3_BASE 0x49032000
|
#define OMAP44XX_MCPDM_L3_BASE 0x49032000
|
||||||
|
#define OMAP44XX_SAR_RAM_BASE 0x4a326000
|
||||||
|
|
||||||
#define OMAP44XX_MAILBOX_BASE (L4_44XX_BASE + 0xF4000)
|
#define OMAP44XX_MAILBOX_BASE (L4_44XX_BASE + 0xF4000)
|
||||||
#define OMAP44XX_HSUSB_OTG_BASE (L4_44XX_BASE + 0xAB000)
|
#define OMAP44XX_HSUSB_OTG_BASE (L4_44XX_BASE + 0xAB000)
|
||||||
|
|
Loading…
Reference in a new issue