Quoting David Dai (2019-07-19 13:32:23) > 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). > > Signed-off-by: David Dai <daidavid1@xxxxxxxxxxxxxx> > --- > diff --git a/Documentation/devicetree/bindings/interconnect/qcom,bcm-voter.txt b/Documentation/devicetree/bindings/interconnect/qcom,bcm-voter.txt > new file mode 100644 > index 0000000..2cf7da2 > --- /dev/null > +++ b/Documentation/devicetree/bindings/interconnect/qcom,bcm-voter.txt > @@ -0,0 +1,32 @@ > +Qualcomm BCM-Voter interconnect driver binding > +----------------------------------------------------------- > + > +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. > + > +Required properties : > +- compatible : shall contain only one of the following: > + "qcom,sdm845-bcm-voter", > + > +Examples: > + > +apps_rsc: rsc@179c0000 { But there isn't a reg property. > + label = "apps_rsc"; Is label required? > + compatible = "qcom,rpmh-rsc"; > + > + apps_bcm_voter: bcm_voter { > + compatible = "qcom,sdm845-bcm-voter"; > + }; > +} > + > +disp_rsc: rsc@179d0000 { > + label = "disp_rsc"; > + 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 > index 5c4f1d9..27f9ed9 100644 > --- a/Documentation/devicetree/bindings/interconnect/qcom,sdm845.txt > +++ b/Documentation/devicetree/bindings/interconnect/qcom,sdm845.txt > @@ -4,21 +4,43 @@ 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. > +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. > > Required properties : > - compatible : shall contain only one of the following: > - "qcom,sdm845-rsc-hlos" > + "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 : should contain 1 > +- reg : shall contain base register location and length > +- qcom,bcm-voter : shall contain phandles to bcm voters > > Examples: > > -apps_rsc: rsc { > - rsc_hlos: interconnect { > - compatible = "qcom,sdm845-rsc-hlos"; > - #interconnect-cells = <1>; > - }; > +aggre1_noc: interconnect@16e0000 { > + compatible = "qcom,sdm845-aggre1_noc"; > + reg = <0x16e0000 0xd080>; > + interconnect-cells = <1>; > + qcom,bcm-voter = <&apps_bcm_voter>; > }; > > +mmss_noc: interconnect@1740000 { > + compatible = "qcom,sdm845-mmss_noc"; > + reg = <0x1740000 0x1c1000>; > + interconnect-cells = <1>; > + qcom,bcm-voter = <&apps_bcm_voter>, <&disp_bcm_voter>; > +}; > + > +mem_noc: interconnect@1380000 { > + compatible = "qcom,sdm845-mem_noc"; > + reg = <0 0x1380000 0 0x27200>; > + #interconnect-cells = <1>; > + qcom,bcm-voter = <&apps_bcm_voter>, <&disp_bcm_voter>; > +}; How does a consumer target a particular RSC? For example, how can display decide to use the disp_bcm_voter node from mem_noc here? Maybe you can add that consumer to the example?