1 Qualcomm Hexagon Peripheral Image Loader
3 This document defines the binding for a component that loads and boots firmware
4 on the Qualcomm Hexagon core.
9 Definition: must be one of:
11 "qcom,msm8916-mss-pil",
12 "qcom,msm8974-mss-pil"
13 "qcom,msm8996-mss-pil"
18 Value type: <prop-encoded-array>
19 Definition: must specify the base address and size of the qdsp6 and
24 Value type: <stringlist>
25 Definition: must be "q6dsp" and "rmb"
27 - interrupts-extended:
29 Value type: <prop-encoded-array>
30 Definition: must list the watchdog, fatal IRQs ready, handover and
35 Value type: <stringlist>
36 Definition: must be "wdog", "fatal", "ready", "handover", "stop-ack"
41 Definition: reference to the iface, bus and mem clocks to be held on
42 behalf of the booting of the Hexagon core
46 Value type: <stringlist>
47 Definition: must be "iface", "bus", "mem"
52 Definition: reference to the reset-controller for the modem sub-system
56 Value type: <stringlist>
57 Definition: must be "mss_restart"
65 Definition: reference to the regulators to be held on behalf of the
66 booting of the Hexagon core
71 Definition: reference to the smem state for requesting the Hexagon to
74 - qcom,smem-state-names:
76 Value type: <stringlist>
77 Definition: must be "stop"
81 Value type: <prop-encoded-array>
82 Definition: a phandle reference to a syscon representing TCSR followed
83 by the three offsets within syscon for q6, modem and nc
87 The Hexagon node must contain two subnodes, named "mba" and "mpss" representing
88 the memory regions used by the Hexagon firmware. Each sub-node must contain:
93 Definition: reference to the reserved-memory for the region
95 The Hexagon node may also have an subnode named either "smd-edge" or
96 "glink-edge" that describes the communication edge, channels and devices
97 related to the Hexagon. See ../soc/qcom/qcom,smd.txt and
98 ../soc/qcom/qcom,glink.txt for details on how to describe these.
101 The following example describes the resources needed to boot control the
102 Hexagon, as it is found on MSM8974 boards.
104 modem-rproc@fc880000 {
105 compatible = "qcom,q6v5-pil";
106 reg = <0xfc880000 0x100>,
108 reg-names = "qdsp6", "rmb";
110 interrupts-extended = <&intc 0 24 1>,
111 <&modem_smp2p_in 0 0>,
112 <&modem_smp2p_in 1 0>,
113 <&modem_smp2p_in 2 0>,
114 <&modem_smp2p_in 3 0>;
115 interrupt-names = "wdog",
121 clocks = <&gcc GCC_MSS_Q6_BIMC_AXI_CLK>,
122 <&gcc GCC_MSS_CFG_AHB_CLK>,
123 <&gcc GCC_BOOT_ROM_AHB_CLK>;
124 clock-names = "iface", "bus", "mem";
126 qcom,halt-regs = <&tcsr_mutex_block 0x1180 0x1200 0x1280>;
128 resets = <&gcc GCC_MSS_RESTART>;
129 reset-names = "mss_restart";
131 cx-supply = <&pm8841_s2>;
132 mss-supply = <&pm8841_s3>;
133 mx-supply = <&pm8841_s1>;
134 pll-supply = <&pm8941_l12>;
136 qcom,smem-states = <&modem_smp2p_out 0>;
137 qcom,smem-state-names = "stop";
140 memory-region = <&mba_region>;
144 memory-region = <&mpss_region>;