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