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 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: 92The Hexagon node must contain two subnodes, named "mba" and "mpss" representing 93the 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 100The Hexagon node may also have an subnode named either "smd-edge" or 101"glink-edge" that describes the communication edge, channels and devices 102related 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 106The following example describes the resources needed to boot control the 107Hexagon, 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 }; 152