1cb7aa33aSEmmanuel Vadot# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause) 2cb7aa33aSEmmanuel Vadot%YAML 1.2 3cb7aa33aSEmmanuel Vadot--- 4cb7aa33aSEmmanuel Vadot$id: http://devicetree.org/schemas/remoteproc/qcom,wcnss-pil.yaml# 5cb7aa33aSEmmanuel Vadot$schema: http://devicetree.org/meta-schemas/core.yaml# 6cb7aa33aSEmmanuel Vadot 7cb7aa33aSEmmanuel Vadottitle: Qualcomm WCNSS Peripheral Image Loader 8cb7aa33aSEmmanuel Vadot 9cb7aa33aSEmmanuel Vadotmaintainers: 10cb7aa33aSEmmanuel Vadot - Bjorn Andersson <andersson@kernel.org> 11cb7aa33aSEmmanuel Vadot 12cb7aa33aSEmmanuel Vadotdescription: 13cb7aa33aSEmmanuel Vadot This document defines the binding for a component that loads and boots 14cb7aa33aSEmmanuel Vadot firmware on the Qualcomm WCNSS core. 15cb7aa33aSEmmanuel Vadot 16cb7aa33aSEmmanuel Vadotproperties: 17cb7aa33aSEmmanuel Vadot compatible: 18cb7aa33aSEmmanuel Vadot description: 19cb7aa33aSEmmanuel Vadot Append "qcom,pronto" if the device is actually pronto, and not riva 20cb7aa33aSEmmanuel Vadot oneOf: 21cb7aa33aSEmmanuel Vadot - items: 22cb7aa33aSEmmanuel Vadot - enum: 23cb7aa33aSEmmanuel Vadot - qcom,pronto-v1-pil 24cb7aa33aSEmmanuel Vadot - qcom,pronto-v2-pil 25cb7aa33aSEmmanuel Vadot - qcom,pronto-v3-pil 26cb7aa33aSEmmanuel Vadot - const: qcom,pronto 27cb7aa33aSEmmanuel Vadot - const: qcom,riva-pil 28cb7aa33aSEmmanuel Vadot 29cb7aa33aSEmmanuel Vadot reg: 30cb7aa33aSEmmanuel Vadot maxItems: 3 31cb7aa33aSEmmanuel Vadot description: 32cb7aa33aSEmmanuel Vadot The base address and size of the CCU, DXE and PMU register blocks 33cb7aa33aSEmmanuel Vadot 34cb7aa33aSEmmanuel Vadot reg-names: 35cb7aa33aSEmmanuel Vadot items: 36cb7aa33aSEmmanuel Vadot - const: ccu 37cb7aa33aSEmmanuel Vadot - const: dxe 38cb7aa33aSEmmanuel Vadot - const: pmu 39cb7aa33aSEmmanuel Vadot 40cb7aa33aSEmmanuel Vadot interrupts: 41cb7aa33aSEmmanuel Vadot minItems: 2 42cb7aa33aSEmmanuel Vadot maxItems: 5 43cb7aa33aSEmmanuel Vadot 44cb7aa33aSEmmanuel Vadot interrupt-names: 45cb7aa33aSEmmanuel Vadot minItems: 2 46cb7aa33aSEmmanuel Vadot items: 47cb7aa33aSEmmanuel Vadot - const: wdog 48cb7aa33aSEmmanuel Vadot - const: fatal 49cb7aa33aSEmmanuel Vadot - const: ready 50cb7aa33aSEmmanuel Vadot - const: handover 51cb7aa33aSEmmanuel Vadot - const: stop-ack 52cb7aa33aSEmmanuel Vadot 53cb7aa33aSEmmanuel Vadot firmware-name: 54*01950c46SEmmanuel Vadot maxItems: 1 55cb7aa33aSEmmanuel Vadot description: 56cb7aa33aSEmmanuel Vadot Relative firmware image path for the WCNSS core. Defaults to 57cb7aa33aSEmmanuel Vadot "wcnss.mdt". 58cb7aa33aSEmmanuel Vadot 59cb7aa33aSEmmanuel Vadot vddpx-supply: 60cb7aa33aSEmmanuel Vadot description: 61cb7aa33aSEmmanuel Vadot PX regulator to be held on behalf of the booting of the WCNSS core 62cb7aa33aSEmmanuel Vadot 63cb7aa33aSEmmanuel Vadot vddmx-supply: 64cb7aa33aSEmmanuel Vadot description: 65cb7aa33aSEmmanuel Vadot MX regulator to be held on behalf of the booting of the WCNSS core. 66cb7aa33aSEmmanuel Vadot 67cb7aa33aSEmmanuel Vadot vddcx-supply: 68cb7aa33aSEmmanuel Vadot description: 69cb7aa33aSEmmanuel Vadot CX regulator to be held on behalf of the booting of the WCNSS core. 70cb7aa33aSEmmanuel Vadot 71cb7aa33aSEmmanuel Vadot power-domains: 72cb7aa33aSEmmanuel Vadot maxItems: 2 73cb7aa33aSEmmanuel Vadot 74cb7aa33aSEmmanuel Vadot power-domain-names: 75cb7aa33aSEmmanuel Vadot items: 76cb7aa33aSEmmanuel Vadot - const: cx 77cb7aa33aSEmmanuel Vadot - const: mx 78cb7aa33aSEmmanuel Vadot 79cb7aa33aSEmmanuel Vadot qcom,smem-states: 80cb7aa33aSEmmanuel Vadot $ref: /schemas/types.yaml#/definitions/phandle-array 81cb7aa33aSEmmanuel Vadot description: 82cb7aa33aSEmmanuel Vadot States used by the AP to signal the WCNSS core that it should shutdown 83cb7aa33aSEmmanuel Vadot items: 84cb7aa33aSEmmanuel Vadot - description: Stop the modem 85cb7aa33aSEmmanuel Vadot 86cb7aa33aSEmmanuel Vadot qcom,smem-state-names: 87cb7aa33aSEmmanuel Vadot description: The names of the state bits used for SMP2P output 88cb7aa33aSEmmanuel Vadot items: 89cb7aa33aSEmmanuel Vadot - const: stop 90cb7aa33aSEmmanuel Vadot 91cb7aa33aSEmmanuel Vadot memory-region: 92cb7aa33aSEmmanuel Vadot maxItems: 1 93cb7aa33aSEmmanuel Vadot description: reserved-memory for the WCNSS core 94cb7aa33aSEmmanuel Vadot 95cb7aa33aSEmmanuel Vadot smd-edge: 96cb7aa33aSEmmanuel Vadot $ref: /schemas/remoteproc/qcom,smd-edge.yaml# 97cb7aa33aSEmmanuel Vadot description: 98cb7aa33aSEmmanuel Vadot Qualcomm Shared Memory subnode which represents communication edge, 99cb7aa33aSEmmanuel Vadot channels and devices related to the ADSP. 100cb7aa33aSEmmanuel Vadot 101cb7aa33aSEmmanuel Vadot iris: 102cb7aa33aSEmmanuel Vadot type: object 103cb7aa33aSEmmanuel Vadot description: 104cb7aa33aSEmmanuel Vadot The iris subnode of the WCNSS PIL is used to describe the attached RF module 105cb7aa33aSEmmanuel Vadot and its resource dependencies. 106cb7aa33aSEmmanuel Vadot 107cb7aa33aSEmmanuel Vadot properties: 108cb7aa33aSEmmanuel Vadot compatible: 109cb7aa33aSEmmanuel Vadot enum: 110cb7aa33aSEmmanuel Vadot - qcom,wcn3620 111cb7aa33aSEmmanuel Vadot - qcom,wcn3660 112cb7aa33aSEmmanuel Vadot - qcom,wcn3660b 113cb7aa33aSEmmanuel Vadot - qcom,wcn3680 114cb7aa33aSEmmanuel Vadot 115cb7aa33aSEmmanuel Vadot clocks: 116cb7aa33aSEmmanuel Vadot minItems: 1 117cb7aa33aSEmmanuel Vadot items: 118cb7aa33aSEmmanuel Vadot - description: XO clock 119cb7aa33aSEmmanuel Vadot - description: RF clock 120cb7aa33aSEmmanuel Vadot 121cb7aa33aSEmmanuel Vadot clock-names: 122cb7aa33aSEmmanuel Vadot minItems: 1 123cb7aa33aSEmmanuel Vadot items: 124cb7aa33aSEmmanuel Vadot - const: xo 125cb7aa33aSEmmanuel Vadot - const: rf 126cb7aa33aSEmmanuel Vadot 127cb7aa33aSEmmanuel Vadot vddxo-supply: 128cb7aa33aSEmmanuel Vadot description: 129cb7aa33aSEmmanuel Vadot Reference to the regulator to be held on behalf of the booting WCNSS 130cb7aa33aSEmmanuel Vadot core 131cb7aa33aSEmmanuel Vadot 132cb7aa33aSEmmanuel Vadot vddrfa-supply: 133cb7aa33aSEmmanuel Vadot description: 134cb7aa33aSEmmanuel Vadot Reference to the regulator to be held on behalf of the booting WCNSS 135cb7aa33aSEmmanuel Vadot core 136cb7aa33aSEmmanuel Vadot 137cb7aa33aSEmmanuel Vadot vddpa-supply: 138cb7aa33aSEmmanuel Vadot description: 139cb7aa33aSEmmanuel Vadot Reference to the regulator to be held on behalf of the booting WCNSS 140cb7aa33aSEmmanuel Vadot core 141cb7aa33aSEmmanuel Vadot 142cb7aa33aSEmmanuel Vadot vdddig-supply: 143cb7aa33aSEmmanuel Vadot description: 144cb7aa33aSEmmanuel Vadot Reference to the regulator to be held on behalf of the booting WCNSS 145cb7aa33aSEmmanuel Vadot core 146cb7aa33aSEmmanuel Vadot 147cb7aa33aSEmmanuel Vadot required: 148cb7aa33aSEmmanuel Vadot - compatible 149cb7aa33aSEmmanuel Vadot - clocks 150cb7aa33aSEmmanuel Vadot - clock-names 151cb7aa33aSEmmanuel Vadot - vddxo-supply 152cb7aa33aSEmmanuel Vadot - vddrfa-supply 153cb7aa33aSEmmanuel Vadot - vddpa-supply 154cb7aa33aSEmmanuel Vadot - vdddig-supply 155cb7aa33aSEmmanuel Vadot 156cb7aa33aSEmmanuel Vadot additionalProperties: false 157cb7aa33aSEmmanuel Vadot 158cb7aa33aSEmmanuel Vadotrequired: 159cb7aa33aSEmmanuel Vadot - compatible 160cb7aa33aSEmmanuel Vadot - reg 161cb7aa33aSEmmanuel Vadot - reg-names 162cb7aa33aSEmmanuel Vadot - interrupts 163cb7aa33aSEmmanuel Vadot - interrupt-names 164cb7aa33aSEmmanuel Vadot - iris 165cb7aa33aSEmmanuel Vadot - vddpx-supply 166cb7aa33aSEmmanuel Vadot - memory-region 167cb7aa33aSEmmanuel Vadot - smd-edge 168cb7aa33aSEmmanuel Vadot 169cb7aa33aSEmmanuel VadotadditionalProperties: false 170cb7aa33aSEmmanuel Vadot 171cb7aa33aSEmmanuel VadotallOf: 172cb7aa33aSEmmanuel Vadot - if: 173cb7aa33aSEmmanuel Vadot properties: 174cb7aa33aSEmmanuel Vadot compatible: 175cb7aa33aSEmmanuel Vadot contains: 176cb7aa33aSEmmanuel Vadot const: qcom,riva-pil 177cb7aa33aSEmmanuel Vadot then: 178cb7aa33aSEmmanuel Vadot required: 179cb7aa33aSEmmanuel Vadot - vddcx-supply 180cb7aa33aSEmmanuel Vadot - vddmx-supply 181cb7aa33aSEmmanuel Vadot 182cb7aa33aSEmmanuel Vadot - if: 183cb7aa33aSEmmanuel Vadot properties: 184cb7aa33aSEmmanuel Vadot compatible: 185cb7aa33aSEmmanuel Vadot contains: 186cb7aa33aSEmmanuel Vadot enum: 187cb7aa33aSEmmanuel Vadot - qcom,pronto-v1-pil 188cb7aa33aSEmmanuel Vadot - qcom,pronto-v2-pil 189cb7aa33aSEmmanuel Vadot then: 190cb7aa33aSEmmanuel Vadot properties: 191cb7aa33aSEmmanuel Vadot vddmx-supply: 192cb7aa33aSEmmanuel Vadot deprecated: true 193cb7aa33aSEmmanuel Vadot description: Deprecated for qcom,pronto-v1/2-pil 194cb7aa33aSEmmanuel Vadot 195cb7aa33aSEmmanuel Vadot vddcx-supply: 196cb7aa33aSEmmanuel Vadot deprecated: true 197cb7aa33aSEmmanuel Vadot description: Deprecated for qcom,pronto-v1/2-pil 198cb7aa33aSEmmanuel Vadot 199cb7aa33aSEmmanuel Vadot oneOf: 200cb7aa33aSEmmanuel Vadot - required: 201cb7aa33aSEmmanuel Vadot - power-domains 202cb7aa33aSEmmanuel Vadot - power-domain-names 203cb7aa33aSEmmanuel Vadot - required: 204cb7aa33aSEmmanuel Vadot - vddmx-supply 205cb7aa33aSEmmanuel Vadot - vddcx-supply 206cb7aa33aSEmmanuel Vadot 207cb7aa33aSEmmanuel Vadot - if: 208cb7aa33aSEmmanuel Vadot properties: 209cb7aa33aSEmmanuel Vadot compatible: 210cb7aa33aSEmmanuel Vadot contains: 211cb7aa33aSEmmanuel Vadot enum: 212cb7aa33aSEmmanuel Vadot - qcom,pronto-v3-pil 213cb7aa33aSEmmanuel Vadot then: 214cb7aa33aSEmmanuel Vadot properties: 215cb7aa33aSEmmanuel Vadot vddmx-supply: false 216cb7aa33aSEmmanuel Vadot vddcx-supply: false 217cb7aa33aSEmmanuel Vadot 218cb7aa33aSEmmanuel Vadot required: 219cb7aa33aSEmmanuel Vadot - power-domains 220cb7aa33aSEmmanuel Vadot - power-domain-names 221cb7aa33aSEmmanuel Vadot 222cb7aa33aSEmmanuel Vadotexamples: 223cb7aa33aSEmmanuel Vadot - | 224cb7aa33aSEmmanuel Vadot #include <dt-bindings/interrupt-controller/arm-gic.h> 225cb7aa33aSEmmanuel Vadot #include <dt-bindings/clock/qcom,rpmcc.h> 226cb7aa33aSEmmanuel Vadot #include <dt-bindings/power/qcom-rpmpd.h> 227cb7aa33aSEmmanuel Vadot pronto@a21b000 { 228cb7aa33aSEmmanuel Vadot compatible = "qcom,pronto-v2-pil", "qcom,pronto"; 229cb7aa33aSEmmanuel Vadot reg = <0x0a204000 0x2000>, <0x0a202000 0x1000>, <0x0a21b000 0x3000>; 230cb7aa33aSEmmanuel Vadot reg-names = "ccu", "dxe", "pmu"; 231cb7aa33aSEmmanuel Vadot 232cb7aa33aSEmmanuel Vadot interrupts-extended = <&intc GIC_SPI 149 IRQ_TYPE_EDGE_RISING>, 233cb7aa33aSEmmanuel Vadot <&wcnss_smp2p_in 0 IRQ_TYPE_EDGE_RISING>, 234cb7aa33aSEmmanuel Vadot <&wcnss_smp2p_in 1 IRQ_TYPE_EDGE_RISING>, 235cb7aa33aSEmmanuel Vadot <&wcnss_smp2p_in 2 IRQ_TYPE_EDGE_RISING>, 236cb7aa33aSEmmanuel Vadot <&wcnss_smp2p_in 3 IRQ_TYPE_EDGE_RISING>; 237cb7aa33aSEmmanuel Vadot interrupt-names = "wdog", "fatal", "ready", "handover", "stop-ack"; 238cb7aa33aSEmmanuel Vadot 239cb7aa33aSEmmanuel Vadot power-domains = <&rpmpd MSM8916_VDDCX>, <&rpmpd MSM8916_VDDMX>; 240cb7aa33aSEmmanuel Vadot power-domain-names = "cx", "mx"; 241cb7aa33aSEmmanuel Vadot 242cb7aa33aSEmmanuel Vadot vddpx-supply = <&pm8916_l7>; 243cb7aa33aSEmmanuel Vadot 244cb7aa33aSEmmanuel Vadot qcom,smem-states = <&wcnss_smp2p_out 0>; 245cb7aa33aSEmmanuel Vadot qcom,smem-state-names = "stop"; 246cb7aa33aSEmmanuel Vadot 247cb7aa33aSEmmanuel Vadot memory-region = <&wcnss_region>; 248cb7aa33aSEmmanuel Vadot 249cb7aa33aSEmmanuel Vadot pinctrl-names = "default"; 250cb7aa33aSEmmanuel Vadot pinctrl-0 = <&wcnss_pin_a>; 251cb7aa33aSEmmanuel Vadot 252cb7aa33aSEmmanuel Vadot iris { 253cb7aa33aSEmmanuel Vadot compatible = "qcom,wcn3620"; 254cb7aa33aSEmmanuel Vadot vddxo-supply = <&pm8916_l7>; 255cb7aa33aSEmmanuel Vadot vddrfa-supply = <&pm8916_s3>; 256cb7aa33aSEmmanuel Vadot vddpa-supply = <&pm8916_l9>; 257cb7aa33aSEmmanuel Vadot vdddig-supply = <&pm8916_l5>; 258cb7aa33aSEmmanuel Vadot 259cb7aa33aSEmmanuel Vadot clocks = <&rpmcc RPM_SMD_RF_CLK2>; 260cb7aa33aSEmmanuel Vadot clock-names = "xo"; 261cb7aa33aSEmmanuel Vadot }; 262cb7aa33aSEmmanuel Vadot 263cb7aa33aSEmmanuel Vadot smd-edge { 264cb7aa33aSEmmanuel Vadot interrupts = <GIC_SPI 142 IRQ_TYPE_EDGE_RISING>; 265cb7aa33aSEmmanuel Vadot 266cb7aa33aSEmmanuel Vadot qcom,ipc = <&apcs 8 17>; 267cb7aa33aSEmmanuel Vadot qcom,smd-edge = <6>; 268cb7aa33aSEmmanuel Vadot qcom,remote-pid = <4>; 269cb7aa33aSEmmanuel Vadot 270cb7aa33aSEmmanuel Vadot label = "pronto"; 271cb7aa33aSEmmanuel Vadot 272cb7aa33aSEmmanuel Vadot wcnss_ctrl: wcnss { 273cb7aa33aSEmmanuel Vadot compatible = "qcom,wcnss"; 274cb7aa33aSEmmanuel Vadot qcom,smd-channels = "WCNSS_CTRL"; 275cb7aa33aSEmmanuel Vadot 276cb7aa33aSEmmanuel Vadot qcom,mmio = <&pronto>; 277cb7aa33aSEmmanuel Vadot 278cb7aa33aSEmmanuel Vadot bluetooth { 279cb7aa33aSEmmanuel Vadot compatible = "qcom,wcnss-bt"; 280cb7aa33aSEmmanuel Vadot }; 281cb7aa33aSEmmanuel Vadot 282cb7aa33aSEmmanuel Vadot wifi { 283cb7aa33aSEmmanuel Vadot compatible = "qcom,wcnss-wlan"; 284cb7aa33aSEmmanuel Vadot 285cb7aa33aSEmmanuel Vadot interrupts = <GIC_SPI 145 IRQ_TYPE_LEVEL_HIGH>, 286cb7aa33aSEmmanuel Vadot <GIC_SPI 146 IRQ_TYPE_LEVEL_HIGH>; 287cb7aa33aSEmmanuel Vadot interrupt-names = "tx", "rx"; 288cb7aa33aSEmmanuel Vadot 289cb7aa33aSEmmanuel Vadot qcom,smem-states = <&apps_smsm 10>, <&apps_smsm 9>; 290cb7aa33aSEmmanuel Vadot qcom,smem-state-names = "tx-enable", "tx-rings-empty"; 291cb7aa33aSEmmanuel Vadot }; 292cb7aa33aSEmmanuel Vadot }; 293cb7aa33aSEmmanuel Vadot }; 294cb7aa33aSEmmanuel Vadot }; 295