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