1Qualcomm WCNSS Peripheral Image Loader 2 3This document defines the binding for a component that loads and boots firmware 4on the Qualcomm WCNSS core. 5 6- compatible: 7 Usage: required 8 Value type: <string> 9 Definition: must be one of: 10 "qcom,riva-pil", 11 "qcom,pronto-v1-pil", 12 "qcom,pronto-v2-pil" 13 14- reg: 15 Usage: required 16 Value type: <prop-encoded-array> 17 Definition: must specify the base address and size of the CCU, DXE and 18 PMU register blocks 19 20- reg-names: 21 Usage: required 22 Value type: <stringlist> 23 Definition: must be "ccu", "dxe", "pmu" 24 25- interrupts-extended: 26 Usage: required 27 Value type: <prop-encoded-array> 28 Definition: must list the watchdog and fatal IRQs and may specify the 29 ready, handover and stop-ack IRQs 30 31- interrupt-names: 32 Usage: required 33 Value type: <stringlist> 34 Definition: should be "wdog", "fatal", optionally followed by "ready", 35 "handover", "stop-ack" 36 37- firmware-name: 38 Usage: optional 39 Value type: <string> 40 Definition: must list the relative firmware image path for the 41 WCNSS core. Defaults to "wcnss.mdt". 42 43- vddmx-supply: (deprecated for qcom,pronto-v1/2-pil) 44- vddcx-supply: (deprecated for qcom,pronto-v1/2-pil) 45- vddpx-supply: 46 Usage: required 47 Value type: <phandle> 48 Definition: reference to the regulators to be held on behalf of the 49 booting of the WCNSS core 50 51- power-domains: 52 Usage: required (for qcom,pronto-v1/2-pil) 53 Value type: <phandle> 54 Definition: reference to the power domains to be held on behalf of the 55 booting of the WCNSS core 56 57- power-domain-names: 58 Usage: required (for qcom,pronto-v1/2-pil) 59 Value type: <stringlist> 60 Definition: must be "cx", "mx" 61 62- qcom,smem-states: 63 Usage: optional 64 Value type: <prop-encoded-array> 65 Definition: reference to the SMEM state used to indicate to WCNSS that 66 it should shut down 67 68- qcom,smem-state-names: 69 Usage: optional 70 Value type: <stringlist> 71 Definition: should be "stop" 72 73- memory-region: 74 Usage: required 75 Value type: <prop-encoded-array> 76 Definition: reference to reserved-memory node for the remote processor 77 see ../reserved-memory/reserved-memory.txt 78 79= SUBNODES 80A required subnode of the WCNSS PIL is used to describe the attached rf module 81and its resource dependencies. It is described by the following properties: 82 83- compatible: 84 Usage: required 85 Value type: <string> 86 Definition: must be one of: 87 "qcom,wcn3620", 88 "qcom,wcn3660", 89 "qcom,wcn3660b", 90 "qcom,wcn3680" 91 92- clocks: 93 Usage: required 94 Value type: <prop-encoded-array> 95 Definition: should specify the xo clock and optionally the rf clock 96 97- clock-names: 98 Usage: required 99 Value type: <stringlist> 100 Definition: should be "xo", optionally followed by "rf" 101 102- vddxo-supply: 103- vddrfa-supply: 104- vddpa-supply: 105- vdddig-supply: 106 Usage: required 107 Value type: <phandle> 108 Definition: reference to the regulators to be held on behalf of the 109 booting of the WCNSS core 110 111 112The wcnss node can also have an subnode named "smd-edge" that describes the SMD 113edge, channels and devices related to the WCNSS. 114See ../soc/qcom/qcom,smd.txt for details on how to describe the SMD edge. 115 116= EXAMPLE 117The following example describes the resources needed to boot control the WCNSS, 118with attached WCN3680, as it is commonly found on MSM8974 boards. 119 120pronto@fb204000 { 121 compatible = "qcom,pronto-v2-pil"; 122 reg = <0xfb204000 0x2000>, <0xfb202000 0x1000>, <0xfb21b000 0x3000>; 123 reg-names = "ccu", "dxe", "pmu"; 124 125 interrupts-extended = <&intc 0 149 1>, 126 <&wcnss_smp2p_slave 0 0>, 127 <&wcnss_smp2p_slave 1 0>, 128 <&wcnss_smp2p_slave 2 0>, 129 <&wcnss_smp2p_slave 3 0>; 130 interrupt-names = "wdog", "fatal", "ready", "handover", "stop-ack"; 131 132 power-domains = <&rpmpd MSM8974_VDDCX>, <&rpmpd MSM8974_VDDMX>; 133 power-domain-names = "cx", "mx"; 134 135 vddpx-supply = <&pm8941_s3>; 136 137 qcom,smem-states = <&wcnss_smp2p_out 0>; 138 qcom,smem-state-names = "stop"; 139 140 memory-region = <&wcnss_region>; 141 142 pinctrl-names = "default"; 143 pinctrl-0 = <&wcnss_pin_a>; 144 145 iris { 146 compatible = "qcom,wcn3680"; 147 148 clocks = <&rpmcc RPM_CXO_CLK_SRC>, <&rpmcc RPM_CXO_A2>; 149 clock-names = "xo", "rf"; 150 151 vddxo-supply = <&pm8941_l6>; 152 vddrfa-supply = <&pm8941_l11>; 153 vddpa-supply = <&pm8941_l19>; 154 vdddig-supply = <&pm8941_s3>; 155 }; 156 157 smd-edge { 158 interrupts = <0 142 1>; 159 160 qcom,ipc = <&apcs 8 17>; 161 qcom,smd-edge = <6>; 162 qcom,remote-pid = <4>; 163 164 label = "pronto"; 165 166 wcnss { 167 compatible = "qcom,wcnss"; 168 qcom,smd-channels = "WCNSS_CTRL"; 169 170 qcom,mmio = <&pronto>; 171 172 bt { 173 compatible = "qcom,wcnss-bt"; 174 }; 175 }; 176 }; 177}; 178