hc
2023-02-14 0cc9b7c44253c93447ddf73e206fbdbb3d9f16b1
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>;
       };
   };