Documentation / devicetree / bindings / perf / apm-xgene-pmu.txt


Based on kernel version 6.8. Page generated on 2024-03-11 21:26 EST.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112
* APM X-Gene SoC PMU bindings

This is APM X-Gene SoC PMU (Performance Monitoring Unit) module.
The following PMU devices are supported:

  L3C			- L3 cache controller
  IOB			- IO bridge
  MCB			- Memory controller bridge
  MC			- Memory controller

The following section describes the SoC PMU DT node binding.

Required properties:
- compatible		: Shall be "apm,xgene-pmu" for revision 1 or
                          "apm,xgene-pmu-v2" for revision 2.
- regmap-csw		: Regmap of the CPU switch fabric (CSW) resource.
- regmap-mcba		: Regmap of the MCB-A (memory bridge) resource.
- regmap-mcbb		: Regmap of the MCB-B (memory bridge) resource.
- reg			: First resource shall be the CPU bus PMU resource.
- interrupts            : Interrupt-specifier for PMU IRQ.

Required properties for L3C subnode:
- compatible		: Shall be "apm,xgene-pmu-l3c".
- reg			: First resource shall be the L3C PMU resource.

Required properties for IOB subnode:
- compatible		: Shall be "apm,xgene-pmu-iob".
- reg			: First resource shall be the IOB PMU resource.

Required properties for MCB subnode:
- compatible		: Shall be "apm,xgene-pmu-mcb".
- reg			: First resource shall be the MCB PMU resource.
- enable-bit-index	: The bit indicates if the according MCB is enabled.

Required properties for MC subnode:
- compatible		: Shall be "apm,xgene-pmu-mc".
- reg			: First resource shall be the MC PMU resource.
- enable-bit-index	: The bit indicates if the according MC is enabled.

Example:
	csw: csw@7e200000 {
		compatible = "apm,xgene-csw", "syscon";
		reg = <0x0 0x7e200000 0x0 0x1000>;
	};

	mcba: mcba@7e700000 {
		compatible = "apm,xgene-mcb", "syscon";
		reg = <0x0 0x7e700000 0x0 0x1000>;
	};

	mcbb: mcbb@7e720000 {
		compatible = "apm,xgene-mcb", "syscon";
		reg = <0x0 0x7e720000 0x0 0x1000>;
	};

	pmu: pmu@78810000 {
		compatible = "apm,xgene-pmu-v2";
		#address-cells = <2>;
		#size-cells = <2>;
		ranges;
		regmap-csw = <&csw>;
		regmap-mcba = <&mcba>;
		regmap-mcbb = <&mcbb>;
		reg = <0x0 0x78810000 0x0 0x1000>;
		interrupts = <0x0 0x22 0x4>;

		pmul3c@7e610000 {
			compatible = "apm,xgene-pmu-l3c";
			reg = <0x0 0x7e610000 0x0 0x1000>;
		};

		pmuiob@7e940000 {
			compatible = "apm,xgene-pmu-iob";
			reg = <0x0 0x7e940000 0x0 0x1000>;
		};

		pmucmcb@7e710000 {
			compatible = "apm,xgene-pmu-mcb";
			reg = <0x0 0x7e710000 0x0 0x1000>;
			enable-bit-index = <0>;
		};

		pmucmcb@7e730000 {
			compatible = "apm,xgene-pmu-mcb";
			reg = <0x0 0x7e730000 0x0 0x1000>;
			enable-bit-index = <1>;
		};

		pmucmc@7e810000 {
			compatible = "apm,xgene-pmu-mc";
			reg = <0x0 0x7e810000 0x0 0x1000>;
			enable-bit-index = <0>;
		};

		pmucmc@7e850000 {
			compatible = "apm,xgene-pmu-mc";
			reg = <0x0 0x7e850000 0x0 0x1000>;
			enable-bit-index = <1>;
		};

		pmucmc@7e890000 {
			compatible = "apm,xgene-pmu-mc";
			reg = <0x0 0x7e890000 0x0 0x1000>;
			enable-bit-index = <2>;
		};

		pmucmc@7e8d0000 {
			compatible = "apm,xgene-pmu-mc";
			reg = <0x0 0x7e8d0000 0x0 0x1000>;
			enable-bit-index = <3>;
		};
	};