drivers: sh: Disable PM runtime for multi-platform ARM with genpd
If the default PM Domain using PM_CLK is used for PM runtime, the real Clock Domain cannot be registered from DT later. Hence do not enable it when running a multi-platform kernel with genpd support on R-Car or RZ. The CPG/MSTP Clock Domain driver will take care of PM runtime management of the module clocks. Now most multi-platform ARM shmobile platforms (SH-Mobile, R-Mobile, R-Car, RZ) use DT-based PM Domains to take care of PM runtime management of the module clocks, simplify the platform logic by replacing the explicit SoC checks by a single check for the presence of MSTP clocks in DT. Backwards-compatiblity with old DTs (mainly for R-Car Gen2) is provided by checking for the presence of a "#power-domain-cells" property in DT. The default PM Domain is still needed for: - backwards-compatibility with old DTs that lack PM Domain properties, - the CONFIG_PM=n case, - legacy (non-DT) ARM/shmobile platforms without genpd support (r8a7778, r8a7779), - legacy SuperH. Signed-off-by: Geert Uytterhoeven <geert+renesas@glider.be> Reviewed-by: Ulf Hansson <ulf.hansson@linaro.org> Signed-off-by: Simon Horman <horms+renesas@verge.net.au>
This commit is contained in:
Родитель
9b302c1acf
Коммит
cbc41d0a76
|
@ -35,19 +35,11 @@ static struct pm_clk_notifier_block platform_bus_notifier = {
|
|||
static int __init sh_pm_runtime_init(void)
|
||||
{
|
||||
if (IS_ENABLED(CONFIG_ARCH_SHMOBILE_MULTI)) {
|
||||
if (!of_machine_is_compatible("renesas,r7s72100") &&
|
||||
#ifndef CONFIG_PM_GENERIC_DOMAINS_OF
|
||||
!of_machine_is_compatible("renesas,r8a73a4") &&
|
||||
!of_machine_is_compatible("renesas,r8a7740") &&
|
||||
!of_machine_is_compatible("renesas,sh73a0") &&
|
||||
#endif
|
||||
!of_machine_is_compatible("renesas,r8a7778") &&
|
||||
!of_machine_is_compatible("renesas,r8a7779") &&
|
||||
!of_machine_is_compatible("renesas,r8a7790") &&
|
||||
!of_machine_is_compatible("renesas,r8a7791") &&
|
||||
!of_machine_is_compatible("renesas,r8a7792") &&
|
||||
!of_machine_is_compatible("renesas,r8a7793") &&
|
||||
!of_machine_is_compatible("renesas,r8a7794"))
|
||||
if (!of_find_compatible_node(NULL, NULL,
|
||||
"renesas,cpg-mstp-clocks"))
|
||||
return 0;
|
||||
if (IS_ENABLED(CONFIG_PM_GENERIC_DOMAINS_OF) &&
|
||||
of_find_node_with_property(NULL, "#power-domain-cells"))
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
|
Загрузка…
Ссылка в новой задаче