Kernel-4.18.0-80.el8_qcom,wcnss-pil

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"
    
  • vddmx-supply:

  • vddcx-supply:

  • vddpx-supply:
    Usage: required
    Value type:
    Definition: reference to the regulators to be held on behalf of the

          booting of the WCNSS core
    
  • 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,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.txt 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";

vddmx-supply = <&pm8841_s1>;
vddcx-supply = <&pm8841_s2>;
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";
        };
    };
};

};