Back to home page

OSCL-LXR

 
 

    


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 };