Subject: [PATCH 3/5] arm64: dts: exynos5433: Add PPMU dt node

From: [email-masked] (Chanwoo Choi)
Date: Wed, 07 Dec 2016 14:54:33 +0900

On 2016? 12? 07? 13:12, Chanwoo Choi wrote:
> On 2016? 12? 07? 04:07, Krzysztof Kozlowski wrote:
>> On Fri, Dec 02, 2016 at 04:18:05PM +0900, Chanwoo Choi wrote:
>>> This patch adds PPMU (Platform Performance Monitoring Unit) Device-tree node
>>> to measure the utilization of each IP in Exynos SoC.
>>>
>>> - PPMU_D{0|1}_CPU are used to measure the utilization of MIF (Memory Interface)
>>>   block with VDD_MIF power source.
>>> - PPMU_D{0|1}_GENERAL are used to measure the utilization of INT(Internal)
>>>   block with VDD_INT power source.
>>>
>>> Signed-off-by: Chanwoo Choi <[email-masked]>
>>> ---
>>>  arch/arm64/boot/dts/exynos/exynos5433.dtsi | 24 ++++++++++++++++++++++++
>>>  1 file changed, 24 insertions(+)
>>>
>>> diff --git a/arch/arm64/boot/dts/exynos/exynos5433.dtsi b/arch/arm64/boot/dts/exynos/exynos5433.dtsi
>>> index 64226d5ae471..8c4ee84d5232 100644
>>> --- a/arch/arm64/boot/dts/exynos/exynos5433.dtsi
>>> +++ b/arch/arm64/boot/dts/exynos/exynos5433.dtsi
>>> @@ -599,6 +599,30 @@
>>>  			clock-names = "fin_pll", "mct";
>>>  		};
>>>  
>>> +		ppmu_d0_cpu: ppmu at 10480000 {
>>> +			compatible = "samsung,exynos-ppmu-v2";
>>> +			reg = <0x10480000 0x2000>;
>>> +			status = "disabled";
>>
>> Why these are disabled? They have some external dependencies?
> 
> There is no any dependency. If you want to remain it always enabled,
> I'm OK.

One more comment. Each PPMU has the four events which is used for devfreq driver
to get the utilization. If I remove the 'status = "disabled"' from exynos5433.dtsi,
first probe of PPMU device is fail on case1.

Case1. Disable PPMU device and then enable it on exynos5433-tm2.dts
[    2.560126] exynos-ppmu: new PPMU device registered 10490000.ppmu (ppmu-event0-d0-general)
[    2.565957] exynos-ppmu: new PPMU device registered 104c0000.ppmu (ppmu-event0-d1-general)

Case2. Enable PPMU device always. First probe is failed and then second probe is successful.
[    2.898781] exynos-ppmu 10480000.ppmu: failed to get child node of devfreq-event devices
[    2.899077] exynos-ppmu 10480000.ppmu: failed to parse exynos ppmu dt node
[    2.899289] exynos-ppmu 10480000.ppmu: failed to parse devicetree for resource
[    2.899602] exynos-ppmu: probe of 10480000.ppmu failed with error -22
[    2.905364] exynos-ppmu: new PPMU device registered 10490000.ppmu (ppmu-event0-d0-general)
[    2.913535] exynos-ppmu 104b0000.ppmu: failed to get child node of devfreq-event devices
[    2.921402] exynos-ppmu 104b0000.ppmu: failed to parse exynos ppmu dt node
[    2.928250] exynos-ppmu 104b0000.ppmu: failed to parse devicetree for resource
[    2.935571] exynos-ppmu: probe of 104b0000.ppmu failed with error -22
[    2.942144] exynos-ppmu: new PPMU device registered 104c0000.ppmu (ppmu-event0-d1-general)

Best Regards,
Chanwoo Choi

[snip]