From patchwork Mon Aug 7 08:13:19 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Guodong Xu X-Patchwork-Id: 109511 Delivered-To: patch@linaro.org Received: by 10.140.95.78 with SMTP id h72csp1308035qge; Mon, 7 Aug 2017 01:13:56 -0700 (PDT) X-Received: by 10.99.47.199 with SMTP id v190mr10847209pgv.303.1502093636685; Mon, 07 Aug 2017 01:13:56 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1502093636; cv=none; d=google.com; s=arc-20160816; b=JMJ4uM72JWu3oh3ZQcjoWUHIig/SKZmGG3P3DcUrQRvjoOvm055IIJLEMEtUsPDKe7 Ng3U2uKKbqaHENABruTRKInKo4ikthjCMKdWcNzSAHeY9b3d5ZnLpRwMeZ76B6c9c9vQ EXm3QxtY000mQdf9Pj1AxznBTKENvzhAGrq7ymYY7XjLKRxjA2hBBTjaek+bysHSBY7z W0trgBjc6ajd9bG0Yjo6f/oVvj4ysV4ndXfif7K/mhUOywK7jBn5tk6mLDvn4tDlaSwd +wQ5P01JT5SetPK2JQRoTJ1RTgXcDZej2pHDHJHBr5XJb/xI8fyo0DNs8lP7aSQQayYL Oq1Q== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:references:in-reply-to:message-id:date :subject:cc:to:from:dkim-signature:arc-authentication-results; bh=+kknoa0xsS51ZeDEXOO586zfYUubZWU6uIrMU6WoYyU=; b=hHVvwSPFIGLCo21oSe+3vAq1q7WR9PXExz3VsFatkBL2M3+mVNXaGsO354IGC4Z3dY Lia1EDx6Z+FYAsAu+487iSBBsks0ImAx/3iMWeG9butu49JR2uXRcuM+ApQOCiNEBb4Z f8XOGv/v8mJfml88QAXaxMNZRuCmyyc/uSwy4CHDnJasHOjR/vmXp/pT3C5fg9tCzoHT AUxJ+2Vvtc72mx9ACLUzqB1oxIcPGRwwFdx9rrDNPdgBuoWUndJIKHFqyceNFdYQ1pYn ScThYLzpDnsmQo8l1aXmcn2HcLfGkPb8ysIQDC/lhQwlCm3S+MWBNYU9I4VHu5hBE4zW StcQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linaro.org header.b=MQSTiPSY; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id g2si5345148plm.581.2017.08.07.01.13.56; Mon, 07 Aug 2017 01:13:56 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; dkim=pass header.i=@linaro.org header.b=MQSTiPSY; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752563AbdHGINx (ORCPT + 25 others); Mon, 7 Aug 2017 04:13:53 -0400 Received: from mail-pg0-f52.google.com ([74.125.83.52]:33836 "EHLO mail-pg0-f52.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752357AbdHGINq (ORCPT ); Mon, 7 Aug 2017 04:13:46 -0400 Received: by mail-pg0-f52.google.com with SMTP id u185so31292543pgb.1 for ; Mon, 07 Aug 2017 01:13:45 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=+kknoa0xsS51ZeDEXOO586zfYUubZWU6uIrMU6WoYyU=; b=MQSTiPSYpICGK6YjPo7OQ8QxhhGtS2+xO5clIs1+rgfkNxEUwVbHK66dKdyQPOp7+v bF7muwUR83jrtV3k9tFgSm0X8guODWYZOfMUOPbVSGdlbzXN8QlwrJT5RSQdt5YSGvIl SjNjwZDIETcL+WIpzNVPVodLR/z8THwUUkA5M= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references; bh=+kknoa0xsS51ZeDEXOO586zfYUubZWU6uIrMU6WoYyU=; b=UQ+n396mb134D3796TOXzMi+G5ArDSyJpltQi+Y2qC+8/VfxTpicP/BBJJfTxCnjj0 vT3B75TVJK4MmJgtOgco4mHtl/bIBt86Bsf3QGDiLrDPbhn1bjyrf/8cDWqGVUDQm/lB lsLN31b42dRspFaPIjdffl6c/DBl0gsqbThJidU8R87fSXzgd36PmNTXItHNC5byPp4p BMxo15V0yDcm8gwJpL1/OxwQcd+KQzDMiagrNLkfINGsOdGdFqjn354Y5SO0F6Sr46Ul SG5NvSTQK2/aPKTeiaztYfRSTv1i/XunineGFIRLm2NibnlPiyVkQ9tsV/02h1FgMmdj s2aA== X-Gm-Message-State: AIVw110sCcXyggI4U+b1XsiazoJgSEv7bRXYKZUthSEWU8Qze47Ei9/N KQmEJPAwOhFce6JE X-Received: by 10.99.105.195 with SMTP id e186mr10549313pgc.260.1502093625387; Mon, 07 Aug 2017 01:13:45 -0700 (PDT) Received: from docularxu-ThinkPad-T440p.219.146.1.66 ([45.56.159.229]) by smtp.gmail.com with ESMTPSA id x25sm13597521pfk.80.2017.08.07.01.13.39 (version=TLS1_2 cipher=ECDHE-RSA-AES128-SHA bits=128/128); Mon, 07 Aug 2017 01:13:44 -0700 (PDT) From: Guodong Xu To: xuwei5@hisilicon.com, robh+dt@kernel.org, mark.rutland@arm.com, catalin.marinas@arm.com, will.deacon@arm.com, keescook@chromium.org, anton@enomsg.org, ccross@android.com, tony.luck@intel.com Cc: devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, linux-arm-kernel@lists.infradead.org, Leo Yan , Daniel Lezcano , Kevin Wang Subject: [PATCH 1/7] arm64: dts: hi3660: enable idle states Date: Mon, 7 Aug 2017 16:13:19 +0800 Message-Id: <20170807081325.11406-2-guodong.xu@linaro.org> X-Mailer: git-send-email 2.10.2 In-Reply-To: <20170807081325.11406-1-guodong.xu@linaro.org> References: <20170807081325.11406-1-guodong.xu@linaro.org> Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org From: Leo Yan On Hi3660 there have two clusters, one is CA53 cluster and another is CA73 cluster. This two clusters have different idle states separately. With Daniel Lezcano's patch (ARM: cpuidle: Support asymmetric idle definition), now ARM idle driver can support different clusters with different idle states. Base on this, this patch is to bind two clusters idle states on Hi3660. Except the "WFI" states are enabled by default for all CPUs, this patch also binds below extra idle states: - CA53 CPUs have two more states: CPU_SLEEP: CPU power off state CLUSTER_SLEEP_0: Cluster power off state - CA73 CPUs have three more states: CPU_NAP: CPU retention state CPU_SLEEP: CPU power off state CLUSTER_SLEEP_1: Cluster power off state Cc: Daniel Lezcano Cc: Kevin Wang Signed-off-by: Leo Yan --- arch/arm64/boot/dts/hisilicon/hi3660.dtsi | 63 +++++++++++++++++++++++++++++++ 1 file changed, 63 insertions(+) -- 2.10.2 diff --git a/arch/arm64/boot/dts/hisilicon/hi3660.dtsi b/arch/arm64/boot/dts/hisilicon/hi3660.dtsi index c6a1961..8921310 100644 --- a/arch/arm64/boot/dts/hisilicon/hi3660.dtsi +++ b/arch/arm64/boot/dts/hisilicon/hi3660.dtsi @@ -58,6 +58,7 @@ device_type = "cpu"; reg = <0x0 0x0>; enable-method = "psci"; + cpu-idle-states = <&CPU_SLEEP &CLUSTER_SLEEP_0>; }; cpu1: cpu@1 { @@ -65,6 +66,7 @@ device_type = "cpu"; reg = <0x0 0x1>; enable-method = "psci"; + cpu-idle-states = <&CPU_SLEEP &CLUSTER_SLEEP_0>; }; cpu2: cpu@2 { @@ -72,6 +74,7 @@ device_type = "cpu"; reg = <0x0 0x2>; enable-method = "psci"; + cpu-idle-states = <&CPU_SLEEP &CLUSTER_SLEEP_0>; }; cpu3: cpu@3 { @@ -79,6 +82,7 @@ device_type = "cpu"; reg = <0x0 0x3>; enable-method = "psci"; + cpu-idle-states = <&CPU_SLEEP &CLUSTER_SLEEP_0>; }; cpu4: cpu@100 { @@ -86,6 +90,11 @@ device_type = "cpu"; reg = <0x0 0x100>; enable-method = "psci"; + cpu-idle-states = < + &CPU_NAP + &CPU_SLEEP + &CLUSTER_SLEEP_1 + >; }; cpu5: cpu@101 { @@ -93,6 +102,11 @@ device_type = "cpu"; reg = <0x0 0x101>; enable-method = "psci"; + cpu-idle-states = < + &CPU_NAP + &CPU_SLEEP + &CLUSTER_SLEEP_1 + >; }; cpu6: cpu@102 { @@ -100,6 +114,11 @@ device_type = "cpu"; reg = <0x0 0x102>; enable-method = "psci"; + cpu-idle-states = < + &CPU_NAP + &CPU_SLEEP + &CLUSTER_SLEEP_1 + >; }; cpu7: cpu@103 { @@ -107,6 +126,50 @@ device_type = "cpu"; reg = <0x0 0x103>; enable-method = "psci"; + cpu-idle-states = < + &CPU_NAP + &CPU_SLEEP + &CLUSTER_SLEEP_1 + >; + }; + + idle-states { + entry-method = "psci"; + + CPU_NAP: cpu-nap { + compatible = "arm,idle-state"; + arm,psci-suspend-param = <0x0000001>; + entry-latency-us = <7>; + exit-latency-us = <2>; + min-residency-us = <15>; + }; + + CPU_SLEEP: cpu-sleep { + compatible = "arm,idle-state"; + local-timer-stop; + arm,psci-suspend-param = <0x0010000>; + entry-latency-us = <40>; + exit-latency-us = <70>; + min-residency-us = <3000>; + }; + + CLUSTER_SLEEP_0: cluster-sleep-0 { + compatible = "arm,idle-state"; + local-timer-stop; + arm,psci-suspend-param = <0x1010000>; + entry-latency-us = <500>; + exit-latency-us = <5000>; + min-residency-us = <20000>; + }; + + CLUSTER_SLEEP_1: cluster-sleep-1 { + compatible = "arm,idle-state"; + local-timer-stop; + arm,psci-suspend-param = <0x1010000>; + entry-latency-us = <1000>; + exit-latency-us = <5000>; + min-residency-us = <20000>; + }; }; };