From patchwork Fri Jul 31 12:53:03 2015 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: chenhui zhao X-Patchwork-Id: 502549 X-Patchwork-Delegate: scottwood@freescale.com Return-Path: X-Original-To: patchwork-incoming@ozlabs.org Delivered-To: patchwork-incoming@ozlabs.org Received: from lists.ozlabs.org (lists.ozlabs.org [IPv6:2401:3900:2:1::3]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 857BF140338 for ; Fri, 31 Jul 2015 23:10:33 +1000 (AEST) Received: from lists.ozlabs.org (lists.ozlabs.org [IPv6:2401:3900:2:1::3]) by lists.ozlabs.org (Postfix) with ESMTP id 6767B1A1D8A for ; Fri, 31 Jul 2015 23:10:33 +1000 (AEST) X-Original-To: linuxppc-dev@lists.ozlabs.org Delivered-To: linuxppc-dev@lists.ozlabs.org Received: from na01-bl2-obe.outbound.protection.outlook.com (mail-bl2on0106.outbound.protection.outlook.com [65.55.169.106]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-SHA384 (256/256 bits)) (No client certificate requested) by lists.ozlabs.org (Postfix) with ESMTPS id AA0CF1A1BD7 for ; Fri, 31 Jul 2015 23:08:29 +1000 (AEST) Received: from DM2PR03CA0030.namprd03.prod.outlook.com (10.141.96.29) by BLUPR03MB294.namprd03.prod.outlook.com (10.141.48.15) with Microsoft SMTP Server (TLS) id 15.1.225.19; Fri, 31 Jul 2015 12:53:20 +0000 Received: from BN1AFFO11FD038.protection.gbl (2a01:111:f400:7c10::102) by DM2PR03CA0030.outlook.office365.com (2a01:111:e400:2428::29) with Microsoft SMTP Server (TLS) id 15.1.225.19 via Frontend Transport; Fri, 31 Jul 2015 12:53:20 +0000 Authentication-Results: spf=fail (sender IP is 192.88.158.2) smtp.mailfrom=freescale.com; freescale.mail.onmicrosoft.com; dkim=none (message not signed) header.d=none; Received-SPF: Fail (protection.outlook.com: domain of freescale.com does not designate 192.88.158.2 as permitted sender) receiver=protection.outlook.com; client-ip=192.88.158.2; helo=az84smr01.freescale.net; Received: from az84smr01.freescale.net (192.88.158.2) by BN1AFFO11FD038.mail.protection.outlook.com (10.58.52.242) with Microsoft SMTP Server (TLS) id 15.1.231.11 via Frontend Transport; Fri, 31 Jul 2015 12:53:19 +0000 Received: from localhost.localdomain ([10.193.20.174]) by az84smr01.freescale.net (8.14.3/8.14.0) with ESMTP id t6VCrGZg029225; Fri, 31 Jul 2015 05:53:16 -0700 From: Chenhui Zhao To: , Subject: [PATCH 1/4] powerpc/85xx: support sleep feature on QorIQ SoCs with RCPM Date: Fri, 31 Jul 2015 20:53:03 +0800 Message-ID: <1438347186-8462-1-git-send-email-chenhui.zhao@freescale.com> X-Mailer: git-send-email 1.9.1 X-EOPAttributedMessage: 0 X-Microsoft-Exchange-Diagnostics: 1; BN1AFFO11FD038; 1:YCToJ5biDwoOJu1edRArfl+tzdpOAIc3cjYAo1PbNKdsJmrgz/yDHRqBMCUBpmSiSaCyggb3Jo7aLbcJhraxoGcNJG2hII/TouKoJDCQk5uXK2l9KKPMcunmxvsFV9YwNJwat6JbI4qyOR9u7zpq7eb8ZB+pB8QDVkkm6jXCrSzNLFjni7kp6aRgdZ9s2Lvu/kMn6sDKfjjIHuNjgb/FQ3uezR/okFJGAWa9b00UIOmOi+dxExvZ0gN4LzT1D0IzEtSDgUARhyu81Za5j5N1Bv9uSxx0H0fqBPgFVH/kTxDV9UR60kgaiRZc6XI6raJ8cr9VnjDysaTArHjYfVRrqA== X-Forefront-Antispam-Report: CIP:192.88.158.2; CTRY:US; IPV:NLI; EFV:NLI; SFV:NSPM; SFS:(10019020)(6029001)(6009001)(2980300002)(339900001)(199003)(189002)(49486002)(92566002)(46102003)(19580405001)(62966003)(85426001)(19580395003)(6806004)(77156002)(106466001)(189998001)(47776003)(86362001)(5001920100001)(77096005)(33646002)(229853001)(105606002)(107886002)(50226001)(104016003)(87936001)(50986999)(5001770100001)(36756003)(48376002)(50466002)(5001960100002)(4001450100002)(4001430100001); DIR:OUT; SFP:1102; SCL:1; SRVR:BLUPR03MB294; H:az84smr01.freescale.net; FPR:; SPF:Fail; MLV:sfv; A:1; MX:1; LANG:en; MIME-Version: 1.0 X-Microsoft-Exchange-Diagnostics: 1; BLUPR03MB294; 2:73usHhAJja5yo/qos8EEwSPeJ/lXq2NgVbboHdYgtwb5IBn5uzktExXSWusE0Ta/ksBdZjqOZ5ivn6SJnxqE8LytXpEsVkmQTYhqtserjidk3lLbnMK6AQOZKFf99eU9aA9S0S6IuY8F3vK3fhvy11jT8fjeBfkkcJpCoPpAqwY=; 3:rmxA9F90GyddFspgE/NdMRtRxJHThEg5lzzcdAwZRTHTpU90d1xzJuJyq85e6SkG2QddS/dENe95M4a9uMxldf16ZMI2A8O3iMOiqcjCHHej3r2keh+ZlngkQr8QU9fW/fNkiccTUqVKudbNKXdUsrfaXqr3hg98GetV+I/Twk1qRbFNwN60uqC8OxSeoI0h++GHz1aFkAsDzhycYq2SycWsC7e8KoQ0Tk3yftm3vJE=; 25:lNNAH8aiDWEjCcoR+L6CLQ5obH8+K1lEgUYwg+EDP0iZG+mpOtd0xTXTw6NCpsKxjQdS10SrWqtnNOWlQABndh/7CoM7DZ/Vgq4j0h5IX8uxGXEJJooVfmSbKyKNfJWhUmQF0omN3GP3peoB/jHvQHC946aR/EYGevjZgE5+S9a6tv+u5/0TfwTd0eeOUAgrlu8YuUzHWBYz5lm2XBd9gf3o8t9sZjUHHWXkdB8uAn/mH8XZLxAL0z/bLRzapZPDDCtOudx00Dj7Ot8SKygIVA== X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:;SRVR:BLUPR03MB294; X-Microsoft-Exchange-Diagnostics: 1; BLUPR03MB294; 20:RCatxanZAYK1FVAz3KOID/sqVP3/PEvk0+WHKpwOMiWx4ZTeMErYs3nJ6/oF5oaNUkzDEalTWT1/8CMDclXKeLKoyDk6Yufgug/LqcT09xaqSQ3+EPnv/docjszgh+xI4PHQ532mBlzZ6MMmN0W5mwtAUc4+IIixOFbynGDO4wk4AeY7qBgRpKgRYk/5SpucgLD62RKaaoo6OLEiu50iqW14BNLg1xf1A0mN+335GjY4f/idBPfguuVHuoG5MPKGM4PEdGKK9pHQ4IA5hF2CukC1doJXD1bPICvrcWyFinVWScJC4vigPKR2EnRJVSdgw9om+jgeOz1gfEyDtm0tyjqQFdJaujBOxZK8bfbFETc=; 4:s+m1Fm8IDAsDdo5tYPPWRodDe2q+UmInMNX9bJUOOwKu/fO56YgXMunZQo+OXQuVH0z1T02GCvVImoz1de40ggJmSAKNJz5AMW9HJnQFHfcJ/HdOEwaY1b+lR2JlWMtdHzzFGSexfv89dGodD+4UXMdKTgE4+odcwGO7RBZgklAVVQ251gMOC0ruCiQNPOwCNeG0IoGl9Ks//U928CyYj8EdpGxsogdshJvB9K0MW+mljrRcnCpqqcVNbSSegjizPeFKD/Wf0BUbCo4q8onfqrMV2a7Xs5yfodYFVTEgAtg= BLUPR03MB294: X-MS-Exchange-Organization-RulesExecuted X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:; X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(601004)(5005006)(3002001); SRVR:BLUPR03MB294; BCL:0; PCL:0; RULEID:; SRVR:BLUPR03MB294; X-Forefront-PRVS: 0654257CF5 X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; BLUPR03MB294; 23:grAhiC2cJQTL72NVfpUvCZmqGh1nscCN5f9yklTet+?= =?us-ascii?Q?SDjY3caNkYOJzGy+yfEJVf9PfRRv6zEIgGytGep09MNAg+JwJd1pvS4dYRDN?= =?us-ascii?Q?+mYlQCUaIQx21/NYWLO9CjKMsrKirHvw4Z/OzvcdUlT2ZsQHG2zng8un42YR?= =?us-ascii?Q?juIquWzIKirJKHCkVYb6jEPwu7JLFldyjlmEiHbnlZWe6WYTUjnm5KP/c9TV?= =?us-ascii?Q?hssEA/jJ7+eWjDhtDfrfOwIEvxHlVpexDl6/ucMqdxAeWIymvwHtA2X563PO?= =?us-ascii?Q?9sSh5I3h8bKRnHmw4rV6yAic14i8YwIsCdnQSsUoT9J2gYFP4bbS6XAFjXux?= =?us-ascii?Q?fgsAPxupznl0Q6JoMwT0PMnh/HUhqtUnyt9VkIqyt+4TtyRotpoi8xJTABRW?= =?us-ascii?Q?ux2+sNyDMZ6AZ8FLWcmotcwsed/JMrinDt/mvwBnS6IcUOAXcT7TQCKc+3nK?= =?us-ascii?Q?71sGDiyOx5gOH7uRWWC6U81cB+POBwTFweBPqvcFNn2zzYvnHs1pm0yW1jBB?= =?us-ascii?Q?Ow+Lp2H2RJbwizVToct8r4eeoU1RFja+emkKP0lyPHQ19WjQdRWjhGdDZToo?= =?us-ascii?Q?iq/l2mwQDpn4PXqVj/BxoJC/R7heYBWN8wB66eyczJgMuo+HjebCUMyRIwn3?= =?us-ascii?Q?+SpxEY6V3hiJD+KQ+LIfFn5QsCphwX0XheQEZI7O7IOfbAfGUU0P/xb9uRvN?= =?us-ascii?Q?O37b1zO8GrQ7ab1Dghfkezg5npEpRa6+gWc22lNcIDT9mp1ELbLZcYI9oXuV?= =?us-ascii?Q?Jv8weY9/LP9k6j7tYmzOFw39WRuJH0TF+91ixawxDILkJfUPu2IEvPQXj/3Q?= =?us-ascii?Q?Nvakz61Aj5KWMv/8TR+/f1Kl63rJAC1+WduwRgTF5sE9yuSdvn4grXOKAvgd?= =?us-ascii?Q?UWnT3C7thZEo+16xf290thyfFjKEgVeISKML1ykAXUV7lNHSd+F/VVbODqCi?= =?us-ascii?Q?idnz4ymGgbprM/erdXLX07kDCFO/WNGljcgTYGPmTFwuGU24bYfsp7WBy+Sr?= =?us-ascii?Q?U=3D?= X-Microsoft-Exchange-Diagnostics: 1; BLUPR03MB294; 5:ZbaUzLCVaP5J5i6HQuQL76kpfAWHZi00u2SYFTqTDxPzk3ajZ/75XMQh0BEDqceCDoaRVqDBJdSfjO54UZtMqde5iXN1cw9euTwkwYL5rM+LRJFw8Ayqy9OleWBHT3GZTkMng+Ler2Anao125KU5QA==; 24:5uWHYMlUf2pJsYTxFKGLqFc6vEDWyBjwUDKs5WiUxpqkaz27FrA5JAOlj7E++jFv75DVbjy63oQhNvZFXUrb2DjqsWDElenp7++Zt0LiHGM=; 20:Ye1BGaisYIRU30prA9N9fE93lypHMjfVlYIsJNb5/9EFwIwwgHND1MU5dKLNaPZ0tuzx/VhqfztHrpsSuDCVFQ== X-OriginatorOrg: freescale.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 31 Jul 2015 12:53:19.5765 (UTC) X-MS-Exchange-CrossTenant-Id: 710a03f5-10f6-4d38-9ff4-a80b81da590d X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=710a03f5-10f6-4d38-9ff4-a80b81da590d; Ip=[192.88.158.2]; Helo=[az84smr01.freescale.net] X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: BLUPR03MB294 X-BeenThere: linuxppc-dev@lists.ozlabs.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: Linux on PowerPC Developers Mail List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: linux-kernel@vger.kernel.org, Jason.Jin@freescale.com Errors-To: linuxppc-dev-bounces+patchwork-incoming=ozlabs.org@lists.ozlabs.org Sender: "Linuxppc-dev" In sleep mode, the clocks of e500 cores and unused IP blocks is turned off. The IP blocks which are allowed to wake up the processor are still running. The sleep mode is equal to the Standby state in Linux. Use the command to enter sleep mode: echo standby > /sys/power/state Signed-off-by: Chenhui Zhao --- Note: This patch set is based on CPU hotplug patches. arch/powerpc/Kconfig | 3 +- arch/powerpc/platforms/85xx/Kconfig | 5 +++ arch/powerpc/platforms/85xx/Makefile | 1 + arch/powerpc/platforms/85xx/qoriq_pm.c | 59 ++++++++++++++++++++++++++++++++++ arch/powerpc/platforms/86xx/Kconfig | 1 + 5 files changed, 67 insertions(+), 2 deletions(-) create mode 100644 arch/powerpc/platforms/85xx/qoriq_pm.c diff --git a/arch/powerpc/Kconfig b/arch/powerpc/Kconfig index dd9e252..57bbbfb 100644 --- a/arch/powerpc/Kconfig +++ b/arch/powerpc/Kconfig @@ -233,7 +233,7 @@ config ARCH_HIBERNATION_POSSIBLE config ARCH_SUSPEND_POSSIBLE def_bool y depends on ADB_PMU || PPC_EFIKA || PPC_LITE5200 || PPC_83xx || \ - (PPC_85xx && !PPC_E500MC) || PPC_86xx || PPC_PSERIES \ + FSL_SOC_BOOKE || PPC_86xx || PPC_PSERIES \ || 44x || 40x config PPC_DCR_NATIVE @@ -753,7 +753,6 @@ config FSL_PCI config FSL_PMC bool - default y depends on SUSPEND && (PPC_85xx || PPC_86xx) help Freescale MPC85xx/MPC86xx power management controller support diff --git a/arch/powerpc/platforms/85xx/Kconfig b/arch/powerpc/platforms/85xx/Kconfig index e626461..dff2ea6 100644 --- a/arch/powerpc/platforms/85xx/Kconfig +++ b/arch/powerpc/platforms/85xx/Kconfig @@ -9,6 +9,8 @@ menuconfig FSL_SOC_BOOKE select SERIAL_8250_EXTENDED if SERIAL_8250 select SERIAL_8250_SHARE_IRQ if SERIAL_8250 select FSL_CORENET_RCPM if PPC_E500MC + select FSL_QORIQ_PM if SUSPEND && PPC_E500MC + select FSL_PMC if SUSPEND && !PPC_E500MC default y if FSL_SOC_BOOKE @@ -289,3 +291,6 @@ endif # FSL_SOC_BOOKE config TQM85xx bool + +config FSL_QORIQ_PM + bool diff --git a/arch/powerpc/platforms/85xx/Makefile b/arch/powerpc/platforms/85xx/Makefile index 7bc86da..fdae28b 100644 --- a/arch/powerpc/platforms/85xx/Makefile +++ b/arch/powerpc/platforms/85xx/Makefile @@ -3,6 +3,7 @@ # obj-$(CONFIG_SMP) += smp.o obj-$(CONFIG_FSL_PMC) += mpc85xx_pm_ops.o +obj-$(CONFIG_FSL_QORIQ_PM) += qoriq_pm.o obj-y += common.o diff --git a/arch/powerpc/platforms/85xx/qoriq_pm.c b/arch/powerpc/platforms/85xx/qoriq_pm.c new file mode 100644 index 0000000..27ec337 --- /dev/null +++ b/arch/powerpc/platforms/85xx/qoriq_pm.c @@ -0,0 +1,59 @@ +/* + * Support Power Management feature + * + * Copyright 2014-2015 Freescale Semiconductor Inc. + * + * Author: Chenhui Zhao + * + * 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; either version 2 of the License, or (at your + * option) any later version. + */ + +#include +#include +#include + +#include + +static int qoriq_suspend_enter(suspend_state_t state) +{ + int ret = 0; + + switch (state) { + case PM_SUSPEND_STANDBY: + cur_cpu_spec->cpu_down_flush(); + ret = qoriq_pm_ops->plat_enter_sleep(); + break; + default: + ret = -EINVAL; + } + + return ret; +} + +static int qoriq_suspend_valid(suspend_state_t state) +{ + unsigned int pm_modes; + + pm_modes = qoriq_pm_ops->get_pm_modes(); + + if ((state == PM_SUSPEND_STANDBY) && (pm_modes & FSL_PM_SLEEP)) + return 1; + + return 0; +} + +static const struct platform_suspend_ops qoriq_suspend_ops = { + .valid = qoriq_suspend_valid, + .enter = qoriq_suspend_enter, +}; + +static int __init qoriq_suspend_init(void) +{ + suspend_set_ops(&qoriq_suspend_ops); + + return 0; +} +arch_initcall(qoriq_suspend_init); diff --git a/arch/powerpc/platforms/86xx/Kconfig b/arch/powerpc/platforms/86xx/Kconfig index 1afd1e4..09638e0 100644 --- a/arch/powerpc/platforms/86xx/Kconfig +++ b/arch/powerpc/platforms/86xx/Kconfig @@ -5,6 +5,7 @@ menuconfig PPC_86xx select FSL_SOC select ALTIVEC select ARCH_WANT_OPTIONAL_GPIOLIB + select FSL_PMC if SUSPEND help The Freescale E600 SoCs have 74xx cores.