From: Bjorn Andersson <bjorn.andersson@linaro.org>
To: AngeloGioacchino Del Regno <angelogioacchino.delregno@somainline.org>
Cc: agross@kernel.org, robh+dt@kernel.org, lgirdwood@gmail.com,
broonie@kernel.org, linux-arm-msm@vger.kernel.org,
devicetree@vger.kernel.org, linux-kernel@vger.kernel.org,
phone-devel@vger.kernel.org, konrad.dybcio@somainline.org,
marijn.suijten@somainline.org, jami.kettunen@somainline.org,
paul.bouchara@somainline.org, martin.botka@somainline.org,
~postmarketos/upstreaming@lists.sr.ht, jeffrey.l.hugo@gmail.com,
robh@kernel.org
Subject: Re: [PATCH v7 2/6] dt-bindings: avs: cpr: Convert binding to YAML schema
Date: Sun, 19 Sep 2021 19:51:02 -0500 [thread overview]
Message-ID: <YUfa9jF+F3ght1lN@builder.lan> (raw)
In-Reply-To: <20210901155735.629282-3-angelogioacchino.delregno@somainline.org>
On Wed 01 Sep 10:57 CDT 2021, AngeloGioacchino Del Regno wrote:
> Convert the qcom,cpr.txt document to YAML schema and place it in the
> appropriate directory, since this driver was moved from power/avs
> to soc/qcom, but forgets to move the documentation.
>
> Fixes: a7305e684fcf ("PM: AVS: qcom-cpr: Move the driver to the qcom specific drivers")
I don't see it to be a requirement that the DT binding structure follows
the Linux implementation structure, so I think it's appropriate to keep
it in power/avs and I don't think it deserves a fixes.
I would like to merge this series, could you please address Rob's
concerns on the binding?
PS. If you did the YAML-ification as the last step I would have merged
the other 5 patches...
Thanks,
Bjorn
> Signed-off-by: AngeloGioacchino Del Regno <angelogioacchino.delregno@somainline.org>
> ---
> .../bindings/power/avs/qcom,cpr.txt | 131 +-------------
> .../bindings/soc/qcom/qcom,cpr.yaml | 167 ++++++++++++++++++
> MAINTAINERS | 2 +-
> 3 files changed, 169 insertions(+), 131 deletions(-)
> create mode 100644 Documentation/devicetree/bindings/soc/qcom/qcom,cpr.yaml
>
> diff --git a/Documentation/devicetree/bindings/power/avs/qcom,cpr.txt b/Documentation/devicetree/bindings/power/avs/qcom,cpr.txt
> index ab0d5ebbad4e..2ada8cd08949 100644
> --- a/Documentation/devicetree/bindings/power/avs/qcom,cpr.txt
> +++ b/Documentation/devicetree/bindings/power/avs/qcom,cpr.txt
> @@ -1,130 +1 @@
> -QCOM CPR (Core Power Reduction)
> -
> -CPR (Core Power Reduction) is a technology to reduce core power on a CPU
> -or other device. Each OPP of a device corresponds to a "corner" that has
> -a range of valid voltages for a particular frequency. While the device is
> -running at a particular frequency, CPR monitors dynamic factors such as
> -temperature, etc. and suggests adjustments to the voltage to save power
> -and meet silicon characteristic requirements.
> -
> -- compatible:
> - Usage: required
> - Value type: <string>
> - Definition: should be "qcom,qcs404-cpr", "qcom,cpr" for qcs404
> -
> -- reg:
> - Usage: required
> - Value type: <prop-encoded-array>
> - Definition: base address and size of the rbcpr register region
> -
> -- interrupts:
> - Usage: required
> - Value type: <prop-encoded-array>
> - Definition: should specify the CPR interrupt
> -
> -- clocks:
> - Usage: required
> - Value type: <prop-encoded-array>
> - Definition: phandle to the reference clock
> -
> -- clock-names:
> - Usage: required
> - Value type: <stringlist>
> - Definition: must be "ref"
> -
> -- vdd-apc-supply:
> - Usage: required
> - Value type: <phandle>
> - Definition: phandle to the vdd-apc-supply regulator
> -
> -- #power-domain-cells:
> - Usage: required
> - Value type: <u32>
> - Definition: should be 0
> -
> -- operating-points-v2:
> - Usage: required
> - Value type: <phandle>
> - Definition: A phandle to the OPP table containing the
> - performance states supported by the CPR
> - power domain
> -
> -- acc-syscon:
> - Usage: optional
> - Value type: <phandle>
> - Definition: phandle to syscon for writing ACC settings
> -
> -- nvmem-cells:
> - Usage: required
> - Value type: <phandle>
> - Definition: phandle to nvmem cells containing the data
> - that makes up a fuse corner, for each fuse corner.
> - As well as the CPR fuse revision.
> -
> -- nvmem-cell-names:
> - Usage: required
> - Value type: <stringlist>
> - Definition: should be "cpr_quotient_offset1", "cpr_quotient_offset2",
> - "cpr_quotient_offset3", "cpr_init_voltage1",
> - "cpr_init_voltage2", "cpr_init_voltage3", "cpr_quotient1",
> - "cpr_quotient2", "cpr_quotient3", "cpr_ring_osc1",
> - "cpr_ring_osc2", "cpr_ring_osc3", "cpr_fuse_revision"
> - for qcs404.
> -
> -Example:
> -
> - cpr_opp_table: cpr-opp-table {
> - compatible = "operating-points-v2-qcom-level";
> -
> - cpr_opp1: opp1 {
> - opp-level = <1>;
> - qcom,opp-fuse-level = <1>;
> - };
> - cpr_opp2: opp2 {
> - opp-level = <2>;
> - qcom,opp-fuse-level = <2>;
> - };
> - cpr_opp3: opp3 {
> - opp-level = <3>;
> - qcom,opp-fuse-level = <3>;
> - };
> - };
> -
> - power-controller@b018000 {
> - compatible = "qcom,qcs404-cpr", "qcom,cpr";
> - reg = <0x0b018000 0x1000>;
> - interrupts = <0 15 IRQ_TYPE_EDGE_RISING>;
> - clocks = <&xo_board>;
> - clock-names = "ref";
> - vdd-apc-supply = <&pms405_s3>;
> - #power-domain-cells = <0>;
> - operating-points-v2 = <&cpr_opp_table>;
> - acc-syscon = <&tcsr>;
> -
> - nvmem-cells = <&cpr_efuse_quot_offset1>,
> - <&cpr_efuse_quot_offset2>,
> - <&cpr_efuse_quot_offset3>,
> - <&cpr_efuse_init_voltage1>,
> - <&cpr_efuse_init_voltage2>,
> - <&cpr_efuse_init_voltage3>,
> - <&cpr_efuse_quot1>,
> - <&cpr_efuse_quot2>,
> - <&cpr_efuse_quot3>,
> - <&cpr_efuse_ring1>,
> - <&cpr_efuse_ring2>,
> - <&cpr_efuse_ring3>,
> - <&cpr_efuse_revision>;
> - nvmem-cell-names = "cpr_quotient_offset1",
> - "cpr_quotient_offset2",
> - "cpr_quotient_offset3",
> - "cpr_init_voltage1",
> - "cpr_init_voltage2",
> - "cpr_init_voltage3",
> - "cpr_quotient1",
> - "cpr_quotient2",
> - "cpr_quotient3",
> - "cpr_ring_osc1",
> - "cpr_ring_osc2",
> - "cpr_ring_osc3",
> - "cpr_fuse_revision";
> - };
> +This file has been moved to ../../soc/qcom/qcom,cpr.yaml
> diff --git a/Documentation/devicetree/bindings/soc/qcom/qcom,cpr.yaml b/Documentation/devicetree/bindings/soc/qcom/qcom,cpr.yaml
> new file mode 100644
> index 000000000000..20f65427c762
> --- /dev/null
> +++ b/Documentation/devicetree/bindings/soc/qcom/qcom,cpr.yaml
> @@ -0,0 +1,167 @@
> +# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
> +%YAML 1.2
> +---
> +$id: "http://devicetree.org/schemas/soc/qcom/qcom,cpr.yaml#"
> +$schema: "http://devicetree.org/meta-schemas/core.yaml#"
> +
> +title: Qualcomm Core Power Reduction (CPR)
> +
> +description: |
> + CPR (Core Power Reduction) is a technology to reduce core power on a CPU
> + or other device. Each OPP of a device corresponds to a "corner" that has
> + a range of valid voltages for a particular frequency. While the device is
> + running at a particular frequency, CPR monitors dynamic factors such as
> + temperature, etc. and suggests adjustments to the voltage to save power
> + and meet silicon characteristic requirements.
> +
> +maintainers:
> + - Niklas Cassel <nks@flawful.org>
> +
> +properties:
> + compatible:
> + items:
> + - enum:
> + - qcom,qcs404-cpr
> + - const: qcom,cpr
> +
> + reg:
> + description: Base address and size of the RBCPR register region
> + maxItems: 1
> +
> + interrupts:
> + maxItems: 1
> +
> + clock-names:
> + items:
> + - const: ref
> +
> + clocks:
> + items:
> + - description: CPR reference clock
> +
> + vdd-apc-supply:
> + description: Autonomous Phase Control (APC) power supply
> +
> + '#power-domain-cells':
> + const: 0
> +
> + acc-syscon:
> + description: phandle to syscon for writing ACC settings
> +
> + nvmem-cells:
> + minItems: 9
> + maxItems: 32
> + description: Cells containing the fuse corners and revision data
> +
> + nvmem-cell-names:
> + minItems: 9
> + maxItems: 32
> +
> + operating-points-v2: true
> +
> +required:
> + - compatible
> + - reg
> + - interrupts
> + - clock-names
> + - clocks
> + - vdd-apc-supply
> + - "#power-domain-cells"
> + - nvmem-cells
> + - nvmem-cell-names
> + - operating-points-v2
> +
> +additionalProperties: false
> +
> +examples:
> + - |
> + #include <dt-bindings/interrupt-controller/irq.h>
> +
> + cpus {
> + #address-cells = <1>;
> + #size-cells = <0>;
> +
> + cpu@100 {
> + compatible = "arm,cortex-a53";
> + device_type = "cpu";
> + reg = <0x100>;
> + operating-points-v2 = <&cpu_opp_table>;
> + power-domains = <&cpr>;
> + power-domain-names = "cpr";
> + };
> + };
> +
> + cpu_opp_table: opp-table-cpu {
> + 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: opp-table-cpr {
> + compatible = "operating-points-v2-qcom-level";
> +
> + cpr_opp1: opp1 {
> + opp-level = <1>;
> + qcom,opp-fuse-level = <1>;
> + };
> + cpr_opp2: opp2 {
> + opp-level = <2>;
> + qcom,opp-fuse-level = <2>;
> + };
> + cpr_opp3: opp3 {
> + opp-level = <3>;
> + qcom,opp-fuse-level = <3>;
> + };
> + };
> +
> + power-controller@b018000 {
> + compatible = "qcom,qcs404-cpr", "qcom,cpr";
> + reg = <0x0b018000 0x1000>;
> + interrupts = <0 15 IRQ_TYPE_EDGE_RISING>;
> + clocks = <&xo_board>;
> + clock-names = "ref";
> + vdd-apc-supply = <&pms405_s3>;
> + #power-domain-cells = <0>;
> + operating-points-v2 = <&cpr_opp_table>;
> + acc-syscon = <&tcsr>;
> +
> + nvmem-cells = <&cpr_efuse_quot_offset1>,
> + <&cpr_efuse_quot_offset2>,
> + <&cpr_efuse_quot_offset3>,
> + <&cpr_efuse_init_voltage1>,
> + <&cpr_efuse_init_voltage2>,
> + <&cpr_efuse_init_voltage3>,
> + <&cpr_efuse_quot1>,
> + <&cpr_efuse_quot2>,
> + <&cpr_efuse_quot3>,
> + <&cpr_efuse_ring1>,
> + <&cpr_efuse_ring2>,
> + <&cpr_efuse_ring3>,
> + <&cpr_efuse_revision>;
> + nvmem-cell-names = "cpr0_quotient_offset1",
> + "cpr0_quotient_offset2",
> + "cpr0_quotient_offset3",
> + "cpr0_init_voltage1",
> + "cpr0_init_voltage2",
> + "cpr0_init_voltage3",
> + "cpr0_quotient1",
> + "cpr0_quotient2",
> + "cpr0_quotient3",
> + "cpr0_ring_osc1",
> + "cpr0_ring_osc2",
> + "cpr0_ring_osc3",
> + "cpr_fuse_revision";
> + };
> +...
> diff --git a/MAINTAINERS b/MAINTAINERS
> index f58dad1a1922..90f1db301fae 100644
> --- a/MAINTAINERS
> +++ b/MAINTAINERS
> @@ -15490,7 +15490,7 @@ M: Niklas Cassel <nks@flawful.org>
> L: linux-pm@vger.kernel.org
> L: linux-arm-msm@vger.kernel.org
> S: Maintained
> -F: Documentation/devicetree/bindings/power/avs/qcom,cpr.txt
> +F: Documentation/devicetree/bindings/soc/qcom/qcom,cpr.yaml
> F: drivers/soc/qcom/cpr.c
>
> QUALCOMM CPUFREQ DRIVER MSM8996/APQ8096
> --
> 2.32.0
>
next prev parent reply other threads:[~2021-09-20 0:51 UTC|newest]
Thread overview: 11+ messages / expand[flat|nested] mbox.gz Atom feed top
2021-09-01 15:57 [PATCH v7 0/6] Add support for Core Power Reduction v3, v4 and Hardened AngeloGioacchino Del Regno
2021-09-01 15:57 ` [PATCH v7 1/6] soc: qcom: cpr: Move common functions to new file AngeloGioacchino Del Regno
2021-10-15 11:15 ` Vladimir Zapolskiy
2021-09-01 15:57 ` [PATCH v7 2/6] dt-bindings: avs: cpr: Convert binding to YAML schema AngeloGioacchino Del Regno
2021-09-07 18:28 ` Rob Herring
2021-09-20 0:51 ` Bjorn Andersson [this message]
2021-09-01 15:57 ` [PATCH v7 3/6] arm64: qcom: qcs404: Change CPR nvmem-names AngeloGioacchino Del Regno
2021-09-01 15:57 ` [PATCH v7 4/6] soc: qcom: Add support for Core Power Reduction v3, v4 and Hardened AngeloGioacchino Del Regno
2021-10-15 11:36 ` Vladimir Zapolskiy
2021-09-01 15:57 ` [PATCH v7 5/6] MAINTAINERS: Add entry for Qualcomm CPRv3/v4/Hardened driver AngeloGioacchino Del Regno
2021-09-01 15:57 ` [PATCH v7 6/6] dt-bindings: soc: qcom: cpr3: Add bindings for CPR3 driver AngeloGioacchino Del Regno
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=YUfa9jF+F3ght1lN@builder.lan \
--to=bjorn.andersson@linaro.org \
--cc=agross@kernel.org \
--cc=angelogioacchino.delregno@somainline.org \
--cc=broonie@kernel.org \
--cc=devicetree@vger.kernel.org \
--cc=jami.kettunen@somainline.org \
--cc=jeffrey.l.hugo@gmail.com \
--cc=konrad.dybcio@somainline.org \
--cc=lgirdwood@gmail.com \
--cc=linux-arm-msm@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=marijn.suijten@somainline.org \
--cc=martin.botka@somainline.org \
--cc=paul.bouchara@somainline.org \
--cc=phone-devel@vger.kernel.org \
--cc=robh+dt@kernel.org \
--cc=robh@kernel.org \
--cc=~postmarketos/upstreaming@lists.sr.ht \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.