Skip to content

Commit

Permalink
ARM: shmobile: r8a7740: add A3SP pm domain support
Browse files Browse the repository at this point in the history
This patch adds basic A3SP pm domain support.
Now, below devices can be controled by PM

DMAC1/2/3, IPMMU, DDM, FLCTL, SYS-HPB, BBIF1, MSIOF1/2,
SCIFA,SCIFB, IIC1, IrDA, USBH, USBDMAC, SDHI0/1/2, TPU,
DREQPAK (Sys),  MMCIF, RSPI, SIM, USBF

Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
Acked-by: Magnus Damm <damm@opensource.se>
Signed-off-by: Rafael J. Wysocki <rjw@sisk.pl>
  • Loading branch information
Kuninori Morimoto authored and Rafael J. Wysocki committed Jul 6, 2012
1 parent 8459293 commit 802a563
Show file tree
Hide file tree
Showing 3 changed files with 36 additions and 0 deletions.
1 change: 1 addition & 0 deletions arch/arm/mach-shmobile/include/mach/r8a7740.h
Original file line number Diff line number Diff line change
Expand Up @@ -608,6 +608,7 @@ enum {

#ifdef CONFIG_PM
extern struct rmobile_pm_domain r8a7740_pd_a4s;
extern struct rmobile_pm_domain r8a7740_pd_a3sp;
#endif /* CONFIG_PM */

#endif /* __ASM_R8A7740_H__ */
19 changes: 19 additions & 0 deletions arch/arm/mach-shmobile/pm-r8a7740.c
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@
* License. See the file "COPYING" in the main directory of this archive
* for more details.
*/
#include <linux/console.h>
#include <mach/pm-rmobile.h>

#ifdef CONFIG_PM
Expand All @@ -27,4 +28,22 @@ struct rmobile_pm_domain r8a7740_pd_a4s = {
.no_debug = true,
.suspend = r8a7740_pd_a4s_suspend,
};

static int r8a7740_pd_a3sp_suspend(void)
{
/*
* Serial consoles make use of SCIF hardware located in A3SP,
* keep such power domain on if "no_console_suspend" is set.
*/
return console_suspend_enabled ? 0 : -EBUSY;
}

struct rmobile_pm_domain r8a7740_pd_a3sp = {
.genpd.name = "A3SP",
.bit_shift = 11,
.gov = &pm_domain_always_on_gov,
.no_debug = true,
.suspend = r8a7740_pd_a3sp_suspend,
};

#endif /* CONFIG_PM */
16 changes: 16 additions & 0 deletions arch/arm/mach-shmobile/setup-r8a7740.c
Original file line number Diff line number Diff line change
Expand Up @@ -674,12 +674,28 @@ void __init r8a7740_add_standard_devices(void)

/* PM domain */
rmobile_init_pm_domain(&r8a7740_pd_a4s);
rmobile_init_pm_domain(&r8a7740_pd_a3sp);

rmobile_pm_add_subdomain(&r8a7740_pd_a4s, &r8a7740_pd_a3sp);

/* add devices */
platform_add_devices(r8a7740_early_devices,
ARRAY_SIZE(r8a7740_early_devices));
platform_add_devices(r8a7740_late_devices,
ARRAY_SIZE(r8a7740_late_devices));

/* add devices to PM domain */

rmobile_add_device_to_domain(&r8a7740_pd_a3sp, &scif0_device);
rmobile_add_device_to_domain(&r8a7740_pd_a3sp, &scif1_device);
rmobile_add_device_to_domain(&r8a7740_pd_a3sp, &scif2_device);
rmobile_add_device_to_domain(&r8a7740_pd_a3sp, &scif3_device);
rmobile_add_device_to_domain(&r8a7740_pd_a3sp, &scif4_device);
rmobile_add_device_to_domain(&r8a7740_pd_a3sp, &scif5_device);
rmobile_add_device_to_domain(&r8a7740_pd_a3sp, &scif6_device);
rmobile_add_device_to_domain(&r8a7740_pd_a3sp, &scif7_device);
rmobile_add_device_to_domain(&r8a7740_pd_a3sp, &scifb_device);
rmobile_add_device_to_domain(&r8a7740_pd_a3sp, &i2c1_device);
}

static void __init r8a7740_earlytimer_init(void)
Expand Down

0 comments on commit 802a563

Please sign in to comment.