From patchwork Wed Jul 9 13:40:17 2014 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Thomas Petazzoni X-Patchwork-Id: 4515961 Return-Path: X-Original-To: patchwork-linux-pm@patchwork.kernel.org Delivered-To: patchwork-parsemail@patchwork1.web.kernel.org Received: from mail.kernel.org (mail.kernel.org [198.145.19.201]) by patchwork1.web.kernel.org (Postfix) with ESMTP id 9D3869F1C4 for ; Wed, 9 Jul 2014 13:40:52 +0000 (UTC) Received: from mail.kernel.org (localhost [127.0.0.1]) by mail.kernel.org (Postfix) with ESMTP id D469020179 for ; Wed, 9 Jul 2014 13:40:51 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id C055A2034F for ; Wed, 9 Jul 2014 13:40:50 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1755676AbaGINkt (ORCPT ); Wed, 9 Jul 2014 09:40:49 -0400 Received: from top.free-electrons.com ([176.31.233.9]:47370 "EHLO mail.free-electrons.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1755577AbaGINkp (ORCPT ); Wed, 9 Jul 2014 09:40:45 -0400 Received: by mail.free-electrons.com (Postfix, from userid 106) id F2CB51140; Wed, 9 Jul 2014 15:40:48 +0200 (CEST) X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on mail.kernel.org X-Spam-Level: X-Spam-Status: No, score=-7.6 required=5.0 tests=BAYES_00, RCVD_IN_DNSWL_HI, RP_MATCHES_RCVD, UNPARSEABLE_RELAY autolearn=unavailable version=3.3.1 Received: from localhost (col31-4-88-188-83-94.fbx.proxad.net [88.188.83.94]) by mail.free-electrons.com (Postfix) with ESMTPSA id 8868276; Wed, 9 Jul 2014 15:40:48 +0200 (CEST) From: Thomas Petazzoni To: Daniel Lezcano , "Rafael J. Wysocki" , linux-pm@vger.kernel.org, Jason Cooper , Andrew Lunn , Sebastian Hesselbarth , Gregory Clement Cc: Tawfik Bayouk , Nadav Haklai , Lior Amsalem , Ezequiel Garcia , linux-arm-kernel@lists.infradead.org, Thomas Petazzoni Subject: [PATCHv2 13/17] cpuidle: mvebu: add Armada 370 support Date: Wed, 9 Jul 2014 15:40:17 +0200 Message-Id: <1404913221-17343-14-git-send-email-thomas.petazzoni@free-electrons.com> X-Mailer: git-send-email 2.0.0 In-Reply-To: <1404913221-17343-1-git-send-email-thomas.petazzoni@free-electrons.com> References: <1404913221-17343-1-git-send-email-thomas.petazzoni@free-electrons.com> Sender: linux-pm-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-pm@vger.kernel.org X-Virus-Scanned: ClamAV using ClamSMTP This commit adds the list of cpuidle states supported by the Armada 370 SoC in the cpuidle-mvebu-v7 driver, as well as the necessary logic around it to support this SoC. Signed-off-by: Thomas Petazzoni --- drivers/cpuidle/cpuidle-mvebu-v7.c | 18 ++++++++++++++++++ include/linux/mvebu-v7-cpuidle.h | 1 + 2 files changed, 19 insertions(+) diff --git a/drivers/cpuidle/cpuidle-mvebu-v7.c b/drivers/cpuidle/cpuidle-mvebu-v7.c index 82c545bb..5de147f 100644 --- a/drivers/cpuidle/cpuidle-mvebu-v7.c +++ b/drivers/cpuidle/cpuidle-mvebu-v7.c @@ -72,6 +72,22 @@ static struct cpuidle_driver armadaxp_cpuidle_driver = { .state_count = 3, }; +static struct cpuidle_driver armada370_cpuidle_driver = { + .name = "armada_370_idle", + .states[0] = ARM_CPUIDLE_WFI_STATE, + .states[1] = { + .enter = mvebu_v7_enter_idle, + .exit_latency = 100, + .power_usage = 5, + .target_residency = 1000, + .flags = (CPUIDLE_FLAG_TIME_VALID | + MVEBU_V7_FLAG_DEEP_IDLE), + .name = "Deep Idle", + .desc = "CPU and L2 Fabric power down", + }, + .state_count = 2, +}; + static int mvebu_v7_cpuidle_probe(struct platform_device *pdev) { struct cpuidle_driver *drv; @@ -80,6 +96,8 @@ static int mvebu_v7_cpuidle_probe(struct platform_device *pdev) if (pcpuidle->type == CPUIDLE_ARMADA_XP) drv = &armadaxp_cpuidle_driver; + else if (pcpuidle->type == CPUIDLE_ARMADA_370) + drv = &armada370_cpuidle_driver; else return -EINVAL; diff --git a/include/linux/mvebu-v7-cpuidle.h b/include/linux/mvebu-v7-cpuidle.h index 00fde86..6d54ae1 100644 --- a/include/linux/mvebu-v7-cpuidle.h +++ b/include/linux/mvebu-v7-cpuidle.h @@ -16,6 +16,7 @@ enum mvebu_v7_cpuidle_types { CPUIDLE_ARMADA_XP, + CPUIDLE_ARMADA_370, }; struct mvebu_v7_cpuidle {