0001 Qualcomm WCNSS Peripheral Image Loader
0002
0003 This document defines the binding for a component that loads and boots firmware
0004 on the Qualcomm WCNSS core.
0005
0006 - compatible:
0007 Usage: required
0008 Value type: <string>
0009 Definition: must be one of:
0010 "qcom,riva-pil",
0011 "qcom,pronto-v1-pil",
0012 "qcom,pronto-v2-pil"
0013
0014 - reg:
0015 Usage: required
0016 Value type: <prop-encoded-array>
0017 Definition: must specify the base address and size of the CCU, DXE and
0018 PMU register blocks
0019
0020 - reg-names:
0021 Usage: required
0022 Value type: <stringlist>
0023 Definition: must be "ccu", "dxe", "pmu"
0024
0025 - interrupts-extended:
0026 Usage: required
0027 Value type: <prop-encoded-array>
0028 Definition: must list the watchdog and fatal IRQs and may specify the
0029 ready, handover and stop-ack IRQs
0030
0031 - interrupt-names:
0032 Usage: required
0033 Value type: <stringlist>
0034 Definition: should be "wdog", "fatal", optionally followed by "ready",
0035 "handover", "stop-ack"
0036
0037 - firmware-name:
0038 Usage: optional
0039 Value type: <string>
0040 Definition: must list the relative firmware image path for the
0041 WCNSS core. Defaults to "wcnss.mdt".
0042
0043 - vddmx-supply: (deprecated for qcom,pronto-v1/2-pil)
0044 - vddcx-supply: (deprecated for qcom,pronto-v1/2-pil)
0045 - vddpx-supply:
0046 Usage: required
0047 Value type: <phandle>
0048 Definition: reference to the regulators to be held on behalf of the
0049 booting of the WCNSS core
0050
0051 - power-domains:
0052 Usage: required (for qcom,pronto-v1/2-pil)
0053 Value type: <phandle>
0054 Definition: reference to the power domains to be held on behalf of the
0055 booting of the WCNSS core
0056
0057 - power-domain-names:
0058 Usage: required (for qcom,pronto-v1/2-pil)
0059 Value type: <stringlist>
0060 Definition: must be "cx", "mx"
0061
0062 - qcom,smem-states:
0063 Usage: optional
0064 Value type: <prop-encoded-array>
0065 Definition: reference to the SMEM state used to indicate to WCNSS that
0066 it should shut down
0067
0068 - qcom,smem-state-names:
0069 Usage: optional
0070 Value type: <stringlist>
0071 Definition: should be "stop"
0072
0073 - memory-region:
0074 Usage: required
0075 Value type: <prop-encoded-array>
0076 Definition: reference to reserved-memory node for the remote processor
0077 see ../reserved-memory/reserved-memory.txt
0078
0079 = SUBNODES
0080 A required subnode of the WCNSS PIL is used to describe the attached rf module
0081 and its resource dependencies. It is described by the following properties:
0082
0083 - compatible:
0084 Usage: required
0085 Value type: <string>
0086 Definition: must be one of:
0087 "qcom,wcn3620",
0088 "qcom,wcn3660",
0089 "qcom,wcn3660b",
0090 "qcom,wcn3680"
0091
0092 - clocks:
0093 Usage: required
0094 Value type: <prop-encoded-array>
0095 Definition: should specify the xo clock and optionally the rf clock
0096
0097 - clock-names:
0098 Usage: required
0099 Value type: <stringlist>
0100 Definition: should be "xo", optionally followed by "rf"
0101
0102 - vddxo-supply:
0103 - vddrfa-supply:
0104 - vddpa-supply:
0105 - vdddig-supply:
0106 Usage: required
0107 Value type: <phandle>
0108 Definition: reference to the regulators to be held on behalf of the
0109 booting of the WCNSS core
0110
0111
0112 The wcnss node can also have an subnode named "smd-edge" that describes the SMD
0113 edge, channels and devices related to the WCNSS.
0114 See ../soc/qcom/qcom,smd.yaml for details on how to describe the SMD edge.
0115
0116 = EXAMPLE
0117 The following example describes the resources needed to boot control the WCNSS,
0118 with attached WCN3680, as it is commonly found on MSM8974 boards.
0119
0120 pronto@fb204000 {
0121 compatible = "qcom,pronto-v2-pil";
0122 reg = <0xfb204000 0x2000>, <0xfb202000 0x1000>, <0xfb21b000 0x3000>;
0123 reg-names = "ccu", "dxe", "pmu";
0124
0125 interrupts-extended = <&intc 0 149 1>,
0126 <&wcnss_smp2p_slave 0 0>,
0127 <&wcnss_smp2p_slave 1 0>,
0128 <&wcnss_smp2p_slave 2 0>,
0129 <&wcnss_smp2p_slave 3 0>;
0130 interrupt-names = "wdog", "fatal", "ready", "handover", "stop-ack";
0131
0132 power-domains = <&rpmpd MSM8974_VDDCX>, <&rpmpd MSM8974_VDDMX>;
0133 power-domain-names = "cx", "mx";
0134
0135 vddpx-supply = <&pm8941_s3>;
0136
0137 qcom,smem-states = <&wcnss_smp2p_out 0>;
0138 qcom,smem-state-names = "stop";
0139
0140 memory-region = <&wcnss_region>;
0141
0142 pinctrl-names = "default";
0143 pinctrl-0 = <&wcnss_pin_a>;
0144
0145 iris {
0146 compatible = "qcom,wcn3680";
0147
0148 clocks = <&rpmcc RPM_CXO_CLK_SRC>, <&rpmcc RPM_CXO_A2>;
0149 clock-names = "xo", "rf";
0150
0151 vddxo-supply = <&pm8941_l6>;
0152 vddrfa-supply = <&pm8941_l11>;
0153 vddpa-supply = <&pm8941_l19>;
0154 vdddig-supply = <&pm8941_s3>;
0155 };
0156
0157 smd-edge {
0158 interrupts = <0 142 1>;
0159
0160 qcom,ipc = <&apcs 8 17>;
0161 qcom,smd-edge = <6>;
0162 qcom,remote-pid = <4>;
0163
0164 label = "pronto";
0165
0166 wcnss {
0167 compatible = "qcom,wcnss";
0168 qcom,smd-channels = "WCNSS_CTRL";
0169
0170 qcom,mmio = <&pronto>;
0171
0172 bt {
0173 compatible = "qcom,wcnss-bt";
0174 };
0175 };
0176 };
0177 };