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: Definition: must be one of: "qcom,riva-pil", "qcom,pronto-v1-pil", "qcom,pronto-v2-pil" - reg: Usage: required Value type: Definition: must specify the base address and size of the CCU, DXE and PMU register blocks - reg-names: Usage: required Value type: Definition: must be "ccu", "dxe", "pmu" - interrupts-extended: Usage: required Value type: Definition: must list the watchdog and fatal IRQs and may specify the ready, handover and stop-ack IRQs - interrupt-names: Usage: required Value type: Definition: should be "wdog", "fatal", optionally followed by "ready", "handover", "stop-ack" - firmware-name: Usage: optional Value type: 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: 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: 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: Definition: must be "cx", "mx" - qcom,smem-states: Usage: optional Value type: Definition: reference to the SMEM state used to indicate to WCNSS that it should shut down - qcom,smem-state-names: Usage: optional Value type: Definition: should be "stop" - memory-region: Usage: required Value type: 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: Definition: must be one of: "qcom,wcn3620", "qcom,wcn3660", "qcom,wcn3660b", "qcom,wcn3680" - clocks: Usage: required Value type: Definition: should specify the xo clock and optionally the rf clock - clock-names: Usage: required Value type: Definition: should be "xo", optionally followed by "rf" - vddxo-supply: - vddrfa-supply: - vddpa-supply: - vdddig-supply: Usage: required Value type: 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"; }; }; }; };