Commit | Line | Data |
---|---|---|
3b76df4b BA |
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 | ||
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: | |
83 | The Hexagon node must contain two subnodes, named "mba" and "mpss" representing | |
84 | the 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 | |
92 | The following example describes the resources needed to boot control the | |
93 | Hexagon, 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 | }; |