
* 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 for PPMU device:
- 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 for PPMU device:
- clock-names : the name of clock used by the PPMU, "ppmu"
- clocks : phandles for clock specified in "clock-names" property

Required properties for 'events' child node of PPMU device:
- event-name : the unique event name among PPMU device
Optional properties for 'events' child node of PPMU device:
- event-data-type : Define the type of data which shell be counted
by the counter. You can check include/dt-bindings/pmu/exynos_ppmu.h for
all possible type, i.e. count read requests, count write data in bytes,
etc. This field is optional and when it is missing, the driver code
will use default data type.

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";
		};

Example4 : 'event-data-type' in exynos4412-ppmu-common.dtsi are listed below.

	&ppmu_dmc0 {
		status = "okay";
		events {
			ppmu_dmc0_3: ppmu-event3-dmc0 {
			event-name = "ppmu-event3-dmc0";
			event-data-type = <(PPMU_RO_DATA_CNT |
					PPMU_WO_DATA_CNT)>;
			};
		};
	};
