Static data should be declared in .c files, not .h files. It should be possible to #include .h files at any point without creating multiple copies of the same data. We converted the clock data to .c files some time ago. This patch does the same for the powerdomain data. Signed-off-by: Paul Walmsley <paul@pwsan.com> Cc: Rajendra Nayak <rnayak@ti.com> Cc: Santosh Shilimkar <santosh.shilimkar@ti.com> Reviewed-by: Kevin Hilman <khilman@deeprootsystems.com> Tested-by: Kevin Hilman <khilman@deeprootsystems.com> Tested-by: Santosh Shilimkar <santosh.shilimkar@ti.com> Tested-by: Rajendra Nayak <rnayak@ti.com>
126 lines
2.8 KiB
C
126 lines
2.8 KiB
C
/*
|
|
* OMAP2XXX powerdomain definitions
|
|
*
|
|
* Copyright (C) 2007-2008 Texas Instruments, Inc.
|
|
* Copyright (C) 2007-2010 Nokia Corporation
|
|
*
|
|
* Paul Walmsley, Jouni Högander
|
|
*
|
|
* 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.
|
|
*/
|
|
|
|
#include <linux/kernel.h>
|
|
#include <linux/init.h>
|
|
|
|
#include <plat/powerdomain.h>
|
|
#include "powerdomains2xxx_3xxx_data.h"
|
|
#include "powerdomains.h"
|
|
|
|
#include "prcm-common.h"
|
|
#include "prm.h"
|
|
#include "prm-regbits-24xx.h"
|
|
#include "cm.h"
|
|
#include "cm-regbits-24xx.h"
|
|
|
|
/* 24XX powerdomains and dependencies */
|
|
|
|
/* Powerdomains */
|
|
|
|
static struct powerdomain dsp_pwrdm = {
|
|
.name = "dsp_pwrdm",
|
|
.prcm_offs = OMAP24XX_DSP_MOD,
|
|
.omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP24XX),
|
|
.pwrsts = PWRSTS_OFF_RET_ON,
|
|
.pwrsts_logic_ret = PWRDM_POWER_RET,
|
|
.banks = 1,
|
|
.pwrsts_mem_ret = {
|
|
[0] = PWRDM_POWER_RET,
|
|
},
|
|
.pwrsts_mem_on = {
|
|
[0] = PWRDM_POWER_ON,
|
|
},
|
|
};
|
|
|
|
static struct powerdomain mpu_24xx_pwrdm = {
|
|
.name = "mpu_pwrdm",
|
|
.prcm_offs = MPU_MOD,
|
|
.omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP24XX),
|
|
.pwrsts = PWRSTS_OFF_RET_ON,
|
|
.pwrsts_logic_ret = PWRSTS_OFF_RET,
|
|
.banks = 1,
|
|
.pwrsts_mem_ret = {
|
|
[0] = PWRDM_POWER_RET,
|
|
},
|
|
.pwrsts_mem_on = {
|
|
[0] = PWRDM_POWER_ON,
|
|
},
|
|
};
|
|
|
|
static struct powerdomain core_24xx_pwrdm = {
|
|
.name = "core_pwrdm",
|
|
.prcm_offs = CORE_MOD,
|
|
.omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP24XX),
|
|
.pwrsts = PWRSTS_OFF_RET_ON,
|
|
.banks = 3,
|
|
.pwrsts_mem_ret = {
|
|
[0] = PWRSTS_OFF_RET, /* MEM1RETSTATE */
|
|
[1] = PWRSTS_OFF_RET, /* MEM2RETSTATE */
|
|
[2] = PWRSTS_OFF_RET, /* MEM3RETSTATE */
|
|
},
|
|
.pwrsts_mem_on = {
|
|
[0] = PWRSTS_OFF_RET_ON, /* MEM1ONSTATE */
|
|
[1] = PWRSTS_OFF_RET_ON, /* MEM2ONSTATE */
|
|
[2] = PWRSTS_OFF_RET_ON, /* MEM3ONSTATE */
|
|
},
|
|
};
|
|
|
|
|
|
/*
|
|
* 2430-specific powerdomains
|
|
*/
|
|
|
|
#ifdef CONFIG_ARCH_OMAP2430
|
|
|
|
/* XXX 2430 KILLDOMAINWKUP bit? No current users apparently */
|
|
|
|
static struct powerdomain mdm_pwrdm = {
|
|
.name = "mdm_pwrdm",
|
|
.prcm_offs = OMAP2430_MDM_MOD,
|
|
.omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP2430),
|
|
.pwrsts = PWRSTS_OFF_RET_ON,
|
|
.pwrsts_logic_ret = PWRDM_POWER_RET,
|
|
.banks = 1,
|
|
.pwrsts_mem_ret = {
|
|
[0] = PWRDM_POWER_RET, /* MEMRETSTATE */
|
|
},
|
|
.pwrsts_mem_on = {
|
|
[0] = PWRDM_POWER_ON, /* MEMONSTATE */
|
|
},
|
|
};
|
|
|
|
#endif /* CONFIG_ARCH_OMAP2430 */
|
|
|
|
/* As powerdomains are added or removed above, this list must also be changed */
|
|
static struct powerdomain *powerdomains_omap2xxx[] __initdata = {
|
|
|
|
&wkup_omap2_pwrdm,
|
|
&gfx_omap2_pwrdm,
|
|
|
|
#ifdef CONFIG_ARCH_OMAP2
|
|
&dsp_pwrdm,
|
|
&mpu_24xx_pwrdm,
|
|
&core_24xx_pwrdm,
|
|
#endif
|
|
|
|
#ifdef CONFIG_ARCH_OMAP2430
|
|
&mdm_pwrdm,
|
|
#endif
|
|
NULL
|
|
};
|
|
|
|
void __init omap2xxx_powerdomains_init(void)
|
|
{
|
|
pwrdm_init(powerdomains_omap2xxx, &omap2_pwrdm_operations);
|
|
}
|