1*cb7aa33aSEmmanuel Vadot# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) 2*cb7aa33aSEmmanuel Vadot%YAML 1.2 3*cb7aa33aSEmmanuel Vadot--- 4*cb7aa33aSEmmanuel Vadot$id: http://devicetree.org/schemas/remoteproc/qcom,sc7280-adsp-pil.yaml# 5*cb7aa33aSEmmanuel Vadot$schema: http://devicetree.org/meta-schemas/core.yaml# 6*cb7aa33aSEmmanuel Vadot 7*cb7aa33aSEmmanuel Vadottitle: Qualcomm SC7280 ADSP Peripheral Image Loader 8*cb7aa33aSEmmanuel Vadot 9*cb7aa33aSEmmanuel Vadotmaintainers: 10*cb7aa33aSEmmanuel Vadot - Srinivasa Rao Mandadapu <quic_srivasam@quicinc.com> 11*cb7aa33aSEmmanuel Vadot 12*cb7aa33aSEmmanuel Vadotdescription: 13*cb7aa33aSEmmanuel Vadot This document describes the hardware for a component that loads and boots firmware 14*cb7aa33aSEmmanuel Vadot on the Qualcomm Technology Inc. ADSP. 15*cb7aa33aSEmmanuel Vadot 16*cb7aa33aSEmmanuel Vadotproperties: 17*cb7aa33aSEmmanuel Vadot compatible: 18*cb7aa33aSEmmanuel Vadot enum: 19*cb7aa33aSEmmanuel Vadot - qcom,sc7280-adsp-pil 20*cb7aa33aSEmmanuel Vadot 21*cb7aa33aSEmmanuel Vadot reg: 22*cb7aa33aSEmmanuel Vadot items: 23*cb7aa33aSEmmanuel Vadot - description: qdsp6ss register 24*cb7aa33aSEmmanuel Vadot - description: efuse q6ss register 25*cb7aa33aSEmmanuel Vadot 26*cb7aa33aSEmmanuel Vadot iommus: 27*cb7aa33aSEmmanuel Vadot items: 28*cb7aa33aSEmmanuel Vadot - description: Phandle to apps_smmu node with sid mask 29*cb7aa33aSEmmanuel Vadot 30*cb7aa33aSEmmanuel Vadot interrupts: 31*cb7aa33aSEmmanuel Vadot items: 32*cb7aa33aSEmmanuel Vadot - description: Watchdog interrupt 33*cb7aa33aSEmmanuel Vadot - description: Fatal interrupt 34*cb7aa33aSEmmanuel Vadot - description: Ready interrupt 35*cb7aa33aSEmmanuel Vadot - description: Handover interrupt 36*cb7aa33aSEmmanuel Vadot - description: Stop acknowledge interrupt 37*cb7aa33aSEmmanuel Vadot - description: Shutdown acknowledge interrupt 38*cb7aa33aSEmmanuel Vadot 39*cb7aa33aSEmmanuel Vadot interrupt-names: 40*cb7aa33aSEmmanuel Vadot items: 41*cb7aa33aSEmmanuel Vadot - const: wdog 42*cb7aa33aSEmmanuel Vadot - const: fatal 43*cb7aa33aSEmmanuel Vadot - const: ready 44*cb7aa33aSEmmanuel Vadot - const: handover 45*cb7aa33aSEmmanuel Vadot - const: stop-ack 46*cb7aa33aSEmmanuel Vadot - const: shutdown-ack 47*cb7aa33aSEmmanuel Vadot 48*cb7aa33aSEmmanuel Vadot clocks: 49*cb7aa33aSEmmanuel Vadot items: 50*cb7aa33aSEmmanuel Vadot - description: XO clock 51*cb7aa33aSEmmanuel Vadot - description: GCC CFG NOC LPASS clock 52*cb7aa33aSEmmanuel Vadot 53*cb7aa33aSEmmanuel Vadot clock-names: 54*cb7aa33aSEmmanuel Vadot items: 55*cb7aa33aSEmmanuel Vadot - const: xo 56*cb7aa33aSEmmanuel Vadot - const: gcc_cfg_noc_lpass 57*cb7aa33aSEmmanuel Vadot 58*cb7aa33aSEmmanuel Vadot power-domains: 59*cb7aa33aSEmmanuel Vadot items: 60*cb7aa33aSEmmanuel Vadot - description: LCX power domain 61*cb7aa33aSEmmanuel Vadot 62*cb7aa33aSEmmanuel Vadot resets: 63*cb7aa33aSEmmanuel Vadot items: 64*cb7aa33aSEmmanuel Vadot - description: PDC AUDIO SYNC RESET 65*cb7aa33aSEmmanuel Vadot - description: CC LPASS restart 66*cb7aa33aSEmmanuel Vadot 67*cb7aa33aSEmmanuel Vadot reset-names: 68*cb7aa33aSEmmanuel Vadot items: 69*cb7aa33aSEmmanuel Vadot - const: pdc_sync 70*cb7aa33aSEmmanuel Vadot - const: cc_lpass 71*cb7aa33aSEmmanuel Vadot 72*cb7aa33aSEmmanuel Vadot memory-region: 73*cb7aa33aSEmmanuel Vadot maxItems: 1 74*cb7aa33aSEmmanuel Vadot description: Reference to the reserved-memory for the Hexagon core 75*cb7aa33aSEmmanuel Vadot 76*cb7aa33aSEmmanuel Vadot qcom,halt-regs: 77*cb7aa33aSEmmanuel Vadot $ref: /schemas/types.yaml#/definitions/phandle-array 78*cb7aa33aSEmmanuel Vadot description: 79*cb7aa33aSEmmanuel Vadot Phandle reference to a syscon representing TCSR followed by the 80*cb7aa33aSEmmanuel Vadot four offsets within syscon for q6, modem, nc and qv6 halt registers. 81*cb7aa33aSEmmanuel Vadot items: 82*cb7aa33aSEmmanuel Vadot - items: 83*cb7aa33aSEmmanuel Vadot - description: phandle to TCSR_MUTEX registers 84*cb7aa33aSEmmanuel Vadot - description: offset to the Q6 halt register 85*cb7aa33aSEmmanuel Vadot - description: offset to the modem halt register 86*cb7aa33aSEmmanuel Vadot - description: offset to the nc halt register 87*cb7aa33aSEmmanuel Vadot - description: offset to the vq6 halt register 88*cb7aa33aSEmmanuel Vadot 89*cb7aa33aSEmmanuel Vadot qcom,smem-states: 90*cb7aa33aSEmmanuel Vadot $ref: /schemas/types.yaml#/definitions/phandle-array 91*cb7aa33aSEmmanuel Vadot description: States used by the AP to signal the Hexagon core 92*cb7aa33aSEmmanuel Vadot items: 93*cb7aa33aSEmmanuel Vadot - description: Stop the modem 94*cb7aa33aSEmmanuel Vadot 95*cb7aa33aSEmmanuel Vadot qcom,smem-state-names: 96*cb7aa33aSEmmanuel Vadot description: The names of the state bits used for SMP2P output 97*cb7aa33aSEmmanuel Vadot const: stop 98*cb7aa33aSEmmanuel Vadot 99*cb7aa33aSEmmanuel Vadot qcom,qmp: 100*cb7aa33aSEmmanuel Vadot $ref: /schemas/types.yaml#/definitions/phandle 101*cb7aa33aSEmmanuel Vadot description: Reference to the AOSS side-channel message RAM. 102*cb7aa33aSEmmanuel Vadot 103*cb7aa33aSEmmanuel Vadot glink-edge: 104*cb7aa33aSEmmanuel Vadot $ref: qcom,glink-edge.yaml# 105*cb7aa33aSEmmanuel Vadot type: object 106*cb7aa33aSEmmanuel Vadot unevaluatedProperties: false 107*cb7aa33aSEmmanuel Vadot description: | 108*cb7aa33aSEmmanuel Vadot Qualcomm G-Link subnode which represents communication edge, channels 109*cb7aa33aSEmmanuel Vadot and devices related to the ADSP. 110*cb7aa33aSEmmanuel Vadot 111*cb7aa33aSEmmanuel Vadot properties: 112*cb7aa33aSEmmanuel Vadot label: 113*cb7aa33aSEmmanuel Vadot const: lpass 114*cb7aa33aSEmmanuel Vadot 115*cb7aa33aSEmmanuel Vadot gpr: true 116*cb7aa33aSEmmanuel Vadot apr: false 117*cb7aa33aSEmmanuel Vadot fastrpc: false 118*cb7aa33aSEmmanuel Vadot 119*cb7aa33aSEmmanuel Vadot required: 120*cb7aa33aSEmmanuel Vadot - label 121*cb7aa33aSEmmanuel Vadot 122*cb7aa33aSEmmanuel Vadotrequired: 123*cb7aa33aSEmmanuel Vadot - compatible 124*cb7aa33aSEmmanuel Vadot - reg 125*cb7aa33aSEmmanuel Vadot - interrupts 126*cb7aa33aSEmmanuel Vadot - interrupt-names 127*cb7aa33aSEmmanuel Vadot - clocks 128*cb7aa33aSEmmanuel Vadot - clock-names 129*cb7aa33aSEmmanuel Vadot - power-domains 130*cb7aa33aSEmmanuel Vadot - resets 131*cb7aa33aSEmmanuel Vadot - reset-names 132*cb7aa33aSEmmanuel Vadot - qcom,halt-regs 133*cb7aa33aSEmmanuel Vadot - memory-region 134*cb7aa33aSEmmanuel Vadot - qcom,smem-states 135*cb7aa33aSEmmanuel Vadot - qcom,smem-state-names 136*cb7aa33aSEmmanuel Vadot - qcom,qmp 137*cb7aa33aSEmmanuel Vadot 138*cb7aa33aSEmmanuel VadotadditionalProperties: false 139*cb7aa33aSEmmanuel Vadot 140*cb7aa33aSEmmanuel Vadotexamples: 141*cb7aa33aSEmmanuel Vadot - | 142*cb7aa33aSEmmanuel Vadot #include <dt-bindings/interrupt-controller/arm-gic.h> 143*cb7aa33aSEmmanuel Vadot #include <dt-bindings/clock/qcom,rpmh.h> 144*cb7aa33aSEmmanuel Vadot #include <dt-bindings/clock/qcom,gcc-sc7280.h> 145*cb7aa33aSEmmanuel Vadot #include <dt-bindings/clock/qcom,lpass-sc7280.h> 146*cb7aa33aSEmmanuel Vadot #include <dt-bindings/reset/qcom,sdm845-aoss.h> 147*cb7aa33aSEmmanuel Vadot #include <dt-bindings/reset/qcom,sdm845-pdc.h> 148*cb7aa33aSEmmanuel Vadot #include <dt-bindings/power/qcom-rpmpd.h> 149*cb7aa33aSEmmanuel Vadot #include <dt-bindings/mailbox/qcom-ipcc.h> 150*cb7aa33aSEmmanuel Vadot 151*cb7aa33aSEmmanuel Vadot remoteproc@3000000 { 152*cb7aa33aSEmmanuel Vadot compatible = "qcom,sc7280-adsp-pil"; 153*cb7aa33aSEmmanuel Vadot reg = <0x03000000 0x5000>, 154*cb7aa33aSEmmanuel Vadot <0x0355b000 0x10>; 155*cb7aa33aSEmmanuel Vadot 156*cb7aa33aSEmmanuel Vadot interrupts-extended = <&pdc 162 IRQ_TYPE_EDGE_RISING>, 157*cb7aa33aSEmmanuel Vadot <&adsp_smp2p_in 0 IRQ_TYPE_EDGE_RISING>, 158*cb7aa33aSEmmanuel Vadot <&adsp_smp2p_in 1 IRQ_TYPE_EDGE_RISING>, 159*cb7aa33aSEmmanuel Vadot <&adsp_smp2p_in 2 IRQ_TYPE_EDGE_RISING>, 160*cb7aa33aSEmmanuel Vadot <&adsp_smp2p_in 3 IRQ_TYPE_EDGE_RISING>, 161*cb7aa33aSEmmanuel Vadot <&adsp_smp2p_in 7 IRQ_TYPE_EDGE_RISING>; 162*cb7aa33aSEmmanuel Vadot 163*cb7aa33aSEmmanuel Vadot interrupt-names = "wdog", "fatal", "ready", 164*cb7aa33aSEmmanuel Vadot "handover", "stop-ack", "shutdown-ack"; 165*cb7aa33aSEmmanuel Vadot 166*cb7aa33aSEmmanuel Vadot clocks = <&rpmhcc RPMH_CXO_CLK>, 167*cb7aa33aSEmmanuel Vadot <&gcc GCC_CFG_NOC_LPASS_CLK>; 168*cb7aa33aSEmmanuel Vadot clock-names = "xo", "gcc_cfg_noc_lpass"; 169*cb7aa33aSEmmanuel Vadot 170*cb7aa33aSEmmanuel Vadot power-domains = <&rpmhpd SC7280_LCX>; 171*cb7aa33aSEmmanuel Vadot 172*cb7aa33aSEmmanuel Vadot resets = <&pdc_reset PDC_AUDIO_SYNC_RESET>, 173*cb7aa33aSEmmanuel Vadot <&aoss_reset AOSS_CC_LPASS_RESTART>; 174*cb7aa33aSEmmanuel Vadot reset-names = "pdc_sync", "cc_lpass"; 175*cb7aa33aSEmmanuel Vadot 176*cb7aa33aSEmmanuel Vadot qcom,halt-regs = <&tcsr_mutex 0x23000 0x25000 0x28000 0x33000>; 177*cb7aa33aSEmmanuel Vadot 178*cb7aa33aSEmmanuel Vadot memory-region = <&adsp_mem>; 179*cb7aa33aSEmmanuel Vadot 180*cb7aa33aSEmmanuel Vadot qcom,smem-states = <&adsp_smp2p_out 0>; 181*cb7aa33aSEmmanuel Vadot qcom,smem-state-names = "stop"; 182*cb7aa33aSEmmanuel Vadot 183*cb7aa33aSEmmanuel Vadot qcom,qmp = <&aoss_qmp>; 184*cb7aa33aSEmmanuel Vadot 185*cb7aa33aSEmmanuel Vadot glink-edge { 186*cb7aa33aSEmmanuel Vadot interrupts-extended = <&ipcc IPCC_CLIENT_LPASS 187*cb7aa33aSEmmanuel Vadot IPCC_MPROC_SIGNAL_GLINK_QMP 188*cb7aa33aSEmmanuel Vadot IRQ_TYPE_EDGE_RISING>; 189*cb7aa33aSEmmanuel Vadot mboxes = <&ipcc IPCC_CLIENT_LPASS 190*cb7aa33aSEmmanuel Vadot IPCC_MPROC_SIGNAL_GLINK_QMP>; 191*cb7aa33aSEmmanuel Vadot 192*cb7aa33aSEmmanuel Vadot label = "lpass"; 193*cb7aa33aSEmmanuel Vadot qcom,remote-pid = <2>; 194*cb7aa33aSEmmanuel Vadot }; 195*cb7aa33aSEmmanuel Vadot }; 196