From patchwork Mon Aug 28 11:42:14 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Konrad Dybcio X-Patchwork-Id: 1826731 Return-Path: X-Original-To: incoming-dt@patchwork.ozlabs.org Delivered-To: patchwork-incoming-dt@legolas.ozlabs.org Authentication-Results: legolas.ozlabs.org; dkim=pass (2048-bit key; unprotected) header.d=linaro.org header.i=@linaro.org header.a=rsa-sha256 header.s=google header.b=TY2nT2jl; dkim-atps=neutral Authentication-Results: legolas.ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=vger.kernel.org (client-ip=2620:137:e000::1:20; helo=out1.vger.email; envelope-from=devicetree-owner@vger.kernel.org; receiver=patchwork.ozlabs.org) Received: from out1.vger.email (out1.vger.email [IPv6:2620:137:e000::1:20]) by legolas.ozlabs.org (Postfix) with ESMTP id 4RZ7x63mszz1yfv for ; Mon, 28 Aug 2023 21:43:38 +1000 (AEST) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S231539AbjH1LnB (ORCPT ); Mon, 28 Aug 2023 07:43:01 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:35052 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S232491AbjH1Lmj (ORCPT ); Mon, 28 Aug 2023 07:42:39 -0400 Received: from mail-lf1-x129.google.com (mail-lf1-x129.google.com [IPv6:2a00:1450:4864:20::129]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id DB5FD10E for ; Mon, 28 Aug 2023 04:42:35 -0700 (PDT) Received: by mail-lf1-x129.google.com with SMTP id 2adb3069b0e04-4ff8f2630e3so4750969e87.1 for ; Mon, 28 Aug 2023 04:42:35 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1693222954; x=1693827754; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:from:to:cc:subject:date:message-id :reply-to; bh=Lc92mAtkRQx6lROJXZsbE1Z78tE/c7LVAty0SEnStAI=; b=TY2nT2jlSIm3rdBz17IZhftwVvx9Roq33fGw36bP/M1ROGzvuz86gG84InX/9n1pOv NPK0AAV/8wnzQGzKAUgdFTJ3VkqIPWsaNm9lQqSTMGu29xgLT+gN7F5lrwLdnaups/N9 nXCuZ5y+P1XZnGXXIrgXvNJEft9MLjo/6cZGLI4d4iHfKnuRHfFUgGS+P+m8t+zqcU5m PPZ1Poi001L5R4wF2LtUMceahIGLp+M4TM5yXE19DpRqD4NPNbMbn3BnML2mZsXKXW9W TiUfzLT3g0nLOFSlVOxHs4D6xNRIXIrma569Ynf/BEyv5FNN0SjI8S5IdG0sxDNqYXrf M8nQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1693222954; x=1693827754; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=Lc92mAtkRQx6lROJXZsbE1Z78tE/c7LVAty0SEnStAI=; b=g7M5vk19tMbH+0iF+rf/mYa1JKqwRsa/0Ej9aFtZt5fMfEAarXXo2bWHG0L8w+nab1 sCLSkkr9ZTH3ojIugpzxggKyHosaKC8yLpsihYop0+sE9Zfc17RYb7LbvagfqJ4aXrj+ 2xbHLoXuDoQNhbmuynuKnUICSoBWtKyM+4KMRDtB9l7MtaNbIPPbfNinOZKadinneB94 8puVugUlW+k7epAVpRiU1twTSGZ0UXDPVRktojWm7B6Ljb9YCovF/jOO7fOPTZRL0olo 9k78PBMHMs12+SPjqidPjgn6GBD8zbCSPdXQwnMDTWeOB/wrO1tsAs1YWMCC2cn0/d4X zDlQ== X-Gm-Message-State: AOJu0Yzk43uiloypDyfChTeEO1fvaD2jz/2gGRPj4p+CKBb6twCu02E5 7dohbLs41gI1dWV8WYEBPbq+pg== X-Google-Smtp-Source: AGHT+IHs4krfqPk/ngVZJEiMOsX7zZoTdP2HqmNXWgvrBkB6uBxKns82d+V9qH9ZTaLAl59j1/U0vg== X-Received: by 2002:a05:6512:3d29:b0:500:9796:fb6 with SMTP id d41-20020a0565123d2900b0050097960fb6mr11768125lfv.40.1693222954173; Mon, 28 Aug 2023 04:42:34 -0700 (PDT) Received: from [192.168.1.101] (abyl195.neoplus.adsl.tpnet.pl. [83.9.31.195]) by smtp.gmail.com with ESMTPSA id b2-20020ac247e2000000b005009920b6afsm1547799lfp.9.2023.08.28.04.42.32 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 28 Aug 2023 04:42:33 -0700 (PDT) From: Konrad Dybcio Date: Mon, 28 Aug 2023 13:42:14 +0200 Subject: [PATCH v14 2/9] dt-bindings: opp: v2-qcom-level: Document CPR3 open/closed loop volt adjustment MIME-Version: 1.0 Message-Id: <20230217-topic-cpr3h-v14-2-9fd23241493d@linaro.org> References: <20230217-topic-cpr3h-v14-0-9fd23241493d@linaro.org> In-Reply-To: <20230217-topic-cpr3h-v14-0-9fd23241493d@linaro.org> To: AngeloGioacchino Del Regno , Andy Gross , Bjorn Andersson , Rob Herring , Krzysztof Kozlowski , Viresh Kumar , Nishanth Menon , Stephen Boyd , Niklas Cassel , Liam Girdwood , Mark Brown , Conor Dooley , "Rafael J. Wysocki" , Viresh Kumar , Ulf Hansson Cc: Robert Marko , linux-kernel@vger.kernel.org, linux-arm-msm@vger.kernel.org, devicetree@vger.kernel.org, linux-pm@vger.kernel.org, Jeffrey Hugo , Marijn Suijten , Konrad Dybcio , Krzysztof Kozlowski X-Mailer: b4 0.12.2 X-Developer-Signature: v=1; a=ed25519-sha256; t=1693222948; l=1623; i=konrad.dybcio@linaro.org; s=20230215; h=from:subject:message-id; bh=9e02GqF0W2bdk8xEgHkhPQoT5fTXD4a1qiHIfQOhR7M=; b=TX5ZrVYwwZ1ynV3DxOKAucd65FQiu2jr6VgZBujEKWHmOBGDcPpey9RZ2N0C/6mDdx5n1wpa0 W22D6tBhHRvBijjk6E2lZMAt9ly9SfEd9xPA7DO2t9AzsbdmJG5FP1f X-Developer-Key: i=konrad.dybcio@linaro.org; a=ed25519; pk=iclgkYvtl2w05SSXO5EjjSYlhFKsJ+5OSZBjOkQuEms= X-Spam-Status: No, score=-2.1 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_NONE, SPF_HELO_NONE,SPF_PASS autolearn=unavailable autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: devicetree@vger.kernel.org CPR3 and newer can be fed per-OPP voltage adjustment values for both open- and closed-loop paths to make better decisions about settling on the final voltage offset target. Document these properties. Reviewed-by: AngeloGioacchino Del Regno Tested-by: Jeffrey Hugo Reviewed-by: Krzysztof Kozlowski Signed-off-by: Konrad Dybcio --- .../devicetree/bindings/opp/opp-v2-qcom-level.yaml | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/Documentation/devicetree/bindings/opp/opp-v2-qcom-level.yaml b/Documentation/devicetree/bindings/opp/opp-v2-qcom-level.yaml index a30ef93213c0..b203ea01b17a 100644 --- a/Documentation/devicetree/bindings/opp/opp-v2-qcom-level.yaml +++ b/Documentation/devicetree/bindings/opp/opp-v2-qcom-level.yaml @@ -34,6 +34,20 @@ patternProperties: minItems: 1 maxItems: 2 + qcom,opp-cloop-vadj: + description: | + An array of per-thread values representing the closed-loop + voltage adjustment value associated with this OPP node. + $ref: /schemas/types.yaml#/definitions/int32-array + maxItems: 2 + + qcom,opp-oloop-vadj: + description: | + An array of per-thread values representing the open-loop + voltage adjustment value associated with this OPP node. + $ref: /schemas/types.yaml#/definitions/int32-array + maxItems: 2 + required: - opp-level - qcom,opp-fuse-level From patchwork Mon Aug 28 11:42:15 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Konrad Dybcio X-Patchwork-Id: 1826733 Return-Path: X-Original-To: incoming-dt@patchwork.ozlabs.org Delivered-To: patchwork-incoming-dt@legolas.ozlabs.org Authentication-Results: legolas.ozlabs.org; dkim=pass (2048-bit key; unprotected) header.d=linaro.org header.i=@linaro.org header.a=rsa-sha256 header.s=google header.b=Fn3raZ3e; dkim-atps=neutral Authentication-Results: legolas.ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=vger.kernel.org (client-ip=2620:137:e000::1:20; helo=out1.vger.email; envelope-from=devicetree-owner@vger.kernel.org; receiver=patchwork.ozlabs.org) Received: from out1.vger.email (out1.vger.email [IPv6:2620:137:e000::1:20]) by legolas.ozlabs.org (Postfix) with ESMTP id 4RZ7xD2Bmbz1yfv for ; Mon, 28 Aug 2023 21:43:44 +1000 (AEST) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S232491AbjH1LnF (ORCPT ); Mon, 28 Aug 2023 07:43:05 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:35068 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S232493AbjH1Lmk (ORCPT ); Mon, 28 Aug 2023 07:42:40 -0400 Received: from mail-lf1-x12a.google.com (mail-lf1-x12a.google.com [IPv6:2a00:1450:4864:20::12a]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 85311E8 for ; Mon, 28 Aug 2023 04:42:37 -0700 (PDT) Received: by mail-lf1-x12a.google.com with SMTP id 2adb3069b0e04-50098cc8967so4926392e87.1 for ; Mon, 28 Aug 2023 04:42:37 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1693222956; x=1693827756; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:from:to:cc:subject:date:message-id :reply-to; bh=xaDCri8bh/X+h9P/7gRCABdyD2SX8PxejDvG8Ft5418=; b=Fn3raZ3e7r6TBzCqZnALzvYm6C3Z0cSp8xSKCcpS5Xsg/EfnU++UGz+Xfl33Ntdacy 976W7/4knAzX17zCphPp8Trf3ds2srMDV6gQ4U1WyK+GfTj7UERHupUXZ+GYLbGERCtU RFn/b7TAOA4i/7X9Fa9Fb1N5bdGv87DSA3ka8zMtHOCeA+Cb/e6cnecO0MbIDxxK1oY9 phCptuMJ+xXe1fxBeUlSOWvLUMlEngO6sWu4q+11CnA5fS2NF/Q94DeYmPuN9KN9IlKG 73YDMuQKfzopRBjlg7+b8PRQDvHx+hU3/61ZVKXjdG/JDCYN4Wsox7N55u2Xg6O4dyIR P1UA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1693222956; x=1693827756; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=xaDCri8bh/X+h9P/7gRCABdyD2SX8PxejDvG8Ft5418=; b=l8aket8OipzlK4ORaGZPd97HuphGCu5Hj7YD+ysPr/dz7F1G2u/wvEo9k1+ikbHwnG vFhoWbkFx4Da7D+y1BlQ38Lf8n/E6h2sEVC++VdK32i35EW40JI9kpje/uAi1ifxsZ7F i2mqYWG5kp5i5v0XlOUwCTodydtHaRM3A30jjtmG6Z/IWotWrbaxWRBIYwQHC1luEGqW 0rUTqcpx0Uzfk35q3eJHCNt0XTLhfztPVksmSC4wnfHqGWIWU5/aGHiYe2pp+N/L7wQe l13n+SbI4GvEkSNcT+3/uIPyoXbN37HfMP0w1dIIdz/fH+5Zp7Xyg24iRWLzCA+xEPH7 UHkQ== X-Gm-Message-State: AOJu0YzNq2JO4ZAQW5sf3TAg96NfaE/16RWHcNTaMjJzLL3qiZWLL5uj 5Y8qz2BRIUHvfS2k7zmk0u0Ntg== X-Google-Smtp-Source: AGHT+IEZ0Xs64xMChjalgHX9vJLY+AMIfseNVEu190t+5ZYkw5B736DRszeHusV3S+8v8nV0mPnfhg== X-Received: by 2002:a05:6512:1326:b0:4ff:7ecb:a810 with SMTP id x38-20020a056512132600b004ff7ecba810mr19131772lfu.33.1693222955799; Mon, 28 Aug 2023 04:42:35 -0700 (PDT) Received: from [192.168.1.101] (abyl195.neoplus.adsl.tpnet.pl. [83.9.31.195]) by smtp.gmail.com with ESMTPSA id b2-20020ac247e2000000b005009920b6afsm1547799lfp.9.2023.08.28.04.42.34 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 28 Aug 2023 04:42:35 -0700 (PDT) From: Konrad Dybcio Date: Mon, 28 Aug 2023 13:42:15 +0200 Subject: [PATCH v14 3/9] dt-bindings: soc: qcom: cpr3: Add bindings for CPR3 driver MIME-Version: 1.0 Message-Id: <20230217-topic-cpr3h-v14-3-9fd23241493d@linaro.org> References: <20230217-topic-cpr3h-v14-0-9fd23241493d@linaro.org> In-Reply-To: <20230217-topic-cpr3h-v14-0-9fd23241493d@linaro.org> To: AngeloGioacchino Del Regno , Andy Gross , Bjorn Andersson , Rob Herring , Krzysztof Kozlowski , Viresh Kumar , Nishanth Menon , Stephen Boyd , Niklas Cassel , Liam Girdwood , Mark Brown , Conor Dooley , "Rafael J. Wysocki" , Viresh Kumar , Ulf Hansson Cc: Robert Marko , linux-kernel@vger.kernel.org, linux-arm-msm@vger.kernel.org, devicetree@vger.kernel.org, linux-pm@vger.kernel.org, Jeffrey Hugo , Marijn Suijten , Konrad Dybcio , AngeloGioacchino Del Regno X-Mailer: b4 0.12.2 X-Developer-Signature: v=1; a=ed25519-sha256; t=1693222948; l=10230; i=konrad.dybcio@linaro.org; s=20230215; h=from:subject:message-id; bh=32ylKNEUN3TP9SwfPKUA6/VmnMgK0eONBJFqoJdPRi0=; b=WWTMHHXd11ffmwnUB9lzD/8EV3wDkZze8Ao00ItlRyAAVXxuVPpm647RCsw/7oTvM5bdo/LeE g4DreDT77PhA8wtsM2x+nA7zN23n/lvZ/At/wDflYTiMLBqeJww+9G9 X-Developer-Key: i=konrad.dybcio@linaro.org; a=ed25519; pk=iclgkYvtl2w05SSXO5EjjSYlhFKsJ+5OSZBjOkQuEms= X-Spam-Status: No, score=-2.1 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_BLOCKED, SPF_HELO_NONE,SPF_PASS autolearn=unavailable autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: devicetree@vger.kernel.org From: AngeloGioacchino Del Regno Add the bindings for the CPR3 driver to the documentation. Signed-off-by: AngeloGioacchino Del Regno [Konrad: Make binding check pass; update AGdR's email] Tested-by: Jeffrey Hugo Signed-off-by: Konrad Dybcio --- .../devicetree/bindings/soc/qcom/qcom,cpr3.yaml | 286 +++++++++++++++++++++ 1 file changed, 286 insertions(+) diff --git a/Documentation/devicetree/bindings/soc/qcom/qcom,cpr3.yaml b/Documentation/devicetree/bindings/soc/qcom/qcom,cpr3.yaml new file mode 100644 index 000000000000..acf2e294866b --- /dev/null +++ b/Documentation/devicetree/bindings/soc/qcom/qcom,cpr3.yaml @@ -0,0 +1,286 @@ +# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause) +%YAML 1.2 +--- +$id: http://devicetree.org/schemas/soc/qcom/qcom,cpr3.yaml# +$schema: http://devicetree.org/meta-schemas/core.yaml# + +title: Qualcomm Core Power Reduction v3/v4/Hardened (CPR3, CPR4, CPRh) + +description: + CPR (Core Power Reduction) is a technology to reduce core power of a CPU + (or another device). Each OPP of a device corresponds to a "corner" that + has a range of valid voltages for a particular frequency. + The CPR monitors dynamic factors such as temperature, etc. and suggests + or (in the CPR-hardened case) applies voltage adjustments to save power + and meet silicon characteristic requirements for a given chip unit. + +maintainers: + - AngeloGioacchino Del Regno + +properties: + compatible: + oneOf: + - const: qcom,cpr3 + - const: qcom,cpr4 + - items: + - enum: + - qcom,msm8998-cprh + - qcom,sdm630-cprh + - const: qcom,cprh + + reg: + items: + - description: Register space of the CPR controller0 + - description: Register space of the CPR controller1 + + interrupts: + maxItems: 1 + + clocks: + items: + - description: CPR reference clock + + vdd-supply: + description: Autonomous Phase Control (APC) or other power supply + + '#power-domain-cells': + const: 1 + + qcom,acc: + $ref: /schemas/types.yaml#/definitions/phandle + description: phandle to syscon for writing ACC settings + + nvmem-cells: + description: Cells containing the fuse corners and revision data + maxItems: 32 + + nvmem-cell-names: + maxItems: 32 + + operating-points-v2: true + + power-domains: + maxItems: 1 + +required: + - compatible + - reg + - clocks + - operating-points-v2 + - "#power-domain-cells" + - nvmem-cells + - nvmem-cell-names + +additionalProperties: false + +allOf: + - if: + properties: + compatible: + contains: + enum: + - qcom,msm8998-cprh + then: + properties: + nvmem-cell-names: + items: + - const: cpr_speed_bin + - const: cpr_fuse_revision + - const: cpr0_quotient1 + - const: cpr0_quotient2 + - const: cpr0_quotient3 + - const: cpr0_quotient4 + - const: cpr0_quotient_offset2 + - const: cpr0_quotient_offset3 + - const: cpr0_quotient_offset4 + - const: cpr0_init_voltage1 + - const: cpr0_init_voltage2 + - const: cpr0_init_voltage3 + - const: cpr0_init_voltage4 + - const: cpr0_ring_osc1 + - const: cpr0_ring_osc2 + - const: cpr0_ring_osc3 + - const: cpr0_ring_osc4 + - const: cpr1_quotient1 + - const: cpr1_quotient2 + - const: cpr1_quotient3 + - const: cpr1_quotient4 + - const: cpr1_quotient_offset2 + - const: cpr1_quotient_offset3 + - const: cpr1_quotient_offset4 + - const: cpr1_init_voltage1 + - const: cpr1_init_voltage2 + - const: cpr1_init_voltage3 + - const: cpr1_init_voltage4 + - const: cpr1_ring_osc1 + - const: cpr1_ring_osc2 + - const: cpr1_ring_osc3 + - const: cpr1_ring_osc4 + +examples: + - | + #include + #include + + cpus { + #address-cells = <2>; + #size-cells = <0>; + + cpu@0 { + compatible = "qcom,kryo280"; + device_type = "cpu"; + reg = <0x0 0x0>; + operating-points-v2 = <&cpu0_opp_table>; + power-domains = <&apc_cprh 0>; + power-domain-names = "cprh"; + }; + + cpu@100 { + compatible = "qcom,kryo280"; + device_type = "cpu"; + reg = <0x0 0x100>; + operating-points-v2 = <&cpu4_opp_table>; + power-domains = <&apc_cprh 1>; + power-domain-names = "cprh"; + }; + }; + + cpu0_opp_table: opp-table-cpu0 { + compatible = "operating-points-v2"; + opp-shared; + + opp-1843200000 { + opp-hz = /bits/ 64 <1843200000>; + required-opps = <&cprh_opp3>; + }; + + opp-1094400000 { + opp-hz = /bits/ 64 <1094400000>; + required-opps = <&cprh_opp2>; + }; + + opp-300000000 { + opp-hz = /bits/ 64 <300000000>; + required-opps = <&cprh_opp1>; + }; + }; + + cpu4_opp_table: opp-table-cpu4 { + compatible = "operating-points-v2"; + opp-shared; + + opp-2208000000 { + opp-hz = /bits/ 64 <2208000000>; + required-opps = <&cprh_opp3>; + }; + + opp-1113600000 { + opp-hz = /bits/ 64 <1113600000>; + required-opps = <&cprh_opp2>; + }; + + opp-300000000 { + opp-hz = /bits/ 64 <300000000>; + required-opps = <&cprh_opp1>; + }; + }; + + cprh_opp_table: opp-table-cprh { + compatible = "operating-points-v2-qcom-level"; + + cprh_opp1: opp-1 { + opp-level = <1>; + qcom,opp-fuse-level = <1>; + qcom,opp-cloop-vadj = <0>; + qcom,opp-oloop-vadj = <0>; + }; + + cprh_opp2: opp-2 { + opp-level = <2>; + qcom,opp-fuse-level = <2>; + qcom,opp-cloop-vadj = <0>; + qcom,opp-oloop-vadj = <0>; + }; + + cprh_opp3: opp-3 { + opp-level = <3>; + qcom,opp-fuse-level = <2 3>; + qcom,opp-cloop-vadj = <0>; + qcom,opp-oloop-vadj = <0>; + }; + }; + + apc_cprh: power-controller@179c8000 { + compatible = "qcom,msm8998-cprh", "qcom,cprh"; + reg = <0x0179c8000 0x4000>, <0x0179c4000 0x4000>; + clocks = <&gcc GCC_HMSS_RBCPR_CLK>; + + operating-points-v2 = <&cprh_opp_table>; + #power-domain-cells = <1>; + + nvmem-cells = <&cpr_efuse_speedbin>, + <&cpr_fuse_revision>, + <&cpr_quot0_pwrcl>, + <&cpr_quot1_pwrcl>, + <&cpr_quot2_pwrcl>, + <&cpr_quot3_pwrcl>, + <&cpr_quot_offset1_pwrcl>, + <&cpr_quot_offset2_pwrcl>, + <&cpr_quot_offset3_pwrcl>, + <&cpr_init_voltage0_pwrcl>, + <&cpr_init_voltage1_pwrcl>, + <&cpr_init_voltage2_pwrcl>, + <&cpr_init_voltage3_pwrcl>, + <&cpr_ro_sel0_pwrcl>, + <&cpr_ro_sel1_pwrcl>, + <&cpr_ro_sel2_pwrcl>, + <&cpr_ro_sel3_pwrcl>, + <&cpr_quot0_perfcl>, + <&cpr_quot1_perfcl>, + <&cpr_quot2_perfcl>, + <&cpr_quot3_perfcl>, + <&cpr_quot_offset1_perfcl>, + <&cpr_quot_offset2_perfcl>, + <&cpr_quot_offset3_perfcl>, + <&cpr_init_voltage0_perfcl>, + <&cpr_init_voltage1_perfcl>, + <&cpr_init_voltage2_perfcl>, + <&cpr_init_voltage3_perfcl>, + <&cpr_ro_sel0_perfcl>, + <&cpr_ro_sel1_perfcl>, + <&cpr_ro_sel2_perfcl>, + <&cpr_ro_sel3_perfcl>; + nvmem-cell-names = "cpr_speed_bin", + "cpr_fuse_revision", + "cpr0_quotient1", + "cpr0_quotient2", + "cpr0_quotient3", + "cpr0_quotient4", + "cpr0_quotient_offset2", + "cpr0_quotient_offset3", + "cpr0_quotient_offset4", + "cpr0_init_voltage1", + "cpr0_init_voltage2", + "cpr0_init_voltage3", + "cpr0_init_voltage4", + "cpr0_ring_osc1", + "cpr0_ring_osc2", + "cpr0_ring_osc3", + "cpr0_ring_osc4", + "cpr1_quotient1", + "cpr1_quotient2", + "cpr1_quotient3", + "cpr1_quotient4", + "cpr1_quotient_offset2", + "cpr1_quotient_offset3", + "cpr1_quotient_offset4", + "cpr1_init_voltage1", + "cpr1_init_voltage2", + "cpr1_init_voltage3", + "cpr1_init_voltage4", + "cpr1_ring_osc1", + "cpr1_ring_osc2", + "cpr1_ring_osc3", + "cpr1_ring_osc4"; + }; +...