Back to home page

OSCL-LXR

 
 

    


0001 # SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
0002 %YAML 1.2
0003 ---
0004 $id: http://devicetree.org/schemas/interconnect/qcom,rpm.yaml#
0005 $schema: http://devicetree.org/meta-schemas/core.yaml#
0006 
0007 title: Qualcomm RPM Network-On-Chip Interconnect
0008 
0009 maintainers:
0010   - Georgi Djakov <georgi.djakov@linaro.org>
0011 
0012 description: |
0013   RPM interconnect providers support system bandwidth requirements through
0014   RPM processor. The provider is able to communicate with the RPM through
0015   the RPM shared memory device.
0016 
0017 properties:
0018   reg:
0019     maxItems: 1
0020 
0021   compatible:
0022     enum:
0023       - qcom,msm8916-bimc
0024       - qcom,msm8916-pcnoc
0025       - qcom,msm8916-snoc
0026       - qcom,msm8939-bimc
0027       - qcom,msm8939-pcnoc
0028       - qcom,msm8939-snoc
0029       - qcom,msm8996-a0noc
0030       - qcom,msm8996-a1noc
0031       - qcom,msm8996-a2noc
0032       - qcom,msm8996-bimc
0033       - qcom,msm8996-cnoc
0034       - qcom,msm8996-mnoc
0035       - qcom,msm8996-pnoc
0036       - qcom,msm8996-snoc
0037       - qcom,qcs404-bimc
0038       - qcom,qcs404-pcnoc
0039       - qcom,qcs404-snoc
0040       - qcom,sdm660-a2noc
0041       - qcom,sdm660-bimc
0042       - qcom,sdm660-cnoc
0043       - qcom,sdm660-gnoc
0044       - qcom,sdm660-mnoc
0045       - qcom,sdm660-snoc
0046 
0047   '#interconnect-cells':
0048     description: |
0049       Value: <1> is one cell in an interconnect specifier for the
0050       interconnect node id, <2> requires the interconnect node id and an
0051       extra path tag.
0052     enum: [ 1, 2 ]
0053 
0054   clocks:
0055     minItems: 2
0056     maxItems: 7
0057 
0058   clock-names:
0059     minItems: 2
0060     maxItems: 7
0061 
0062   power-domains:
0063     maxItems: 1
0064 
0065 required:
0066   - compatible
0067   - reg
0068   - '#interconnect-cells'
0069   - clock-names
0070   - clocks
0071 
0072 additionalProperties: false
0073 
0074 allOf:
0075   - if:
0076       properties:
0077         compatible:
0078           contains:
0079             enum:
0080               - qcom,msm8916-bimc
0081               - qcom,msm8916-pcnoc
0082               - qcom,msm8916-snoc
0083               - qcom,msm8939-bimc
0084               - qcom,msm8939-pcnoc
0085               - qcom,msm8939-snoc
0086               - qcom,msm8996-a1noc
0087               - qcom,msm8996-a2noc
0088               - qcom,msm8996-bimc
0089               - qcom,msm8996-cnoc
0090               - qcom,msm8996-pnoc
0091               - qcom,msm8996-snoc
0092               - qcom,qcs404-bimc
0093               - qcom,qcs404-pcnoc
0094               - qcom,qcs404-snoc
0095               - qcom,sdm660-bimc
0096               - qcom,sdm660-cnoc
0097               - qcom,sdm660-gnoc
0098               - qcom,sdm660-snoc
0099 
0100     then:
0101       properties:
0102         clock-names:
0103           items:
0104             - const: bus
0105             - const: bus_a
0106 
0107         clocks:
0108           items:
0109             - description: Bus Clock
0110             - description: Bus A Clock
0111 
0112       # Child node's properties
0113       patternProperties:
0114         '^interconnect-[a-z0-9]+$':
0115           type: object
0116           description:
0117             snoc-mm is a child of snoc, sharing snoc's register address space.
0118 
0119           properties:
0120             compatible:
0121               enum:
0122                 - qcom,msm8939-snoc-mm
0123 
0124             '#interconnect-cells':
0125               const: 1
0126 
0127             clock-names:
0128               items:
0129                 - const: bus
0130                 - const: bus_a
0131 
0132             clocks:
0133               items:
0134                 - description: Bus Clock
0135                 - description: Bus A Clock
0136 
0137           required:
0138             - compatible
0139             - '#interconnect-cells'
0140             - clock-names
0141             - clocks
0142 
0143   - if:
0144       properties:
0145         compatible:
0146           contains:
0147             enum:
0148               - qcom,msm8996-mnoc
0149               - qcom,sdm660-mnoc
0150 
0151     then:
0152       properties:
0153         clock-names:
0154           items:
0155             - const: bus
0156             - const: bus_a
0157             - const: iface
0158 
0159         clocks:
0160           items:
0161             - description: Bus Clock.
0162             - description: Bus A Clock.
0163             - description: CPU-NoC High-performance Bus Clock.
0164 
0165   - if:
0166       properties:
0167         compatible:
0168           contains:
0169             enum:
0170               - qcom,msm8996-a0noc
0171 
0172     then:
0173       properties:
0174         clock-names:
0175           items:
0176             - const: aggre0_snoc_axi
0177             - const: aggre0_cnoc_ahb
0178             - const: aggre0_noc_mpu_cfg
0179 
0180         clocks:
0181           items:
0182             - description: Aggregate0 System NoC AXI Clock.
0183             - description: Aggregate0 Config NoC AHB Clock.
0184             - description: Aggregate0 NoC MPU Clock.
0185 
0186       required:
0187         - power-domains
0188 
0189   - if:
0190       properties:
0191         compatible:
0192           contains:
0193             enum:
0194               - qcom,sdm660-a2noc
0195 
0196     then:
0197       properties:
0198         clock-names:
0199           items:
0200             - const: bus
0201             - const: bus_a
0202             - const: ipa
0203             - const: ufs_axi
0204             - const: aggre2_ufs_axi
0205             - const: aggre2_usb3_axi
0206             - const: cfg_noc_usb2_axi
0207 
0208         clocks:
0209           items:
0210             - description: Bus Clock.
0211             - description: Bus A Clock.
0212             - description: IPA Clock.
0213             - description: UFS AXI Clock.
0214             - description: Aggregate2 UFS AXI Clock.
0215             - description: Aggregate2 USB3 AXI Clock.
0216             - description: Config NoC USB2 AXI Clock.
0217 
0218 examples:
0219   - |
0220       #include <dt-bindings/clock/qcom,rpmcc.h>
0221 
0222       bimc: interconnect@400000 {
0223               compatible = "qcom,msm8916-bimc";
0224               reg = <0x00400000 0x62000>;
0225               #interconnect-cells = <1>;
0226               clock-names = "bus", "bus_a";
0227               clocks = <&rpmcc RPM_SMD_BIMC_CLK>,
0228                        <&rpmcc RPM_SMD_BIMC_A_CLK>;
0229       };
0230 
0231       pcnoc: interconnect@500000 {
0232               compatible = "qcom,msm8916-pcnoc";
0233               reg = <0x00500000 0x11000>;
0234               #interconnect-cells = <1>;
0235               clock-names = "bus", "bus_a";
0236               clocks = <&rpmcc RPM_SMD_PCNOC_CLK>,
0237                        <&rpmcc RPM_SMD_PCNOC_A_CLK>;
0238       };
0239 
0240       snoc: interconnect@580000 {
0241               compatible = "qcom,msm8916-snoc";
0242               reg = <0x00580000 0x14000>;
0243               #interconnect-cells = <1>;
0244               clock-names = "bus", "bus_a";
0245               clocks = <&rpmcc RPM_SMD_SNOC_CLK>,
0246                        <&rpmcc RPM_SMD_SNOC_A_CLK>;
0247       };