From: Mikko Perttunen <mikko.perttunen-/1wQRMveznE@public.gmane.org>
To: Thierry Reding <thierry.reding-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
Cc: swarren-3lzwWm7+Weoh9ZMKESR00Q@public.gmane.org,
gnurou-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org,
pdeschrijver-DDmLM1+adcrQT0dZR+AlfA@public.gmane.org,
rjw-LthD3rsA81gm4RdzfppkhA@public.gmane.org,
viresh.kumar-QSEj5FYQhm4dnm+yROfE0A@public.gmane.org,
mturquette-QSEj5FYQhm4dnm+yROfE0A@public.gmane.org,
pwalmsley-DDmLM1+adcrQT0dZR+AlfA@public.gmane.org,
vinceh-DDmLM1+adcrQT0dZR+AlfA@public.gmane.org,
pgaikwad-DDmLM1+adcrQT0dZR+AlfA@public.gmane.org,
linux-kernel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org,
linux-pm-u79uwXL29TY76Z2rM5mHXA@public.gmane.org,
linux-tegra-u79uwXL29TY76Z2rM5mHXA@public.gmane.org,
linux-arm-kernel-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r@public.gmane.org,
tuomas.tynkkynen-X3B1VOXEql0@public.gmane.org,
Tuomas Tynkkynen
<ttynkkynen-DDmLM1+adcrQT0dZR+AlfA@public.gmane.org>
Subject: Re: [PATCH v7 01/16] clk: tegra: Add binding for the Tegra124 DFLL clocksource
Date: Fri, 13 Feb 2015 12:18:51 +0200 [thread overview]
Message-ID: <54DDCF8B.1050903@kapsi.fi> (raw)
In-Reply-To: <20150212224242.GA23500@mithrandir>
On 02/13/2015 12:42 AM, Thierry Reding wrote:
> On Thu, Jan 08, 2015 at 03:22:04PM +0200, Mikko Perttunen wrote:
>> From: Tuomas Tynkkynen <ttynkkynen-DDmLM1+adcrQT0dZR+AlfA@public.gmane.org>
>>
>> The DFLL is the main clocksource for the fast CPU cluster on Tegra124
>> and also provides automatic CPU rail voltage scaling as well. The DFLL
>> is a separate IP block from the usual Tegra124 clock-and-reset
>> controller, so it gets its own node in the device tree.
>>
>> Signed-off-by: Tuomas Tynkkynen <ttynkkynen-DDmLM1+adcrQT0dZR+AlfA@public.gmane.org>
>> Signed-off-by: Mikko Perttunen <mikko.perttunen-/1wQRMveznE@public.gmane.org>
>> ---
>> .../bindings/clock/nvidia,tegra124-dfll.txt | 69 ++++++++++++++++++++++
>> 1 file changed, 69 insertions(+)
>> create mode 100644 Documentation/devicetree/bindings/clock/nvidia,tegra124-dfll.txt
>>
>> diff --git a/Documentation/devicetree/bindings/clock/nvidia,tegra124-dfll.txt b/Documentation/devicetree/bindings/clock/nvidia,tegra124-dfll.txt
>> new file mode 100644
>> index 0000000..54c62ac
>> --- /dev/null
>> +++ b/Documentation/devicetree/bindings/clock/nvidia,tegra124-dfll.txt
>> @@ -0,0 +1,69 @@
>> +NVIDIA Tegra124 DFLL FCPU clocksource
>> +
>> +This binding uses the common clock binding:
>> +Documentation/devicetree/bindings/clock/clock-bindings.txt
>> +
>> +The DFLL IP block on Tegra is a root clocksource designed for clocking
>> +the fast CPU cluster. It consists of a free-running voltage controlled
>> +oscillator connected to the CPU voltage rail (VDD_CPU), and a closed loop
>> +control module that will automatically adjust the VDD_CPU voltage by
>> +communicating with an off-chip PMIC either via an I2C bus or via PWM signals.
>
> How would PWM communication work? The documentation below doesn't
> describe it, so perhaps either leave that part out until the binding is
> updated to support it, or maybe make an explicit note that this mode of
> operation isn't supported yet?
Yes, I'll edit this part.
>
>> +Required properties:
>> +- compatible : should be "nvidia,tegra124-dfll-fcpu"
>> +- reg : Defines the following set of registers, in the order listed:
>> + - registers for the DFLL control logic.
>> + - registers for the I2C output logic.
>> + - registers for the integrated I2C master controller.
>> + - look-up table RAM for voltage register values.
>
> Why do these all need to be separate sets? According to the TRM this is
> a single IP block with a single register region, why the need to split
> them apart?
I will have to check with Tuomas if he had a reason to do it this way.
>
>> +- interrupts: Should contain the DFLL block interrupt.
>> +- clocks: Must contain an entry for each entry in clock-names.
>> + See ../clocks/clock-bindings.txt for details.
>> +- clock-names: Must include the following entries:
>> + - soc: Clock source for the DFLL control logic.
>> + - ref: The closed loop reference clock
>> + - i2c: Clock source for the integrated I2C master.
>> +- #clock-cells: Must be 0.
>> +- clock-output-names: Name of the clock output.
>> +- vdd-cpu-supply: Regulator for the CPU voltage rail that the DFLL
>> + hardware will start controlling.
>
> How does the hardware control it? How do we go from regulator phandle to
> something that the hardware will know how to access?
Looks like this property doesn't exist in the current device tree, along
with some other properties. The compatible-string noted above is wrong
too. I'll fix these for the next version.
>
>> +Required properties for the control loop parameters:
>> +- nvidia,sample-rate: Sample rate of the DFLL control loop.
>> +- nvidia,droop-ctrl: See the register CL_DVFS_DROOP_CTRL in the TRM.
>> +- nvidia,force-mode: See the field DFLL_PARAMS_FORCE_MODE in the TRM.
>> +- nvidia,cf: Numeric value, see the field DFLL_PARAMS_CF_PARAM in the TRM.
>> +- nvidia,ci: Numeric value, see the field DFLL_PARAMS_CI_PARAM in the TRM.
>> +- nvidia,cg: Numeric value, see the field DFLL_PARAMS_CG_PARAM in the TRM.
>> +- nvidia,cg-scale: Boolean value, see the field DFLL_PARAMS_CG_SCALE in the TRM.
>> +
>> +Required properties for I2C mode:
>> +- nvidia,i2c-fs-rate: I2C transfer rate, if using FS mode.
>
> What's FS mode?
I would imagine it stands for full speed. I'll expand the abbreviation.
>
>> +
>> +Example:
>> +
>> +dfll@0,70110000 {
>
> Perhaps this should be "clock@0,70110000"?
Probably.
>
>> + compatible = "nvidia,tegra124-dfll";
>> + reg = <0 0x70110000 0 0x100>, /* DFLL control */
>> + <0 0x70110000 0 0x100>, /* I2C output control */
>> + <0 0x70110100 0 0x100>, /* Integrated I2C controller */
>> + <0 0x70110200 0 0x100>; /* Look-up table RAM */
>> + interrupts = <GIC_SPI 62 IRQ_TYPE_LEVEL_HIGH>;
>> + clocks = <&tegra_car TEGRA124_CLK_DFLL_SOC>,
>> + <&tegra_car TEGRA124_CLK_DFLL_REF>,
>> + <&tegra_car TEGRA124_CLK_I2C5>;
>
> If this controls I2C5 now, should it be documented that we can't use
> this controller in software while it is in use by DFLL?
I'll add a note about this.
>
> Thierry
>
Cheers,
Mikko.
next prev parent reply other threads:[~2015-02-13 10:18 UTC|newest]
Thread overview: 30+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-01-08 13:22 [PATCH v7 00/16] Tegra124 CL-DVFS / DFLL clocksource + cpufreq Mikko Perttunen
2015-01-08 13:22 ` [PATCH v7 02/16] clk: tegra: Add library for the DFLL clock source (open-loop mode) Mikko Perttunen
[not found] ` <1420723339-30735-3-git-send-email-mikko.perttunen-/1wQRMveznE@public.gmane.org>
2015-02-12 14:04 ` Peter De Schrijver
2015-01-08 13:22 ` [PATCH v7 04/16] clk: tegra: Add functions for parsing CVB tables Mikko Perttunen
2015-02-12 14:13 ` Peter De Schrijver
2015-01-08 13:22 ` [PATCH v7 05/16] clk: tegra: Add DFLL DVCO reset control for Tegra124 Mikko Perttunen
2015-02-12 14:19 ` Peter De Schrijver
[not found] ` <20150212141944.GK20811-Rysk9IDjsxmJz7etNGeUX8VPkgjIgRvpAL8bYrjMMd8@public.gmane.org>
2015-02-13 10:39 ` Mikko Perttunen
2015-02-16 9:40 ` Peter De Schrijver
2015-01-08 13:22 ` [PATCH v7 06/16] clk: tegra: Add Tegra124 DFLL clocksource platform driver Mikko Perttunen
2015-01-08 13:22 ` [PATCH v7 07/16] clk: tegra: Save/restore CCLKG_BURST_POLICY on suspend Mikko Perttunen
2015-02-12 14:24 ` Peter De Schrijver
2015-01-08 13:22 ` [PATCH v7 08/16] clk: tegra: Add the DFLL as a possible parent of the cclk_g clock Mikko Perttunen
2015-01-08 13:22 ` [PATCH v7 09/16] ARM: tegra: Add the DFLL to Tegra124 device tree Mikko Perttunen
2015-01-08 13:22 ` [PATCH v7 10/16] ARM: tegra: Enable the DFLL on the Jetson TK1 Mikko Perttunen
2015-01-08 13:22 ` [PATCH v7 11/16] cpufreq: tegra124: Add device tree bindings Mikko Perttunen
2015-01-08 13:22 ` [PATCH v7 12/16] cpufreq: tegra: Rename tegra-cpufreq to tegra20-cpufreq Mikko Perttunen
2015-01-08 13:22 ` [PATCH v7 13/16] cpufreq: Add cpufreq driver for Tegra124 Mikko Perttunen
2015-01-08 13:22 ` [PATCH v7 14/16] ARM: tegra: Add entries for cpufreq on Tegra124 Mikko Perttunen
2015-01-08 13:22 ` [PATCH v7 15/16] ARM: tegra: Add CPU regulator to the Jetson TK1 device tree Mikko Perttunen
[not found] ` <1420723339-30735-1-git-send-email-mikko.perttunen-/1wQRMveznE@public.gmane.org>
2015-01-08 13:22 ` [PATCH v7 01/16] clk: tegra: Add binding for the Tegra124 DFLL clocksource Mikko Perttunen
2015-02-12 13:54 ` Peter De Schrijver
2015-02-13 10:19 ` Mikko Perttunen
2015-02-12 22:42 ` Thierry Reding
2015-02-13 9:38 ` Peter De Schrijver
2015-02-13 10:18 ` Mikko Perttunen [this message]
2015-02-16 7:11 ` Tuomas Tynkkynen
2015-01-08 13:22 ` [PATCH v7 03/16] clk: tegra: Add closed loop support for the DFLL Mikko Perttunen
2015-02-12 14:12 ` Peter De Schrijver
2015-01-08 13:22 ` [PATCH v7 16/16] ARM: tegra: enable Tegra124 cpufreq driver by default Mikko Perttunen
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=54DDCF8B.1050903@kapsi.fi \
--to=mikko.perttunen-/1wqrmvezne@public.gmane.org \
--cc=gnurou-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org \
--cc=linux-arm-kernel-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r@public.gmane.org \
--cc=linux-kernel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
--cc=linux-pm-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
--cc=linux-tegra-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
--cc=mturquette-QSEj5FYQhm4dnm+yROfE0A@public.gmane.org \
--cc=pdeschrijver-DDmLM1+adcrQT0dZR+AlfA@public.gmane.org \
--cc=pgaikwad-DDmLM1+adcrQT0dZR+AlfA@public.gmane.org \
--cc=pwalmsley-DDmLM1+adcrQT0dZR+AlfA@public.gmane.org \
--cc=rjw-LthD3rsA81gm4RdzfppkhA@public.gmane.org \
--cc=swarren-3lzwWm7+Weoh9ZMKESR00Q@public.gmane.org \
--cc=thierry.reding-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org \
--cc=ttynkkynen-DDmLM1+adcrQT0dZR+AlfA@public.gmane.org \
--cc=tuomas.tynkkynen-X3B1VOXEql0@public.gmane.org \
--cc=vinceh-DDmLM1+adcrQT0dZR+AlfA@public.gmane.org \
--cc=viresh.kumar-QSEj5FYQhm4dnm+yROfE0A@public.gmane.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