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