The BWMON has two sets of registers: one for handling the monitor itself and one called "global", which we didn't care about before, as on newer SoCs it was made contiguous with (but not the same as) the monitor's register range. Describe it. Signed-off-by: Konrad Dybcio <konrad.dybcio@xxxxxxxxxx> --- .../bindings/interconnect/qcom,msm8998-bwmon.yaml | 28 ++++++++++++++++++---- 1 file changed, 24 insertions(+), 4 deletions(-) diff --git a/Documentation/devicetree/bindings/interconnect/qcom,msm8998-bwmon.yaml b/Documentation/devicetree/bindings/interconnect/qcom,msm8998-bwmon.yaml index 12a0d3ecbabb..6dd0cb0a1f43 100644 --- a/Documentation/devicetree/bindings/interconnect/qcom,msm8998-bwmon.yaml +++ b/Documentation/devicetree/bindings/interconnect/qcom,msm8998-bwmon.yaml @@ -49,9 +49,13 @@ properties: type: object reg: - # BWMON v4 (currently described) and BWMON v5 use one register address - # space. BWMON v2 uses two register spaces - not yet described. - maxItems: 1 + # BWMON v5 uses one register address space, v1-v4 use one or two. + minItems: 1 + maxItems: 2 + + reg-names: + minItems: 1 + maxItems: 2 required: - compatible @@ -63,6 +67,21 @@ required: additionalProperties: false +allOf: + - if: + properties: + compatible: + const: qcom,msm8998-bwmon + then: + properties: + reg: + minItems: 2 + + reg-names: + items: + - const: monitor + - const: global + examples: - | #include <dt-bindings/interconnect/qcom,sdm845.h> @@ -70,7 +89,8 @@ examples: pmu@1436400 { compatible = "qcom,sdm845-bwmon", "qcom,msm8998-bwmon"; - reg = <0x01436400 0x600>; + reg = <0x01436400 0x600>, <0x01436300 0x200>; + reg-names = "monitor", "global"; interrupts = <GIC_SPI 581 IRQ_TYPE_LEVEL_HIGH>; interconnects = <&gladiator_noc MASTER_APPSS_PROC 3 &mem_noc SLAVE_LLCC 3>; -- 2.39.2