On 04/03/2023 16:39, Konrad Dybcio wrote: > 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 else: reg: maxItems: 1 and either disallow reg-names or move it to the top-level. > + > 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>; That's not correct for sdm845. It's only one address space for sdm845. Best regards, Krzysztof