xref: /freebsd/sys/contrib/device-tree/Bindings/interconnect/qcom,milos-rpmh.yaml (revision 833e5d42ab135b0238e61c5b3c19b8619677cbfa)
1*833e5d42SEmmanuel Vadot# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
2*833e5d42SEmmanuel Vadot%YAML 1.2
3*833e5d42SEmmanuel Vadot---
4*833e5d42SEmmanuel Vadot$id: http://devicetree.org/schemas/interconnect/qcom,milos-rpmh.yaml#
5*833e5d42SEmmanuel Vadot$schema: http://devicetree.org/meta-schemas/core.yaml#
6*833e5d42SEmmanuel Vadot
7*833e5d42SEmmanuel Vadottitle: Qualcomm RPMh Network-On-Chip Interconnect on Milos SoC
8*833e5d42SEmmanuel Vadot
9*833e5d42SEmmanuel Vadotmaintainers:
10*833e5d42SEmmanuel Vadot  - Luca Weiss <luca.weiss@fairphone.com>
11*833e5d42SEmmanuel Vadot
12*833e5d42SEmmanuel Vadotdescription: |
13*833e5d42SEmmanuel Vadot  RPMh interconnect providers support system bandwidth requirements through
14*833e5d42SEmmanuel Vadot  RPMh hardware accelerators known as Bus Clock Manager (BCM). The provider is
15*833e5d42SEmmanuel Vadot  able to communicate with the BCM through the Resource State Coordinator (RSC)
16*833e5d42SEmmanuel Vadot  associated with each execution environment. Provider nodes must point to at
17*833e5d42SEmmanuel Vadot  least one RPMh device child node pertaining to their RSC and each provider
18*833e5d42SEmmanuel Vadot  can map to multiple RPMh resources.
19*833e5d42SEmmanuel Vadot
20*833e5d42SEmmanuel Vadot  See also: include/dt-bindings/interconnect/qcom,milos-rpmh.h
21*833e5d42SEmmanuel Vadot
22*833e5d42SEmmanuel Vadotproperties:
23*833e5d42SEmmanuel Vadot  compatible:
24*833e5d42SEmmanuel Vadot    enum:
25*833e5d42SEmmanuel Vadot      - qcom,milos-aggre1-noc
26*833e5d42SEmmanuel Vadot      - qcom,milos-aggre2-noc
27*833e5d42SEmmanuel Vadot      - qcom,milos-clk-virt
28*833e5d42SEmmanuel Vadot      - qcom,milos-cnoc-cfg
29*833e5d42SEmmanuel Vadot      - qcom,milos-cnoc-main
30*833e5d42SEmmanuel Vadot      - qcom,milos-gem-noc
31*833e5d42SEmmanuel Vadot      - qcom,milos-lpass-ag-noc
32*833e5d42SEmmanuel Vadot      - qcom,milos-mc-virt
33*833e5d42SEmmanuel Vadot      - qcom,milos-mmss-noc
34*833e5d42SEmmanuel Vadot      - qcom,milos-nsp-noc
35*833e5d42SEmmanuel Vadot      - qcom,milos-pcie-anoc
36*833e5d42SEmmanuel Vadot      - qcom,milos-system-noc
37*833e5d42SEmmanuel Vadot
38*833e5d42SEmmanuel Vadot  reg:
39*833e5d42SEmmanuel Vadot    maxItems: 1
40*833e5d42SEmmanuel Vadot
41*833e5d42SEmmanuel Vadot  clocks:
42*833e5d42SEmmanuel Vadot    minItems: 1
43*833e5d42SEmmanuel Vadot    maxItems: 2
44*833e5d42SEmmanuel Vadot
45*833e5d42SEmmanuel Vadotrequired:
46*833e5d42SEmmanuel Vadot  - compatible
47*833e5d42SEmmanuel Vadot
48*833e5d42SEmmanuel VadotallOf:
49*833e5d42SEmmanuel Vadot  - $ref: qcom,rpmh-common.yaml#
50*833e5d42SEmmanuel Vadot  - if:
51*833e5d42SEmmanuel Vadot      properties:
52*833e5d42SEmmanuel Vadot        compatible:
53*833e5d42SEmmanuel Vadot          contains:
54*833e5d42SEmmanuel Vadot            enum:
55*833e5d42SEmmanuel Vadot              - qcom,milos-clk-virt
56*833e5d42SEmmanuel Vadot              - qcom,milos-mc-virt
57*833e5d42SEmmanuel Vadot    then:
58*833e5d42SEmmanuel Vadot      properties:
59*833e5d42SEmmanuel Vadot        reg: false
60*833e5d42SEmmanuel Vadot    else:
61*833e5d42SEmmanuel Vadot      required:
62*833e5d42SEmmanuel Vadot        - reg
63*833e5d42SEmmanuel Vadot
64*833e5d42SEmmanuel Vadot  - if:
65*833e5d42SEmmanuel Vadot      properties:
66*833e5d42SEmmanuel Vadot        compatible:
67*833e5d42SEmmanuel Vadot          contains:
68*833e5d42SEmmanuel Vadot            enum:
69*833e5d42SEmmanuel Vadot              - qcom,milos-pcie-anoc
70*833e5d42SEmmanuel Vadot    then:
71*833e5d42SEmmanuel Vadot      properties:
72*833e5d42SEmmanuel Vadot        clocks:
73*833e5d42SEmmanuel Vadot          items:
74*833e5d42SEmmanuel Vadot            - description: aggre-NOC PCIe AXI clock
75*833e5d42SEmmanuel Vadot            - description: cfg-NOC PCIe a-NOC AHB clock
76*833e5d42SEmmanuel Vadot
77*833e5d42SEmmanuel Vadot  - if:
78*833e5d42SEmmanuel Vadot      properties:
79*833e5d42SEmmanuel Vadot        compatible:
80*833e5d42SEmmanuel Vadot          contains:
81*833e5d42SEmmanuel Vadot            enum:
82*833e5d42SEmmanuel Vadot              - qcom,milos-aggre1-noc
83*833e5d42SEmmanuel Vadot    then:
84*833e5d42SEmmanuel Vadot      properties:
85*833e5d42SEmmanuel Vadot        clocks:
86*833e5d42SEmmanuel Vadot          items:
87*833e5d42SEmmanuel Vadot            - description: aggre USB3 PRIM AXI clock
88*833e5d42SEmmanuel Vadot            - description: aggre UFS PHY AXI clock
89*833e5d42SEmmanuel Vadot
90*833e5d42SEmmanuel Vadot  - if:
91*833e5d42SEmmanuel Vadot      properties:
92*833e5d42SEmmanuel Vadot        compatible:
93*833e5d42SEmmanuel Vadot          contains:
94*833e5d42SEmmanuel Vadot            enum:
95*833e5d42SEmmanuel Vadot              - qcom,milos-aggre2-noc
96*833e5d42SEmmanuel Vadot    then:
97*833e5d42SEmmanuel Vadot      properties:
98*833e5d42SEmmanuel Vadot        clocks:
99*833e5d42SEmmanuel Vadot          items:
100*833e5d42SEmmanuel Vadot            - description: RPMH CC IPA clock
101*833e5d42SEmmanuel Vadot
102*833e5d42SEmmanuel Vadot  - if:
103*833e5d42SEmmanuel Vadot      properties:
104*833e5d42SEmmanuel Vadot        compatible:
105*833e5d42SEmmanuel Vadot          contains:
106*833e5d42SEmmanuel Vadot            enum:
107*833e5d42SEmmanuel Vadot              - qcom,milos-aggre1-noc
108*833e5d42SEmmanuel Vadot              - qcom,milos-aggre2-noc
109*833e5d42SEmmanuel Vadot              - qcom,milos-pcie-anoc
110*833e5d42SEmmanuel Vadot    then:
111*833e5d42SEmmanuel Vadot      required:
112*833e5d42SEmmanuel Vadot        - clocks
113*833e5d42SEmmanuel Vadot    else:
114*833e5d42SEmmanuel Vadot      properties:
115*833e5d42SEmmanuel Vadot        clocks: false
116*833e5d42SEmmanuel Vadot
117*833e5d42SEmmanuel VadotunevaluatedProperties: false
118*833e5d42SEmmanuel Vadot
119*833e5d42SEmmanuel Vadotexamples:
120*833e5d42SEmmanuel Vadot  - |
121*833e5d42SEmmanuel Vadot    #include <dt-bindings/clock/qcom,milos-gcc.h>
122*833e5d42SEmmanuel Vadot
123*833e5d42SEmmanuel Vadot    interconnect-0 {
124*833e5d42SEmmanuel Vadot        compatible = "qcom,milos-clk-virt";
125*833e5d42SEmmanuel Vadot        #interconnect-cells = <2>;
126*833e5d42SEmmanuel Vadot        qcom,bcm-voters = <&apps_bcm_voter>;
127*833e5d42SEmmanuel Vadot    };
128*833e5d42SEmmanuel Vadot
129*833e5d42SEmmanuel Vadot    interconnect@16e0000 {
130*833e5d42SEmmanuel Vadot        compatible = "qcom,milos-aggre1-noc";
131*833e5d42SEmmanuel Vadot        reg = <0x016e0000 0x16400>;
132*833e5d42SEmmanuel Vadot        #interconnect-cells = <2>;
133*833e5d42SEmmanuel Vadot        clocks = <&gcc GCC_AGGRE_USB3_PRIM_AXI_CLK>,
134*833e5d42SEmmanuel Vadot                 <&gcc GCC_AGGRE_UFS_PHY_AXI_CLK>;
135*833e5d42SEmmanuel Vadot        qcom,bcm-voters = <&apps_bcm_voter>;
136*833e5d42SEmmanuel Vadot    };
137