xref: /linux/Documentation/devicetree/bindings/remoteproc/qcom,wcnss-pil.yaml (revision 472863ab2aca6f4d2b7db828f77c36c5d1f43d9a)
19a660c7fSSireesh Kodali# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
29a660c7fSSireesh Kodali%YAML 1.2
39a660c7fSSireesh Kodali---
49a660c7fSSireesh Kodali$id: http://devicetree.org/schemas/remoteproc/qcom,wcnss-pil.yaml#
59a660c7fSSireesh Kodali$schema: http://devicetree.org/meta-schemas/core.yaml#
69a660c7fSSireesh Kodali
79a660c7fSSireesh Kodalititle: Qualcomm WCNSS Peripheral Image Loader
89a660c7fSSireesh Kodali
99a660c7fSSireesh Kodalimaintainers:
109a660c7fSSireesh Kodali  - Bjorn Andersson <andersson@kernel.org>
119a660c7fSSireesh Kodali
129a660c7fSSireesh Kodalidescription:
139a660c7fSSireesh Kodali  This document defines the binding for a component that loads and boots
149a660c7fSSireesh Kodali  firmware on the Qualcomm WCNSS core.
159a660c7fSSireesh Kodali
169a660c7fSSireesh Kodaliproperties:
179a660c7fSSireesh Kodali  compatible:
18409db7b7SSireesh Kodali    description:
19409db7b7SSireesh Kodali      Append "qcom,pronto" if the device is actually pronto, and not riva
20409db7b7SSireesh Kodali    oneOf:
21409db7b7SSireesh Kodali      - items:
22409db7b7SSireesh Kodali          - enum:
239a660c7fSSireesh Kodali              - qcom,pronto-v1-pil
249a660c7fSSireesh Kodali              - qcom,pronto-v2-pil
25a890eebeSSireesh Kodali              - qcom,pronto-v3-pil
26409db7b7SSireesh Kodali          - const: qcom,pronto
27409db7b7SSireesh Kodali      - const: qcom,riva-pil
289a660c7fSSireesh Kodali
299a660c7fSSireesh Kodali  reg:
309a660c7fSSireesh Kodali    maxItems: 3
319a660c7fSSireesh Kodali    description:
329a660c7fSSireesh Kodali      The base address and size of the CCU, DXE and PMU register blocks
339a660c7fSSireesh Kodali
349a660c7fSSireesh Kodali  reg-names:
359a660c7fSSireesh Kodali    items:
369a660c7fSSireesh Kodali      - const: ccu
379a660c7fSSireesh Kodali      - const: dxe
389a660c7fSSireesh Kodali      - const: pmu
399a660c7fSSireesh Kodali
409a660c7fSSireesh Kodali  interrupts:
419a660c7fSSireesh Kodali    minItems: 2
429a660c7fSSireesh Kodali    maxItems: 5
439a660c7fSSireesh Kodali
449a660c7fSSireesh Kodali  interrupt-names:
459a660c7fSSireesh Kodali    minItems: 2
469a660c7fSSireesh Kodali    items:
479a660c7fSSireesh Kodali      - const: wdog
489a660c7fSSireesh Kodali      - const: fatal
499a660c7fSSireesh Kodali      - const: ready
509a660c7fSSireesh Kodali      - const: handover
519a660c7fSSireesh Kodali      - const: stop-ack
529a660c7fSSireesh Kodali
539a660c7fSSireesh Kodali  firmware-name:
54506355c5SKrzysztof Kozlowski    maxItems: 1
559a660c7fSSireesh Kodali    description:
569a660c7fSSireesh Kodali      Relative firmware image path for the WCNSS core. Defaults to
579a660c7fSSireesh Kodali      "wcnss.mdt".
589a660c7fSSireesh Kodali
599a660c7fSSireesh Kodali  vddpx-supply:
609a660c7fSSireesh Kodali    description:
619a660c7fSSireesh Kodali      PX regulator to be held on behalf of the booting of the WCNSS core
629a660c7fSSireesh Kodali
639a660c7fSSireesh Kodali  vddmx-supply:
649a660c7fSSireesh Kodali    description:
659a660c7fSSireesh Kodali      MX regulator to be held on behalf of the booting of the WCNSS core.
669a660c7fSSireesh Kodali
679a660c7fSSireesh Kodali  vddcx-supply:
689a660c7fSSireesh Kodali    description:
699a660c7fSSireesh Kodali      CX regulator to be held on behalf of the booting of the WCNSS core.
709a660c7fSSireesh Kodali
719a660c7fSSireesh Kodali  power-domains:
72*14198a0cSMatti Lehtimäki    minItems: 1
739a660c7fSSireesh Kodali    maxItems: 2
749a660c7fSSireesh Kodali
759a660c7fSSireesh Kodali  power-domain-names:
76*14198a0cSMatti Lehtimäki    minItems: 1
779a660c7fSSireesh Kodali    items:
789a660c7fSSireesh Kodali      - const: cx
799a660c7fSSireesh Kodali      - const: mx
809a660c7fSSireesh Kodali
819a660c7fSSireesh Kodali  qcom,smem-states:
829a660c7fSSireesh Kodali    $ref: /schemas/types.yaml#/definitions/phandle-array
839a660c7fSSireesh Kodali    description:
849a660c7fSSireesh Kodali      States used by the AP to signal the WCNSS core that it should shutdown
859a660c7fSSireesh Kodali    items:
869a660c7fSSireesh Kodali      - description: Stop the modem
879a660c7fSSireesh Kodali
889a660c7fSSireesh Kodali  qcom,smem-state-names:
899a660c7fSSireesh Kodali    description: The names of the state bits used for SMP2P output
909a660c7fSSireesh Kodali    items:
919a660c7fSSireesh Kodali      - const: stop
929a660c7fSSireesh Kodali
939a660c7fSSireesh Kodali  memory-region:
949a660c7fSSireesh Kodali    maxItems: 1
959a660c7fSSireesh Kodali    description: reserved-memory for the WCNSS core
969a660c7fSSireesh Kodali
979a660c7fSSireesh Kodali  smd-edge:
989a660c7fSSireesh Kodali    $ref: /schemas/remoteproc/qcom,smd-edge.yaml#
999a660c7fSSireesh Kodali    description:
1009a660c7fSSireesh Kodali      Qualcomm Shared Memory subnode which represents communication edge,
1019a660c7fSSireesh Kodali      channels and devices related to the ADSP.
1029a660c7fSSireesh Kodali
1039a660c7fSSireesh Kodali  iris:
1049a660c7fSSireesh Kodali    type: object
1059a660c7fSSireesh Kodali    description:
1069a660c7fSSireesh Kodali      The iris subnode of the WCNSS PIL is used to describe the attached RF module
1079a660c7fSSireesh Kodali      and its resource dependencies.
1089a660c7fSSireesh Kodali
1099a660c7fSSireesh Kodali    properties:
1109a660c7fSSireesh Kodali      compatible:
1119a660c7fSSireesh Kodali        enum:
1129a660c7fSSireesh Kodali          - qcom,wcn3620
1139a660c7fSSireesh Kodali          - qcom,wcn3660
1149a660c7fSSireesh Kodali          - qcom,wcn3660b
1159a660c7fSSireesh Kodali          - qcom,wcn3680
1169a660c7fSSireesh Kodali
1179a660c7fSSireesh Kodali      clocks:
1189a660c7fSSireesh Kodali        minItems: 1
1199a660c7fSSireesh Kodali        items:
1209a660c7fSSireesh Kodali          - description: XO clock
1219a660c7fSSireesh Kodali          - description: RF clock
1229a660c7fSSireesh Kodali
1239a660c7fSSireesh Kodali      clock-names:
1249a660c7fSSireesh Kodali        minItems: 1
1259a660c7fSSireesh Kodali        items:
1269a660c7fSSireesh Kodali          - const: xo
1279a660c7fSSireesh Kodali          - const: rf
1289a660c7fSSireesh Kodali
1299a660c7fSSireesh Kodali      vddxo-supply:
1309a660c7fSSireesh Kodali        description:
1319a660c7fSSireesh Kodali          Reference to the regulator to be held on behalf of the booting WCNSS
1329a660c7fSSireesh Kodali          core
1339a660c7fSSireesh Kodali
1349a660c7fSSireesh Kodali      vddrfa-supply:
1359a660c7fSSireesh Kodali        description:
1369a660c7fSSireesh Kodali          Reference to the regulator to be held on behalf of the booting WCNSS
1379a660c7fSSireesh Kodali          core
1389a660c7fSSireesh Kodali
1399a660c7fSSireesh Kodali      vddpa-supply:
1409a660c7fSSireesh Kodali        description:
1419a660c7fSSireesh Kodali          Reference to the regulator to be held on behalf of the booting WCNSS
1429a660c7fSSireesh Kodali          core
1439a660c7fSSireesh Kodali
1449a660c7fSSireesh Kodali      vdddig-supply:
1459a660c7fSSireesh Kodali        description:
1469a660c7fSSireesh Kodali          Reference to the regulator to be held on behalf of the booting WCNSS
1479a660c7fSSireesh Kodali          core
1489a660c7fSSireesh Kodali
1499a660c7fSSireesh Kodali    required:
1509a660c7fSSireesh Kodali      - compatible
1519a660c7fSSireesh Kodali      - clocks
1529a660c7fSSireesh Kodali      - clock-names
1539a660c7fSSireesh Kodali      - vddxo-supply
1549a660c7fSSireesh Kodali      - vddrfa-supply
1559a660c7fSSireesh Kodali      - vddpa-supply
1569a660c7fSSireesh Kodali      - vdddig-supply
1579a660c7fSSireesh Kodali
1589a660c7fSSireesh Kodali    additionalProperties: false
1599a660c7fSSireesh Kodali
1609a660c7fSSireesh Kodalirequired:
1619a660c7fSSireesh Kodali  - compatible
1629a660c7fSSireesh Kodali  - reg
1639a660c7fSSireesh Kodali  - reg-names
1649a660c7fSSireesh Kodali  - interrupts
1659a660c7fSSireesh Kodali  - interrupt-names
1669a660c7fSSireesh Kodali  - iris
1679a660c7fSSireesh Kodali  - vddpx-supply
1689a660c7fSSireesh Kodali  - memory-region
1699a660c7fSSireesh Kodali  - smd-edge
1709a660c7fSSireesh Kodali
1719a660c7fSSireesh KodaliadditionalProperties: false
1729a660c7fSSireesh Kodali
1739a660c7fSSireesh KodaliallOf:
1749a660c7fSSireesh Kodali  - if:
1759a660c7fSSireesh Kodali      properties:
1769a660c7fSSireesh Kodali        compatible:
1779a660c7fSSireesh Kodali          contains:
1789a660c7fSSireesh Kodali            const: qcom,riva-pil
1799a660c7fSSireesh Kodali    then:
1809a660c7fSSireesh Kodali      required:
1819a660c7fSSireesh Kodali        - vddcx-supply
1829a660c7fSSireesh Kodali        - vddmx-supply
1839a660c7fSSireesh Kodali
1849a660c7fSSireesh Kodali  - if:
1859a660c7fSSireesh Kodali      properties:
1869a660c7fSSireesh Kodali        compatible:
1879a660c7fSSireesh Kodali          contains:
1889a660c7fSSireesh Kodali            enum:
1899a660c7fSSireesh Kodali              - qcom,pronto-v1-pil
1909a660c7fSSireesh Kodali              - qcom,pronto-v2-pil
1919a660c7fSSireesh Kodali    then:
192*14198a0cSMatti Lehtimäki      # CX and MX must be present either as power domains or regulators
193a4421a22SSireesh Kodali      oneOf:
194*14198a0cSMatti Lehtimäki        # Both CX and MX represented as power domains
195a4421a22SSireesh Kodali        - required:
1969a660c7fSSireesh Kodali            - power-domains
1979a660c7fSSireesh Kodali            - power-domain-names
198*14198a0cSMatti Lehtimäki          properties:
199*14198a0cSMatti Lehtimäki            power-domains:
200*14198a0cSMatti Lehtimäki              minItems: 2
201*14198a0cSMatti Lehtimäki            power-domain-names:
202*14198a0cSMatti Lehtimäki              minItems: 2
203*14198a0cSMatti Lehtimäki            vddmx-supply: false
204*14198a0cSMatti Lehtimäki            vddcx-supply: false
205*14198a0cSMatti Lehtimäki        # CX represented as power domain, MX as regulator
206*14198a0cSMatti Lehtimäki        - required:
207*14198a0cSMatti Lehtimäki            - power-domains
208*14198a0cSMatti Lehtimäki            - power-domain-names
209*14198a0cSMatti Lehtimäki            - vddmx-supply
210*14198a0cSMatti Lehtimäki          properties:
211*14198a0cSMatti Lehtimäki            power-domains:
212*14198a0cSMatti Lehtimäki              maxItems: 1
213*14198a0cSMatti Lehtimäki            power-domain-names:
214*14198a0cSMatti Lehtimäki              maxItems: 1
215*14198a0cSMatti Lehtimäki            vddcx-supply: false
216*14198a0cSMatti Lehtimäki        # Both CX and MX represented as regulators
217a4421a22SSireesh Kodali        - required:
218a4421a22SSireesh Kodali            - vddmx-supply
219a4421a22SSireesh Kodali            - vddcx-supply
220*14198a0cSMatti Lehtimäki          properties:
221*14198a0cSMatti Lehtimäki            power-domains: false
222*14198a0cSMatti Lehtimäki            power-domain-names: false
223*14198a0cSMatti Lehtimäki            vddmx-supply:
224*14198a0cSMatti Lehtimäki              deprecated: true
225*14198a0cSMatti Lehtimäki              description: Deprecated for qcom,pronto-v1/2-pil
226*14198a0cSMatti Lehtimäki            vddcx-supply:
227*14198a0cSMatti Lehtimäki              deprecated: true
228*14198a0cSMatti Lehtimäki              description: Deprecated for qcom,pronto-v1/2-pil
2299a660c7fSSireesh Kodali
230a890eebeSSireesh Kodali  - if:
231a890eebeSSireesh Kodali      properties:
232a890eebeSSireesh Kodali        compatible:
233a890eebeSSireesh Kodali          contains:
234a890eebeSSireesh Kodali            enum:
235a890eebeSSireesh Kodali              - qcom,pronto-v3-pil
236a890eebeSSireesh Kodali    then:
237a890eebeSSireesh Kodali      properties:
238*14198a0cSMatti Lehtimäki        power-domains:
239*14198a0cSMatti Lehtimäki          minItems: 2
240*14198a0cSMatti Lehtimäki        power-domain-names:
241*14198a0cSMatti Lehtimäki          minItems: 2
242a890eebeSSireesh Kodali        vddmx-supply: false
243a890eebeSSireesh Kodali        vddcx-supply: false
244a890eebeSSireesh Kodali
245a890eebeSSireesh Kodali      required:
246a890eebeSSireesh Kodali        - power-domains
247a890eebeSSireesh Kodali        - power-domain-names
248a890eebeSSireesh Kodali
2499a660c7fSSireesh Kodaliexamples:
2509a660c7fSSireesh Kodali  - |
2519a660c7fSSireesh Kodali    #include <dt-bindings/interrupt-controller/arm-gic.h>
2529a660c7fSSireesh Kodali    #include <dt-bindings/clock/qcom,rpmcc.h>
2539a660c7fSSireesh Kodali    #include <dt-bindings/power/qcom-rpmpd.h>
2549a660c7fSSireesh Kodali    pronto@a21b000 {
255409db7b7SSireesh Kodali        compatible = "qcom,pronto-v2-pil", "qcom,pronto";
2569a660c7fSSireesh Kodali        reg = <0x0a204000 0x2000>, <0x0a202000 0x1000>, <0x0a21b000 0x3000>;
2579a660c7fSSireesh Kodali        reg-names = "ccu", "dxe", "pmu";
2589a660c7fSSireesh Kodali
2599a660c7fSSireesh Kodali        interrupts-extended = <&intc GIC_SPI 149 IRQ_TYPE_EDGE_RISING>,
2609a660c7fSSireesh Kodali                              <&wcnss_smp2p_in 0 IRQ_TYPE_EDGE_RISING>,
2619a660c7fSSireesh Kodali                              <&wcnss_smp2p_in 1 IRQ_TYPE_EDGE_RISING>,
2629a660c7fSSireesh Kodali                              <&wcnss_smp2p_in 2 IRQ_TYPE_EDGE_RISING>,
2639a660c7fSSireesh Kodali                              <&wcnss_smp2p_in 3 IRQ_TYPE_EDGE_RISING>;
2649a660c7fSSireesh Kodali        interrupt-names = "wdog", "fatal", "ready", "handover", "stop-ack";
2659a660c7fSSireesh Kodali
2669a660c7fSSireesh Kodali        power-domains = <&rpmpd MSM8916_VDDCX>, <&rpmpd MSM8916_VDDMX>;
2679a660c7fSSireesh Kodali        power-domain-names = "cx", "mx";
2689a660c7fSSireesh Kodali
2699a660c7fSSireesh Kodali        vddpx-supply = <&pm8916_l7>;
2709a660c7fSSireesh Kodali
2719a660c7fSSireesh Kodali        qcom,smem-states = <&wcnss_smp2p_out 0>;
2729a660c7fSSireesh Kodali        qcom,smem-state-names = "stop";
2739a660c7fSSireesh Kodali
2749a660c7fSSireesh Kodali        memory-region = <&wcnss_region>;
2759a660c7fSSireesh Kodali
2769a660c7fSSireesh Kodali        pinctrl-names = "default";
2779a660c7fSSireesh Kodali        pinctrl-0 = <&wcnss_pin_a>;
2789a660c7fSSireesh Kodali
2799a660c7fSSireesh Kodali        iris {
2809a660c7fSSireesh Kodali            compatible = "qcom,wcn3620";
2819a660c7fSSireesh Kodali            vddxo-supply = <&pm8916_l7>;
2829a660c7fSSireesh Kodali            vddrfa-supply = <&pm8916_s3>;
2839a660c7fSSireesh Kodali            vddpa-supply = <&pm8916_l9>;
2849a660c7fSSireesh Kodali            vdddig-supply = <&pm8916_l5>;
2859a660c7fSSireesh Kodali
2869a660c7fSSireesh Kodali            clocks = <&rpmcc RPM_SMD_RF_CLK2>;
2879a660c7fSSireesh Kodali            clock-names = "xo";
2889a660c7fSSireesh Kodali        };
2899a660c7fSSireesh Kodali
2909a660c7fSSireesh Kodali        smd-edge {
2919a660c7fSSireesh Kodali            interrupts = <GIC_SPI 142 IRQ_TYPE_EDGE_RISING>;
2929a660c7fSSireesh Kodali
2939a660c7fSSireesh Kodali            qcom,ipc = <&apcs 8 17>;
2949a660c7fSSireesh Kodali            qcom,smd-edge = <6>;
2959a660c7fSSireesh Kodali            qcom,remote-pid = <4>;
2969a660c7fSSireesh Kodali
2979a660c7fSSireesh Kodali            label = "pronto";
2989a660c7fSSireesh Kodali
2999a660c7fSSireesh Kodali            wcnss_ctrl: wcnss {
3009a660c7fSSireesh Kodali                compatible = "qcom,wcnss";
3019a660c7fSSireesh Kodali                qcom,smd-channels = "WCNSS_CTRL";
3029a660c7fSSireesh Kodali
3039a660c7fSSireesh Kodali                qcom,mmio = <&pronto>;
3049a660c7fSSireesh Kodali
3059a660c7fSSireesh Kodali                bluetooth {
3069a660c7fSSireesh Kodali                    compatible = "qcom,wcnss-bt";
3079a660c7fSSireesh Kodali                };
3089a660c7fSSireesh Kodali
3099a660c7fSSireesh Kodali                wifi {
3109a660c7fSSireesh Kodali                    compatible = "qcom,wcnss-wlan";
3119a660c7fSSireesh Kodali
3129a660c7fSSireesh Kodali                    interrupts = <GIC_SPI 145 IRQ_TYPE_LEVEL_HIGH>,
3139a660c7fSSireesh Kodali                                 <GIC_SPI 146 IRQ_TYPE_LEVEL_HIGH>;
3149a660c7fSSireesh Kodali                    interrupt-names = "tx", "rx";
3159a660c7fSSireesh Kodali
3169a660c7fSSireesh Kodali                    qcom,smem-states = <&apps_smsm 10>, <&apps_smsm 9>;
3179a660c7fSSireesh Kodali                    qcom,smem-state-names = "tx-enable", "tx-rings-empty";
3189a660c7fSSireesh Kodali                };
3199a660c7fSSireesh Kodali            };
3209a660c7fSSireesh Kodali        };
3219a660c7fSSireesh Kodali    };
322