# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/remoteproc/qcom,wcnss-pil.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#

title: Qualcomm WCNSS Peripheral Image Loader

maintainers:
  - Bjorn Andersson <andersson@kernel.org>

description:
  This document defines the binding for a component that loads and boots
  firmware on the Qualcomm WCNSS core.

properties:
  compatible:
    description:
      Append "qcom,pronto" if the device is actually pronto, and not riva
    oneOf:
      - items:
          - enum:
              - qcom,pronto-v1-pil
              - qcom,pronto-v2-pil
              - qcom,pronto-v3-pil
          - const: qcom,pronto
      - const: qcom,riva-pil

  reg:
    maxItems: 3
    description:
      The base address and size of the CCU, DXE and PMU register blocks

  reg-names:
    items:
      - const: ccu
      - const: dxe
      - const: pmu

  interrupts:
    minItems: 2
    maxItems: 5

  interrupt-names:
    minItems: 2
    items:
      - const: wdog
      - const: fatal
      - const: ready
      - const: handover
      - const: stop-ack

  firmware-name:
    maxItems: 1
    description:
      Relative firmware image path for the WCNSS core. Defaults to
      "wcnss.mdt".

  vddpx-supply:
    description:
      PX regulator to be held on behalf of the booting of the WCNSS core

  vddmx-supply:
    description:
      MX regulator to be held on behalf of the booting of the WCNSS core.

  vddcx-supply:
    description:
      CX regulator to be held on behalf of the booting of the WCNSS core.

  power-domains:
    maxItems: 2

  power-domain-names:
    items:
      - const: cx
      - const: mx

  qcom,smem-states:
    $ref: /schemas/types.yaml#/definitions/phandle-array
    description:
      States used by the AP to signal the WCNSS core that it should shutdown
    items:
      - description: Stop the modem

  qcom,smem-state-names:
    description: The names of the state bits used for SMP2P output
    items:
      - const: stop

  memory-region:
    maxItems: 1
    description: reserved-memory for the WCNSS core

  smd-edge:
    $ref: /schemas/remoteproc/qcom,smd-edge.yaml#
    description:
      Qualcomm Shared Memory subnode which represents communication edge,
      channels and devices related to the ADSP.

  iris:
    type: object
    description:
      The iris subnode of the WCNSS PIL is used to describe the attached RF module
      and its resource dependencies.

    properties:
      compatible:
        enum:
          - qcom,wcn3620
          - qcom,wcn3660
          - qcom,wcn3660b
          - qcom,wcn3680

      clocks:
        minItems: 1
        items:
          - description: XO clock
          - description: RF clock

      clock-names:
        minItems: 1
        items:
          - const: xo
          - const: rf

      vddxo-supply:
        description:
          Reference to the regulator to be held on behalf of the booting WCNSS
          core

      vddrfa-supply:
        description:
          Reference to the regulator to be held on behalf of the booting WCNSS
          core

      vddpa-supply:
        description:
          Reference to the regulator to be held on behalf of the booting WCNSS
          core

      vdddig-supply:
        description:
          Reference to the regulator to be held on behalf of the booting WCNSS
          core

    required:
      - compatible
      - clocks
      - clock-names
      - vddxo-supply
      - vddrfa-supply
      - vddpa-supply
      - vdddig-supply

    additionalProperties: false

required:
  - compatible
  - reg
  - reg-names
  - interrupts
  - interrupt-names
  - iris
  - vddpx-supply
  - memory-region
  - smd-edge

additionalProperties: false

allOf:
  - if:
      properties:
        compatible:
          contains:
            const: qcom,riva-pil
    then:
      required:
        - vddcx-supply
        - vddmx-supply

  - if:
      properties:
        compatible:
          contains:
            enum:
              - qcom,pronto-v1-pil
              - qcom,pronto-v2-pil
    then:
      properties:
        vddmx-supply:
          deprecated: true
          description: Deprecated for qcom,pronto-v1/2-pil

        vddcx-supply:
          deprecated: true
          description: Deprecated for qcom,pronto-v1/2-pil

      oneOf:
        - required:
            - power-domains
            - power-domain-names
        - required:
            - vddmx-supply
            - vddcx-supply

  - if:
      properties:
        compatible:
          contains:
            enum:
              - qcom,pronto-v3-pil
    then:
      properties:
        vddmx-supply: false
        vddcx-supply: false

      required:
        - power-domains
        - power-domain-names

examples:
  - |
    #include <dt-bindings/interrupt-controller/arm-gic.h>
    #include <dt-bindings/clock/qcom,rpmcc.h>
    #include <dt-bindings/power/qcom-rpmpd.h>
    pronto@a21b000 {
        compatible = "qcom,pronto-v2-pil", "qcom,pronto";
        reg = <0x0a204000 0x2000>, <0x0a202000 0x1000>, <0x0a21b000 0x3000>;
        reg-names = "ccu", "dxe", "pmu";

        interrupts-extended = <&intc GIC_SPI 149 IRQ_TYPE_EDGE_RISING>,
                              <&wcnss_smp2p_in 0 IRQ_TYPE_EDGE_RISING>,
                              <&wcnss_smp2p_in 1 IRQ_TYPE_EDGE_RISING>,
                              <&wcnss_smp2p_in 2 IRQ_TYPE_EDGE_RISING>,
                              <&wcnss_smp2p_in 3 IRQ_TYPE_EDGE_RISING>;
        interrupt-names = "wdog", "fatal", "ready", "handover", "stop-ack";

        power-domains = <&rpmpd MSM8916_VDDCX>, <&rpmpd MSM8916_VDDMX>;
        power-domain-names = "cx", "mx";

        vddpx-supply = <&pm8916_l7>;

        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,wcn3620";
            vddxo-supply = <&pm8916_l7>;
            vddrfa-supply = <&pm8916_s3>;
            vddpa-supply = <&pm8916_l9>;
            vdddig-supply = <&pm8916_l5>;

            clocks = <&rpmcc RPM_SMD_RF_CLK2>;
            clock-names = "xo";
        };

        smd-edge {
            interrupts = <GIC_SPI 142 IRQ_TYPE_EDGE_RISING>;

            qcom,ipc = <&apcs 8 17>;
            qcom,smd-edge = <6>;
            qcom,remote-pid = <4>;

            label = "pronto";

            wcnss_ctrl: wcnss {
                compatible = "qcom,wcnss";
                qcom,smd-channels = "WCNSS_CTRL";

                qcom,mmio = <&pronto>;

                bluetooth {
                    compatible = "qcom,wcnss-bt";
                };

                wifi {
                    compatible = "qcom,wcnss-wlan";

                    interrupts = <GIC_SPI 145 IRQ_TYPE_LEVEL_HIGH>,
                                 <GIC_SPI 146 IRQ_TYPE_LEVEL_HIGH>;
                    interrupt-names = "tx", "rx";

                    qcom,smem-states = <&apps_smsm 10>, <&apps_smsm 9>;
                    qcom,smem-state-names = "tx-enable", "tx-rings-empty";
                };
            };
        };
    };
