From patchwork Thu Oct 20 08:44:55 2016 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Viresh Kumar X-Patchwork-Id: 9386301 Return-Path: Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org [172.30.200.125]) by pdx-korg-patchwork.web.codeaurora.org (Postfix) with ESMTP id CAC3860487 for ; Thu, 20 Oct 2016 08:53:21 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id B982F28A2A for ; Thu, 20 Oct 2016 08:53:21 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id ADE7428A80; Thu, 20 Oct 2016 08:53:21 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on pdx-wl-mail.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-6.3 required=2.0 tests=BAYES_00,DKIM_SIGNED, RCVD_IN_DNSWL_HI, RCVD_IN_SORBS_SPAM, T_DKIM_INVALID autolearn=unavailable version=3.3.1 Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 1A46D28A2A for ; Thu, 20 Oct 2016 08:53:21 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S934992AbcJTIwZ (ORCPT ); Thu, 20 Oct 2016 04:52:25 -0400 Received: from mail-pf0-f178.google.com ([209.85.192.178]:36491 "EHLO mail-pf0-f178.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S933943AbcJTIpQ (ORCPT ); Thu, 20 Oct 2016 04:45:16 -0400 Received: by mail-pf0-f178.google.com with SMTP id e6so32515655pfk.3 for ; Thu, 20 Oct 2016 01:45:15 -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 :in-reply-to:references; bh=hHJU3h/ow5h7u8BknCELlV/92fnFyWz32W5ynKu9fak=; b=ApHhSa9tJLijWpszNA7fIQkSfE1+Boztnyjta/1NeaMUsybBHZvrTirUGihgt7htFY Y+eXpuezTnd5uUG1EETn/tpaUgIUtLk5E36hLGqcDg9RS2Ozyuqv/VR3bPIY7tBzFIC0 HTILRJ9rt5+tbkmx0WYoxmrA0GOKjO4qxrIP8= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:in-reply-to:references; bh=hHJU3h/ow5h7u8BknCELlV/92fnFyWz32W5ynKu9fak=; b=bwCVSPy4nMU7dWAZKlU6UDBvxVnYJB6ydILUtl4VesHHNZZXZZsiSU2LATbF7zDHIs F1TvEVmoJEfvdc0ro5w5RR+0wqN/CvUZBNLny1QQgog+Zq49+/iD6i8azYJ30V3W5j+d 14Ik/sPyzLTJP68ImUGnTAqEre2iFUwjBnn27zE/QQ85VHwibbgFhxETsN/dm4UK+25w W84lx7s8jDNi4kufo7sADFJuaphFd3cCYTimbmvEfBOfNSLNol6N6d/xgNdwg0Dn5J+8 cNQBSkSoJ5sib5zE9uiacteGY0rRV/nffCvH2MR1imrs+RH5/31JQo0h2pZ3sHLF05dM KWpg== X-Gm-Message-State: AA6/9RnnaVRgArmVPJXfvbSAbbRZgynzjr/N7xA5tStg7W5K8ASZ6rh08GOOH00FdHACiSoP X-Received: by 10.98.157.65 with SMTP id i62mr19295985pfd.150.1476953114984; Thu, 20 Oct 2016 01:45:14 -0700 (PDT) Received: from localhost ([171.61.116.10]) by smtp.gmail.com with ESMTPSA id sv8sm69755986pab.18.2016.10.20.01.45.13 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Thu, 20 Oct 2016 01:45:14 -0700 (PDT) From: Viresh Kumar To: Rafael Wysocki , nm@ti.com, sboyd@codeaurora.org, Viresh Kumar Cc: linaro-kernel@lists.linaro.org, linux-pm@vger.kernel.org, linux-kernel@vger.kernel.org, Vincent Guittot , robh@kernel.org, d-gerlach@ti.com, broonie@kernel.org, Viresh Kumar , devicetree@vger.kernel.org Subject: [PATCH V2 1/8] PM / OPP: Reword binding supporting multiple regulators per device Date: Thu, 20 Oct 2016 14:14:55 +0530 Message-Id: <891ef8705e13dff331a3135647f4c18f88402a12.1476952750.git.viresh.kumar@linaro.org> X-Mailer: git-send-email 2.7.1.410.g6faf27b In-Reply-To: References: In-Reply-To: References: 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 On certain platforms (like TI), DVFS for a single device (CPU) requires configuring multiple power supplies. The OPP bindings already contains binding and example to explain this case, but it isn't sufficient. For example, there is no way for the code parsing these bindings to know which voltage values belong to which power supply. Also its not possible to know the order in which the supplies need to be configured while switching OPPs. This patch tries to clarify on those details and does some minor changes as well. Note that the bindings do not specify the order in which the regulators need to be programmed and the order in which the entries are added for the supplies. The user of the bindings (like the kernel) shall know these details already and the DT is responsible to supply only the readings for the regulators. Cc: Mark Brown Cc: devicetree@vger.kernel.org Signed-off-by: Viresh Kumar Acked-by: Rob Herring Reviewed-by: Stephen Boyd --- Documentation/devicetree/bindings/opp/opp.txt | 25 +++++++++++++++++-------- 1 file changed, 17 insertions(+), 8 deletions(-) diff --git a/Documentation/devicetree/bindings/opp/opp.txt b/Documentation/devicetree/bindings/opp/opp.txt index ee91cbdd95ee..af476df510f1 100644 --- a/Documentation/devicetree/bindings/opp/opp.txt +++ b/Documentation/devicetree/bindings/opp/opp.txt @@ -86,8 +86,13 @@ properties. Single entry is for target voltage and three entries are for voltages. - Entries for multiple regulators must be present in the same order as - regulators are specified in device's DT node. + Entries for multiple regulators shall be provided in the same field separated + by angular brackets <>. The OPP binding doesn't provide any provisions to + relate the values to their power supplies or the order in which the supplies + need to be configured. + + Entries for all regulators shall be of the same size, i.e. either all use a + single value or triplets. - opp-microvolt-: Named opp-microvolt property. This is exactly similar to the above opp-microvolt property, but allows multiple voltage ranges to be @@ -104,10 +109,12 @@ properties. Should only be set if opp-microvolt is set for the OPP. - Entries for multiple regulators must be present in the same order as - regulators are specified in device's DT node. If this property isn't required - for few regulators, then this should be marked as zero for them. If it isn't - required for any regulator, then this property need not be present. + Entries for multiple regulators shall be provided in the same field separated + by angular brackets <>. If current values aren't required for a regulator, + then it shall be filled with 0. If current values aren't required for any of + the regulators, then this field is not required. The OPP binding doesn't + provide any provisions to relate the values to their power supplies or the + order in which the supplies need to be configured. - opp-microamp-: Named opp-microamp property. Similar to opp-microvolt- property, but for microamp instead. @@ -386,10 +393,12 @@ Example 4: Handling multiple regulators / { cpus { cpu@0 { - compatible = "arm,cortex-a7"; + compatible = "vendor,cpu-type"; ... - cpu-supply = <&cpu_supply0>, <&cpu_supply1>, <&cpu_supply2>; + vcc0-supply = <&cpu_supply0>; + vcc1-supply = <&cpu_supply1>; + vcc2-supply = <&cpu_supply2>; operating-points-v2 = <&cpu0_opp_table>; }; };