On Sun, Dec 15, 2019 at 09:58:42PM -0800, David Dai wrote: > Redefine the Network-on-Chip devices to more accurately describe > the interconnect topology on Qualcomm's SDM845 platform. Each > interconnect device can communicate with different instances of the > RPMh hardware which are described as RSCs(Resource State Coordinators). > > As part of updating the DT bindings, convert the existing sdm845 bindings > to DT schema format using json-schema. Too many things in one patch. Convert to schema in one patch and then add new stuff in separate patch(es). > > Signed-off-by: David Dai <daidavid1@xxxxxxxxxxxxxx> > --- > .../bindings/interconnect/qcom,bcm-voter.yaml | 45 +++++++++ > .../bindings/interconnect/qcom,sdm845.txt | 24 ----- > .../bindings/interconnect/qcom,sdm845.yaml | 108 +++++++++++++++++++++ > 3 files changed, 153 insertions(+), 24 deletions(-) > create mode 100644 Documentation/devicetree/bindings/interconnect/qcom,bcm-voter.yaml > delete mode 100644 Documentation/devicetree/bindings/interconnect/qcom,sdm845.txt > create mode 100644 Documentation/devicetree/bindings/interconnect/qcom,sdm845.yaml > > diff --git a/Documentation/devicetree/bindings/interconnect/qcom,bcm-voter.yaml b/Documentation/devicetree/bindings/interconnect/qcom,bcm-voter.yaml > new file mode 100644 > index 0000000..74f0715 > --- /dev/null > +++ b/Documentation/devicetree/bindings/interconnect/qcom,bcm-voter.yaml > @@ -0,0 +1,45 @@ > +# SPDX-License-Identifier: GPL-2.0 > +%YAML 1.2 > +--- > +$id: http://devicetree.org/schemas/interconnect/qcom,bcm-voter.yaml# > +$schema: http://devicetree.org/meta-schemas/core.yaml# > + > +title: Qualcomm BCM-Voter Interconnect > + > +maintainers: > + - David Dai <daidavid1@xxxxxxxxxxxxxx> > + > +description: | > + The Bus Clock Manager (BCM) is a dedicated hardware accelerator > + that manages shared system resources by aggregating requests > + from multiple Resource State Coordinators (RSC). Interconnect > + providers are able to vote for aggregated thresholds values from > + consumers by communicating through their respective RSCs. > + > +properties: > + compatible: > + enum: > + - qcom,sdm845-bcm-voter > + > +required: > + - compatible > + > +additionalProperties: false > + > +examples: > + - | > + apps_rsc: interconnect@179c0000 { > + compatible = "qcom,rpmh-rsc"; > + > + apps_bcm_voter: bcm_voter { > + compatible = "qcom,sdm845-bcm-voter"; > + }; > + }; > + > + disp_rsc: interconnect@179d0000 { > + compatible = "qcom,rpmh-rsc"; > + > + disp_bcm_voter: bcm_voter { > + compatible = "qcom,sdm845-bcm-voter"; > + }; > + }; > diff --git a/Documentation/devicetree/bindings/interconnect/qcom,sdm845.txt b/Documentation/devicetree/bindings/interconnect/qcom,sdm845.txt > deleted file mode 100644 > index 5c4f1d9..0000000 > --- a/Documentation/devicetree/bindings/interconnect/qcom,sdm845.txt > +++ /dev/null > @@ -1,24 +0,0 @@ > -Qualcomm SDM845 Network-On-Chip interconnect driver binding > ------------------------------------------------------------ > - > -SDM845 interconnect providers support system bandwidth requirements through > -RPMh hardware accelerators known as Bus Clock Manager (BCM). The provider is > -able to communicate with the BCM through the Resource State Coordinator (RSC) > -associated with each execution environment. Provider nodes must reside within > -an RPMh device node pertaining to their RSC and each provider maps to a single > -RPMh resource. > - > -Required properties : > -- compatible : shall contain only one of the following: > - "qcom,sdm845-rsc-hlos" > -- #interconnect-cells : should contain 1 > - > -Examples: > - > -apps_rsc: rsc { > - rsc_hlos: interconnect { > - compatible = "qcom,sdm845-rsc-hlos"; > - #interconnect-cells = <1>; > - }; > -}; > - > diff --git a/Documentation/devicetree/bindings/interconnect/qcom,sdm845.yaml b/Documentation/devicetree/bindings/interconnect/qcom,sdm845.yaml > new file mode 100644 > index 0000000..1aec321 > --- /dev/null > +++ b/Documentation/devicetree/bindings/interconnect/qcom,sdm845.yaml > @@ -0,0 +1,108 @@ > +# SPDX-License-Identifier: GPL-2.0 > +%YAML 1.2 > +--- > +$id: http://devicetree.org/schemas/interconnect/qcom,sdm845.yaml# > +$schema: http://devicetree.org/meta-schemas/core.yaml# > + > +title: Qualcomm SDM845 Network-On-Chip Interconnect > + > +maintainers: > + - David Dai <daidavid1@xxxxxxxxxxxxxx> > + > +description: | > + SDM845 interconnect providers support system bandwidth requirements through > + RPMh hardware accelerators known as Bus Clock Manager (BCM). The provider is > + able to communicate with the BCM through the Resource State Coordinator (RSC) > + associated with each execution environment. Provider nodes must point to at > + least one RPMh device child node pertaining to their RSC and each provider > + can map to multiple RPMh resources. > + > +properties: > + reg: > + maxItems: 1 > + > + compatible: > + enum: > + - qcom,sdm845-aggre1-noc > + - qcom,sdm845-aggre2-noc > + - qcom,sdm845-config-noc > + - qcom,sdm845-dc-noc > + - qcom,sdm845-gladiator-noc > + - qcom,sdm845-mem-noc > + - qcom,sdm845-mmss-noc > + - qcom,sdm845-system-noc > + > + '#interconnect-cells': > + const: 1 > + > + qcom,bcm-voters: > + $ref: /schemas/types.yaml#/definitions/phandle-array > + description: | > + List of phandles to qcom,bcm-voter nodes that are required by > + this interconnect to send RPMh commands. > + > + qcom,bcm-voter-names: > + $ref: /schemas/types.yaml#/definitions/string-array Don't need a type for *-names. > + description: | > + Names for each of the qcom,bcm-voters specified. > + > +required: > + - compatible > + - reg > + - '#interconnect-cells' > + - qcom,bcm-voters > + > +additionalProperties: false > + > +examples: > + - | > + #include <dt-bindings/interconnect/qcom,sdm845.h> > + > + mem_noc: interconnect@1380000 { > + compatible = "qcom,sdm845-mem-noc"; > + reg = <0 0x01380000 0 0x27200>; > + #interconnect-cells = <1>; > + qcom,bcm-voters = <&apps_bcm_voter>; > + }; > + > + dc_noc: interconnect@14e0000 { > + compatible = "qcom,sdm845-dc-noc"; > + reg = <0 0x014e0000 0 0x400>; > + #interconnect-cells = <1>; > + qcom,bcm-voters = <&apps_bcm_voter>; > + }; > + > + config_noc: interconnect@1500000 { > + compatible = "qcom,sdm845-config-noc"; > + reg = <0 0x01500000 0 0x5080>; > + #interconnect-cells = <1>; > + qcom,bcm-voters = <&apps_bcm_voter>; > + }; > + > + system_noc: interconnect@1620000 { > + compatible = "qcom,sdm845-system-noc"; > + reg = <0 0x01620000 0 0x18080>; > + #interconnect-cells = <1>; > + qcom,bcm-voters = <&apps_bcm_voter>; > + }; > + > + aggre1_noc: interconnect@16e0000 { > + compatible = "qcom,sdm845-aggre1-noc"; > + reg = <0 0x016e0000 0 0xd080>; > + #interconnect-cells = <1>; > + qcom,bcm-voters = <&apps_bcm_voter>; > + }; > + > + aggre2_noc: interconnect@1700000 { > + compatible = "qcom,sdm845-aggre2-noc"; > + reg = <0 0x01700000 0 0x3b100>; > + #interconnect-cells = <1>; > + qcom,bcm-voters = <&apps_bcm_voter>; > + }; > + > + mmss_noc: interconnect@1740000 { > + compatible = "qcom,sdm845-mmss-noc"; > + reg = <0 0x01740000 0 0x1c1000>; > + #interconnect-cells = <1>; > + qcom,bcm-voters = <&apps_bcm_voter>; > + }; Examples are just examples, not an enumeration of all possible nodes. Also, when is qcom,bcm-voters more than 1 phandle. Rob