Merge tag 'asoc-v4.19-rc4' of https://git.kernel.org/pub/scm/linux/kernel/git/broonie...
[sfrench/cifs-2.6.git] / Documentation / devicetree / bindings / remoteproc / qcom,q6v5.txt
1 Qualcomm Hexagon Peripheral Image Loader
2
3 This document defines the binding for a component that loads and boots firmware
4 on the Qualcomm Hexagon core.
5
6 - compatible:
7         Usage: required
8         Value type: <string>
9         Definition: must be one of:
10                     "qcom,q6v5-pil",
11                     "qcom,ipq8074-wcss-pil"
12                     "qcom,msm8916-mss-pil",
13                     "qcom,msm8974-mss-pil"
14                     "qcom,msm8996-mss-pil"
15                     "qcom,sdm845-mss-pil"
16
17 - reg:
18         Usage: required
19         Value type: <prop-encoded-array>
20         Definition: must specify the base address and size of the qdsp6 and
21                     rmb register blocks
22
23 - reg-names:
24         Usage: required
25         Value type: <stringlist>
26         Definition: must be "q6dsp" and "rmb"
27
28 - interrupts-extended:
29         Usage: required
30         Value type: <prop-encoded-array>
31         Definition: must list the watchdog, fatal IRQs ready, handover and
32                     stop-ack IRQs
33
34 - interrupt-names:
35         Usage: required
36         Value type: <stringlist>
37         Definition: must be "wdog", "fatal", "ready", "handover", "stop-ack"
38
39 - clocks:
40         Usage: required
41         Value type: <phandle>
42         Definition: reference to the iface, bus and mem clocks to be held on
43                     behalf of the booting of the Hexagon core
44
45 - clock-names:
46         Usage: required
47         Value type: <stringlist>
48         Definition: must be "iface", "bus", "mem"
49
50 - resets:
51         Usage: required
52         Value type: <phandle>
53         Definition: reference to the reset-controller for the modem sub-system
54                     reference to the list of 3 reset-controllers for the
55                     wcss sub-system
56
57 - reset-names:
58         Usage: required
59         Value type: <stringlist>
60         Definition: must be "mss_restart" for the modem sub-system
61         Definition: must be "wcss_aon_reset", "wcss_reset", "wcss_q6_reset"
62                     for the wcss syb-system
63
64 - cx-supply:
65 - mss-supply:
66 - mx-supply:
67 - pll-supply:
68         Usage: required
69         Value type: <phandle>
70         Definition: reference to the regulators to be held on behalf of the
71                     booting of the Hexagon core
72
73 - qcom,smem-states:
74         Usage: required
75         Value type: <phandle>
76         Definition: reference to the smem state for requesting the Hexagon to
77                     shut down
78
79 - qcom,smem-state-names:
80         Usage: required
81         Value type: <stringlist>
82         Definition: must be "stop"
83
84 - qcom,halt-regs:
85         Usage: required
86         Value type: <prop-encoded-array>
87         Definition: a phandle reference to a syscon representing TCSR followed
88                     by the three offsets within syscon for q6, modem and nc
89                     halt registers.
90
91 = SUBNODES:
92 The Hexagon node must contain two subnodes, named "mba" and "mpss" representing
93 the memory regions used by the Hexagon firmware. Each sub-node must contain:
94
95 - memory-region:
96         Usage: required
97         Value type: <phandle>
98         Definition: reference to the reserved-memory for the region
99
100 The Hexagon node may also have an subnode named either "smd-edge" or
101 "glink-edge" that describes the communication edge, channels and devices
102 related to the Hexagon.  See ../soc/qcom/qcom,smd.txt and
103 ../soc/qcom/qcom,glink.txt for details on how to describe these.
104
105 = EXAMPLE
106 The following example describes the resources needed to boot control the
107 Hexagon, as it is found on MSM8974 boards.
108
109         modem-rproc@fc880000 {
110                 compatible = "qcom,q6v5-pil";
111                 reg = <0xfc880000 0x100>,
112                       <0xfc820000 0x020>;
113                 reg-names = "qdsp6", "rmb";
114
115                 interrupts-extended = <&intc 0 24 1>,
116                                       <&modem_smp2p_in 0 0>,
117                                       <&modem_smp2p_in 1 0>,
118                                       <&modem_smp2p_in 2 0>,
119                                       <&modem_smp2p_in 3 0>;
120                 interrupt-names = "wdog",
121                                   "fatal",
122                                   "ready",
123                                   "handover",
124                                   "stop-ack";
125
126                 clocks = <&gcc GCC_MSS_Q6_BIMC_AXI_CLK>,
127                          <&gcc GCC_MSS_CFG_AHB_CLK>,
128                          <&gcc GCC_BOOT_ROM_AHB_CLK>;
129                 clock-names = "iface", "bus", "mem";
130
131                 qcom,halt-regs = <&tcsr_mutex_block 0x1180 0x1200 0x1280>;
132
133                 resets = <&gcc GCC_MSS_RESTART>;
134                 reset-names = "mss_restart";
135
136                 cx-supply = <&pm8841_s2>;
137                 mss-supply = <&pm8841_s3>;
138                 mx-supply = <&pm8841_s1>;
139                 pll-supply = <&pm8941_l12>;
140
141                 qcom,smem-states = <&modem_smp2p_out 0>;
142                 qcom,smem-state-names = "stop";
143
144                 mba {
145                         memory-region = <&mba_region>;
146                 };
147
148                 mpss {
149                         memory-region = <&mpss_region>;
150                 };
151         };