From patchwork Thu Jul 25 10:41:34 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Niklas Cassel X-Patchwork-Id: 169697 Delivered-To: patch@linaro.org Received: by 2002:a92:4782:0:0:0:0:0 with SMTP id e2csp11464951ilk; Thu, 25 Jul 2019 03:42:34 -0700 (PDT) X-Google-Smtp-Source: APXvYqwHQpFePjCvCmayIsDeFFINpGRfg0XnoZHCdBhQorZI03XjEknlfaPlRNrXRQ1T0SUoZU+6 X-Received: by 2002:aa7:9834:: with SMTP id q20mr16219391pfl.196.1564051354802; Thu, 25 Jul 2019 03:42:34 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1564051354; cv=none; d=google.com; s=arc-20160816; b=LtBgJHFXsTjHEjvvDN5lKJdMcqpk9Agf1HvlfpADFob3Yboq44W29Fdbdbwt6A+hud 596LTqOyjBqo1Wh+xb3/4zPE3BPDZAftGfeyR/nCqlBLVQXIp5k8I5Jh0U0w3v8jo/FG 0wqDtxhKrmZAIjmYu1Om5nMmtlP44D36WGbIXGEYLE4g94uoQwzJKAgWodoEglq/3cEQ ZB9oW2dysChTSp8vk+wYNAsqFvvxsZCBWViKknvyiczxbz4RFnwz7UFc6KrG7S/lbIJf 5oIeFmqODJrMetPUnwo2kU2eXxbrvNrV+Cw+64vqdhIt0/DDXauZjnPAiFFizOuWnrqD 9iGQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from :dkim-signature; bh=3GNalLtrTqW5s+BFJJMMFnFc3aO7NBuze3htvzi00W0=; b=nF/o/uijOdpP9GlySDNf17JvCX6qg3S5eDOQRS2zv1SbJXiauKvlZzO3L5JLbPQv9b b/HEoWfOnyXJVi9OwdOnIdef+ykrZPteo1ty3dLE+5M0FMOnvTpjN09+q32TcA2OhO6i 3RCUyTcJgDkG/8UPuWcnTUUMdmA/OWChGfCNA9R80zZJ87u2VtOsv+NJMI9jfOTnmsFm 7Q0yS6VF/zQSM3DudfEfaBdYttcI4qk/JGe0XcULRJBIC9jB8V4DeAb3JM59+HwCaWRQ 3aSkLWXThsozmiRK8T5CJpJpBEC+3bNddHDiZUhFIV80TLUD1FDg9HtyEEmpl1V+oq0F 1Dig== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=csVHpCLA; spf=pass (google.com: best guess record for domain of devicetree-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=devicetree-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 n13si16406168pff.46.2019.07.25.03.42.34; Thu, 25 Jul 2019 03:42:34 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of devicetree-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.s=google header.b=csVHpCLA; spf=pass (google.com: best guess record for domain of devicetree-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=devicetree-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 S2389550AbfGYKme (ORCPT + 8 others); Thu, 25 Jul 2019 06:42:34 -0400 Received: from mail-lj1-f193.google.com ([209.85.208.193]:40807 "EHLO mail-lj1-f193.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S2388358AbfGYKmd (ORCPT ); Thu, 25 Jul 2019 06:42:33 -0400 Received: by mail-lj1-f193.google.com with SMTP id m8so13919287lji.7 for ; Thu, 25 Jul 2019 03:42:31 -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 :mime-version:content-transfer-encoding; bh=3GNalLtrTqW5s+BFJJMMFnFc3aO7NBuze3htvzi00W0=; b=csVHpCLA5Pk3GDmRAP9m1Ka9VSO+6NzJzZMzdJorVAdGE3hwGdBVrpgI7dNWlxKh5+ gp2Jnqh1jTzEYKZ2cuAO9fNIysTEyilMqkvBZ7Es/sttkX11gsh4pt17Bq5V5ikLgcPZ 07h4eMoW6kC1kiC/JWESg9NsKm9MS3EWFMcEDENNY4HnbldWLbbmD0U/xtAOPCaINXcP lwBrhC+T1897IM+jvEohanzwbCHC/BLsmnRGCTZu41aQcIjP8uexSxkp2ORA4s2orTNl d0Daf2zOXzOT9wsg3Vk0S0kKM6dwDOTBAegabpvisdrX3oBYB2iPQrG5HICwn2pT+Pt0 Cx0Q== 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:mime-version:content-transfer-encoding; bh=3GNalLtrTqW5s+BFJJMMFnFc3aO7NBuze3htvzi00W0=; b=uj98CmQH2BtKtRULhQ4GRIZw13K+8NS0pliFGDMjyfbJjPow8no+IeZTjaJJoTr6Ac 1geOVNifwOIXkvAVhUl8vNI7rLsz5Bn9AezI7053pIv/yWUTDGjnt/bEjKr2E0jNc3j1 v6N2DHV0NzeWaMjZ6nxmezmp9fwoN3NXNPMI477SjsZkl2YYsiQXFD9rCNh3YdfiI3ze UMu98Qea74J6kPbCJ6sTPa8Y098hIHDoGLI9vlKAGkQ6CCaxGUARxm7/ADmPyITT3t/J mf4xCThKqh6CdA3nSxJrBOdulgnaknsgWcZDji3pBwanJ43ywtwrgG0/lP6jgdNpEZz0 wggg== X-Gm-Message-State: APjAAAUptDoEKTWTNJYMQps42RNs9wpTKsO2zBDhuDx6fDe0q0AUWxbh oMUU1XMcyMSnHdlY+1pRAm1oKQ== X-Received: by 2002:a2e:8849:: with SMTP id z9mr6421628ljj.203.1564051351281; Thu, 25 Jul 2019 03:42:31 -0700 (PDT) Received: from localhost.localdomain (ua-83-226-44-230.bbcust.telenor.se. [83.226.44.230]) by smtp.gmail.com with ESMTPSA id k124sm7461299lfd.60.2019.07.25.03.42.30 (version=TLS1_3 cipher=AEAD-AES256-GCM-SHA384 bits=256/256); Thu, 25 Jul 2019 03:42:30 -0700 (PDT) From: Niklas Cassel To: Andy Gross , Ilia Lin , Viresh Kumar , Nishanth Menon , Stephen Boyd Cc: linux-arm-msm@vger.kernel.org, jorge.ramirez-ortiz@linaro.org, bjorn.andersson@linaro.org, ulf.hansson@linaro.org, Niklas Cassel , Rob Herring , Mark Rutland , linux-pm@vger.kernel.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [PATCH v2 06/14] dt-bindings: cpufreq: qcom-nvmem: Support pstates provided by a power domain Date: Thu, 25 Jul 2019 12:41:34 +0200 Message-Id: <20190725104144.22924-7-niklas.cassel@linaro.org> X-Mailer: git-send-email 2.21.0 In-Reply-To: <20190725104144.22924-1-niklas.cassel@linaro.org> References: <20190725104144.22924-1-niklas.cassel@linaro.org> MIME-Version: 1.0 Sender: devicetree-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: devicetree@vger.kernel.org Some Qualcomm SoCs have support for Core Power Reduction (CPR). On these platforms, we need to attach to the power domain provider providing the performance states, so that the leaky device (the CPU) can configure the performance states (which represent different CPU clock frequencies). Signed-off-by: Niklas Cassel --- .../bindings/opp/qcom-nvmem-cpufreq.txt | 111 ++++++++++++++++++ 1 file changed, 111 insertions(+) -- 2.21.0 Reviewed-by: Rob Herring diff --git a/Documentation/devicetree/bindings/opp/qcom-nvmem-cpufreq.txt b/Documentation/devicetree/bindings/opp/qcom-nvmem-cpufreq.txt index c5ea8b90e35d..e19a95318e98 100644 --- a/Documentation/devicetree/bindings/opp/qcom-nvmem-cpufreq.txt +++ b/Documentation/devicetree/bindings/opp/qcom-nvmem-cpufreq.txt @@ -23,6 +23,15 @@ In 'operating-points-v2' table: Optional properties: -------------------- +In 'cpus' nodes: +- power-domains: A phandle pointing to the PM domain specifier which provides + the performance states available for active state management. + Please refer to the power-domains bindings + Documentation/devicetree/bindings/power/power_domain.txt + and also examples below. +- power-domain-names: Should be + - 'cpr' for qcs404. + In 'operating-points-v2' table: - nvmem-cells: A phandle pointing to a nvmem-cells node representing the efuse registers that has information about the @@ -682,3 +691,105 @@ soc { }; }; }; + +Example 2: +--------- + + cpus { + #address-cells = <1>; + #size-cells = <0>; + + CPU0: cpu@100 { + device_type = "cpu"; + compatible = "arm,cortex-a53"; + reg = <0x100>; + .... + clocks = <&apcs_glb>; + operating-points-v2 = <&cpu_opp_table>; + power-domains = <&cprpd>; + power-domain-names = "cpr"; + }; + + CPU1: cpu@101 { + device_type = "cpu"; + compatible = "arm,cortex-a53"; + reg = <0x101>; + .... + clocks = <&apcs_glb>; + operating-points-v2 = <&cpu_opp_table>; + power-domains = <&cprpd>; + power-domain-names = "cpr"; + }; + + CPU2: cpu@102 { + device_type = "cpu"; + compatible = "arm,cortex-a53"; + reg = <0x102>; + .... + clocks = <&apcs_glb>; + operating-points-v2 = <&cpu_opp_table>; + power-domains = <&cprpd>; + power-domain-names = "cpr"; + }; + + CPU3: cpu@103 { + device_type = "cpu"; + compatible = "arm,cortex-a53"; + reg = <0x103>; + .... + clocks = <&apcs_glb>; + operating-points-v2 = <&cpu_opp_table>; + power-domains = <&cprpd>; + power-domain-names = "cpr"; + }; + }; + + cpu_opp_table: cpu-opp-table { + compatible = "operating-points-v2-kryo-cpu"; + opp-shared; + + opp-1094400000 { + opp-hz = /bits/ 64 <1094400000>; + required-opps = <&cpr_opp1>; + }; + opp-1248000000 { + opp-hz = /bits/ 64 <1248000000>; + required-opps = <&cpr_opp2>; + }; + opp-1401600000 { + opp-hz = /bits/ 64 <1401600000>; + required-opps = <&cpr_opp3>; + }; + }; + + cpr_opp_table: cpr-opp-table { + compatible = "operating-points-v2-qcom-level"; + + cpr_opp1: opp1 { + opp-level = <1>; + .... + }; + cpr_opp2: opp2 { + opp-level = <2>; + .... + }; + cpr_opp3: opp3 { + opp-level = <3>; + .... + }; + }; + +.... + +soc { +.... + cprpd: cpr@b018000 { + compatible = "qcom,qcs404-cpr", "qcom,cpr"; + reg = <0x0b018000 0x1000>; + .... + vdd-apc-supply = <&pms405_s3>; + #power-domain-cells = <0>; + operating-points-v2 = <&cpr_opp_table>; + .... + }; +};