The LogiCORE IP AXI Performance Monitor core enables AXI system performance measurement for multiple slots (AXI4/AXI3/ AXI4-Stream/AXI4-Lite) activity. Add the devicetree binding for xilinx APM. Signed-off-by: Shubhrajyoti Datta <shubhrajyoti.datta@xxxxxxx> --- Changes in v1: - Use boolean for the values xlnx,enable-profile , xlnx,enable-trace and xlnx,enable-event-count - Update the file name - use generic node name pmu .../bindings/perf/xlnx,axi-perf-monitor.yaml | 133 ++++++++++++++++++ 1 file changed, 133 insertions(+) create mode 100644 Documentation/devicetree/bindings/perf/xlnx,axi-perf-monitor.yaml diff --git a/Documentation/devicetree/bindings/perf/xlnx,axi-perf-monitor.yaml b/Documentation/devicetree/bindings/perf/xlnx,axi-perf-monitor.yaml new file mode 100644 index 000000000000..bd3a9dbc1184 --- /dev/null +++ b/Documentation/devicetree/bindings/perf/xlnx,axi-perf-monitor.yaml @@ -0,0 +1,133 @@ +# SPDX-License-Identifier: GPL-2.0-or-later OR BSD-2-Clause +%YAML 1.2 +--- +$id: http://devicetree.org/schemas/perf/xlnx,axi-perf-monitor.yaml# +$schema: http://devicetree.org/meta-schemas/core.yaml# + +title: Xilinx Axi Performance Monitor + +maintainers: + - Shubhrajyoti Datta <shubhrajyoti.datta@xxxxxxx> + +properties: + compatible: + const: xlnx,axi-perf-monitor + + reg: + maxItems: 1 + + clocks: + maxItems: 1 + + interrupts: + maxItems: 1 + + xlnx,enable-profile: + description: + Enables the profile mode. Event counting in profile mode consists of a + fixed number of accumulators for each AXI4/AXI3/AXI4-Lite slot. All the + events that can be counted are detected and given to the accumulator + which calculates the aggregate value. There is no selection of events, + and in this mode, event counting is done only on AXI4/AXI3/AXI4-Lite + monitor slots. + type: boolean + + xlnx,enable-trace: + description: + Enables trace mode. In trace mode, the APM provides event logging in a + reduced dynamic configuration. It captures the specified AXI events, + external events and the time stamp difference between two successive + events into the streaming FIFO. The selection of events to be captured + is set through parameter configuration. Streaming agents are not + supported in trace mode. + type: boolean + + xlnx,num-monitor-slots: + $ref: /schemas/types.yaml#/definitions/uint32 + description: + Number of monitor slots. + minimum: 1 + maximum: 8 + + xlnx,enable-event-count: + description: + Enable event count. + type: boolean + + xlnx,enable-event-log: + type: boolean + description: + Enable event log. + + xlnx,have-sampled-metric-cnt: + type: boolean + description: + Sampled metric counters enabled in APM. + + xlnx,metric-count-width: + allOf: + - $ref: /schemas/types.yaml#/definitions/uint32 + - enum: [32, 64] + description: + Metric Counter width. + + xlnx,metric-count-scale: + allOf: + - $ref: /schemas/types.yaml#/definitions/uint32 + - enum: [1, 2, 4, 8] + description: + Metric Counter scale factor. + + xlnx,num-of-counters: + allOf: + - $ref: /schemas/types.yaml#/definitions/uint32 + description: + Number of counters in APM. + + xlnx,metrics-sample-count-width: + allOf: + - $ref: /schemas/types.yaml#/definitions/uint32 + - enum: [32, 64] + description: + Sampled metric counter width. + + xlnx,global-count-width: + allOf: + - $ref: /schemas/types.yaml#/definitions/uint32 + - enum: [32, 64] + description: + Global Clock counter width. + + xlnx,id-filter-32bit: + description: APM is in 32-bit mode. + type: boolean + +required: + - compatible + - reg + - clocks + - interrupts + +additionalProperties: false + +examples: + - | + #include <dt-bindings/interrupt-controller/arm-gic.h> + + pmu@44a00000 { + compatible = "xlnx,axi-perf-monitor"; + interrupt-parent = <&axi_intc_1>; + interrupts = <GIC_SPI 123 IRQ_TYPE_EDGE_RISING>; + reg = <0x44a00000 0x1000>; + clocks = <&clkc 15>; + xlnx,num-monitor-slots = <4>; + xlnx,enable-event-count; + xlnx,enable-event-log; + xlnx,have-sampled-metric-cnt; + xlnx,num-of-counters = <8>; + xlnx,metric-count-width = <32>; + xlnx,metrics-sample-count-width = <32>; + xlnx,global-count-width = <32>; + xlnx,metric-count-scale = <1>; + xlnx,id-filter-32bit; + }; -- 2.17.1