mirror of
https://github.com/torvalds/linux.git
synced 2024-12-25 12:21:37 +00:00
6d96302ffc
This patch adds the documentation for Exynos PPMU (Platform Performance Monitoring Unit) devfreq-event driver. Cc: MyungJoo Ham <myungjoo.ham@samsung.com> Cc: Kyungmin Park <kyungmin.park@samsung.com> Signed-off-by: Chanwoo Choi <cw00.choi@samsung.com> Signed-off-by: MyungJoo Ham <myungjoo.ham@samsung.com>
111 lines
2.6 KiB
Plaintext
111 lines
2.6 KiB
Plaintext
|
|
* Samsung Exynos PPMU (Platform Performance Monitoring Unit) device
|
|
|
|
The Samsung Exynos SoC has PPMU (Platform Performance Monitoring Unit) for
|
|
each IP. PPMU provides the primitive values to get performance data. These
|
|
PPMU events provide information of the SoC's behaviors so that you may
|
|
use to analyze system performance, to make behaviors visible and to count
|
|
usages of each IP (DMC, CPU, RIGHTBUS, LEFTBUS, CAM interface, LCD, G3D, MFC).
|
|
The Exynos PPMU driver uses the devfreq-event class to provide event data
|
|
to various devfreq devices. The devfreq devices would use the event data when
|
|
derterming the current state of each IP.
|
|
|
|
Required properties:
|
|
- compatible: Should be "samsung,exynos-ppmu".
|
|
- reg: physical base address of each PPMU and length of memory mapped region.
|
|
|
|
Optional properties:
|
|
- clock-names : the name of clock used by the PPMU, "ppmu"
|
|
- clocks : phandles for clock specified in "clock-names" property
|
|
- #clock-cells: should be 1.
|
|
|
|
Example1 : PPMU nodes in exynos3250.dtsi are listed below.
|
|
|
|
ppmu_dmc0: ppmu_dmc0@106a0000 {
|
|
compatible = "samsung,exynos-ppmu";
|
|
reg = <0x106a0000 0x2000>;
|
|
status = "disabled";
|
|
};
|
|
|
|
ppmu_dmc1: ppmu_dmc1@106b0000 {
|
|
compatible = "samsung,exynos-ppmu";
|
|
reg = <0x106b0000 0x2000>;
|
|
status = "disabled";
|
|
};
|
|
|
|
ppmu_cpu: ppmu_cpu@106c0000 {
|
|
compatible = "samsung,exynos-ppmu";
|
|
reg = <0x106c0000 0x2000>;
|
|
status = "disabled";
|
|
};
|
|
|
|
ppmu_rightbus: ppmu_rightbus@112a0000 {
|
|
compatible = "samsung,exynos-ppmu";
|
|
reg = <0x112a0000 0x2000>;
|
|
clocks = <&cmu CLK_PPMURIGHT>;
|
|
clock-names = "ppmu";
|
|
status = "disabled";
|
|
};
|
|
|
|
ppmu_leftbus: ppmu_leftbus0@116a0000 {
|
|
compatible = "samsung,exynos-ppmu";
|
|
reg = <0x116a0000 0x2000>;
|
|
clocks = <&cmu CLK_PPMULEFT>;
|
|
clock-names = "ppmu";
|
|
status = "disabled";
|
|
};
|
|
|
|
Example2 : Events of each PPMU node in exynos3250-rinato.dts are listed below.
|
|
|
|
&ppmu_dmc0 {
|
|
status = "okay";
|
|
|
|
events {
|
|
ppmu_dmc0_3: ppmu-event3-dmc0 {
|
|
event-name = "ppmu-event3-dmc0";
|
|
};
|
|
|
|
ppmu_dmc0_2: ppmu-event2-dmc0 {
|
|
event-name = "ppmu-event2-dmc0";
|
|
};
|
|
|
|
ppmu_dmc0_1: ppmu-event1-dmc0 {
|
|
event-name = "ppmu-event1-dmc0";
|
|
};
|
|
|
|
ppmu_dmc0_0: ppmu-event0-dmc0 {
|
|
event-name = "ppmu-event0-dmc0";
|
|
};
|
|
};
|
|
};
|
|
|
|
&ppmu_dmc1 {
|
|
status = "okay";
|
|
|
|
events {
|
|
ppmu_dmc1_3: ppmu-event3-dmc1 {
|
|
event-name = "ppmu-event3-dmc1";
|
|
};
|
|
};
|
|
};
|
|
|
|
&ppmu_leftbus {
|
|
status = "okay";
|
|
|
|
events {
|
|
ppmu_leftbus_3: ppmu-event3-leftbus {
|
|
event-name = "ppmu-event3-leftbus";
|
|
};
|
|
};
|
|
};
|
|
|
|
&ppmu_rightbus {
|
|
status = "okay";
|
|
|
|
events {
|
|
ppmu_rightbus_3: ppmu-event3-rightbus {
|
|
event-name = "ppmu-event3-rightbus";
|
|
};
|
|
};
|
|
};
|