1Qualcomm Hexagon Peripheral Image Loader
2
3This document defines the binding for a component that loads and boots firmware
4on 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
12- reg:
13	Usage: required
14	Value type: <prop-encoded-array>
15	Definition: must specify the base address and size of the qdsp6 and
16		    rmb register blocks
17
18- reg-names:
19	Usage: required
20	Value type: <stringlist>
21	Definition: must be "q6dsp" and "rmb"
22
23- interrupts-extended:
24	Usage: required
25	Value type: <prop-encoded-array>
26	Definition: must list the watchdog, fatal IRQs ready, handover and
27		    stop-ack IRQs
28
29- interrupt-names:
30	Usage: required
31	Value type: <stringlist>
32	Definition: must be "wdog", "fatal", "ready", "handover", "stop-ack"
33
34- clocks:
35	Usage: required
36	Value type: <phandle>
37	Definition: reference to the iface, bus and mem clocks to be held on
38		    behalf of the booting of the Hexagon core
39
40- clock-names:
41	Usage: required
42	Value type: <stringlist>
43	Definition: must be "iface", "bus", "mem"
44
45- resets:
46	Usage: required
47	Value type: <phandle>
48	Definition: reference to the reset-controller for the modem sub-system
49
50- reset-names:
51	Usage: required
52	Value type: <stringlist>
53	Definition: must be "mss_restart"
54
55- cx-supply:
56- mss-supply:
57- mx-supply:
58- pll-supply:
59	Usage: required
60	Value type: <phandle>
61	Definition: reference to the regulators to be held on behalf of the
62		    booting of the Hexagon core
63
64- qcom,smem-states:
65	Usage: required
66	Value type: <phandle>
67	Definition: reference to the smem state for requesting the Hexagon to
68		    shut down
69
70- qcom,smem-state-names:
71	Usage: required
72	Value type: <stringlist>
73	Definition: must be "stop"
74
75- qcom,halt-regs:
76	Usage: required
77	Value type: <prop-encoded-array>
78	Definition: a phandle reference to a syscon representing TCSR followed
79		    by the three offsets within syscon for q6, modem and nc
80		    halt registers.
81
82= SUBNODES:
83The Hexagon node must contain two subnodes, named "mba" and "mpss" representing
84the memory regions used by the Hexagon firmware. Each sub-node must contain:
85
86- memory-region:
87	Usage: required
88	Value type: <phandle>
89	Definition: reference to the reserved-memory for the region
90
91= EXAMPLE
92The following example describes the resources needed to boot control the
93Hexagon, as it is found on MSM8974 boards.
94
95	modem-rproc@fc880000 {
96		compatible = "qcom,q6v5-pil";
97		reg = <0xfc880000 0x100>,
98		      <0xfc820000 0x020>;
99		reg-names = "qdsp6", "rmb";
100
101		interrupts-extended = <&intc 0 24 1>,
102				      <&modem_smp2p_in 0 0>,
103				      <&modem_smp2p_in 1 0>,
104				      <&modem_smp2p_in 2 0>,
105				      <&modem_smp2p_in 3 0>;
106		interrupt-names = "wdog",
107				  "fatal",
108				  "ready",
109				  "handover",
110				  "stop-ack";
111
112		clocks = <&gcc GCC_MSS_Q6_BIMC_AXI_CLK>,
113			 <&gcc GCC_MSS_CFG_AHB_CLK>,
114			 <&gcc GCC_BOOT_ROM_AHB_CLK>;
115		clock-names = "iface", "bus", "mem";
116
117		qcom,halt-regs = <&tcsr_mutex_block 0x1180 0x1200 0x1280>;
118
119		resets = <&gcc GCC_MSS_RESTART>;
120		reset-names = "mss_restart";
121
122		cx-supply = <&pm8841_s2>;
123		mss-supply = <&pm8841_s3>;
124		mx-supply = <&pm8841_s1>;
125		pll-supply = <&pm8941_l12>;
126
127		qcom,smem-states = <&modem_smp2p_out 0>;
128		qcom,smem-state-names = "stop";
129
130		mba {
131			memory-region = <&mba_region>;
132		};
133
134		mpss {
135			memory-region = <&mpss_region>;
136		};
137	};
138