Renesas ARM Based SoC Runtime PM Updates for v3.19
* 8a7740/armadillo800eva legacy PM domain support -----BEGIN PGP SIGNATURE----- Version: GnuPG v1 iQIcBAABAgAGBQJUWBVgAAoJENfPZGlqN0++wbAQAKcogdoxaqGMjkWXcly8oEHZ biOmOU49lj/24K9UdapClO8ML7WkDIHOtORCODRy6UXiGBSBw/seydvYFSCZ4JdQ zcr2ktHZSOoi/6nliR5NTtrsgfdlV6BiwHoqlf1gyJcgns/5fKi9I+4Oh1Q4i2m2 2nRX5RBb9qTjJd1yAh9Qu7DaIGQ37KnJHA6u2EvMMk3n+fP8F5G3n7+SglpUlviy 4xSIDaRKNGrD7PaYJaZIJu8ZMTq4+guQwb8CMILhB+5u+YIqXqiBA2aK0w/y9j3g vD5XYYamAxkTTOz7ZWgSsaY4CmSo8w7Vxe/pDVIkF5Zzw3Xxrmo9BHIRcVGOY/c4 L9uHx0UJSwEtRJiGfXAFHU+FoboUrJMDjamTaa+9rEmb2Fgn3TSq1AQ+/oPnM/S7 RzyoJ6XMIB4kr7+9JxUAhZxPl834rcH5HcKlgdlwmKylXu9Tiwq5oU2gU11xI0pt Vwey8x3lNErEC8zROsozDsHjOVQcvr3t3PZJuppjcgIcUUmCiqMn5i5Cf7NjuH6t O6LJmne2nf+fUgW3KyLQbqdvVMXR+4/E7TuDNa6Fqq38QBU0mzFqYD4rb+nFGHag JZVk4BWJ1nuawsU9ihTcJ+SHgY19wf24mcnTDICYeZYBlqdfges1FtkGnsCLEg92 DfZsQij4+dIv9hg9LolD =6/TT -----END PGP SIGNATURE----- Merge tag 'renesas-runtime-pm-for-v3.19' of git://git.kernel.org/pub/scm/linux/kernel/git/horms/renesas into next/soc Merge "Renesas ARM Based SoC Runtime PM Updates for v3.19" * 8a7740/armadillo800eva legacy PM domain support * tag 'renesas-runtime-pm-for-v3.19' of git://git.kernel.org/pub/scm/linux/kernel/git/horms/renesas: ARM: shmobile: r8a7740: Add A3SM pm domain support ARM: shmobile: r8a7740: Add A4SU pm domain support ARM: shmobile: r8a7740/armadillo legacy: Add A4R pm domain support ARM: shmobile: r8a7740: Add D4 pm domain support ARM: shmobile: r8a7740/armadillo legacy: Add A4MP pm domain support ARM: shmobile: r8a7740: Add A3SG pm domain support ARM: shmobile: r8a7740: Add A3RV pm domain support ARM: shmobile: armadillo800eva legacy: Add missing A4S pm domain devices ARM: shmobile: armadillo800eva legacy: Add missing A3SP pm domain devices ARM: shmobile: r8a7740: Add missing A4S pm domain devices ARM: shmobile: r8a7740: Add missing A3SP pm domain devices Signed-off-by: Arnd Bergmann <arnd@arndb.de>
This commit is contained in:
commit
15fee17dba
3 changed files with 62 additions and 5 deletions
|
@ -1234,8 +1234,15 @@ static void __init eva_init(void)
|
|||
static struct pm_domain_device domain_devices[] __initdata = {
|
||||
{ "A4LC", &lcdc0_device },
|
||||
{ "A4LC", &hdmi_lcdc_device },
|
||||
{ "A4MP", &hdmi_device },
|
||||
{ "A4MP", &fsi_device },
|
||||
{ "A4R", &ceu0_device },
|
||||
{ "A4S", &sh_eth_device },
|
||||
{ "A3SP", &pwm_device },
|
||||
{ "A3SP", &sdhi0_device },
|
||||
{ "A3SP", &sh_mmcif_device },
|
||||
};
|
||||
struct platform_device *usb = NULL;
|
||||
struct platform_device *usb = NULL, *sdhi1 = NULL;
|
||||
|
||||
regulator_register_always_on(0, "fixed-3.3V", fixed3v3_power_consumers,
|
||||
ARRAY_SIZE(fixed3v3_power_consumers), 3300000);
|
||||
|
@ -1304,6 +1311,7 @@ static void __init eva_init(void)
|
|||
|
||||
platform_device_register(&vcc_sdhi1);
|
||||
platform_device_register(&sdhi1_device);
|
||||
sdhi1 = &sdhi1_device;
|
||||
}
|
||||
|
||||
|
||||
|
@ -1324,6 +1332,8 @@ static void __init eva_init(void)
|
|||
ARRAY_SIZE(domain_devices));
|
||||
if (usb)
|
||||
rmobile_add_device_to_domain("A3SP", usb);
|
||||
if (sdhi1)
|
||||
rmobile_add_device_to_domain("A3SP", sdhi1);
|
||||
|
||||
r8a7740_pm_init();
|
||||
}
|
||||
|
|
|
@ -14,10 +14,10 @@
|
|||
#include "pm-rmobile.h"
|
||||
|
||||
#if defined(CONFIG_PM) && !defined(CONFIG_ARCH_MULTIPLATFORM)
|
||||
static int r8a7740_pd_a4s_suspend(void)
|
||||
static int r8a7740_pd_a3sm_suspend(void)
|
||||
{
|
||||
/*
|
||||
* The A4S domain contains the CPU core and therefore it should
|
||||
* The A3SM domain contains the CPU core and therefore it should
|
||||
* only be turned off if the CPU is not in use.
|
||||
*/
|
||||
return -EBUSY;
|
||||
|
@ -32,29 +32,65 @@ static int r8a7740_pd_a3sp_suspend(void)
|
|||
return console_suspend_enabled ? 0 : -EBUSY;
|
||||
}
|
||||
|
||||
static int r8a7740_pd_d4_suspend(void)
|
||||
{
|
||||
/*
|
||||
* The D4 domain contains the Coresight-ETM hardware block and
|
||||
* therefore it should only be turned off if the debug module is
|
||||
* not in use.
|
||||
*/
|
||||
return -EBUSY;
|
||||
}
|
||||
|
||||
static struct rmobile_pm_domain r8a7740_pm_domains[] = {
|
||||
{
|
||||
.genpd.name = "A4LC",
|
||||
.bit_shift = 1,
|
||||
}, {
|
||||
.genpd.name = "A4MP",
|
||||
.bit_shift = 2,
|
||||
}, {
|
||||
.genpd.name = "D4",
|
||||
.bit_shift = 3,
|
||||
.gov = &pm_domain_always_on_gov,
|
||||
.suspend = r8a7740_pd_d4_suspend,
|
||||
}, {
|
||||
.genpd.name = "A4R",
|
||||
.bit_shift = 5,
|
||||
}, {
|
||||
.genpd.name = "A3RV",
|
||||
.bit_shift = 6,
|
||||
}, {
|
||||
.genpd.name = "A4S",
|
||||
.bit_shift = 10,
|
||||
.gov = &pm_domain_always_on_gov,
|
||||
.no_debug = true,
|
||||
.suspend = r8a7740_pd_a4s_suspend,
|
||||
}, {
|
||||
.genpd.name = "A3SP",
|
||||
.bit_shift = 11,
|
||||
.gov = &pm_domain_always_on_gov,
|
||||
.no_debug = true,
|
||||
.suspend = r8a7740_pd_a3sp_suspend,
|
||||
}, {
|
||||
.genpd.name = "A3SM",
|
||||
.bit_shift = 12,
|
||||
.gov = &pm_domain_always_on_gov,
|
||||
.suspend = r8a7740_pd_a3sm_suspend,
|
||||
}, {
|
||||
.genpd.name = "A3SG",
|
||||
.bit_shift = 13,
|
||||
}, {
|
||||
.genpd.name = "A4SU",
|
||||
.bit_shift = 20,
|
||||
},
|
||||
};
|
||||
|
||||
void __init r8a7740_init_pm_domains(void)
|
||||
{
|
||||
rmobile_init_domains(r8a7740_pm_domains, ARRAY_SIZE(r8a7740_pm_domains));
|
||||
pm_genpd_add_subdomain_names("A4R", "A3RV");
|
||||
pm_genpd_add_subdomain_names("A4S", "A3SP");
|
||||
pm_genpd_add_subdomain_names("A4S", "A3SM");
|
||||
pm_genpd_add_subdomain_names("A4S", "A3SG");
|
||||
}
|
||||
#endif /* CONFIG_PM && !CONFIG_ARCH_MULTIPLATFORM */
|
||||
|
||||
|
|
|
@ -746,6 +746,12 @@ static void r8a7740_i2c_workaround(struct platform_device *pdev)
|
|||
void __init r8a7740_add_standard_devices(void)
|
||||
{
|
||||
static struct pm_domain_device domain_devices[] __initdata = {
|
||||
{ "A4R", &tmu0_device },
|
||||
{ "A4R", &i2c0_device },
|
||||
{ "A4S", &irqpin0_device },
|
||||
{ "A4S", &irqpin1_device },
|
||||
{ "A4S", &irqpin2_device },
|
||||
{ "A4S", &irqpin3_device },
|
||||
{ "A3SP", &scif0_device },
|
||||
{ "A3SP", &scif1_device },
|
||||
{ "A3SP", &scif2_device },
|
||||
|
@ -756,6 +762,11 @@ void __init r8a7740_add_standard_devices(void)
|
|||
{ "A3SP", &scif7_device },
|
||||
{ "A3SP", &scif8_device },
|
||||
{ "A3SP", &i2c1_device },
|
||||
{ "A3SP", &ipmmu_device },
|
||||
{ "A3SP", &dma0_device },
|
||||
{ "A3SP", &dma1_device },
|
||||
{ "A3SP", &dma2_device },
|
||||
{ "A3SP", &usb_dma_device },
|
||||
};
|
||||
|
||||
/* I2C work-around */
|
||||
|
|
Loading…
Add table
Reference in a new issue