178 lines
4.4 KiB
Plaintext
178 lines
4.4 KiB
Plaintext
|
Qualcomm WCNSS Peripheral Image Loader
|
||
|
|
||
|
This document defines the binding for a component that loads and boots firmware
|
||
|
on the Qualcomm WCNSS core.
|
||
|
|
||
|
- compatible:
|
||
|
Usage: required
|
||
|
Value type: <string>
|
||
|
Definition: must be one of:
|
||
|
"qcom,riva-pil",
|
||
|
"qcom,pronto-v1-pil",
|
||
|
"qcom,pronto-v2-pil"
|
||
|
|
||
|
- reg:
|
||
|
Usage: required
|
||
|
Value type: <prop-encoded-array>
|
||
|
Definition: must specify the base address and size of the CCU, DXE and
|
||
|
PMU register blocks
|
||
|
|
||
|
- reg-names:
|
||
|
Usage: required
|
||
|
Value type: <stringlist>
|
||
|
Definition: must be "ccu", "dxe", "pmu"
|
||
|
|
||
|
- interrupts-extended:
|
||
|
Usage: required
|
||
|
Value type: <prop-encoded-array>
|
||
|
Definition: must list the watchdog and fatal IRQs and may specify the
|
||
|
ready, handover and stop-ack IRQs
|
||
|
|
||
|
- interrupt-names:
|
||
|
Usage: required
|
||
|
Value type: <stringlist>
|
||
|
Definition: should be "wdog", "fatal", optionally followed by "ready",
|
||
|
"handover", "stop-ack"
|
||
|
|
||
|
- firmware-name:
|
||
|
Usage: optional
|
||
|
Value type: <string>
|
||
|
Definition: must list the relative firmware image path for the
|
||
|
WCNSS core. Defaults to "wcnss.mdt".
|
||
|
|
||
|
- vddmx-supply: (deprecated for qcom,pronto-v1/2-pil)
|
||
|
- vddcx-supply: (deprecated for qcom,pronto-v1/2-pil)
|
||
|
- vddpx-supply:
|
||
|
Usage: required
|
||
|
Value type: <phandle>
|
||
|
Definition: reference to the regulators to be held on behalf of the
|
||
|
booting of the WCNSS core
|
||
|
|
||
|
- power-domains:
|
||
|
Usage: required (for qcom,pronto-v1/2-pil)
|
||
|
Value type: <phandle>
|
||
|
Definition: reference to the power domains to be held on behalf of the
|
||
|
booting of the WCNSS core
|
||
|
|
||
|
- power-domain-names:
|
||
|
Usage: required (for qcom,pronto-v1/2-pil)
|
||
|
Value type: <stringlist>
|
||
|
Definition: must be "cx", "mx"
|
||
|
|
||
|
- qcom,smem-states:
|
||
|
Usage: optional
|
||
|
Value type: <prop-encoded-array>
|
||
|
Definition: reference to the SMEM state used to indicate to WCNSS that
|
||
|
it should shut down
|
||
|
|
||
|
- qcom,smem-state-names:
|
||
|
Usage: optional
|
||
|
Value type: <stringlist>
|
||
|
Definition: should be "stop"
|
||
|
|
||
|
- memory-region:
|
||
|
Usage: required
|
||
|
Value type: <prop-encoded-array>
|
||
|
Definition: reference to reserved-memory node for the remote processor
|
||
|
see ../reserved-memory/reserved-memory.txt
|
||
|
|
||
|
= SUBNODES
|
||
|
A required subnode of the WCNSS PIL is used to describe the attached rf module
|
||
|
and its resource dependencies. It is described by the following properties:
|
||
|
|
||
|
- compatible:
|
||
|
Usage: required
|
||
|
Value type: <string>
|
||
|
Definition: must be one of:
|
||
|
"qcom,wcn3620",
|
||
|
"qcom,wcn3660",
|
||
|
"qcom,wcn3660b",
|
||
|
"qcom,wcn3680"
|
||
|
|
||
|
- clocks:
|
||
|
Usage: required
|
||
|
Value type: <prop-encoded-array>
|
||
|
Definition: should specify the xo clock and optionally the rf clock
|
||
|
|
||
|
- clock-names:
|
||
|
Usage: required
|
||
|
Value type: <stringlist>
|
||
|
Definition: should be "xo", optionally followed by "rf"
|
||
|
|
||
|
- vddxo-supply:
|
||
|
- vddrfa-supply:
|
||
|
- vddpa-supply:
|
||
|
- vdddig-supply:
|
||
|
Usage: required
|
||
|
Value type: <phandle>
|
||
|
Definition: reference to the regulators to be held on behalf of the
|
||
|
booting of the WCNSS core
|
||
|
|
||
|
|
||
|
The wcnss node can also have an subnode named "smd-edge" that describes the SMD
|
||
|
edge, channels and devices related to the WCNSS.
|
||
|
See ../soc/qcom/qcom,smd.yaml for details on how to describe the SMD edge.
|
||
|
|
||
|
= EXAMPLE
|
||
|
The following example describes the resources needed to boot control the WCNSS,
|
||
|
with attached WCN3680, as it is commonly found on MSM8974 boards.
|
||
|
|
||
|
pronto@fb204000 {
|
||
|
compatible = "qcom,pronto-v2-pil";
|
||
|
reg = <0xfb204000 0x2000>, <0xfb202000 0x1000>, <0xfb21b000 0x3000>;
|
||
|
reg-names = "ccu", "dxe", "pmu";
|
||
|
|
||
|
interrupts-extended = <&intc 0 149 1>,
|
||
|
<&wcnss_smp2p_slave 0 0>,
|
||
|
<&wcnss_smp2p_slave 1 0>,
|
||
|
<&wcnss_smp2p_slave 2 0>,
|
||
|
<&wcnss_smp2p_slave 3 0>;
|
||
|
interrupt-names = "wdog", "fatal", "ready", "handover", "stop-ack";
|
||
|
|
||
|
power-domains = <&rpmpd MSM8974_VDDCX>, <&rpmpd MSM8974_VDDMX>;
|
||
|
power-domain-names = "cx", "mx";
|
||
|
|
||
|
vddpx-supply = <&pm8941_s3>;
|
||
|
|
||
|
qcom,smem-states = <&wcnss_smp2p_out 0>;
|
||
|
qcom,smem-state-names = "stop";
|
||
|
|
||
|
memory-region = <&wcnss_region>;
|
||
|
|
||
|
pinctrl-names = "default";
|
||
|
pinctrl-0 = <&wcnss_pin_a>;
|
||
|
|
||
|
iris {
|
||
|
compatible = "qcom,wcn3680";
|
||
|
|
||
|
clocks = <&rpmcc RPM_CXO_CLK_SRC>, <&rpmcc RPM_CXO_A2>;
|
||
|
clock-names = "xo", "rf";
|
||
|
|
||
|
vddxo-supply = <&pm8941_l6>;
|
||
|
vddrfa-supply = <&pm8941_l11>;
|
||
|
vddpa-supply = <&pm8941_l19>;
|
||
|
vdddig-supply = <&pm8941_s3>;
|
||
|
};
|
||
|
|
||
|
smd-edge {
|
||
|
interrupts = <0 142 1>;
|
||
|
|
||
|
qcom,ipc = <&apcs 8 17>;
|
||
|
qcom,smd-edge = <6>;
|
||
|
qcom,remote-pid = <4>;
|
||
|
|
||
|
label = "pronto";
|
||
|
|
||
|
wcnss {
|
||
|
compatible = "qcom,wcnss";
|
||
|
qcom,smd-channels = "WCNSS_CTRL";
|
||
|
|
||
|
qcom,mmio = <&pronto>;
|
||
|
|
||
|
bt {
|
||
|
compatible = "qcom,wcnss-bt";
|
||
|
};
|
||
|
};
|
||
|
};
|
||
|
};
|