148 lines
3.5 KiB
Plaintext
148 lines
3.5 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" or "samsung,exynos-ppmu-v2.
|
|
- 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
|
|
|
|
Example1 : PPMUv1 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";
|
|
};
|
|
};
|
|
};
|
|
|
|
Example3 : PPMUv2 nodes in exynos5433.dtsi are listed below.
|
|
|
|
ppmu_d0_cpu: ppmu_d0_cpu@10480000 {
|
|
compatible = "samsung,exynos-ppmu-v2";
|
|
reg = <0x10480000 0x2000>;
|
|
status = "disabled";
|
|
};
|
|
|
|
ppmu_d0_general: ppmu_d0_general@10490000 {
|
|
compatible = "samsung,exynos-ppmu-v2";
|
|
reg = <0x10490000 0x2000>;
|
|
status = "disabled";
|
|
};
|
|
|
|
ppmu_d0_rt: ppmu_d0_rt@104a0000 {
|
|
compatible = "samsung,exynos-ppmu-v2";
|
|
reg = <0x104a0000 0x2000>;
|
|
status = "disabled";
|
|
};
|
|
|
|
ppmu_d1_cpu: ppmu_d1_cpu@104b0000 {
|
|
compatible = "samsung,exynos-ppmu-v2";
|
|
reg = <0x104b0000 0x2000>;
|
|
status = "disabled";
|
|
};
|
|
|
|
ppmu_d1_general: ppmu_d1_general@104c0000 {
|
|
compatible = "samsung,exynos-ppmu-v2";
|
|
reg = <0x104c0000 0x2000>;
|
|
status = "disabled";
|
|
};
|
|
|
|
ppmu_d1_rt: ppmu_d1_rt@104d0000 {
|
|
compatible = "samsung,exynos-ppmu-v2";
|
|
reg = <0x104d0000 0x2000>;
|
|
status = "disabled";
|
|
};
|