Re: [PATCH v1 1/4] dt-bindings: interconnect: Update Qualcomm SDM845 DT bindings

From: Rob Herring
Date: Thu Dec 26 2019 - 13:45:54 EST


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