The current RPM interconnect bindings are messy. Start cleaning them
up with a common include.
Signed-off-by: Konrad Dybcio <konrad.dybcio@linaro.org>
---
.../bindings/interconnect/qcom,qcm2290.yaml | 18 +++++++-------
.../bindings/interconnect/qcom,rpm-common.yaml | 28 ++++++++++++++++++++++
2 files changed, 36 insertions(+), 10 deletions(-)
diff --git a/Documentation/devicetree/bindings/interconnect/qcom,qcm2290.yaml b/Documentation/devicetree/bindings/interconnect/qcom,qcm2290.yaml
index f65a2fe846de..df89f390a9b0 100644
--- a/Documentation/devicetree/bindings/interconnect/qcom,qcm2290.yaml
+++ b/Documentation/devicetree/bindings/interconnect/qcom,qcm2290.yaml
@@ -13,6 +13,9 @@ description: |
The Qualcomm QCM2290 interconnect providers support adjusting the
bandwidth requirements between the various NoC fabrics.
+allOf:
+ - $ref: qcom,rpm-common.yaml#
+
properties:
reg:
maxItems: 1
@@ -23,9 +26,6 @@ properties:
- qcom,qcm2290-cnoc
- qcom,qcm2290-snoc
- '#interconnect-cells':
- const: 1
-
clock-names:
items:
- const: bus
@@ -44,6 +44,9 @@ patternProperties:
The interconnect providers do not have a separate QoS register space,
but share parent's space.
+ allOf:
+ - $ref: qcom,rpm-common.yaml#
+
properties:
compatible:
enum:
@@ -51,9 +54,6 @@ patternProperties:
- qcom,qcm2290-mmrt-virt
- qcom,qcm2290-mmnrt-virt
- '#interconnect-cells':
- const: 1
-
clock-names:
items:
- const: bus
@@ -66,20 +66,18 @@ patternProperties:
required:
- compatible
- - '#interconnect-cells'
- clock-names
- clocks
- additionalProperties: false
+ unevaluatedProperties: false
required:
- compatible
- reg
- - '#interconnect-cells'
- clock-names
- clocks
-additionalProperties: false
+unevaluatedProperties: false
examples:
- |
diff --git a/Documentation/devicetree/bindings/interconnect/qcom,rpm-common.yaml b/Documentation/devicetree/bindings/interconnect/qcom,rpm-common.yaml
new file mode 100644
index 000000000000..1ea52b091609
--- /dev/null
+++ b/Documentation/devicetree/bindings/interconnect/qcom,rpm-common.yaml
@@ -0,0 +1,28 @@
+# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/interconnect/qcom,rpm-common.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Qualcomm RPMh Network-On-Chip Interconnect
+
+maintainers:
+ - Konrad Dybcio <konradybcio@kernel.org>
+
+description:
+ RPM interconnect providers support for managing system bandwidth requirements
+ through manual requests based on either predefined values or as indicated by
+ the bus monitor hardware. Each provider node represents a NoC bus master,
+ driven by a dedicated clock source.
+
+properties:
+ '#interconnect-cells':
+ oneOf:
+ - const: 2
+ - const: 1
+ deprecated: true
+
+required:
+ - '#interconnect-cells'
+
+additionalProperties: true
--
2.41.0
On Mon, Jul 24, 2023 at 04:06:27PM +0200, Konrad Dybcio wrote: > The current RPM interconnect bindings are messy. Start cleaning them > up with a common include. > > Signed-off-by: Konrad Dybcio <konrad.dybcio@linaro.org> > --- > .../bindings/interconnect/qcom,qcm2290.yaml | 18 +++++++------- > .../bindings/interconnect/qcom,rpm-common.yaml | 28 ++++++++++++++++++++++ > 2 files changed, 36 insertions(+), 10 deletions(-) > > diff --git a/Documentation/devicetree/bindings/interconnect/qcom,qcm2290.yaml b/Documentation/devicetree/bindings/interconnect/qcom,qcm2290.yaml > index f65a2fe846de..df89f390a9b0 100644 > --- a/Documentation/devicetree/bindings/interconnect/qcom,qcm2290.yaml > +++ b/Documentation/devicetree/bindings/interconnect/qcom,qcm2290.yaml > @@ -13,6 +13,9 @@ description: | > The Qualcomm QCM2290 interconnect providers support adjusting the > bandwidth requirements between the various NoC fabrics. > > +allOf: > + - $ref: qcom,rpm-common.yaml# > + > properties: > reg: > maxItems: 1 > @@ -23,9 +26,6 @@ properties: > - qcom,qcm2290-cnoc > - qcom,qcm2290-snoc > > - '#interconnect-cells': > - const: 1 > - > clock-names: > items: > - const: bus > @@ -44,6 +44,9 @@ patternProperties: > The interconnect providers do not have a separate QoS register space, > but share parent's space. > > + allOf: > + - $ref: qcom,rpm-common.yaml# > + > properties: > compatible: > enum: > @@ -51,9 +54,6 @@ patternProperties: > - qcom,qcm2290-mmrt-virt > - qcom,qcm2290-mmnrt-virt > > - '#interconnect-cells': > - const: 1 > - > clock-names: > items: > - const: bus > @@ -66,20 +66,18 @@ patternProperties: > > required: > - compatible > - - '#interconnect-cells' > - clock-names > - clocks > > - additionalProperties: false > + unevaluatedProperties: false > > required: > - compatible > - reg > - - '#interconnect-cells' > - clock-names > - clocks > > -additionalProperties: false > +unevaluatedProperties: false > > examples: > - | > diff --git a/Documentation/devicetree/bindings/interconnect/qcom,rpm-common.yaml b/Documentation/devicetree/bindings/interconnect/qcom,rpm-common.yaml > new file mode 100644 > index 000000000000..1ea52b091609 > --- /dev/null > +++ b/Documentation/devicetree/bindings/interconnect/qcom,rpm-common.yaml > @@ -0,0 +1,28 @@ > +# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause) > +%YAML 1.2 > +--- > +$id: http://devicetree.org/schemas/interconnect/qcom,rpm-common.yaml# > +$schema: http://devicetree.org/meta-schemas/core.yaml# > + > +title: Qualcomm RPMh Network-On-Chip Interconnect > + > +maintainers: > + - Konrad Dybcio <konradybcio@kernel.org> > + > +description: > + RPM interconnect providers support for managing system bandwidth requirements > + through manual requests based on either predefined values or as indicated by > + the bus monitor hardware. Each provider node represents a NoC bus master, > + driven by a dedicated clock source. > + > +properties: > + '#interconnect-cells': > + oneOf: > + - const: 2 > + - const: 1 > + deprecated: true I think this is kind of questionable for a single property. Do you plan to add more properties here? Also, if you add a new user of this schema, then it's going to allow the deprecated case when it could just start with 2 only. Rob
On 11.08.2023 18:48, Rob Herring wrote: > On Mon, Jul 24, 2023 at 04:06:27PM +0200, Konrad Dybcio wrote: >> The current RPM interconnect bindings are messy. Start cleaning them >> up with a common include. >> >> Signed-off-by: Konrad Dybcio <konrad.dybcio@linaro.org> >> --- >> .../bindings/interconnect/qcom,qcm2290.yaml | 18 +++++++------- >> .../bindings/interconnect/qcom,rpm-common.yaml | 28 ++++++++++++++++++++++ >> 2 files changed, 36 insertions(+), 10 deletions(-) >> >> diff --git a/Documentation/devicetree/bindings/interconnect/qcom,qcm2290.yaml b/Documentation/devicetree/bindings/interconnect/qcom,qcm2290.yaml >> index f65a2fe846de..df89f390a9b0 100644 >> --- a/Documentation/devicetree/bindings/interconnect/qcom,qcm2290.yaml >> +++ b/Documentation/devicetree/bindings/interconnect/qcom,qcm2290.yaml >> @@ -13,6 +13,9 @@ description: | >> The Qualcomm QCM2290 interconnect providers support adjusting the >> bandwidth requirements between the various NoC fabrics. >> >> +allOf: >> + - $ref: qcom,rpm-common.yaml# >> + >> properties: >> reg: >> maxItems: 1 >> @@ -23,9 +26,6 @@ properties: >> - qcom,qcm2290-cnoc >> - qcom,qcm2290-snoc >> >> - '#interconnect-cells': >> - const: 1 >> - >> clock-names: >> items: >> - const: bus >> @@ -44,6 +44,9 @@ patternProperties: >> The interconnect providers do not have a separate QoS register space, >> but share parent's space. >> >> + allOf: >> + - $ref: qcom,rpm-common.yaml# >> + >> properties: >> compatible: >> enum: >> @@ -51,9 +54,6 @@ patternProperties: >> - qcom,qcm2290-mmrt-virt >> - qcom,qcm2290-mmnrt-virt >> >> - '#interconnect-cells': >> - const: 1 >> - >> clock-names: >> items: >> - const: bus >> @@ -66,20 +66,18 @@ patternProperties: >> >> required: >> - compatible >> - - '#interconnect-cells' >> - clock-names >> - clocks >> >> - additionalProperties: false >> + unevaluatedProperties: false >> >> required: >> - compatible >> - reg >> - - '#interconnect-cells' >> - clock-names >> - clocks >> >> -additionalProperties: false >> +unevaluatedProperties: false >> >> examples: >> - | >> diff --git a/Documentation/devicetree/bindings/interconnect/qcom,rpm-common.yaml b/Documentation/devicetree/bindings/interconnect/qcom,rpm-common.yaml >> new file mode 100644 >> index 000000000000..1ea52b091609 >> --- /dev/null >> +++ b/Documentation/devicetree/bindings/interconnect/qcom,rpm-common.yaml >> @@ -0,0 +1,28 @@ >> +# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause) >> +%YAML 1.2 >> +--- >> +$id: http://devicetree.org/schemas/interconnect/qcom,rpm-common.yaml# >> +$schema: http://devicetree.org/meta-schemas/core.yaml# >> + >> +title: Qualcomm RPMh Network-On-Chip Interconnect >> + >> +maintainers: >> + - Konrad Dybcio <konradybcio@kernel.org> >> + >> +description: >> + RPM interconnect providers support for managing system bandwidth requirements >> + through manual requests based on either predefined values or as indicated by >> + the bus monitor hardware. Each provider node represents a NoC bus master, >> + driven by a dedicated clock source. >> + >> +properties: >> + '#interconnect-cells': >> + oneOf: >> + - const: 2 >> + - const: 1 >> + deprecated: true > > I think this is kind of questionable for a single property. Do you > plan to add more properties here? My best answer is "we'll see". Not in the forseeable future, but this hardware has a never-ending queue of surprises.. I like this file for the broader description, but ultimately up to you. (FWIW Georgi has queued this up for icc-dev (not icc-next) and I'd like to flush my icc patch queue, but that's just my lazy €0.05) > Also, if you add a new user of this > schema, then it's going to allow the deprecated case when it could just > start with 2 only. I see your point. Speaking of this keyword, shouldn't the dt checker start spitting out warnings that would urge dts maintainers to update their trees? Konrad
© 2016 - 2026 Red Hat, Inc.