1*24723d7cSLuca Weiss# SPDX-License-Identifier: GPL-2.0 OR BSD-2-Clause 2*24723d7cSLuca Weiss%YAML 1.2 3*24723d7cSLuca Weiss--- 4*24723d7cSLuca Weiss$id: http://devicetree.org/schemas/remoteproc/qcom,milos-pas.yaml# 5*24723d7cSLuca Weiss$schema: http://devicetree.org/meta-schemas/core.yaml# 6*24723d7cSLuca Weiss 7*24723d7cSLuca Weisstitle: Qualcomm Milos SoC Peripheral Authentication Service 8*24723d7cSLuca Weiss 9*24723d7cSLuca Weissmaintainers: 10*24723d7cSLuca Weiss - Luca Weiss <luca.weiss@fairphone.com> 11*24723d7cSLuca Weiss 12*24723d7cSLuca Weissdescription: 13*24723d7cSLuca Weiss Qualcomm Milos SoC Peripheral Authentication Service loads and boots firmware 14*24723d7cSLuca Weiss on the Qualcomm DSP Hexagon cores. 15*24723d7cSLuca Weiss 16*24723d7cSLuca Weissproperties: 17*24723d7cSLuca Weiss compatible: 18*24723d7cSLuca Weiss enum: 19*24723d7cSLuca Weiss - qcom,milos-adsp-pas 20*24723d7cSLuca Weiss - qcom,milos-cdsp-pas 21*24723d7cSLuca Weiss - qcom,milos-mpss-pas 22*24723d7cSLuca Weiss - qcom,milos-wpss-pas 23*24723d7cSLuca Weiss 24*24723d7cSLuca Weiss reg: 25*24723d7cSLuca Weiss maxItems: 1 26*24723d7cSLuca Weiss 27*24723d7cSLuca Weiss clocks: 28*24723d7cSLuca Weiss items: 29*24723d7cSLuca Weiss - description: XO clock 30*24723d7cSLuca Weiss 31*24723d7cSLuca Weiss clock-names: 32*24723d7cSLuca Weiss items: 33*24723d7cSLuca Weiss - const: xo 34*24723d7cSLuca Weiss 35*24723d7cSLuca Weiss interrupts: 36*24723d7cSLuca Weiss minItems: 6 37*24723d7cSLuca Weiss maxItems: 6 38*24723d7cSLuca Weiss 39*24723d7cSLuca Weiss interrupt-names: 40*24723d7cSLuca Weiss minItems: 6 41*24723d7cSLuca Weiss maxItems: 6 42*24723d7cSLuca Weiss 43*24723d7cSLuca Weiss qcom,qmp: 44*24723d7cSLuca Weiss $ref: /schemas/types.yaml#/definitions/phandle 45*24723d7cSLuca Weiss description: Reference to the AOSS side-channel message RAM. 46*24723d7cSLuca Weiss 47*24723d7cSLuca Weiss smd-edge: false 48*24723d7cSLuca Weiss 49*24723d7cSLuca Weiss firmware-name: 50*24723d7cSLuca Weiss minItems: 1 51*24723d7cSLuca Weiss items: 52*24723d7cSLuca Weiss - description: Firmware name of the Hexagon core 53*24723d7cSLuca Weiss - description: Firmware name of the Hexagon Devicetree 54*24723d7cSLuca Weiss 55*24723d7cSLuca Weiss memory-region: 56*24723d7cSLuca Weiss minItems: 1 57*24723d7cSLuca Weiss items: 58*24723d7cSLuca Weiss - description: Memory region for core Firmware authentication 59*24723d7cSLuca Weiss - description: Memory region for Devicetree Firmware authentication 60*24723d7cSLuca Weiss 61*24723d7cSLuca Weissrequired: 62*24723d7cSLuca Weiss - compatible 63*24723d7cSLuca Weiss - reg 64*24723d7cSLuca Weiss - memory-region 65*24723d7cSLuca Weiss 66*24723d7cSLuca WeissallOf: 67*24723d7cSLuca Weiss - $ref: /schemas/remoteproc/qcom,pas-common.yaml# 68*24723d7cSLuca Weiss - if: 69*24723d7cSLuca Weiss properties: 70*24723d7cSLuca Weiss compatible: 71*24723d7cSLuca Weiss enum: 72*24723d7cSLuca Weiss - qcom,milos-adsp-pas 73*24723d7cSLuca Weiss - qcom,milos-cdsp-pas 74*24723d7cSLuca Weiss then: 75*24723d7cSLuca Weiss properties: 76*24723d7cSLuca Weiss memory-region: 77*24723d7cSLuca Weiss minItems: 2 78*24723d7cSLuca Weiss firmware-name: 79*24723d7cSLuca Weiss minItems: 2 80*24723d7cSLuca Weiss else: 81*24723d7cSLuca Weiss properties: 82*24723d7cSLuca Weiss memory-region: 83*24723d7cSLuca Weiss maxItems: 1 84*24723d7cSLuca Weiss firmware-name: 85*24723d7cSLuca Weiss maxItems: 1 86*24723d7cSLuca Weiss 87*24723d7cSLuca Weiss - if: 88*24723d7cSLuca Weiss properties: 89*24723d7cSLuca Weiss compatible: 90*24723d7cSLuca Weiss contains: 91*24723d7cSLuca Weiss enum: 92*24723d7cSLuca Weiss - qcom,milos-adsp-pas 93*24723d7cSLuca Weiss then: 94*24723d7cSLuca Weiss properties: 95*24723d7cSLuca Weiss power-domains: 96*24723d7cSLuca Weiss items: 97*24723d7cSLuca Weiss - description: LCX power domain 98*24723d7cSLuca Weiss - description: LMX power domain 99*24723d7cSLuca Weiss power-domain-names: 100*24723d7cSLuca Weiss items: 101*24723d7cSLuca Weiss - const: lcx 102*24723d7cSLuca Weiss - const: lmx 103*24723d7cSLuca Weiss 104*24723d7cSLuca Weiss - if: 105*24723d7cSLuca Weiss properties: 106*24723d7cSLuca Weiss compatible: 107*24723d7cSLuca Weiss enum: 108*24723d7cSLuca Weiss - qcom,milos-cdsp-pas 109*24723d7cSLuca Weiss - qcom,milos-wpss-pas 110*24723d7cSLuca Weiss then: 111*24723d7cSLuca Weiss properties: 112*24723d7cSLuca Weiss power-domains: 113*24723d7cSLuca Weiss items: 114*24723d7cSLuca Weiss - description: CX power domain 115*24723d7cSLuca Weiss - description: MX power domain 116*24723d7cSLuca Weiss power-domain-names: 117*24723d7cSLuca Weiss items: 118*24723d7cSLuca Weiss - const: cx 119*24723d7cSLuca Weiss - const: mx 120*24723d7cSLuca Weiss 121*24723d7cSLuca Weiss - if: 122*24723d7cSLuca Weiss properties: 123*24723d7cSLuca Weiss compatible: 124*24723d7cSLuca Weiss enum: 125*24723d7cSLuca Weiss - qcom,milos-mpss-pas 126*24723d7cSLuca Weiss then: 127*24723d7cSLuca Weiss properties: 128*24723d7cSLuca Weiss power-domains: 129*24723d7cSLuca Weiss items: 130*24723d7cSLuca Weiss - description: CX power domain 131*24723d7cSLuca Weiss - description: MSS power domain 132*24723d7cSLuca Weiss power-domain-names: 133*24723d7cSLuca Weiss items: 134*24723d7cSLuca Weiss - const: cx 135*24723d7cSLuca Weiss - const: mss 136*24723d7cSLuca Weiss 137*24723d7cSLuca WeissunevaluatedProperties: false 138*24723d7cSLuca Weiss 139*24723d7cSLuca Weissexamples: 140*24723d7cSLuca Weiss - | 141*24723d7cSLuca Weiss #include <dt-bindings/clock/qcom,rpmh.h> 142*24723d7cSLuca Weiss #include <dt-bindings/interconnect/qcom,icc.h> 143*24723d7cSLuca Weiss #include <dt-bindings/interconnect/qcom,milos-rpmh.h> 144*24723d7cSLuca Weiss #include <dt-bindings/interrupt-controller/irq.h> 145*24723d7cSLuca Weiss #include <dt-bindings/mailbox/qcom-ipcc.h> 146*24723d7cSLuca Weiss #include <dt-bindings/power/qcom,rpmhpd.h> 147*24723d7cSLuca Weiss 148*24723d7cSLuca Weiss remoteproc@3000000 { 149*24723d7cSLuca Weiss compatible = "qcom,milos-adsp-pas"; 150*24723d7cSLuca Weiss reg = <0x03000000 0x10000>; 151*24723d7cSLuca Weiss 152*24723d7cSLuca Weiss interrupts-extended = <&pdc 6 IRQ_TYPE_EDGE_RISING>, 153*24723d7cSLuca Weiss <&smp2p_adsp_in 0 IRQ_TYPE_EDGE_RISING>, 154*24723d7cSLuca Weiss <&smp2p_adsp_in 1 IRQ_TYPE_EDGE_RISING>, 155*24723d7cSLuca Weiss <&smp2p_adsp_in 2 IRQ_TYPE_EDGE_RISING>, 156*24723d7cSLuca Weiss <&smp2p_adsp_in 3 IRQ_TYPE_EDGE_RISING>, 157*24723d7cSLuca Weiss <&smp2p_adsp_in 7 IRQ_TYPE_EDGE_RISING>; 158*24723d7cSLuca Weiss interrupt-names = "wdog", 159*24723d7cSLuca Weiss "fatal", 160*24723d7cSLuca Weiss "ready", 161*24723d7cSLuca Weiss "handover", 162*24723d7cSLuca Weiss "stop-ack", 163*24723d7cSLuca Weiss "shutdown-ack"; 164*24723d7cSLuca Weiss 165*24723d7cSLuca Weiss clocks = <&rpmhcc RPMH_CXO_CLK>; 166*24723d7cSLuca Weiss clock-names = "xo"; 167*24723d7cSLuca Weiss 168*24723d7cSLuca Weiss power-domains = <&rpmhpd RPMHPD_LCX>, 169*24723d7cSLuca Weiss <&rpmhpd RPMHPD_LMX>; 170*24723d7cSLuca Weiss power-domain-names = "lcx", 171*24723d7cSLuca Weiss "lmx"; 172*24723d7cSLuca Weiss 173*24723d7cSLuca Weiss interconnects = <&lpass_ag_noc MASTER_LPASS_PROC QCOM_ICC_TAG_ALWAYS 174*24723d7cSLuca Weiss &mc_virt SLAVE_EBI1 QCOM_ICC_TAG_ALWAYS>; 175*24723d7cSLuca Weiss 176*24723d7cSLuca Weiss memory-region = <&adspslpi_mem>, <&q6_adsp_dtb_mem>; 177*24723d7cSLuca Weiss 178*24723d7cSLuca Weiss firmware-name = "qcom/milos/vendor/device/adsp.mbn", 179*24723d7cSLuca Weiss "qcom/milos/vendor/device/adsp_dtb.mbn"; 180*24723d7cSLuca Weiss 181*24723d7cSLuca Weiss qcom,qmp = <&aoss_qmp>; 182*24723d7cSLuca Weiss 183*24723d7cSLuca Weiss qcom,smem-states = <&smp2p_adsp_out 0>; 184*24723d7cSLuca Weiss qcom,smem-state-names = "stop"; 185*24723d7cSLuca Weiss 186*24723d7cSLuca Weiss glink-edge { 187*24723d7cSLuca Weiss interrupts-extended = <&ipcc IPCC_CLIENT_LPASS 188*24723d7cSLuca Weiss IPCC_MPROC_SIGNAL_GLINK_QMP 189*24723d7cSLuca Weiss IRQ_TYPE_EDGE_RISING>; 190*24723d7cSLuca Weiss mboxes = <&ipcc IPCC_CLIENT_LPASS 191*24723d7cSLuca Weiss IPCC_MPROC_SIGNAL_GLINK_QMP>; 192*24723d7cSLuca Weiss 193*24723d7cSLuca Weiss label = "lpass"; 194*24723d7cSLuca Weiss qcom,remote-pid = <2>; 195*24723d7cSLuca Weiss 196*24723d7cSLuca Weiss /* ... */ 197*24723d7cSLuca Weiss }; 198*24723d7cSLuca Weiss }; 199