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,sm8550-pas.yaml# 5cb7aa33aSEmmanuel Vadot$schema: http://devicetree.org/meta-schemas/core.yaml# 6cb7aa33aSEmmanuel Vadot 7cb7aa33aSEmmanuel Vadottitle: Qualcomm SM8550 Peripheral Authentication Service 8cb7aa33aSEmmanuel Vadot 9cb7aa33aSEmmanuel Vadotmaintainers: 10cb7aa33aSEmmanuel Vadot - Manivannan Sadhasivam <manivannan.sadhasivam@linaro.org> 11cb7aa33aSEmmanuel Vadot 12cb7aa33aSEmmanuel Vadotdescription: 13cb7aa33aSEmmanuel Vadot Qualcomm SM8550 SoC Peripheral Authentication Service loads and boots firmware 14cb7aa33aSEmmanuel Vadot on the Qualcomm DSP Hexagon cores. 15cb7aa33aSEmmanuel Vadot 16cb7aa33aSEmmanuel Vadotproperties: 17cb7aa33aSEmmanuel Vadot compatible: 18cb7aa33aSEmmanuel Vadot enum: 19cb7aa33aSEmmanuel Vadot - qcom,sm8550-adsp-pas 20cb7aa33aSEmmanuel Vadot - qcom,sm8550-cdsp-pas 21cb7aa33aSEmmanuel Vadot - qcom,sm8550-mpss-pas 22cb7aa33aSEmmanuel Vadot 23cb7aa33aSEmmanuel Vadot reg: 24cb7aa33aSEmmanuel Vadot maxItems: 1 25cb7aa33aSEmmanuel Vadot 26cb7aa33aSEmmanuel Vadot clocks: 27cb7aa33aSEmmanuel Vadot items: 28cb7aa33aSEmmanuel Vadot - description: XO clock 29cb7aa33aSEmmanuel Vadot 30cb7aa33aSEmmanuel Vadot clock-names: 31cb7aa33aSEmmanuel Vadot items: 32cb7aa33aSEmmanuel Vadot - const: xo 33cb7aa33aSEmmanuel Vadot 34cb7aa33aSEmmanuel Vadot qcom,qmp: 35cb7aa33aSEmmanuel Vadot $ref: /schemas/types.yaml#/definitions/phandle 36cb7aa33aSEmmanuel Vadot description: Reference to the AOSS side-channel message RAM. 37cb7aa33aSEmmanuel Vadot 38cb7aa33aSEmmanuel Vadot smd-edge: false 39cb7aa33aSEmmanuel Vadot 40cb7aa33aSEmmanuel Vadot firmware-name: 41cb7aa33aSEmmanuel Vadot $ref: /schemas/types.yaml#/definitions/string-array 42cb7aa33aSEmmanuel Vadot items: 43cb7aa33aSEmmanuel Vadot - description: Firmware name of the Hexagon core 44cb7aa33aSEmmanuel Vadot - description: Firmware name of the Hexagon Devicetree 45cb7aa33aSEmmanuel Vadot 46cb7aa33aSEmmanuel Vadot memory-region: 47cb7aa33aSEmmanuel Vadot minItems: 2 48cb7aa33aSEmmanuel Vadot items: 49cb7aa33aSEmmanuel Vadot - description: Memory region for main Firmware authentication 50cb7aa33aSEmmanuel Vadot - description: Memory region for Devicetree Firmware authentication 51cb7aa33aSEmmanuel Vadot - description: DSM Memory region 52cb7aa33aSEmmanuel Vadot 53cb7aa33aSEmmanuel Vadotrequired: 54cb7aa33aSEmmanuel Vadot - compatible 55cb7aa33aSEmmanuel Vadot - reg 56*aa1a8ff2SEmmanuel Vadot - memory-region 57cb7aa33aSEmmanuel Vadot 58cb7aa33aSEmmanuel VadotallOf: 59cb7aa33aSEmmanuel Vadot - $ref: /schemas/remoteproc/qcom,pas-common.yaml# 60cb7aa33aSEmmanuel Vadot - if: 61cb7aa33aSEmmanuel Vadot properties: 62cb7aa33aSEmmanuel Vadot compatible: 63cb7aa33aSEmmanuel Vadot enum: 64cb7aa33aSEmmanuel Vadot - qcom,sm8550-adsp-pas 65cb7aa33aSEmmanuel Vadot - qcom,sm8550-cdsp-pas 66cb7aa33aSEmmanuel Vadot then: 67cb7aa33aSEmmanuel Vadot properties: 68cb7aa33aSEmmanuel Vadot interrupts: 69cb7aa33aSEmmanuel Vadot maxItems: 5 70cb7aa33aSEmmanuel Vadot interrupt-names: 71cb7aa33aSEmmanuel Vadot maxItems: 5 72cb7aa33aSEmmanuel Vadot memory-region: 73cb7aa33aSEmmanuel Vadot maxItems: 2 74cb7aa33aSEmmanuel Vadot else: 75cb7aa33aSEmmanuel Vadot properties: 76cb7aa33aSEmmanuel Vadot interrupts: 77cb7aa33aSEmmanuel Vadot minItems: 6 78cb7aa33aSEmmanuel Vadot interrupt-names: 79cb7aa33aSEmmanuel Vadot minItems: 6 80cb7aa33aSEmmanuel Vadot memory-region: 81cb7aa33aSEmmanuel Vadot minItems: 3 82cb7aa33aSEmmanuel Vadot 83cb7aa33aSEmmanuel Vadot - if: 84cb7aa33aSEmmanuel Vadot properties: 85cb7aa33aSEmmanuel Vadot compatible: 86cb7aa33aSEmmanuel Vadot enum: 87cb7aa33aSEmmanuel Vadot - qcom,sm8550-adsp-pas 88cb7aa33aSEmmanuel Vadot then: 89cb7aa33aSEmmanuel Vadot properties: 90cb7aa33aSEmmanuel Vadot power-domains: 91cb7aa33aSEmmanuel Vadot items: 92cb7aa33aSEmmanuel Vadot - description: LCX power domain 93cb7aa33aSEmmanuel Vadot - description: LMX power domain 94cb7aa33aSEmmanuel Vadot power-domain-names: 95cb7aa33aSEmmanuel Vadot items: 96cb7aa33aSEmmanuel Vadot - const: lcx 97cb7aa33aSEmmanuel Vadot - const: lmx 98cb7aa33aSEmmanuel Vadot 99cb7aa33aSEmmanuel Vadot - if: 100cb7aa33aSEmmanuel Vadot properties: 101cb7aa33aSEmmanuel Vadot compatible: 102cb7aa33aSEmmanuel Vadot enum: 103cb7aa33aSEmmanuel Vadot - qcom,sm8550-mpss-pas 104cb7aa33aSEmmanuel Vadot then: 105cb7aa33aSEmmanuel Vadot properties: 106cb7aa33aSEmmanuel Vadot power-domains: 107cb7aa33aSEmmanuel Vadot items: 108cb7aa33aSEmmanuel Vadot - description: CX power domain 109cb7aa33aSEmmanuel Vadot - description: MSS power domain 110cb7aa33aSEmmanuel Vadot power-domain-names: 111cb7aa33aSEmmanuel Vadot items: 112cb7aa33aSEmmanuel Vadot - const: cx 113cb7aa33aSEmmanuel Vadot - const: mss 114cb7aa33aSEmmanuel Vadot - if: 115cb7aa33aSEmmanuel Vadot properties: 116cb7aa33aSEmmanuel Vadot compatible: 117cb7aa33aSEmmanuel Vadot enum: 118cb7aa33aSEmmanuel Vadot - qcom,sm8550-cdsp-pas 119cb7aa33aSEmmanuel Vadot then: 120cb7aa33aSEmmanuel Vadot properties: 121cb7aa33aSEmmanuel Vadot power-domains: 122cb7aa33aSEmmanuel Vadot items: 123cb7aa33aSEmmanuel Vadot - description: CX power domain 124cb7aa33aSEmmanuel Vadot - description: MXC power domain 125cb7aa33aSEmmanuel Vadot - description: NSP power domain 126cb7aa33aSEmmanuel Vadot power-domain-names: 127cb7aa33aSEmmanuel Vadot items: 128cb7aa33aSEmmanuel Vadot - const: cx 129cb7aa33aSEmmanuel Vadot - const: mxc 130cb7aa33aSEmmanuel Vadot - const: nsp 131cb7aa33aSEmmanuel Vadot 132cb7aa33aSEmmanuel VadotunevaluatedProperties: false 133cb7aa33aSEmmanuel Vadot 134cb7aa33aSEmmanuel Vadotexamples: 135cb7aa33aSEmmanuel Vadot - | 136cb7aa33aSEmmanuel Vadot #include <dt-bindings/clock/qcom,rpmh.h> 137cb7aa33aSEmmanuel Vadot #include <dt-bindings/interrupt-controller/irq.h> 138cb7aa33aSEmmanuel Vadot #include <dt-bindings/mailbox/qcom-ipcc.h> 139cb7aa33aSEmmanuel Vadot 140cb7aa33aSEmmanuel Vadot remoteproc@30000000 { 141cb7aa33aSEmmanuel Vadot compatible = "qcom,sm8550-adsp-pas"; 142cb7aa33aSEmmanuel Vadot reg = <0x030000000 0x100>; 143cb7aa33aSEmmanuel Vadot 144cb7aa33aSEmmanuel Vadot clocks = <&rpmhcc RPMH_CXO_CLK>; 145cb7aa33aSEmmanuel Vadot clock-names = "xo"; 146cb7aa33aSEmmanuel Vadot 147cb7aa33aSEmmanuel Vadot interrupts-extended = <&pdc 6 IRQ_TYPE_EDGE_RISING>, 148cb7aa33aSEmmanuel Vadot <&smp2p_adsp_in 0 IRQ_TYPE_EDGE_RISING>, 149cb7aa33aSEmmanuel Vadot <&smp2p_adsp_in 1 IRQ_TYPE_EDGE_RISING>, 150cb7aa33aSEmmanuel Vadot <&smp2p_adsp_in 2 IRQ_TYPE_EDGE_RISING>, 151cb7aa33aSEmmanuel Vadot <&smp2p_adsp_in 3 IRQ_TYPE_EDGE_RISING>; 152cb7aa33aSEmmanuel Vadot interrupt-names = "wdog", "fatal", "ready", 153cb7aa33aSEmmanuel Vadot "handover", "stop-ack"; 154cb7aa33aSEmmanuel Vadot 155cb7aa33aSEmmanuel Vadot memory-region = <&adsp_mem>, <&dtb_adsp_mem>; 156cb7aa33aSEmmanuel Vadot 157cb7aa33aSEmmanuel Vadot firmware-name = "qcom/sm8550/adsp.mbn", 158cb7aa33aSEmmanuel Vadot "qcom/sm8550/adsp_dtb.mbn"; 159cb7aa33aSEmmanuel Vadot 160cb7aa33aSEmmanuel Vadot power-domains = <&rpmhpd_sm8550_lcx>, 161cb7aa33aSEmmanuel Vadot <&rpmhpd_sm8550_lmx>; 162cb7aa33aSEmmanuel Vadot power-domain-names = "lcx", "lmx"; 163cb7aa33aSEmmanuel Vadot 164cb7aa33aSEmmanuel Vadot qcom,qmp = <&aoss_qmp>; 165cb7aa33aSEmmanuel Vadot qcom,smem-states = <&smp2p_adsp_out 0>; 166cb7aa33aSEmmanuel Vadot qcom,smem-state-names = "stop"; 167cb7aa33aSEmmanuel Vadot 168cb7aa33aSEmmanuel Vadot glink-edge { 169cb7aa33aSEmmanuel Vadot interrupts-extended = <&ipcc IPCC_CLIENT_LPASS 170cb7aa33aSEmmanuel Vadot IPCC_MPROC_SIGNAL_GLINK_QMP 171cb7aa33aSEmmanuel Vadot IRQ_TYPE_EDGE_RISING>; 172cb7aa33aSEmmanuel Vadot mboxes = <&ipcc IPCC_CLIENT_LPASS IPCC_MPROC_SIGNAL_GLINK_QMP>; 173cb7aa33aSEmmanuel Vadot 174cb7aa33aSEmmanuel Vadot label = "lpass"; 175cb7aa33aSEmmanuel Vadot qcom,remote-pid = <2>; 176cb7aa33aSEmmanuel Vadot 177cb7aa33aSEmmanuel Vadot /* ... */ 178cb7aa33aSEmmanuel Vadot }; 179cb7aa33aSEmmanuel Vadot }; 180