DDRPERFM is the DDR Performance Monitor embedded in STM32MPU SoC. It allows to monitor DDR events that come from the DDR Controller such as read or write events. Signed-off-by: Clément Le Goffic <clement.legoffic@xxxxxxxxxxx> --- .../devicetree/bindings/perf/st,stm32-ddr-pmu.yaml | 93 ++++++++++++++++++++++ 1 file changed, 93 insertions(+) diff --git a/Documentation/devicetree/bindings/perf/st,stm32-ddr-pmu.yaml b/Documentation/devicetree/bindings/perf/st,stm32-ddr-pmu.yaml new file mode 100644 index 000000000000..35d34782865b --- /dev/null +++ b/Documentation/devicetree/bindings/perf/st,stm32-ddr-pmu.yaml @@ -0,0 +1,93 @@ +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) +%YAML 1.2 +--- +$id: http://devicetree.org/schemas/perf/st,stm32-ddr-pmu.yaml# +$schema: http://devicetree.org/meta-schemas/core.yaml# + +maintainers: + - Clément Le Goffic <clement.legoffic@xxxxxxxxxxx> + +title: STMicroelectronics STM32 DDR Performance Monitor (DDRPERFM) + +properties: + compatible: + enum: + - st,stm32mp131-ddr-pmu + - st,stm32mp151-ddr-pmu + - st,stm32mp251-ddr-pmu + + reg: + maxItems: 1 + + clocks: + description: Reference clock for the DDR Performance Monitor + maxItems: 1 + + resets: + description: Reset control for the DDR Performance Monitor + maxItems: 1 + + access-controllers: + minItems: 1 + maxItems: 2 + + st,dram-type: + description: | + This property is used to specify the type of DRAM memory connected to the + associated memory controller. It is required for the DDR Performance Monitor + to correctly interpret the performance data. + 0 = LPDDR4, + 1 = LPDDR3, + 2 = DDR4, + 3 = DDR3 + $ref: /schemas/types.yaml#/definitions/uint32 + enum: [0, 1, 2, 3] + +required: + - compatible + - reg + +allOf: + - if: + properties: + compatible: + contains: + enum: + - st,stm32mp131-ddr-pmu + - st,stm32mp151-ddr-pmu + then: + required: + - clocks + - resets + + - if: + properties: + compatible: + contains: + const: st,stm32mp251-ddr-pmu + then: + required: + - access-controllers + - st,dram-type + +additionalProperties: false + +examples: + - | + #include <dt-bindings/clock/stm32mp1-clks.h> + #include <dt-bindings/reset/stm32mp1-resets.h> + + perf@5a007000 { + compatible = "st,stm32mp151-ddr-pmu"; + reg = <0x5a007000 0x400>; + clocks = <&rcc DDRPERFM>; + resets = <&rcc DDRPERFM_R>; + }; + + - | + perf@48041000 { + compatible = "st,stm32mp251-ddr-pmu"; + reg = <0x48041000 0x400>; + access-controllers = <&rcc 104>; + st,dram-type = <2>; + }; -- 2.43.0