Message ID | 20230721-topic-icc_bindings-v2-1-e33d5acbf3bd@linaro.org |
---|---|
State | Accepted |
Commit | 400e531bcdf1dc702c9d560f57cea3b9547030fc |
Headers | show |
Series | Update RPM ICC bindings | expand |
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
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
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(-)