Merge branch 'omap/pm-voltdomain-cleanup' into next/soc
Conflicts: arch/arm/mach-omap2/Makefile arch/arm/mach-omap2/io.c Signed-off-by: Arnd Bergmann <arnd@arndb.de>
This commit is contained in:
commit
aee9a50c5b
7 changed files with 14 additions and 46 deletions
|
@ -130,7 +130,6 @@ obj-$(CONFIG_ARCH_OMAP3) += voltagedomains3xxx_data.o
|
||||||
obj-$(CONFIG_ARCH_OMAP4) += $(voltagedomain-common)
|
obj-$(CONFIG_ARCH_OMAP4) += $(voltagedomain-common)
|
||||||
obj-$(CONFIG_ARCH_OMAP4) += voltagedomains44xx_data.o
|
obj-$(CONFIG_ARCH_OMAP4) += voltagedomains44xx_data.o
|
||||||
obj-$(CONFIG_SOC_AM33XX) += $(voltagedomain-common)
|
obj-$(CONFIG_SOC_AM33XX) += $(voltagedomain-common)
|
||||||
obj-$(CONFIG_SOC_AM33XX) += voltagedomains33xx_data.o
|
|
||||||
obj-$(CONFIG_SOC_AM43XX) += $(voltagedomain-common)
|
obj-$(CONFIG_SOC_AM43XX) += $(voltagedomain-common)
|
||||||
obj-$(CONFIG_SOC_OMAP5) += $(voltagedomain-common)
|
obj-$(CONFIG_SOC_OMAP5) += $(voltagedomain-common)
|
||||||
obj-$(CONFIG_SOC_OMAP5) += voltagedomains54xx_data.o
|
obj-$(CONFIG_SOC_OMAP5) += voltagedomains54xx_data.o
|
||||||
|
|
|
@ -577,7 +577,6 @@ void __init am33xx_init_early(void)
|
||||||
omap2_set_globals_cm(AM33XX_L4_WK_IO_ADDRESS(AM33XX_PRCM_BASE), NULL);
|
omap2_set_globals_cm(AM33XX_L4_WK_IO_ADDRESS(AM33XX_PRCM_BASE), NULL);
|
||||||
omap3xxx_check_revision();
|
omap3xxx_check_revision();
|
||||||
am33xx_check_features();
|
am33xx_check_features();
|
||||||
am33xx_voltagedomains_init();
|
|
||||||
am33xx_powerdomains_init();
|
am33xx_powerdomains_init();
|
||||||
am33xx_clockdomains_init();
|
am33xx_clockdomains_init();
|
||||||
am33xx_hwmod_init();
|
am33xx_hwmod_init();
|
||||||
|
|
|
@ -102,6 +102,10 @@ static int _pwrdm_register(struct powerdomain *pwrdm)
|
||||||
if (_pwrdm_lookup(pwrdm->name))
|
if (_pwrdm_lookup(pwrdm->name))
|
||||||
return -EEXIST;
|
return -EEXIST;
|
||||||
|
|
||||||
|
if (arch_pwrdm && arch_pwrdm->pwrdm_has_voltdm)
|
||||||
|
if (!arch_pwrdm->pwrdm_has_voltdm())
|
||||||
|
goto skip_voltdm;
|
||||||
|
|
||||||
voltdm = voltdm_lookup(pwrdm->voltdm.name);
|
voltdm = voltdm_lookup(pwrdm->voltdm.name);
|
||||||
if (!voltdm) {
|
if (!voltdm) {
|
||||||
pr_err("powerdomain: %s: voltagedomain %s does not exist\n",
|
pr_err("powerdomain: %s: voltagedomain %s does not exist\n",
|
||||||
|
@ -111,6 +115,7 @@ static int _pwrdm_register(struct powerdomain *pwrdm)
|
||||||
pwrdm->voltdm.ptr = voltdm;
|
pwrdm->voltdm.ptr = voltdm;
|
||||||
INIT_LIST_HEAD(&pwrdm->voltdm_node);
|
INIT_LIST_HEAD(&pwrdm->voltdm_node);
|
||||||
voltdm_add_pwrdm(voltdm, pwrdm);
|
voltdm_add_pwrdm(voltdm, pwrdm);
|
||||||
|
skip_voltdm:
|
||||||
spin_lock_init(&pwrdm->_lock);
|
spin_lock_init(&pwrdm->_lock);
|
||||||
|
|
||||||
list_add(&pwrdm->node, &pwrdm_list);
|
list_add(&pwrdm->node, &pwrdm_list);
|
||||||
|
|
|
@ -166,6 +166,7 @@ struct powerdomain {
|
||||||
* @pwrdm_disable_hdwr_sar: Disable Hardware Save-Restore feature for a pd
|
* @pwrdm_disable_hdwr_sar: Disable Hardware Save-Restore feature for a pd
|
||||||
* @pwrdm_set_lowpwrstchange: Enable pd transitions from a shallow to deep sleep
|
* @pwrdm_set_lowpwrstchange: Enable pd transitions from a shallow to deep sleep
|
||||||
* @pwrdm_wait_transition: Wait for a pd state transition to complete
|
* @pwrdm_wait_transition: Wait for a pd state transition to complete
|
||||||
|
* @pwrdm_has_voltdm: Check if a voltdm association is needed
|
||||||
*
|
*
|
||||||
* Regarding @pwrdm_set_lowpwrstchange: On the OMAP2 and 3-family
|
* Regarding @pwrdm_set_lowpwrstchange: On the OMAP2 and 3-family
|
||||||
* chips, a powerdomain's power state is not allowed to directly
|
* chips, a powerdomain's power state is not allowed to directly
|
||||||
|
@ -196,6 +197,7 @@ struct pwrdm_ops {
|
||||||
int (*pwrdm_disable_hdwr_sar)(struct powerdomain *pwrdm);
|
int (*pwrdm_disable_hdwr_sar)(struct powerdomain *pwrdm);
|
||||||
int (*pwrdm_set_lowpwrstchange)(struct powerdomain *pwrdm);
|
int (*pwrdm_set_lowpwrstchange)(struct powerdomain *pwrdm);
|
||||||
int (*pwrdm_wait_transition)(struct powerdomain *pwrdm);
|
int (*pwrdm_wait_transition)(struct powerdomain *pwrdm);
|
||||||
|
int (*pwrdm_has_voltdm)(void);
|
||||||
};
|
};
|
||||||
|
|
||||||
int pwrdm_register_platform_funcs(struct pwrdm_ops *custom_funcs);
|
int pwrdm_register_platform_funcs(struct pwrdm_ops *custom_funcs);
|
||||||
|
|
|
@ -320,6 +320,12 @@ static int am33xx_pwrdm_wait_transition(struct powerdomain *pwrdm)
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static int am33xx_check_vcvp(void)
|
||||||
|
{
|
||||||
|
/* No VC/VP on am33xx devices */
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
struct pwrdm_ops am33xx_pwrdm_operations = {
|
struct pwrdm_ops am33xx_pwrdm_operations = {
|
||||||
.pwrdm_set_next_pwrst = am33xx_pwrdm_set_next_pwrst,
|
.pwrdm_set_next_pwrst = am33xx_pwrdm_set_next_pwrst,
|
||||||
.pwrdm_read_next_pwrst = am33xx_pwrdm_read_next_pwrst,
|
.pwrdm_read_next_pwrst = am33xx_pwrdm_read_next_pwrst,
|
||||||
|
@ -335,4 +341,5 @@ struct pwrdm_ops am33xx_pwrdm_operations = {
|
||||||
.pwrdm_set_mem_onst = am33xx_pwrdm_set_mem_onst,
|
.pwrdm_set_mem_onst = am33xx_pwrdm_set_mem_onst,
|
||||||
.pwrdm_set_mem_retst = am33xx_pwrdm_set_mem_retst,
|
.pwrdm_set_mem_retst = am33xx_pwrdm_set_mem_retst,
|
||||||
.pwrdm_wait_transition = am33xx_pwrdm_wait_transition,
|
.pwrdm_wait_transition = am33xx_pwrdm_wait_transition,
|
||||||
|
.pwrdm_has_voltdm = am33xx_check_vcvp,
|
||||||
};
|
};
|
||||||
|
|
|
@ -169,7 +169,6 @@ int omap_voltage_late_init(void);
|
||||||
|
|
||||||
extern void omap2xxx_voltagedomains_init(void);
|
extern void omap2xxx_voltagedomains_init(void);
|
||||||
extern void omap3xxx_voltagedomains_init(void);
|
extern void omap3xxx_voltagedomains_init(void);
|
||||||
extern void am33xx_voltagedomains_init(void);
|
|
||||||
extern void omap44xx_voltagedomains_init(void);
|
extern void omap44xx_voltagedomains_init(void);
|
||||||
extern void omap54xx_voltagedomains_init(void);
|
extern void omap54xx_voltagedomains_init(void);
|
||||||
|
|
||||||
|
|
|
@ -1,43 +0,0 @@
|
||||||
/*
|
|
||||||
* AM33XX voltage domain data
|
|
||||||
*
|
|
||||||
* Copyright (C) 2011 Texas Instruments Incorporated - http://www.ti.com/
|
|
||||||
*
|
|
||||||
* This program is free software; you can redistribute it and/or
|
|
||||||
* modify it under the terms of the GNU General Public License as
|
|
||||||
* published by the Free Software Foundation version 2.
|
|
||||||
*
|
|
||||||
* This program is distributed "as is" WITHOUT ANY WARRANTY of any
|
|
||||||
* kind, whether express or implied; without even the implied warranty
|
|
||||||
* of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
||||||
* GNU General Public License for more details.
|
|
||||||
*/
|
|
||||||
|
|
||||||
#include <linux/kernel.h>
|
|
||||||
#include <linux/init.h>
|
|
||||||
|
|
||||||
#include "voltage.h"
|
|
||||||
|
|
||||||
static struct voltagedomain am33xx_voltdm_mpu = {
|
|
||||||
.name = "mpu",
|
|
||||||
};
|
|
||||||
|
|
||||||
static struct voltagedomain am33xx_voltdm_core = {
|
|
||||||
.name = "core",
|
|
||||||
};
|
|
||||||
|
|
||||||
static struct voltagedomain am33xx_voltdm_rtc = {
|
|
||||||
.name = "rtc",
|
|
||||||
};
|
|
||||||
|
|
||||||
static struct voltagedomain *voltagedomains_am33xx[] __initdata = {
|
|
||||||
&am33xx_voltdm_mpu,
|
|
||||||
&am33xx_voltdm_core,
|
|
||||||
&am33xx_voltdm_rtc,
|
|
||||||
NULL,
|
|
||||||
};
|
|
||||||
|
|
||||||
void __init am33xx_voltagedomains_init(void)
|
|
||||||
{
|
|
||||||
voltdm_init(voltagedomains_am33xx);
|
|
||||||
}
|
|
Loading…
Add table
Reference in a new issue