# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause) %YAML 1.2 --- $id: http://devicetree.org/schemas/remoteproc/qcom,adsp.yaml# $schema: http://devicetree.org/meta-schemas/core.yaml# title: Qualcomm ADSP Peripheral Image Loader binding maintainers: - Manivannan Sadhasivam description: This document defines the binding for a component that loads and boots firmware on the Qualcomm ADSP Hexagon core. properties: compatible: enum: - qcom,msm8226-adsp-pil - qcom,msm8974-adsp-pil - qcom,msm8996-adsp-pil - qcom,msm8996-slpi-pil - qcom,msm8998-adsp-pas - qcom,msm8998-slpi-pas - qcom,qcs404-adsp-pas - qcom,qcs404-cdsp-pas - qcom,qcs404-wcss-pas - qcom,sc7180-mpss-pas - qcom,sc7280-mpss-pas - qcom,sc8180x-adsp-pas - qcom,sc8180x-cdsp-pas - qcom,sc8180x-mpss-pas - qcom,sc8280xp-adsp-pas - qcom,sc8280xp-nsp0-pas - qcom,sc8280xp-nsp1-pas - qcom,sdm660-adsp-pas - qcom,sdm845-adsp-pas - qcom,sdm845-cdsp-pas - qcom,sdx55-mpss-pas - qcom,sm6350-adsp-pas - qcom,sm6350-cdsp-pas - qcom,sm6350-mpss-pas - qcom,sm8150-adsp-pas - qcom,sm8150-cdsp-pas - qcom,sm8150-mpss-pas - qcom,sm8150-slpi-pas - qcom,sm8250-adsp-pas - qcom,sm8250-cdsp-pas - qcom,sm8250-slpi-pas - qcom,sm8350-adsp-pas - qcom,sm8350-cdsp-pas - qcom,sm8350-slpi-pas - qcom,sm8350-mpss-pas - qcom,sm8450-adsp-pas - qcom,sm8450-cdsp-pas - qcom,sm8450-mpss-pas - qcom,sm8450-slpi-pas reg: maxItems: 1 clocks: minItems: 1 maxItems: 8 clock-names: minItems: 1 maxItems: 8 interconnects: maxItems: 1 interrupts: minItems: 5 items: - description: Watchdog interrupt - description: Fatal interrupt - description: Ready interrupt - description: Handover interrupt - description: Stop acknowledge interrupt - description: Shutdown acknowledge interrupt interrupt-names: minItems: 5 items: - const: wdog - const: fatal - const: ready - const: handover - const: stop-ack - const: shutdown-ack resets: minItems: 1 maxItems: 3 reset-names: minItems: 1 maxItems: 3 cx-supply: description: Phandle to the CX regulator px-supply: description: Phandle to the PX regulator power-domains: minItems: 1 maxItems: 3 power-domain-names: minItems: 1 maxItems: 3 firmware-name: $ref: /schemas/types.yaml#/definitions/string description: Firmware name for the Hexagon core memory-region: maxItems: 1 description: Reference to the reserved-memory for the Hexagon core qcom,qmp: $ref: /schemas/types.yaml#/definitions/phandle description: Reference to the AOSS side-channel message RAM. qcom,smem-states: $ref: /schemas/types.yaml#/definitions/phandle-array description: States used by the AP to signal the Hexagon core items: - description: Stop the modem qcom,smem-state-names: description: The names of the state bits used for SMP2P output items: - const: stop qcom,halt-regs: $ref: /schemas/types.yaml#/definitions/phandle-array items: - items: - description: Phandle reference to a syscon representing TCSR - description: offsets within syscon for q6 halt registers - description: offsets within syscon for modem halt registers - description: offsets within syscon for nc halt registers description: Phandle reference to a syscon representing TCSR followed by the three offsets within syscon for q6, modem and nc halt registers. smd-edge: $ref: /schemas/remoteproc/qcom,smd-edge.yaml# description: Qualcomm Shared Memory subnode which represents communication edge, channels and devices related to the ADSP. glink-edge: $ref: /schemas/remoteproc/qcom,glink-edge.yaml# description: Qualcomm G-Link subnode which represents communication edge, channels and devices related to the ADSP. required: - compatible - clocks - clock-names - interrupts - interrupt-names - memory-region - qcom,smem-states - qcom,smem-state-names additionalProperties: false allOf: - if: properties: compatible: contains: enum: - qcom,msm8226-adsp-pil - qcom,msm8974-adsp-pil - qcom,msm8996-adsp-pil - qcom,msm8996-slpi-pil - qcom,msm8998-adsp-pas - qcom,qcs404-adsp-pas - qcom,qcs404-wcss-pas - qcom,sc7280-mpss-pas - qcom,sc8180x-adsp-pas - qcom,sc8180x-cdsp-pas - qcom,sc8180x-mpss-pas - qcom,sc8280xp-adsp-pas - qcom,sc8280xp-nsp0-pas - qcom,sc8280xp-nsp1-pas - qcom,sdm845-adsp-pas - qcom,sdm845-cdsp-pas - qcom,sm6350-adsp-pas - qcom,sm6350-cdsp-pas - qcom,sm6350-mpss-pas - qcom,sm8150-adsp-pas - qcom,sm8150-cdsp-pas - qcom,sm8150-mpss-pas - qcom,sm8150-slpi-pas - qcom,sm8250-adsp-pas - qcom,sm8250-cdsp-pas - qcom,sm8250-slpi-pas - qcom,sm8350-adsp-pas - qcom,sm8350-cdsp-pas - qcom,sm8350-slpi-pas - qcom,sm8350-mpss-pas - qcom,sm8450-adsp-pas - qcom,sm8450-cdsp-pas - qcom,sm8450-slpi-pas - qcom,sm8450-mpss-pas then: properties: clocks: items: - description: XO clock clock-names: items: - const: xo - if: properties: compatible: contains: enum: - qcom,msm8998-slpi-pas then: properties: clocks: items: - description: XO clock - description: AGGRE2 clock clock-names: items: - const: xo - const: aggre2 - if: properties: compatible: contains: enum: - qcom,qcs404-cdsp-pas then: properties: clocks: items: - description: XO clock - description: SWAY clock - description: TBU clock - description: BIMC clock - description: AHB AON clock - description: Q6SS SLAVE clock - description: Q6SS MASTER clock - description: Q6 AXIM clock clock-names: items: - const: xo - const: sway - const: tbu - const: bimc - const: ahb_aon - const: q6ss_slave - const: q6ss_master - const: q6_axim - if: properties: compatible: contains: enum: - qcom,sc7180-mpss-pas then: properties: clocks: items: - description: XO clock - description: IFACE clock - description: BUS clock - description: NAC clock - description: SNOC AXI clock - description: MNOC AXI clock clock-names: items: - const: xo - const: iface - const: bus - const: nav - const: snoc_axi - const: mnoc_axi - if: properties: compatible: contains: enum: - qcom,msm8226-adsp-pil - qcom,msm8974-adsp-pil - qcom,msm8996-adsp-pil - qcom,msm8996-slpi-pil - qcom,msm8998-adsp-pas - qcom,msm8998-slpi-pas - qcom,qcs404-adsp-pas - qcom,qcs404-cdsp-pas - qcom,qcs404-wcss-pas - qcom,sc8180x-adsp-pas - qcom,sc8180x-cdsp-pas - qcom,sc8280xp-adsp-pas - qcom,sc8280xp-nsp0-pas - qcom,sc8280xp-nsp1-pas - qcom,sdm845-adsp-pas - qcom,sdm845-cdsp-pas - qcom,sm6350-adsp-pas - qcom,sm6350-cdsp-pas - qcom,sm8150-adsp-pas - qcom,sm8150-cdsp-pas - qcom,sm8150-slpi-pas - qcom,sm8250-adsp-pas - qcom,sm8250-cdsp-pas - qcom,sm8250-slpi-pas - qcom,sm8350-adsp-pas - qcom,sm8350-cdsp-pas - qcom,sm8350-slpi-pas - qcom,sm8450-adsp-pas - qcom,sm8450-cdsp-pas - qcom,sm8450-slpi-pas then: properties: interrupts: maxItems: 5 interrupt-names: maxItems: 5 - if: properties: compatible: contains: enum: - qcom,sc7180-mpss-pas - qcom,sc7280-mpss-pas - qcom,sc8180x-mpss-pas - qcom,sdx55-mpss-pas - qcom,sm6350-mpss-pas - qcom,sm8150-mpss-pas - qcom,sm8350-mpss-pas - qcom,sm8450-mpss-pas then: properties: interrupts: minItems: 6 interrupt-names: minItems: 6 - if: properties: compatible: contains: enum: - qcom,msm8974-adsp-pil then: required: - cx-supply - if: properties: compatible: contains: enum: - qcom,msm8226-adsp-pil - qcom,msm8996-adsp-pil - qcom,msm8998-adsp-pas - qcom,sm8150-adsp-pas - qcom,sm8150-cdsp-pas then: properties: power-domains: items: - description: CX power domain power-domain-names: items: - const: cx - if: properties: compatible: contains: enum: - qcom,msm8996-slpi-pil - qcom,msm8998-slpi-pas then: properties: power-domains: items: - description: SSC-CX power domain power-domain-names: items: - const: ssc_cx required: - px-supply - if: properties: compatible: contains: enum: - qcom,sc7180-mpss-pas then: properties: power-domains: items: - description: CX power domain - description: MX power domain - description: MSS power domain power-domain-names: items: - const: cx - const: mx - const: mss - if: properties: compatible: contains: enum: - qcom,sm6350-cdsp-pas then: properties: power-domains: items: - description: CX power domain - description: MX power domain power-domain-names: items: - const: cx - const: mx - if: properties: compatible: contains: enum: - qcom,sc7280-mpss-pas - qcom,sdx55-mpss-pas - qcom,sm6350-mpss-pas - qcom,sm8150-mpss-pas - qcom,sm8350-mpss-pas - qcom,sm8450-mpss-pas then: properties: power-domains: items: - description: CX power domain - description: MSS power domain power-domain-names: items: - const: cx - const: mss - if: properties: compatible: contains: enum: - qcom,sc8180x-adsp-pas - qcom,sc8180x-cdsp-pas - qcom,sc8280xp-adsp-pas - qcom,sm6350-adsp-pas - qcom,sm8150-slpi-pas - qcom,sm8250-adsp-pas - qcom,sm8250-slpi-pas - qcom,sm8350-adsp-pas - qcom,sm8350-slpi-pas - qcom,sm8450-adsp-pas - qcom,sm8450-slpi-pas then: properties: power-domains: items: - description: LCX power domain - description: LMX power domain power-domain-names: items: - const: lcx - const: lmx - if: properties: compatible: contains: enum: - qcom,sm8350-cdsp-pas - qcom,sm8450-cdsp-pas then: properties: power-domains: items: - description: CX power domain - description: MXC power domain power-domain-names: items: - const: cx - const: mxc - if: properties: compatible: contains: enum: - qcom,sc8280xp-nsp0-pas - qcom,sc8280xp-nsp1-pas then: properties: power-domains: items: - description: NSP power domain power-domain-names: items: - const: nsp - if: properties: compatible: contains: enum: - qcom,qcs404-cdsp-pas then: properties: resets: items: - description: CDSP restart reset-names: items: - const: restart - if: properties: compatible: contains: enum: - qcom,sc7180-mpss-pas - qcom,sc7280-mpss-pas then: properties: resets: items: - description: MSS restart - description: PDC reset reset-names: items: - const: mss_restart - const: pdc_reset - if: properties: compatible: contains: enum: - qcom,msm8226-adsp-pil - qcom,msm8974-adsp-pil - qcom,msm8996-adsp-pil - qcom,msm8996-slpi-pil - qcom,msm8998-adsp-pas - qcom,msm8998-slpi-pas - qcom,qcs404-adsp-pas - qcom,qcs404-cdsp-pas - qcom,qcs404-wcss-pas - qcom,sdm660-adsp-pas - qcom,sdx55-mpss-pas then: properties: qcom,qmp: false examples: - | #include #include #include adsp { compatible = "qcom,msm8974-adsp-pil"; interrupts-extended = <&intc GIC_SPI 162 IRQ_TYPE_EDGE_RISING>, <&adsp_smp2p_in 0 IRQ_TYPE_EDGE_RISING>, <&adsp_smp2p_in 1 IRQ_TYPE_EDGE_RISING>, <&adsp_smp2p_in 2 IRQ_TYPE_EDGE_RISING>, <&adsp_smp2p_in 3 IRQ_TYPE_EDGE_RISING>; interrupt-names = "wdog", "fatal", "ready", "handover", "stop-ack"; clocks = <&rpmcc RPM_CXO_CLK>; clock-names = "xo"; cx-supply = <&pm8841_s2>; memory-region = <&adsp_region>; qcom,smem-states = <&adsp_smp2p_out 0>; qcom,smem-state-names = "stop"; smd-edge { interrupts = ; qcom,ipc = <&apcs 8 8>; qcom,smd-edge = <1>; }; };