Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

PM / devfreq: event: Add documentation for exynos-ppmu devfreq-event driver

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>

authored by

Chanwoo Choi and committed by
MyungJoo Ham
6d96302f e6ee3192

+110
+110
Documentation/devicetree/bindings/devfreq/event/exynos-ppmu.txt
··· 1 + 2 + * Samsung Exynos PPMU (Platform Performance Monitoring Unit) device 3 + 4 + The Samsung Exynos SoC has PPMU (Platform Performance Monitoring Unit) for 5 + each IP. PPMU provides the primitive values to get performance data. These 6 + PPMU events provide information of the SoC's behaviors so that you may 7 + use to analyze system performance, to make behaviors visible and to count 8 + usages of each IP (DMC, CPU, RIGHTBUS, LEFTBUS, CAM interface, LCD, G3D, MFC). 9 + The Exynos PPMU driver uses the devfreq-event class to provide event data 10 + to various devfreq devices. The devfreq devices would use the event data when 11 + derterming the current state of each IP. 12 + 13 + Required properties: 14 + - compatible: Should be "samsung,exynos-ppmu". 15 + - reg: physical base address of each PPMU and length of memory mapped region. 16 + 17 + Optional properties: 18 + - clock-names : the name of clock used by the PPMU, "ppmu" 19 + - clocks : phandles for clock specified in "clock-names" property 20 + - #clock-cells: should be 1. 21 + 22 + Example1 : PPMU nodes in exynos3250.dtsi are listed below. 23 + 24 + ppmu_dmc0: ppmu_dmc0@106a0000 { 25 + compatible = "samsung,exynos-ppmu"; 26 + reg = <0x106a0000 0x2000>; 27 + status = "disabled"; 28 + }; 29 + 30 + ppmu_dmc1: ppmu_dmc1@106b0000 { 31 + compatible = "samsung,exynos-ppmu"; 32 + reg = <0x106b0000 0x2000>; 33 + status = "disabled"; 34 + }; 35 + 36 + ppmu_cpu: ppmu_cpu@106c0000 { 37 + compatible = "samsung,exynos-ppmu"; 38 + reg = <0x106c0000 0x2000>; 39 + status = "disabled"; 40 + }; 41 + 42 + ppmu_rightbus: ppmu_rightbus@112a0000 { 43 + compatible = "samsung,exynos-ppmu"; 44 + reg = <0x112a0000 0x2000>; 45 + clocks = <&cmu CLK_PPMURIGHT>; 46 + clock-names = "ppmu"; 47 + status = "disabled"; 48 + }; 49 + 50 + ppmu_leftbus: ppmu_leftbus0@116a0000 { 51 + compatible = "samsung,exynos-ppmu"; 52 + reg = <0x116a0000 0x2000>; 53 + clocks = <&cmu CLK_PPMULEFT>; 54 + clock-names = "ppmu"; 55 + status = "disabled"; 56 + }; 57 + 58 + Example2 : Events of each PPMU node in exynos3250-rinato.dts are listed below. 59 + 60 + &ppmu_dmc0 { 61 + status = "okay"; 62 + 63 + events { 64 + ppmu_dmc0_3: ppmu-event3-dmc0 { 65 + event-name = "ppmu-event3-dmc0"; 66 + }; 67 + 68 + ppmu_dmc0_2: ppmu-event2-dmc0 { 69 + event-name = "ppmu-event2-dmc0"; 70 + }; 71 + 72 + ppmu_dmc0_1: ppmu-event1-dmc0 { 73 + event-name = "ppmu-event1-dmc0"; 74 + }; 75 + 76 + ppmu_dmc0_0: ppmu-event0-dmc0 { 77 + event-name = "ppmu-event0-dmc0"; 78 + }; 79 + }; 80 + }; 81 + 82 + &ppmu_dmc1 { 83 + status = "okay"; 84 + 85 + events { 86 + ppmu_dmc1_3: ppmu-event3-dmc1 { 87 + event-name = "ppmu-event3-dmc1"; 88 + }; 89 + }; 90 + }; 91 + 92 + &ppmu_leftbus { 93 + status = "okay"; 94 + 95 + events { 96 + ppmu_leftbus_3: ppmu-event3-leftbus { 97 + event-name = "ppmu-event3-leftbus"; 98 + }; 99 + }; 100 + }; 101 + 102 + &ppmu_rightbus { 103 + status = "okay"; 104 + 105 + events { 106 + ppmu_rightbus_3: ppmu-event3-rightbus { 107 + event-name = "ppmu-event3-rightbus"; 108 + }; 109 + }; 110 + };