linux-arm-msm.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Niklas Cassel <nks@flawful.org>
To: "Rafael J. Wysocki" <rjw@rjwysocki.net>
Cc: Niklas Cassel <niklas.cassel@linaro.org>,
	linux-arm-msm@vger.kernel.org, amit.kucheria@linaro.org,
	sboyd@kernel.org, vireshk@kernel.org, bjorn.andersson@linaro.org,
	ulf.hansson@linaro.org, Rob Herring <robh+dt@kernel.org>,
	Mark Rutland <mark.rutland@arm.com>,
	linux-pm@vger.kernel.org, devicetree@vger.kernel.org,
	linux-kernel@vger.kernel.org
Subject: Re: [PATCH v7 1/5] dt-bindings: power: avs: Add support for CPR (Core Power Reduction)
Date: Fri, 20 Dec 2019 15:33:56 +0100	[thread overview]
Message-ID: <20191220143356.cprp55jmuhtcx7wr@flawful.org> (raw)
In-Reply-To: <121319954.uyNvbQYpoT@kreacher>

On Fri, Dec 20, 2019 at 10:31:53AM +0100, Rafael J. Wysocki wrote:
> On Friday, November 29, 2019 10:39:11 PM CET Niklas Cassel wrote:
> > Add DT bindings to describe the CPR HW found on certain Qualcomm SoCs.
> > 
> > Co-developed-by: Jorge Ramirez-Ortiz <jorge.ramirez-ortiz@linaro.org>
> > Signed-off-by: Jorge Ramirez-Ortiz <jorge.ramirez-ortiz@linaro.org>
> > Signed-off-by: Niklas Cassel <niklas.cassel@linaro.org>
> > Reviewed-by: Rob Herring <robh@kernel.org>
> > Reviewed-by: Bjorn Andersson <bjorn.andersson@linaro.org>
> > Reviewed-by: Ulf Hansson <ulf.hansson@linaro.org>
> > ---
> > Changes since v6:
> > -Picked up Bjorn's and Ulf's Reviewed-by.
> > 
> >  .../bindings/power/avs/qcom,cpr.txt           | 130 ++++++++++++++++++
> >  1 file changed, 130 insertions(+)
> >  create mode 100644 Documentation/devicetree/bindings/power/avs/qcom,cpr.txt
> > 
> > diff --git a/Documentation/devicetree/bindings/power/avs/qcom,cpr.txt b/Documentation/devicetree/bindings/power/avs/qcom,cpr.txt
> > new file mode 100644
> > index 000000000000..ab0d5ebbad4e
> > --- /dev/null
> > +++ b/Documentation/devicetree/bindings/power/avs/qcom,cpr.txt
> > @@ -0,0 +1,130 @@
> > +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";
> > +	};
> > 
> 
> I have queued up this one and the [2/5] for 5.6, but if you'd rather want them
> to go in via a different patch, please let me know and I'll drop them.
> 

Thanks a lot Rafael!

I would very much prefer them to go via your tree.

Unfortunately it seems like kbuild test robot
found an incorrect printk format specifier in
one of the debug prints.

Line 838
dev_dbg(dev, "efuse read(%s) = %x, bytes %ld\n", cname, *data, len);

should be
dev_dbg(dev, "efuse read(%s) = %x, bytes %zd\n", cname, *data, len);

So %zd rather than %ld.

This was obviously an error, but didn't show when
compiling on arm64 or x86_64.

Sorry for this inconvenience.

Could you fix up the commit or do I need to do a respin?


Kind regards,
Niklas

  reply	other threads:[~2019-12-20 14:40 UTC|newest]

Thread overview: 10+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-11-29 21:39 [PATCH v7 0/5] Add support for QCOM Core Power Reduction Niklas Cassel
2019-11-29 21:39 ` [PATCH v7 1/5] dt-bindings: power: avs: Add support for CPR (Core Power Reduction) Niklas Cassel
2019-12-20  9:31   ` Rafael J. Wysocki
2019-12-20 14:33     ` Niklas Cassel [this message]
2019-12-23 14:58       ` Niklas Cassel
2019-11-29 21:39 ` [PATCH v7 2/5] " Niklas Cassel
2019-12-02  9:56   ` Ulf Hansson
2019-11-29 21:39 ` [PATCH v7 3/5] arm64: dts: qcom: qcs404: Add CPR and populate OPP table Niklas Cassel
2019-11-29 21:39 ` [PATCH v7 4/5] arm64: defconfig: enable CONFIG_QCOM_CPR Niklas Cassel
2019-11-29 21:39 ` [PATCH v7 5/5] arm64: defconfig: enable CONFIG_ARM_QCOM_CPUFREQ_NVMEM Niklas Cassel

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=20191220143356.cprp55jmuhtcx7wr@flawful.org \
    --to=nks@flawful.org \
    --cc=amit.kucheria@linaro.org \
    --cc=bjorn.andersson@linaro.org \
    --cc=devicetree@vger.kernel.org \
    --cc=linux-arm-msm@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-pm@vger.kernel.org \
    --cc=mark.rutland@arm.com \
    --cc=niklas.cassel@linaro.org \
    --cc=rjw@rjwysocki.net \
    --cc=robh+dt@kernel.org \
    --cc=sboyd@kernel.org \
    --cc=ulf.hansson@linaro.org \
    --cc=vireshk@kernel.org \
    /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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).