1c9ccf3a3SEmmanuel Vadot# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) 2c9ccf3a3SEmmanuel Vadot%YAML 1.2 3c9ccf3a3SEmmanuel Vadot--- 4c9ccf3a3SEmmanuel Vadot$id: http://devicetree.org/schemas/remoteproc/qcom,sc7280-wpss-pil.yaml# 5c9ccf3a3SEmmanuel Vadot$schema: http://devicetree.org/meta-schemas/core.yaml# 6c9ccf3a3SEmmanuel Vadot 7c9ccf3a3SEmmanuel Vadottitle: Qualcomm SC7280 WPSS Peripheral Image Loader 8c9ccf3a3SEmmanuel Vadot 9c9ccf3a3SEmmanuel Vadotmaintainers: 10c9ccf3a3SEmmanuel Vadot - Bjorn Andersson <bjorn.andersson@linaro.org> 11c9ccf3a3SEmmanuel Vadot 12c9ccf3a3SEmmanuel Vadotdescription: 13c9ccf3a3SEmmanuel Vadot This document defines the binding for a component that loads and boots firmware 14c9ccf3a3SEmmanuel Vadot on the Qualcomm Technology Inc. WPSS. 15c9ccf3a3SEmmanuel Vadot 16c9ccf3a3SEmmanuel Vadotproperties: 17c9ccf3a3SEmmanuel Vadot compatible: 18c9ccf3a3SEmmanuel Vadot enum: 19c9ccf3a3SEmmanuel Vadot - qcom,sc7280-wpss-pil 20c9ccf3a3SEmmanuel Vadot 21c9ccf3a3SEmmanuel Vadot reg: 22c9ccf3a3SEmmanuel Vadot maxItems: 1 23c9ccf3a3SEmmanuel Vadot description: 24c9ccf3a3SEmmanuel Vadot The base address and size of the qdsp6ss register 25c9ccf3a3SEmmanuel Vadot 26c9ccf3a3SEmmanuel Vadot interrupts: 27c9ccf3a3SEmmanuel Vadot items: 28c9ccf3a3SEmmanuel Vadot - description: Watchdog interrupt 29c9ccf3a3SEmmanuel Vadot - description: Fatal interrupt 30c9ccf3a3SEmmanuel Vadot - description: Ready interrupt 31c9ccf3a3SEmmanuel Vadot - description: Handover interrupt 32c9ccf3a3SEmmanuel Vadot - description: Stop acknowledge interrupt 33c9ccf3a3SEmmanuel Vadot - description: Shutdown acknowledge interrupt 34c9ccf3a3SEmmanuel Vadot 35c9ccf3a3SEmmanuel Vadot interrupt-names: 36c9ccf3a3SEmmanuel Vadot items: 37c9ccf3a3SEmmanuel Vadot - const: wdog 38c9ccf3a3SEmmanuel Vadot - const: fatal 39c9ccf3a3SEmmanuel Vadot - const: ready 40c9ccf3a3SEmmanuel Vadot - const: handover 41c9ccf3a3SEmmanuel Vadot - const: stop-ack 42c9ccf3a3SEmmanuel Vadot - const: shutdown-ack 43c9ccf3a3SEmmanuel Vadot 44c9ccf3a3SEmmanuel Vadot clocks: 45c9ccf3a3SEmmanuel Vadot items: 46c9ccf3a3SEmmanuel Vadot - description: GCC WPSS AHB BDG Master clock 47c9ccf3a3SEmmanuel Vadot - description: GCC WPSS AHB clock 48c9ccf3a3SEmmanuel Vadot - description: GCC WPSS RSCP clock 49c9ccf3a3SEmmanuel Vadot - description: XO clock 50c9ccf3a3SEmmanuel Vadot 51c9ccf3a3SEmmanuel Vadot clock-names: 52c9ccf3a3SEmmanuel Vadot items: 53c9ccf3a3SEmmanuel Vadot - const: ahb_bdg 54c9ccf3a3SEmmanuel Vadot - const: ahb 55c9ccf3a3SEmmanuel Vadot - const: rscp 56c9ccf3a3SEmmanuel Vadot - const: xo 57c9ccf3a3SEmmanuel Vadot 58c9ccf3a3SEmmanuel Vadot power-domains: 59c9ccf3a3SEmmanuel Vadot items: 60c9ccf3a3SEmmanuel Vadot - description: CX power domain 61c9ccf3a3SEmmanuel Vadot - description: MX power domain 62c9ccf3a3SEmmanuel Vadot 63c9ccf3a3SEmmanuel Vadot power-domain-names: 64c9ccf3a3SEmmanuel Vadot items: 65c9ccf3a3SEmmanuel Vadot - const: cx 66c9ccf3a3SEmmanuel Vadot - const: mx 67c9ccf3a3SEmmanuel Vadot 68c9ccf3a3SEmmanuel Vadot resets: 69c9ccf3a3SEmmanuel Vadot items: 70c9ccf3a3SEmmanuel Vadot - description: AOSS restart 71c9ccf3a3SEmmanuel Vadot - description: PDC SYNC 72c9ccf3a3SEmmanuel Vadot 73c9ccf3a3SEmmanuel Vadot reset-names: 74c9ccf3a3SEmmanuel Vadot items: 75c9ccf3a3SEmmanuel Vadot - const: restart 76c9ccf3a3SEmmanuel Vadot - const: pdc_sync 77c9ccf3a3SEmmanuel Vadot 78c9ccf3a3SEmmanuel Vadot memory-region: 79b97ee269SEmmanuel Vadot maxItems: 1 80c9ccf3a3SEmmanuel Vadot description: Reference to the reserved-memory for the Hexagon core 81c9ccf3a3SEmmanuel Vadot 82c9ccf3a3SEmmanuel Vadot firmware-name: 8301950c46SEmmanuel Vadot maxItems: 1 84c9ccf3a3SEmmanuel Vadot description: 85c9ccf3a3SEmmanuel Vadot The name of the firmware which should be loaded for this remote 86c9ccf3a3SEmmanuel Vadot processor. 87c9ccf3a3SEmmanuel Vadot 88c9ccf3a3SEmmanuel Vadot qcom,halt-regs: 89c9ccf3a3SEmmanuel Vadot $ref: /schemas/types.yaml#/definitions/phandle-array 90c9ccf3a3SEmmanuel Vadot description: 91c9ccf3a3SEmmanuel Vadot Phandle reference to a syscon representing TCSR followed by the 92*7d0873ebSEmmanuel Vadot offset within syscon for q6 halt register. 93*7d0873ebSEmmanuel Vadot items: 94*7d0873ebSEmmanuel Vadot - items: 95*7d0873ebSEmmanuel Vadot - description: phandle to TCSR syscon region 96*7d0873ebSEmmanuel Vadot - description: offset to the Q6 halt register 97c9ccf3a3SEmmanuel Vadot 98c9ccf3a3SEmmanuel Vadot qcom,qmp: 99c9ccf3a3SEmmanuel Vadot $ref: /schemas/types.yaml#/definitions/phandle 100c9ccf3a3SEmmanuel Vadot description: Reference to the AOSS side-channel message RAM. 101c9ccf3a3SEmmanuel Vadot 102c9ccf3a3SEmmanuel Vadot qcom,smem-states: 103c9ccf3a3SEmmanuel Vadot $ref: /schemas/types.yaml#/definitions/phandle-array 104c9ccf3a3SEmmanuel Vadot description: States used by the AP to signal the Hexagon core 105c9ccf3a3SEmmanuel Vadot items: 106c9ccf3a3SEmmanuel Vadot - description: Stop the modem 107c9ccf3a3SEmmanuel Vadot 108c9ccf3a3SEmmanuel Vadot qcom,smem-state-names: 109c9ccf3a3SEmmanuel Vadot description: The names of the state bits used for SMP2P output 110c9ccf3a3SEmmanuel Vadot const: stop 111c9ccf3a3SEmmanuel Vadot 112c9ccf3a3SEmmanuel Vadot glink-edge: 113b97ee269SEmmanuel Vadot $ref: qcom,glink-edge.yaml# 1147ef62cebSEmmanuel Vadot unevaluatedProperties: false 115b97ee269SEmmanuel Vadot description: 116c9ccf3a3SEmmanuel Vadot Qualcomm G-Link subnode which represents communication edge, channels 117c9ccf3a3SEmmanuel Vadot and devices related to the ADSP. 118c9ccf3a3SEmmanuel Vadot 119c9ccf3a3SEmmanuel Vadot properties: 120c9ccf3a3SEmmanuel Vadot interrupts: 121c9ccf3a3SEmmanuel Vadot items: 122c9ccf3a3SEmmanuel Vadot - description: IRQ from WPSS to GLINK 123c9ccf3a3SEmmanuel Vadot 124c9ccf3a3SEmmanuel Vadot mboxes: 125c9ccf3a3SEmmanuel Vadot items: 126c9ccf3a3SEmmanuel Vadot - description: Mailbox for communication between APPS and WPSS 127c9ccf3a3SEmmanuel Vadot 128c9ccf3a3SEmmanuel Vadot label: 129c9ccf3a3SEmmanuel Vadot items: 130c9ccf3a3SEmmanuel Vadot - const: wpss 131c9ccf3a3SEmmanuel Vadot 132b97ee269SEmmanuel Vadot apr: false 133b97ee269SEmmanuel Vadot fastrpc: false 134c9ccf3a3SEmmanuel Vadot 135c9ccf3a3SEmmanuel Vadotrequired: 136c9ccf3a3SEmmanuel Vadot - compatible 137c9ccf3a3SEmmanuel Vadot - reg 138c9ccf3a3SEmmanuel Vadot - interrupts 139c9ccf3a3SEmmanuel Vadot - interrupt-names 140c9ccf3a3SEmmanuel Vadot - clocks 141c9ccf3a3SEmmanuel Vadot - clock-names 142c9ccf3a3SEmmanuel Vadot - power-domains 143c9ccf3a3SEmmanuel Vadot - power-domain-names 144c9ccf3a3SEmmanuel Vadot - resets 145c9ccf3a3SEmmanuel Vadot - reset-names 146c9ccf3a3SEmmanuel Vadot - qcom,halt-regs 147c9ccf3a3SEmmanuel Vadot - memory-region 148c9ccf3a3SEmmanuel Vadot - qcom,qmp 149c9ccf3a3SEmmanuel Vadot - qcom,smem-states 150c9ccf3a3SEmmanuel Vadot - qcom,smem-state-names 151c9ccf3a3SEmmanuel Vadot - glink-edge 152c9ccf3a3SEmmanuel Vadot 153c9ccf3a3SEmmanuel VadotadditionalProperties: false 154c9ccf3a3SEmmanuel Vadot 155c9ccf3a3SEmmanuel Vadotexamples: 156c9ccf3a3SEmmanuel Vadot - | 157c9ccf3a3SEmmanuel Vadot #include <dt-bindings/interrupt-controller/arm-gic.h> 158c9ccf3a3SEmmanuel Vadot #include <dt-bindings/clock/qcom,gcc-sc7280.h> 159c9ccf3a3SEmmanuel Vadot #include <dt-bindings/clock/qcom,rpmh.h> 160c9ccf3a3SEmmanuel Vadot #include <dt-bindings/power/qcom-rpmpd.h> 161c9ccf3a3SEmmanuel Vadot #include <dt-bindings/reset/qcom,sdm845-aoss.h> 162c9ccf3a3SEmmanuel Vadot #include <dt-bindings/reset/qcom,sdm845-pdc.h> 163c9ccf3a3SEmmanuel Vadot #include <dt-bindings/mailbox/qcom-ipcc.h> 164c9ccf3a3SEmmanuel Vadot remoteproc@8a00000 { 165c9ccf3a3SEmmanuel Vadot compatible = "qcom,sc7280-wpss-pil"; 166c9ccf3a3SEmmanuel Vadot reg = <0x08a00000 0x10000>; 167c9ccf3a3SEmmanuel Vadot 168c9ccf3a3SEmmanuel Vadot interrupts-extended = <&intc GIC_SPI 587 IRQ_TYPE_EDGE_RISING>, 169c9ccf3a3SEmmanuel Vadot <&wpss_smp2p_in 0 IRQ_TYPE_EDGE_RISING>, 170c9ccf3a3SEmmanuel Vadot <&wpss_smp2p_in 1 IRQ_TYPE_EDGE_RISING>, 171c9ccf3a3SEmmanuel Vadot <&wpss_smp2p_in 2 IRQ_TYPE_EDGE_RISING>, 172c9ccf3a3SEmmanuel Vadot <&wpss_smp2p_in 3 IRQ_TYPE_EDGE_RISING>, 173c9ccf3a3SEmmanuel Vadot <&wpss_smp2p_in 7 IRQ_TYPE_EDGE_RISING>; 174c9ccf3a3SEmmanuel Vadot interrupt-names = "wdog", "fatal", "ready", "handover", 175c9ccf3a3SEmmanuel Vadot "stop-ack", "shutdown-ack"; 176c9ccf3a3SEmmanuel Vadot 177c9ccf3a3SEmmanuel Vadot clocks = <&gcc GCC_WPSS_AHB_BDG_MST_CLK>, 178c9ccf3a3SEmmanuel Vadot <&gcc GCC_WPSS_AHB_CLK>, 179c9ccf3a3SEmmanuel Vadot <&gcc GCC_WPSS_RSCP_CLK>, 180c9ccf3a3SEmmanuel Vadot <&rpmhcc RPMH_CXO_CLK>; 181c9ccf3a3SEmmanuel Vadot clock-names = "ahb_bdg", "ahb", 182c9ccf3a3SEmmanuel Vadot "rscp", "xo"; 183c9ccf3a3SEmmanuel Vadot 184c9ccf3a3SEmmanuel Vadot power-domains = <&rpmhpd SC7280_CX>, 185c9ccf3a3SEmmanuel Vadot <&rpmhpd SC7280_MX>; 186c9ccf3a3SEmmanuel Vadot power-domain-names = "cx", "mx"; 187c9ccf3a3SEmmanuel Vadot 188c9ccf3a3SEmmanuel Vadot memory-region = <&wpss_mem>; 189c9ccf3a3SEmmanuel Vadot 190c9ccf3a3SEmmanuel Vadot qcom,qmp = <&aoss_qmp>; 191c9ccf3a3SEmmanuel Vadot 192c9ccf3a3SEmmanuel Vadot qcom,smem-states = <&wpss_smp2p_out 0>; 193c9ccf3a3SEmmanuel Vadot qcom,smem-state-names = "stop"; 194c9ccf3a3SEmmanuel Vadot 195c9ccf3a3SEmmanuel Vadot resets = <&aoss_reset AOSS_CC_WCSS_RESTART>, 196c9ccf3a3SEmmanuel Vadot <&pdc_reset PDC_WPSS_SYNC_RESET>; 197c9ccf3a3SEmmanuel Vadot reset-names = "restart", "pdc_sync"; 198c9ccf3a3SEmmanuel Vadot 199c9ccf3a3SEmmanuel Vadot qcom,halt-regs = <&tcsr_mutex 0x37000>; 200c9ccf3a3SEmmanuel Vadot 201c9ccf3a3SEmmanuel Vadot glink-edge { 202c9ccf3a3SEmmanuel Vadot interrupts-extended = <&ipcc IPCC_CLIENT_WPSS 203c9ccf3a3SEmmanuel Vadot IPCC_MPROC_SIGNAL_GLINK_QMP 204c9ccf3a3SEmmanuel Vadot IRQ_TYPE_EDGE_RISING>; 205c9ccf3a3SEmmanuel Vadot mboxes = <&ipcc IPCC_CLIENT_WPSS 206c9ccf3a3SEmmanuel Vadot IPCC_MPROC_SIGNAL_GLINK_QMP>; 207c9ccf3a3SEmmanuel Vadot 208c9ccf3a3SEmmanuel Vadot label = "wpss"; 209c9ccf3a3SEmmanuel Vadot qcom,remote-pid = <13>; 210c9ccf3a3SEmmanuel Vadot }; 211c9ccf3a3SEmmanuel Vadot }; 212