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 "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 reference to the list of 2 reset-controllers for the modem 57 sub-system on SDM845 SoCs 58 59- reset-names: 60 Usage: required 61 Value type: <stringlist> 62 Definition: must be "mss_restart" for the modem sub-system 63 must be "wcss_aon_reset", "wcss_reset", "wcss_q6_reset" 64 for the wcss sub-system 65 must be "mss_restart", "pdc_reset" for the modem 66 sub-system on SDM845 SoCs 67 68- cx-supply: 69- mss-supply: 70- mx-supply: 71- pll-supply: 72 Usage: required 73 Value type: <phandle> 74 Definition: reference to the regulators to be held on behalf of the 75 booting of the Hexagon core 76 77- qcom,smem-states: 78 Usage: required 79 Value type: <phandle> 80 Definition: reference to the smem state for requesting the Hexagon to 81 shut down 82 83- qcom,smem-state-names: 84 Usage: required 85 Value type: <stringlist> 86 Definition: must be "stop" 87 88- qcom,halt-regs: 89 Usage: required 90 Value type: <prop-encoded-array> 91 Definition: a phandle reference to a syscon representing TCSR followed 92 by the three offsets within syscon for q6, modem and nc 93 halt registers. 94 95= SUBNODES: 96The Hexagon node must contain two subnodes, named "mba" and "mpss" representing 97the memory regions used by the Hexagon firmware. Each sub-node must contain: 98 99- memory-region: 100 Usage: required 101 Value type: <phandle> 102 Definition: reference to the reserved-memory for the region 103 104The Hexagon node may also have an subnode named either "smd-edge" or 105"glink-edge" that describes the communication edge, channels and devices 106related to the Hexagon. See ../soc/qcom/qcom,smd.txt and 107../soc/qcom/qcom,glink.txt for details on how to describe these. 108 109= EXAMPLE 110The following example describes the resources needed to boot control the 111Hexagon, as it is found on MSM8974 boards. 112 113 modem-rproc@fc880000 { 114 compatible = "qcom,q6v5-pil"; 115 reg = <0xfc880000 0x100>, 116 <0xfc820000 0x020>; 117 reg-names = "qdsp6", "rmb"; 118 119 interrupts-extended = <&intc 0 24 1>, 120 <&modem_smp2p_in 0 0>, 121 <&modem_smp2p_in 1 0>, 122 <&modem_smp2p_in 2 0>, 123 <&modem_smp2p_in 3 0>; 124 interrupt-names = "wdog", 125 "fatal", 126 "ready", 127 "handover", 128 "stop-ack"; 129 130 clocks = <&gcc GCC_MSS_Q6_BIMC_AXI_CLK>, 131 <&gcc GCC_MSS_CFG_AHB_CLK>, 132 <&gcc GCC_BOOT_ROM_AHB_CLK>; 133 clock-names = "iface", "bus", "mem"; 134 135 qcom,halt-regs = <&tcsr_mutex_block 0x1180 0x1200 0x1280>; 136 137 resets = <&gcc GCC_MSS_RESTART>; 138 reset-names = "mss_restart"; 139 140 cx-supply = <&pm8841_s2>; 141 mss-supply = <&pm8841_s3>; 142 mx-supply = <&pm8841_s1>; 143 pll-supply = <&pm8941_l12>; 144 145 qcom,smem-states = <&modem_smp2p_out 0>; 146 qcom,smem-state-names = "stop"; 147 148 mba { 149 memory-region = <&mba_region>; 150 }; 151 152 mpss { 153 memory-region = <&mpss_region>; 154 }; 155 }; 156