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