From: Chanwoo Choi <cw00.choi@samsung.com>
To: Viresh Kumar <viresh.kumar@linaro.org>
Cc: "Rob Herring" <robherring2@gmail.com>,
"MyungJoo Ham" <myungjoo.ham@samsung.com>,
"Kukjin Kim" <kgene@kernel.org>,
"Kyungmin Park" <kyungmin.park@samsung.com>,
"Wysocki, Rafael J" <rafael.j.wysocki@intel.com>,
"Mark Rutland" <mark.rutland@arm.com>,
a.kesavan@samsung.com, "Tomasz Figa" <tomasz.figa@gmail.com>,
"Krzysztof Kozłowski" <k.kozlowski@samsung.com>,
"Bartlomiej Zolnierkiewicz" <b.zolnierkie@samsung.com>,
"Rob Herring" <robh+dt@kernel.org>,
"InKi Dae" <inki.dae@samsung.com>,
"linux-pm@vger.kernel.org" <linux-pm@vger.kernel.org>,
"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
"linux-arm-kernel@lists.infradead.org"
<linux-arm-kernel@lists.infradead.org>,
"linux-samsung-soc@vger.kernel.org"
<linux-samsung-soc@vger.kernel.org>
Subject: Re: [PATCHv3 2/8] devfreq: exynos: Add documentation for generic exynos memory bus frequency driver
Date: Tue, 20 Jan 2015 20:37:52 +0900 [thread overview]
Message-ID: <54BE3E10.2080906@samsung.com> (raw)
In-Reply-To: <CAKohpokSuVhH3hHFF+mLtJXvjt=bmJy1oZRBOttCNXORBS1Y0A@mail.gmail.com>
On 01/20/2015 08:22 PM, Viresh Kumar wrote:
> On 20 January 2015 at 13:53, Chanwoo Choi <cw00.choi@samsung.com> wrote:
>> But, the frequency of OPPs is only used for devfreq ondemand governor.
>> After deciding the proper frequency of memory bus on ondemand governor,
>> exynos-bus.c (exynos memory bus frequency driver) use the frequency table
>> of memory bus blocks on below to change the clock rate of memory bus block.
>
>> Firs of all,
>> I explain the hierarchy of Exynos memory buses.
>>
>> For example of Exynos3250 memory bus,
>> This patch divide the memory bus group according to power rail (regulator).
>> - MIF (Memory Interface ) memory bus group uses the VDD_MIF regulator.
>> - INT (Internal) memory bus group uses the VDD_INT regulator.
>>
>> Each memory bus group contains only one power rail(regulator) and one more memory bus blocks as follwing:
>>
>> - MIF memory bus group
>> power rail(VDD_MIF)-->|--- memory bus for DMC (Dynamic Memory Controller) block (dmc clock)
>>
>> - INT memory bus group
>> |--- memory bus for PERI block (aclk_100 clock)
>> |
>> |--- memory bus for DISPLAY block (aclk_160 clock)
>> |
>> |--- memory bus for ISP block (aclk_200 clock)
>> |
>> |--- memory bus for GPS block (aclk_266 clock)
>> power rail(VDD_INT)-->|
>> |--- memory bus for MCUISP block (aclk_400_mcuisp clock)
>> |
>> |--- memory bus for Leftbus block (gdl clock)
>> |
>> |--- memory bus for Rightbus block (gdr clock)
>> |
>> |--- memory bus for MFC block (mfc clock)
>>
>>
>> Exynos3250 has following table for INT memory bus group:
>> All clocks of INT memory bus group have to contain the same entry count
>> againt the number of 'virtual freqw'. So, each memory bus clock could have duplicate clocks.
>>
>> ------------------------------------------------------------------------
>> Level|virtual freq|PERI's clk|Display's clk|ISP's clk|GPS's clk| voltage|
>> ------------------------------------------------------------------------
>> L6 |400000 |100000 |200000 |200000 |300000 | 95000 |
>> L5 |200000 |100000 |160000 |200000 |200000 | 95000 |
>> L4 |133000 |100000 |100000 |100000 |133000 | 92500 |
>> L3 |100000 |100000 |80000 |80000 |100000 | 85000 |
>> L2 |80000 |50000 |80000 |50000 |50000 | 85000 |
>> L1 |50000 |50000 |50000 |50000 |50000 | 85000 |
>> -------------------------------------------------------------------------
>> (Except for mcuisp, leftbus, rightbus, mfc block)
>>
>> This table is used for devfreq ondemand governor as following:
>> 1. ondemand governor in devfreq use the 'virtual freq' to devcide the proper
>> frequency for memory bus.
>> 2. ondemand governor executes the *_target() function to set clock rate and voltage.
>> 3. *_target() function in exynos-bus.c changes the clock rate of {PERIS|Display|ISP|GPS} clk
>> according to decided 'Level' by devfreq ondemand governor.
>
> I see..
>
> Please confirm if my understanding is correct.
> - mem-bus-group: all blocks sharing a regulator
> - mem-bus-block: individual blocks managing their clock rate
Right and mem-bus-blcoks are included in a mem-bus-group.
>
> What you do in kernel is register group as a device (with virtual OPPs)
> and then manage blocks within the driver. And so you need to do this
> dummy mapping of virtual to physical frequencies.
Right.
>
> It *may* not have done it this way, if I was to design this driver.
>
> Each bus-block is a separately controllable device and so must be registered
> separately. In that case all bus-blocks will have separate OPP tables and
> all this dummy-v2p mapping will go away.
If each bus-block has separate regulator independently, each bus-block can be registered
separately. But, exynos bus-blocks in mem-bus-group share the same regulator.
>
> I believe that you are over complicating stuff without any need..
>
> --
> viresh
>
Best Regards,
Chanwoo Choi
next prev parent reply other threads:[~2015-01-20 11:37 UTC|newest]
Thread overview: 25+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-01-08 1:40 [PATCHv3 0/8] devfreq: Add generic exynos memory-bus frequency driver Chanwoo Choi
2015-01-08 1:40 ` [PATCHv3 1/8] devfreq: exynos: Add generic exynos memory bus " Chanwoo Choi
2015-01-08 1:40 ` [PATCHv3 2/8] devfreq: exynos: Add documentation for " Chanwoo Choi
2015-01-08 21:18 ` Rob Herring
2015-01-09 2:42 ` Chanwoo Choi
2015-01-20 7:19 ` Viresh Kumar
2015-01-20 8:23 ` Chanwoo Choi
2015-01-20 11:22 ` Viresh Kumar
2015-01-20 11:37 ` Chanwoo Choi [this message]
2015-01-21 3:17 ` Viresh Kumar
2015-01-21 4:20 ` Chanwoo Choi
2015-01-21 4:37 ` Viresh Kumar
2015-01-21 6:12 ` Chanwoo Choi
2015-01-21 6:32 ` Viresh Kumar
2015-01-08 1:40 ` [PATCHv3 3/8] ARM: dts: Add memory bus node for Exynos3250 Chanwoo Choi
2015-01-08 1:40 ` [PATCHv3 4/8] clk: samsung: exynos4: Add divider clock id for memory bus frequency Chanwoo Choi
2015-01-08 1:40 ` [PATCHv3 5/8] ARM: dts: Add memory bus node for Exynos4x12 Chanwoo Choi
2015-01-08 1:40 ` [PATCHv3 6/8] ARM: dts: Add memory bus node for Exynos4210 Chanwoo Choi
2015-01-08 1:40 ` [PATCHv3 7/8] ARM: dts: Add memory bus node for Exynos3250-based Rinato/Monk board Chanwoo Choi
2015-01-08 1:40 ` [PATCHv3 8/8] ARM: dts: Add memory bus node for Exynos4412-based TRATS2 board Chanwoo Choi
2015-02-15 0:25 ` [PATCHv3 0/8] devfreq: Add generic exynos memory-bus frequency driver Tobias Jakobi
2015-02-18 20:59 ` Tobias Jakobi
2015-02-22 23:44 ` Chanwoo Choi
2015-02-23 19:57 ` Tobias Jakobi
2015-02-23 23:55 ` Chanwoo Choi
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=54BE3E10.2080906@samsung.com \
--to=cw00.choi@samsung.com \
--cc=a.kesavan@samsung.com \
--cc=b.zolnierkie@samsung.com \
--cc=inki.dae@samsung.com \
--cc=k.kozlowski@samsung.com \
--cc=kgene@kernel.org \
--cc=kyungmin.park@samsung.com \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-pm@vger.kernel.org \
--cc=linux-samsung-soc@vger.kernel.org \
--cc=mark.rutland@arm.com \
--cc=myungjoo.ham@samsung.com \
--cc=rafael.j.wysocki@intel.com \
--cc=robh+dt@kernel.org \
--cc=robherring2@gmail.com \
--cc=tomasz.figa@gmail.com \
--cc=viresh.kumar@linaro.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).