1c507f152SKrzysztof Kozlowski# SPDX-License-Identifier: GPL-2.0 2c507f152SKrzysztof Kozlowski%YAML 1.2 3c507f152SKrzysztof Kozlowski--- 4c507f152SKrzysztof Kozlowski$id: http://devicetree.org/schemas/devfreq/event/samsung,exynos-ppmu.yaml# 5c507f152SKrzysztof Kozlowski$schema: http://devicetree.org/meta-schemas/core.yaml# 6c507f152SKrzysztof Kozlowski 7c507f152SKrzysztof Kozlowskititle: Samsung Exynos SoC PPMU (Platform Performance Monitoring Unit) 8c507f152SKrzysztof Kozlowski 9c507f152SKrzysztof Kozlowskimaintainers: 10c507f152SKrzysztof Kozlowski - Chanwoo Choi <cw00.choi@samsung.com> 118a1e6bb3SKrzysztof Kozlowski - Krzysztof Kozlowski <krzk@kernel.org> 12c507f152SKrzysztof Kozlowski 13c507f152SKrzysztof Kozlowskidescription: | 14c507f152SKrzysztof Kozlowski The Samsung Exynos SoC has PPMU (Platform Performance Monitoring Unit) for 15c507f152SKrzysztof Kozlowski each IP. PPMU provides the primitive values to get performance data. These 16c507f152SKrzysztof Kozlowski PPMU events provide information of the SoC's behaviors so that you may use to 17c507f152SKrzysztof Kozlowski analyze system performance, to make behaviors visible and to count usages of 18c507f152SKrzysztof Kozlowski each IP (DMC, CPU, RIGHTBUS, LEFTBUS, CAM interface, LCD, G3D, MFC). The 19c507f152SKrzysztof Kozlowski Exynos PPMU driver uses the devfreq-event class to provide event data to 20c507f152SKrzysztof Kozlowski various devfreq devices. The devfreq devices would use the event data when 21*47aab533SBjorn Helgaas determining the current state of each IP. 22c507f152SKrzysztof Kozlowski 23c507f152SKrzysztof Kozlowskiproperties: 24c507f152SKrzysztof Kozlowski compatible: 25c507f152SKrzysztof Kozlowski enum: 26c507f152SKrzysztof Kozlowski - samsung,exynos-ppmu 27c507f152SKrzysztof Kozlowski - samsung,exynos-ppmu-v2 28c507f152SKrzysztof Kozlowski 29c507f152SKrzysztof Kozlowski clock-names: 30c507f152SKrzysztof Kozlowski items: 31c507f152SKrzysztof Kozlowski - const: ppmu 32c507f152SKrzysztof Kozlowski 33c507f152SKrzysztof Kozlowski clocks: 34c507f152SKrzysztof Kozlowski maxItems: 1 35c507f152SKrzysztof Kozlowski 36c507f152SKrzysztof Kozlowski reg: 37c507f152SKrzysztof Kozlowski maxItems: 1 38c507f152SKrzysztof Kozlowski 39c507f152SKrzysztof Kozlowski events: 40c507f152SKrzysztof Kozlowski type: object 41c507f152SKrzysztof Kozlowski 42c507f152SKrzysztof Kozlowski patternProperties: 43c507f152SKrzysztof Kozlowski '^ppmu-event[0-9]+(-[a-z0-9]+){,2}$': 44c507f152SKrzysztof Kozlowski type: object 45c507f152SKrzysztof Kozlowski properties: 46c507f152SKrzysztof Kozlowski event-name: 47c507f152SKrzysztof Kozlowski description: | 48c507f152SKrzysztof Kozlowski The unique event name among PPMU device 49c507f152SKrzysztof Kozlowski $ref: /schemas/types.yaml#/definitions/string 50c507f152SKrzysztof Kozlowski 51c507f152SKrzysztof Kozlowski event-data-type: 52c507f152SKrzysztof Kozlowski description: | 53c507f152SKrzysztof Kozlowski Define the type of data which shell be counted by the counter. 54c507f152SKrzysztof Kozlowski You can check include/dt-bindings/pmu/exynos_ppmu.h for all 55c507f152SKrzysztof Kozlowski possible type, i.e. count read requests, count write data in 56c507f152SKrzysztof Kozlowski bytes, etc. This field is optional and when it is missing, the 57c507f152SKrzysztof Kozlowski driver code will use default data type. 58c507f152SKrzysztof Kozlowski $ref: /schemas/types.yaml#/definitions/uint32 59c507f152SKrzysztof Kozlowski 60c507f152SKrzysztof Kozlowski required: 61c507f152SKrzysztof Kozlowski - event-name 62c507f152SKrzysztof Kozlowski 63c507f152SKrzysztof Kozlowski additionalProperties: false 64c507f152SKrzysztof Kozlowski 65c507f152SKrzysztof Kozlowski additionalProperties: false 66c507f152SKrzysztof Kozlowski 67c507f152SKrzysztof Kozlowskirequired: 68c507f152SKrzysztof Kozlowski - compatible 69c507f152SKrzysztof Kozlowski - reg 70c507f152SKrzysztof Kozlowski 71c507f152SKrzysztof KozlowskiadditionalProperties: false 72c507f152SKrzysztof Kozlowski 73c507f152SKrzysztof Kozlowskiexamples: 74c507f152SKrzysztof Kozlowski - | 75c507f152SKrzysztof Kozlowski // PPMUv1 nodes for Exynos3250 (although the board DTS defines events) 76c507f152SKrzysztof Kozlowski #include <dt-bindings/clock/exynos3250.h> 77c507f152SKrzysztof Kozlowski 78c507f152SKrzysztof Kozlowski ppmu_dmc0: ppmu@106a0000 { 79c507f152SKrzysztof Kozlowski compatible = "samsung,exynos-ppmu"; 80c507f152SKrzysztof Kozlowski reg = <0x106a0000 0x2000>; 81c507f152SKrzysztof Kozlowski 82c507f152SKrzysztof Kozlowski events { 83c507f152SKrzysztof Kozlowski ppmu_dmc0_3: ppmu-event3-dmc0 { 84c507f152SKrzysztof Kozlowski event-name = "ppmu-event3-dmc0"; 85c507f152SKrzysztof Kozlowski }; 86c507f152SKrzysztof Kozlowski 87c507f152SKrzysztof Kozlowski ppmu_dmc0_2: ppmu-event2-dmc0 { 88c507f152SKrzysztof Kozlowski event-name = "ppmu-event2-dmc0"; 89c507f152SKrzysztof Kozlowski }; 90c507f152SKrzysztof Kozlowski 91c507f152SKrzysztof Kozlowski ppmu_dmc0_1: ppmu-event1-dmc0 { 92c507f152SKrzysztof Kozlowski event-name = "ppmu-event1-dmc0"; 93c507f152SKrzysztof Kozlowski }; 94c507f152SKrzysztof Kozlowski 95c507f152SKrzysztof Kozlowski ppmu_dmc0_0: ppmu-event0-dmc0 { 96c507f152SKrzysztof Kozlowski event-name = "ppmu-event0-dmc0"; 97c507f152SKrzysztof Kozlowski }; 98c507f152SKrzysztof Kozlowski }; 99c507f152SKrzysztof Kozlowski }; 100c507f152SKrzysztof Kozlowski 101c507f152SKrzysztof Kozlowski ppmu_rightbus: ppmu@112a0000 { 102c507f152SKrzysztof Kozlowski compatible = "samsung,exynos-ppmu"; 103c507f152SKrzysztof Kozlowski reg = <0x112a0000 0x2000>; 104c507f152SKrzysztof Kozlowski clocks = <&cmu CLK_PPMURIGHT>; 105c507f152SKrzysztof Kozlowski clock-names = "ppmu"; 106c507f152SKrzysztof Kozlowski 107c507f152SKrzysztof Kozlowski events { 108c507f152SKrzysztof Kozlowski ppmu_rightbus_3: ppmu-event3-rightbus { 109c507f152SKrzysztof Kozlowski event-name = "ppmu-event3-rightbus"; 110c507f152SKrzysztof Kozlowski }; 111c507f152SKrzysztof Kozlowski }; 112c507f152SKrzysztof Kozlowski }; 113c507f152SKrzysztof Kozlowski 114c507f152SKrzysztof Kozlowski - | 115c507f152SKrzysztof Kozlowski // PPMUv2 nodes in Exynos5433 116c507f152SKrzysztof Kozlowski ppmu_d0_cpu: ppmu@10480000 { 117c507f152SKrzysztof Kozlowski compatible = "samsung,exynos-ppmu-v2"; 118c507f152SKrzysztof Kozlowski reg = <0x10480000 0x2000>; 119c507f152SKrzysztof Kozlowski }; 120c507f152SKrzysztof Kozlowski 121c507f152SKrzysztof Kozlowski ppmu_d0_general: ppmu@10490000 { 122c507f152SKrzysztof Kozlowski compatible = "samsung,exynos-ppmu-v2"; 123c507f152SKrzysztof Kozlowski reg = <0x10490000 0x2000>; 124c507f152SKrzysztof Kozlowski 125c507f152SKrzysztof Kozlowski events { 126c507f152SKrzysztof Kozlowski ppmu_event0_d0_general: ppmu-event0-d0-general { 127c507f152SKrzysztof Kozlowski event-name = "ppmu-event0-d0-general"; 128c507f152SKrzysztof Kozlowski }; 129c507f152SKrzysztof Kozlowski }; 130c507f152SKrzysztof Kozlowski }; 131c507f152SKrzysztof Kozlowski 132c507f152SKrzysztof Kozlowski ppmu_d0_rt: ppmu@104a0000 { 133c507f152SKrzysztof Kozlowski compatible = "samsung,exynos-ppmu-v2"; 134c507f152SKrzysztof Kozlowski reg = <0x104a0000 0x2000>; 135c507f152SKrzysztof Kozlowski }; 136c507f152SKrzysztof Kozlowski 137c507f152SKrzysztof Kozlowski ppmu_d1_cpu: ppmu@104b0000 { 138c507f152SKrzysztof Kozlowski compatible = "samsung,exynos-ppmu-v2"; 139c507f152SKrzysztof Kozlowski reg = <0x104b0000 0x2000>; 140c507f152SKrzysztof Kozlowski }; 141c507f152SKrzysztof Kozlowski 142c507f152SKrzysztof Kozlowski ppmu_d1_general: ppmu@104c0000 { 143c507f152SKrzysztof Kozlowski compatible = "samsung,exynos-ppmu-v2"; 144c507f152SKrzysztof Kozlowski reg = <0x104c0000 0x2000>; 145c507f152SKrzysztof Kozlowski }; 146c507f152SKrzysztof Kozlowski 147c507f152SKrzysztof Kozlowski ppmu_d1_rt: ppmu@104d0000 { 148c507f152SKrzysztof Kozlowski compatible = "samsung,exynos-ppmu-v2"; 149c507f152SKrzysztof Kozlowski reg = <0x104d0000 0x2000>; 150c507f152SKrzysztof Kozlowski }; 151c507f152SKrzysztof Kozlowski 152c507f152SKrzysztof Kozlowski - | 153c507f152SKrzysztof Kozlowski // PPMUv1 nodes with event-data-type for Exynos4412 154c507f152SKrzysztof Kozlowski #include <dt-bindings/pmu/exynos_ppmu.h> 155c507f152SKrzysztof Kozlowski 156c507f152SKrzysztof Kozlowski ppmu@106a0000 { 157c507f152SKrzysztof Kozlowski compatible = "samsung,exynos-ppmu"; 158c507f152SKrzysztof Kozlowski reg = <0x106a0000 0x2000>; 159c507f152SKrzysztof Kozlowski clocks = <&clock 400>; 160c507f152SKrzysztof Kozlowski clock-names = "ppmu"; 161c507f152SKrzysztof Kozlowski 162c507f152SKrzysztof Kozlowski events { 163c507f152SKrzysztof Kozlowski ppmu-event3-dmc0 { 164c507f152SKrzysztof Kozlowski event-name = "ppmu-event3-dmc0"; 165c507f152SKrzysztof Kozlowski event-data-type = <(PPMU_RO_DATA_CNT | 166c507f152SKrzysztof Kozlowski PPMU_WO_DATA_CNT)>; 167c507f152SKrzysztof Kozlowski }; 168c507f152SKrzysztof Kozlowski }; 169c507f152SKrzysztof Kozlowski }; 170