linux-fbdev.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Prashant Gaikwad <pgaikwad@nvidia.com>
To: linux-arm-kernel@lists.infradead.org
Subject: Re: Device tree binding for DVFS table
Date: Thu, 12 Jul 2012 04:20:48 +0000	[thread overview]
Message-ID: <4FFE4DD0.7020407@nvidia.com> (raw)
In-Reply-To: <4FFD87BD.2030206@gmail.com>

On Wednesday 11 July 2012 07:33 PM, Rob Herring wrote:
> On 07/11/2012 07:56 AM, Prashant Gaikwad wrote:
>> Hi,
>>
>> I am working on DT binding for Tegra DVFS.
>>
>> For Tegra, DVFS node mainly consists of frequency and voltage pairs.
>> Frequency in the pair may change for different process. E.g. for process
>> 1 CPU clock frequency could be 900MHz at 1V while for process 2 it could
>> be 1GHz at 1V.
>> Tegra uses vendor specific ids to identify the correct frequency table.
>>
>> Following is the proposed binding for voltage and frequency tables used
>> in DVFS. Looking for comments/suggestions to make it generic.
>>
>> ====DVFS table node=========>> This node defines the voltage configuration for the DVFS which includes
>> the regulator and voltage array.
>>
>> Required properties:
>>
>> reg_id :<regulator phandle>;
>> voltage-table :<voltage array, values in mV>;
>>
>> #address-cells and #size-cells : To identify correct frequency table
>> using process id (or some other vendor specific way).
>>
>> ====Frequency table node=======>>
>> This node defines frequency configuration for the device DVFS.
>>
>> Required properties:
>>
>> In device node need a reference to the DVFS table node.
>>
>> dvfs : the phandle for the DVFS table node
>>
>> frequency-table@n
>>         reg =<n>; dependent on address-cells and size-cells in DVFS
>> table node.
>>         frequencies =<frequency array, values in MHz>;
> You are storing u32 values, why limit the resolution to MHz.
>
> Put the unit in the property names.
>

Unit can be changed, will do it.

>> }
>>
>> Example:
>> -------------------------------------------------------------------------
>>
>> cpu-dvfs-table : dvfs-table {
> This should be located with the node that the frequencies correspond to.
>

With CAR node?

>>                compatible = "nvidia,tegra30-dvfs-table";
>>                reg_id =<&sm0>;
>>                #address-cells =<1>;
>>                #size-cells =<0>;
>>                voltage-array =<750 775 800 825 850 875 900 925 950 975
>> 1000 1025 1050 1100 1125>;
> The SOC is really characterized at all these voltages?

Not really, but different processes of single SoC are characterized for 
different voltages and this array covers all those voltages.

>> };
>>
>> device {
>>               dvfs =<&cpu-dvfs-table>;
>>               frequency-table@102 {
>>                        reg =<0x102>;
>>                        frequencies =<314 314 314 456 456 456 608 608 608
>> 760 817 817 912 1000>;
> I don't see the point of repeating frequencies.
>>               };
>>               frequency-table@002 {
>>                        reg =<0x002>;
>>                        frequencies =<598 598 750 750 893 893 1000>;
>>               };
> How do you determine the voltage for a frequency on table 2?
>
> I'd expect a single property with freq/volt pairs or 2 properties for
> freq and voltage where there is a 1:1 relationship (freq N uses voltage N).


How this will work:

voltage-array =<750 775 800 825 850 875 900  925 950 975 1000 1025 1050 1100 1125>
frequencies-1 =<314 314 314 456 456 456 608  608 608 760 817  817  912  1000>;
frequencies-2 =<598 598 750 750 893 893 1000>;


Freq and voltage has 1:1 relationship but as single voltage table is 
used for different processes we have more entries in voltage table than 
freq table.
Frequency table 1 is mapped till 1100mV while frequency table 2 is 
mapped till 900mV only, it maintains 1:1 relationship.

About repeating frequencies, operating voltage for a frequency would be 
the highest one mapped in the table.
For example, in frequency table 2 operating voltage for 750MHz would be 
825mV while for 893MHz it would be 875mV. Unmapped entries could be 
replaced with 0 to make reading better.

Advantage it provides is single voltage table used for multiple 
frequency tables, as can be observed from above tables, operating 
voltage for 314MHz in freq table 1 is 800mV while there is no frequency 
in table 2 at that voltage.

I know this makes reading difficult but it provides flexibility,

I hope it explains the implementation.

> Rob
>
>> };
>>
>> Thanks&  Regards,
>> Prashant G
>>
>> _______________________________________________
>> linux-arm-kernel mailing list
>> linux-arm-kernel@lists.infradead.org
>> http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
>


  parent reply	other threads:[~2012-07-12  4:20 UTC|newest]

Thread overview: 30+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2012-07-11 13:08 Device tree binding for DVFS table 함명주
2012-07-11 13:08 ` Prashant Gaikwad
2012-07-11 14:03   ` Rob Herring
2012-07-11 14:44     ` Mark Brown
2012-07-11 20:04       ` Mike Turquette
2012-07-12  4:26         ` Prashant Gaikwad
2012-07-12 14:10         ` Peter De Schrijver
2012-07-12 17:10           ` Mike Turquette
2012-07-12 17:15             ` Mark Brown
2012-07-13 10:34             ` Peter De Schrijver
2012-07-13 17:25               ` Mike Turquette
2012-07-12  4:29       ` Prashant Gaikwad
2012-07-12 15:23         ` Mark Brown
2012-07-12 17:01         ` Mike Turquette
2012-07-12  8:19       ` Peter De Schrijver
2012-07-12  4:20     ` Prashant Gaikwad [this message]
2012-07-13 18:42       ` Prashant Gaikwad
2012-07-15 21:40         ` Mark Brown
2012-07-15 23:42       ` Rob Herring
2012-07-16 18:36         ` Turquette, Mike
2012-07-17 12:49           ` Prashant Gaikwad
2012-07-17 13:20             ` Mark Brown
2012-07-17 14:34               ` Prashant Gaikwad
2012-07-17 14:37                 ` Mark Brown
2012-07-18 12:58                   ` Prashant Gaikwad
2012-07-18 21:19                     ` Mark Brown
2012-07-18 17:08   ` Shawn Guo
2012-07-11 13:49 ` Peter De Schrijver
2012-07-11 13:49 ` Peter De Schrijver
2012-07-12  4:34   ` Prashant Gaikwad

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=4FFE4DD0.7020407@nvidia.com \
    --to=pgaikwad@nvidia.com \
    --cc=linux-arm-kernel@lists.infradead.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).