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,msm8916-mss-pil", 12 "qcom,msm8974-mss-pil" 13 "qcom,msm8996-mss-pil" 14 "qcom,sdm845-mss-pil" 15 16- reg: 17 Usage: required 18 Value type: <prop-encoded-array> 19 Definition: must specify the base address and size of the qdsp6 and 20 rmb register blocks 21 22- reg-names: 23 Usage: required 24 Value type: <stringlist> 25 Definition: must be "q6dsp" and "rmb" 26 27- interrupts-extended: 28 Usage: required 29 Value type: <prop-encoded-array> 30 Definition: must list the watchdog, fatal IRQs ready, handover and 31 stop-ack IRQs 32 33- interrupt-names: 34 Usage: required 35 Value type: <stringlist> 36 Definition: must be "wdog", "fatal", "ready", "handover", "stop-ack" 37 38- clocks: 39 Usage: required 40 Value type: <phandle> 41 Definition: reference to the iface, bus and mem clocks to be held on 42 behalf of the booting of the Hexagon core 43 44- clock-names: 45 Usage: required 46 Value type: <stringlist> 47 Definition: must be "iface", "bus", "mem" 48 49- resets: 50 Usage: required 51 Value type: <phandle> 52 Definition: reference to the reset-controller for the modem sub-system 53 54- reset-names: 55 Usage: required 56 Value type: <stringlist> 57 Definition: must be "mss_restart" 58 59- cx-supply: 60- mss-supply: 61- mx-supply: 62- pll-supply: 63 Usage: required 64 Value type: <phandle> 65 Definition: reference to the regulators to be held on behalf of the 66 booting of the Hexagon core 67 68- qcom,smem-states: 69 Usage: required 70 Value type: <phandle> 71 Definition: reference to the smem state for requesting the Hexagon to 72 shut down 73 74- qcom,smem-state-names: 75 Usage: required 76 Value type: <stringlist> 77 Definition: must be "stop" 78 79- qcom,halt-regs: 80 Usage: required 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 84 halt registers. 85 86= SUBNODES: 87The Hexagon node must contain two subnodes, named "mba" and "mpss" representing 88the memory regions used by the Hexagon firmware. Each sub-node must contain: 89 90- memory-region: 91 Usage: required 92 Value type: <phandle> 93 Definition: reference to the reserved-memory for the region 94 95The Hexagon node may also have an subnode named either "smd-edge" or 96"glink-edge" that describes the communication edge, channels and devices 97related to the Hexagon. See ../soc/qcom/qcom,smd.txt and 98../soc/qcom/qcom,glink.txt for details on how to describe these. 99 100= EXAMPLE 101The following example describes the resources needed to boot control the 102Hexagon, as it is found on MSM8974 boards. 103 104 modem-rproc@fc880000 { 105 compatible = "qcom,q6v5-pil"; 106 reg = <0xfc880000 0x100>, 107 <0xfc820000 0x020>; 108 reg-names = "qdsp6", "rmb"; 109 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", 116 "fatal", 117 "ready", 118 "handover", 119 "stop-ack"; 120 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"; 125 126 qcom,halt-regs = <&tcsr_mutex_block 0x1180 0x1200 0x1280>; 127 128 resets = <&gcc GCC_MSS_RESTART>; 129 reset-names = "mss_restart"; 130 131 cx-supply = <&pm8841_s2>; 132 mss-supply = <&pm8841_s3>; 133 mx-supply = <&pm8841_s1>; 134 pll-supply = <&pm8941_l12>; 135 136 qcom,smem-states = <&modem_smp2p_out 0>; 137 qcom,smem-state-names = "stop"; 138 139 mba { 140 memory-region = <&mba_region>; 141 }; 142 143 mpss { 144 memory-region = <&mpss_region>; 145 }; 146 }; 147