ARM: shmobile: r8a7740: add A3SP pm domain support
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>
This commit is contained in:
Родитель
8459293c27
Коммит
802a5639aa
|
@ -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__ */
|
||||
|
|
|
@ -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
|
||||
|
@ -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 */
|
||||
|
|
|
@ -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)
|
||||
|
|
Загрузка…
Ссылка в новой задаче