xref: /openbmc/linux/Documentation/devicetree/bindings/interconnect/qcom,rpm.yaml (revision 1ac731c529cd4d6adbce134754b51ff7d822b145)
14187f9c1SJun Nie# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
24187f9c1SJun Nie%YAML 1.2
34187f9c1SJun Nie---
44187f9c1SJun Nie$id: http://devicetree.org/schemas/interconnect/qcom,rpm.yaml#
54187f9c1SJun Nie$schema: http://devicetree.org/meta-schemas/core.yaml#
64187f9c1SJun Nie
74187f9c1SJun Nietitle: Qualcomm RPM Network-On-Chip Interconnect
84187f9c1SJun Nie
94187f9c1SJun Niemaintainers:
104187f9c1SJun Nie  - Georgi Djakov <georgi.djakov@linaro.org>
114187f9c1SJun Nie
124187f9c1SJun Niedescription: |
134187f9c1SJun Nie  RPM interconnect providers support system bandwidth requirements through
144187f9c1SJun Nie  RPM processor. The provider is able to communicate with the RPM through
154187f9c1SJun Nie  the RPM shared memory device.
164187f9c1SJun Nie
174187f9c1SJun Nieproperties:
184187f9c1SJun Nie  reg:
194187f9c1SJun Nie    maxItems: 1
204187f9c1SJun Nie
214187f9c1SJun Nie  compatible:
224187f9c1SJun Nie    enum:
234187f9c1SJun Nie      - qcom,msm8916-bimc
244187f9c1SJun Nie      - qcom,msm8916-pcnoc
254187f9c1SJun Nie      - qcom,msm8916-snoc
264ec908d2SJun Nie      - qcom,msm8939-bimc
274ec908d2SJun Nie      - qcom,msm8939-pcnoc
284ec908d2SJun Nie      - qcom,msm8939-snoc
293e9fdc6bSYassine Oudjana      - qcom,msm8996-a0noc
303e9fdc6bSYassine Oudjana      - qcom,msm8996-a1noc
313e9fdc6bSYassine Oudjana      - qcom,msm8996-a2noc
323e9fdc6bSYassine Oudjana      - qcom,msm8996-bimc
333e9fdc6bSYassine Oudjana      - qcom,msm8996-cnoc
343e9fdc6bSYassine Oudjana      - qcom,msm8996-mnoc
353e9fdc6bSYassine Oudjana      - qcom,msm8996-pnoc
363e9fdc6bSYassine Oudjana      - qcom,msm8996-snoc
374187f9c1SJun Nie      - qcom,qcs404-bimc
384187f9c1SJun Nie      - qcom,qcs404-pcnoc
394187f9c1SJun Nie      - qcom,qcs404-snoc
4045c548ccSYassine Oudjana      - qcom,sdm660-a2noc
4145c548ccSYassine Oudjana      - qcom,sdm660-bimc
4245c548ccSYassine Oudjana      - qcom,sdm660-cnoc
4345c548ccSYassine Oudjana      - qcom,sdm660-gnoc
4445c548ccSYassine Oudjana      - qcom,sdm660-mnoc
4545c548ccSYassine Oudjana      - qcom,sdm660-snoc
464187f9c1SJun Nie
474187f9c1SJun Nie  '#interconnect-cells':
482c510f5bSLeo Yan    description: |
492c510f5bSLeo Yan      Value: <1> is one cell in an interconnect specifier for the
502c510f5bSLeo Yan      interconnect node id, <2> requires the interconnect node id and an
512c510f5bSLeo Yan      extra path tag.
522c510f5bSLeo Yan    enum: [ 1, 2 ]
534187f9c1SJun Nie
5445c548ccSYassine Oudjana  clocks:
5545c548ccSYassine Oudjana    minItems: 2
5645c548ccSYassine Oudjana    maxItems: 7
5745c548ccSYassine Oudjana
5845c548ccSYassine Oudjana  clock-names:
5945c548ccSYassine Oudjana    minItems: 2
6045c548ccSYassine Oudjana    maxItems: 7
6145c548ccSYassine Oudjana
623e9fdc6bSYassine Oudjana  power-domains:
633e9fdc6bSYassine Oudjana    maxItems: 1
643e9fdc6bSYassine Oudjana
6516700accSBryan O'Donoghue# Child node's properties
6616700accSBryan O'DonoghuepatternProperties:
6716700accSBryan O'Donoghue  '^interconnect-[a-z0-9]+$':
6816700accSBryan O'Donoghue    type: object
69*e62fc182SRob Herring    additionalProperties: false
7016700accSBryan O'Donoghue    description:
7116700accSBryan O'Donoghue      snoc-mm is a child of snoc, sharing snoc's register address space.
7216700accSBryan O'Donoghue
7316700accSBryan O'Donoghue    properties:
7416700accSBryan O'Donoghue      compatible:
7516700accSBryan O'Donoghue        enum:
7616700accSBryan O'Donoghue          - qcom,msm8939-snoc-mm
7716700accSBryan O'Donoghue
7816700accSBryan O'Donoghue      '#interconnect-cells':
7916700accSBryan O'Donoghue        const: 1
8016700accSBryan O'Donoghue
8116700accSBryan O'Donoghue      clock-names:
8216700accSBryan O'Donoghue        items:
8316700accSBryan O'Donoghue          - const: bus
8416700accSBryan O'Donoghue          - const: bus_a
8516700accSBryan O'Donoghue
8616700accSBryan O'Donoghue      clocks:
8716700accSBryan O'Donoghue        items:
8816700accSBryan O'Donoghue          - description: Bus Clock
8916700accSBryan O'Donoghue          - description: Bus A Clock
9016700accSBryan O'Donoghue
9116700accSBryan O'Donoghue    required:
9216700accSBryan O'Donoghue      - compatible
9316700accSBryan O'Donoghue      - '#interconnect-cells'
9416700accSBryan O'Donoghue      - clock-names
9516700accSBryan O'Donoghue      - clocks
9616700accSBryan O'Donoghue
9745c548ccSYassine Oudjanarequired:
9845c548ccSYassine Oudjana  - compatible
9945c548ccSYassine Oudjana  - reg
10045c548ccSYassine Oudjana  - '#interconnect-cells'
10145c548ccSYassine Oudjana  - clock-names
10245c548ccSYassine Oudjana  - clocks
10345c548ccSYassine Oudjana
10445c548ccSYassine OudjanaadditionalProperties: false
10545c548ccSYassine Oudjana
10645c548ccSYassine OudjanaallOf:
10745c548ccSYassine Oudjana  - if:
10845c548ccSYassine Oudjana      properties:
10945c548ccSYassine Oudjana        compatible:
11045c548ccSYassine Oudjana          contains:
11145c548ccSYassine Oudjana            enum:
11245c548ccSYassine Oudjana              - qcom,msm8916-bimc
11345c548ccSYassine Oudjana              - qcom,msm8916-pcnoc
11445c548ccSYassine Oudjana              - qcom,msm8916-snoc
11545c548ccSYassine Oudjana              - qcom,msm8939-bimc
11645c548ccSYassine Oudjana              - qcom,msm8939-pcnoc
11745c548ccSYassine Oudjana              - qcom,msm8939-snoc
1183e9fdc6bSYassine Oudjana              - qcom,msm8996-a1noc
1193e9fdc6bSYassine Oudjana              - qcom,msm8996-bimc
1203e9fdc6bSYassine Oudjana              - qcom,msm8996-cnoc
1213e9fdc6bSYassine Oudjana              - qcom,msm8996-pnoc
1223e9fdc6bSYassine Oudjana              - qcom,msm8996-snoc
12345c548ccSYassine Oudjana              - qcom,qcs404-bimc
12445c548ccSYassine Oudjana              - qcom,qcs404-pcnoc
12545c548ccSYassine Oudjana              - qcom,qcs404-snoc
12645c548ccSYassine Oudjana              - qcom,sdm660-bimc
12745c548ccSYassine Oudjana              - qcom,sdm660-cnoc
12845c548ccSYassine Oudjana              - qcom,sdm660-gnoc
12945c548ccSYassine Oudjana              - qcom,sdm660-snoc
13045c548ccSYassine Oudjana
13145c548ccSYassine Oudjana    then:
13245c548ccSYassine Oudjana      properties:
1334187f9c1SJun Nie        clock-names:
1344187f9c1SJun Nie          items:
1354187f9c1SJun Nie            - const: bus
1364187f9c1SJun Nie            - const: bus_a
1374187f9c1SJun Nie
1384187f9c1SJun Nie        clocks:
1394187f9c1SJun Nie          items:
1404187f9c1SJun Nie            - description: Bus Clock
1414187f9c1SJun Nie            - description: Bus A Clock
1424187f9c1SJun Nie
14345c548ccSYassine Oudjana  - if:
14445c548ccSYassine Oudjana      properties:
14545c548ccSYassine Oudjana        compatible:
14645c548ccSYassine Oudjana          contains:
14745c548ccSYassine Oudjana            enum:
1483e9fdc6bSYassine Oudjana              - qcom,msm8996-mnoc
14945c548ccSYassine Oudjana              - qcom,sdm660-mnoc
1504187f9c1SJun Nie
15145c548ccSYassine Oudjana    then:
15245c548ccSYassine Oudjana      properties:
15345c548ccSYassine Oudjana        clock-names:
15445c548ccSYassine Oudjana          items:
15545c548ccSYassine Oudjana            - const: bus
15645c548ccSYassine Oudjana            - const: bus_a
15745c548ccSYassine Oudjana            - const: iface
15845c548ccSYassine Oudjana
15945c548ccSYassine Oudjana        clocks:
16045c548ccSYassine Oudjana          items:
16145c548ccSYassine Oudjana            - description: Bus Clock.
16245c548ccSYassine Oudjana            - description: Bus A Clock.
16345c548ccSYassine Oudjana            - description: CPU-NoC High-performance Bus Clock.
16445c548ccSYassine Oudjana
16545c548ccSYassine Oudjana  - if:
16645c548ccSYassine Oudjana      properties:
16745c548ccSYassine Oudjana        compatible:
16845c548ccSYassine Oudjana          contains:
16945c548ccSYassine Oudjana            enum:
1703e9fdc6bSYassine Oudjana              - qcom,msm8996-a0noc
1713e9fdc6bSYassine Oudjana
1723e9fdc6bSYassine Oudjana    then:
1733e9fdc6bSYassine Oudjana      properties:
1743e9fdc6bSYassine Oudjana        clock-names:
1753e9fdc6bSYassine Oudjana          items:
1763e9fdc6bSYassine Oudjana            - const: aggre0_snoc_axi
1773e9fdc6bSYassine Oudjana            - const: aggre0_cnoc_ahb
1783e9fdc6bSYassine Oudjana            - const: aggre0_noc_mpu_cfg
1793e9fdc6bSYassine Oudjana
1803e9fdc6bSYassine Oudjana        clocks:
1813e9fdc6bSYassine Oudjana          items:
1823e9fdc6bSYassine Oudjana            - description: Aggregate0 System NoC AXI Clock.
1833e9fdc6bSYassine Oudjana            - description: Aggregate0 Config NoC AHB Clock.
1843e9fdc6bSYassine Oudjana            - description: Aggregate0 NoC MPU Clock.
1853e9fdc6bSYassine Oudjana
1863e9fdc6bSYassine Oudjana      required:
1873e9fdc6bSYassine Oudjana        - power-domains
1883e9fdc6bSYassine Oudjana
1893e9fdc6bSYassine Oudjana  - if:
1903e9fdc6bSYassine Oudjana      properties:
1913e9fdc6bSYassine Oudjana        compatible:
1923e9fdc6bSYassine Oudjana          contains:
1933e9fdc6bSYassine Oudjana            enum:
194df875276SKonrad Dybcio              - qcom,msm8996-a2noc
195df875276SKonrad Dybcio
196df875276SKonrad Dybcio    then:
197df875276SKonrad Dybcio      properties:
198df875276SKonrad Dybcio        clock-names:
199df875276SKonrad Dybcio          items:
200df875276SKonrad Dybcio            - const: bus
201df875276SKonrad Dybcio            - const: bus_a
202df875276SKonrad Dybcio            - const: aggre2_ufs_axi
203df875276SKonrad Dybcio            - const: ufs_axi
204df875276SKonrad Dybcio
205df875276SKonrad Dybcio        clocks:
206df875276SKonrad Dybcio          items:
207df875276SKonrad Dybcio            - description: Bus Clock
208df875276SKonrad Dybcio            - description: Bus A Clock
209df875276SKonrad Dybcio            - description: Aggregate2 NoC UFS AXI Clock
210df875276SKonrad Dybcio            - description: UFS AXI Clock
211df875276SKonrad Dybcio
212df875276SKonrad Dybcio  - if:
213df875276SKonrad Dybcio      properties:
214df875276SKonrad Dybcio        compatible:
215df875276SKonrad Dybcio          contains:
216df875276SKonrad Dybcio            enum:
21745c548ccSYassine Oudjana              - qcom,sdm660-a2noc
21845c548ccSYassine Oudjana
21945c548ccSYassine Oudjana    then:
22045c548ccSYassine Oudjana      properties:
22145c548ccSYassine Oudjana        clock-names:
22245c548ccSYassine Oudjana          items:
22345c548ccSYassine Oudjana            - const: bus
22445c548ccSYassine Oudjana            - const: bus_a
22545c548ccSYassine Oudjana            - const: ipa
22645c548ccSYassine Oudjana            - const: ufs_axi
22745c548ccSYassine Oudjana            - const: aggre2_ufs_axi
22845c548ccSYassine Oudjana            - const: aggre2_usb3_axi
22945c548ccSYassine Oudjana            - const: cfg_noc_usb2_axi
23045c548ccSYassine Oudjana
23145c548ccSYassine Oudjana        clocks:
23245c548ccSYassine Oudjana          items:
23345c548ccSYassine Oudjana            - description: Bus Clock.
23445c548ccSYassine Oudjana            - description: Bus A Clock.
23545c548ccSYassine Oudjana            - description: IPA Clock.
23645c548ccSYassine Oudjana            - description: UFS AXI Clock.
23745c548ccSYassine Oudjana            - description: Aggregate2 UFS AXI Clock.
23845c548ccSYassine Oudjana            - description: Aggregate2 USB3 AXI Clock.
23945c548ccSYassine Oudjana            - description: Config NoC USB2 AXI Clock.
2404187f9c1SJun Nie
24116700accSBryan O'Donoghue  - if:
24216700accSBryan O'Donoghue      not:
24316700accSBryan O'Donoghue        properties:
24416700accSBryan O'Donoghue          compatible:
24516700accSBryan O'Donoghue            contains:
24616700accSBryan O'Donoghue              enum:
24716700accSBryan O'Donoghue                - qcom,msm8939-snoc
24816700accSBryan O'Donoghue    then:
24916700accSBryan O'Donoghue      patternProperties:
25016700accSBryan O'Donoghue        '^interconnect-[a-z0-9]+$': false
25116700accSBryan O'Donoghue
2524187f9c1SJun Nieexamples:
2534187f9c1SJun Nie  - |
2544187f9c1SJun Nie      #include <dt-bindings/clock/qcom,rpmcc.h>
2554187f9c1SJun Nie
2564187f9c1SJun Nie      bimc: interconnect@400000 {
2574187f9c1SJun Nie              compatible = "qcom,msm8916-bimc";
2584187f9c1SJun Nie              reg = <0x00400000 0x62000>;
2594187f9c1SJun Nie              #interconnect-cells = <1>;
2604187f9c1SJun Nie              clock-names = "bus", "bus_a";
2614187f9c1SJun Nie              clocks = <&rpmcc RPM_SMD_BIMC_CLK>,
2624187f9c1SJun Nie                       <&rpmcc RPM_SMD_BIMC_A_CLK>;
2634187f9c1SJun Nie      };
2644187f9c1SJun Nie
2654187f9c1SJun Nie      pcnoc: interconnect@500000 {
2664187f9c1SJun Nie              compatible = "qcom,msm8916-pcnoc";
2674187f9c1SJun Nie              reg = <0x00500000 0x11000>;
2684187f9c1SJun Nie              #interconnect-cells = <1>;
2694187f9c1SJun Nie              clock-names = "bus", "bus_a";
2704187f9c1SJun Nie              clocks = <&rpmcc RPM_SMD_PCNOC_CLK>,
2714187f9c1SJun Nie                       <&rpmcc RPM_SMD_PCNOC_A_CLK>;
2724187f9c1SJun Nie      };
2734187f9c1SJun Nie
2744187f9c1SJun Nie      snoc: interconnect@580000 {
2754187f9c1SJun Nie              compatible = "qcom,msm8916-snoc";
2764187f9c1SJun Nie              reg = <0x00580000 0x14000>;
2774187f9c1SJun Nie              #interconnect-cells = <1>;
2784187f9c1SJun Nie              clock-names = "bus", "bus_a";
2794187f9c1SJun Nie              clocks = <&rpmcc RPM_SMD_SNOC_CLK>,
2804187f9c1SJun Nie                       <&rpmcc RPM_SMD_SNOC_A_CLK>;
2814187f9c1SJun Nie      };
282