1Qualcomm ADSP Peripheral Image Loader 2 3This document defines the binding for a component that loads and boots firmware 4on the Qualcomm ADSP Hexagon core. 5 6- compatible: 7 Usage: required 8 Value type: <string> 9 Definition: must be one of: 10 "qcom,msm8974-adsp-pil" 11 "qcom,msm8996-adsp-pil" 12 "qcom,msm8996-slpi-pil" 13 14- interrupts-extended: 15 Usage: required 16 Value type: <prop-encoded-array> 17 Definition: must list the watchdog, fatal IRQs ready, handover and 18 stop-ack IRQs 19 20- interrupt-names: 21 Usage: required 22 Value type: <stringlist> 23 Definition: must be "wdog", "fatal", "ready", "handover", "stop-ack" 24 25- clocks: 26 Usage: required 27 Value type: <prop-encoded-array> 28 Definition: reference to the xo clock and optionally aggre2 clock to be 29 held on behalf of the booting Hexagon core 30 31- clock-names: 32 Usage: required 33 Value type: <stringlist> 34 Definition: must be "xo" and optionally include "aggre2" 35 36- cx-supply: 37 Usage: required 38 Value type: <phandle> 39 Definition: reference to the regulator to be held on behalf of the 40 booting Hexagon core 41 42- px-supply: 43 Usage: required 44 Value type: <phandle> 45 Definition: reference to the px regulator to be held on behalf of the 46 booting Hexagon core 47 48- memory-region: 49 Usage: required 50 Value type: <phandle> 51 Definition: reference to the reserved-memory for the ADSP 52 53- qcom,smem-states: 54 Usage: required 55 Value type: <phandle> 56 Definition: reference to the smem state for requesting the ADSP to 57 shut down 58 59- qcom,smem-state-names: 60 Usage: required 61 Value type: <stringlist> 62 Definition: must be "stop" 63 64 65= SUBNODES 66The adsp node may have an subnode named either "smd-edge" or "glink-edge" that 67describes the communication edge, channels and devices related to the ADSP. 68See ../soc/qcom/qcom,smd.txt and ../soc/qcom/qcom,glink.txt for details on how 69to describe these. 70 71 72= EXAMPLE 73The following example describes the resources needed to boot control the 74ADSP, as it is found on MSM8974 boards. 75 76 adsp { 77 compatible = "qcom,msm8974-adsp-pil"; 78 79 interrupts-extended = <&intc 0 162 IRQ_TYPE_EDGE_RISING>, 80 <&adsp_smp2p_in 0 IRQ_TYPE_EDGE_RISING>, 81 <&adsp_smp2p_in 1 IRQ_TYPE_EDGE_RISING>, 82 <&adsp_smp2p_in 2 IRQ_TYPE_EDGE_RISING>, 83 <&adsp_smp2p_in 3 IRQ_TYPE_EDGE_RISING>; 84 interrupt-names = "wdog", 85 "fatal", 86 "ready", 87 "handover", 88 "stop-ack"; 89 90 clocks = <&rpmcc RPM_CXO_CLK>; 91 clock-names = "xo"; 92 93 cx-supply = <&pm8841_s2>; 94 95 memory-region = <&adsp_region>; 96 97 qcom,smem-states = <&adsp_smp2p_out 0>; 98 qcom,smem-state-names = "stop"; 99 100 smd-edge { 101 interrupts = <0 156 IRQ_TYPE_EDGE_RISING>; 102 103 qcom,ipc = <&apcs 8 8>; 104 qcom,smd-edge = <1>; 105 }; 106 }; 107 108The following example describes the resources needed to boot control the 109SLPI, as it is found on MSM8996 boards. 110 111 slpi { 112 compatible = "qcom,msm8996-slpi-pil"; 113 interrupts-extended = <&intc 0 390 IRQ_TYPE_EDGE_RISING>, 114 <&slpi_smp2p_in 0 IRQ_TYPE_EDGE_RISING>, 115 <&slpi_smp2p_in 1 IRQ_TYPE_EDGE_RISING>, 116 <&slpi_smp2p_in 2 IRQ_TYPE_EDGE_RISING>, 117 <&slpi_smp2p_in 3 IRQ_TYPE_EDGE_RISING>; 118 interrupt-names = "wdog", 119 "fatal", 120 "ready", 121 "handover", 122 "stop-ack"; 123 124 clocks = <&rpmcc MSM8996_RPM_SMD_XO_CLK_SRC>, 125 <&rpmcc MSM8996_RPM_SMD_AGGR2_NOC_CLK>; 126 clock-names = "xo", "aggre2"; 127 128 cx-supply = <&pm8994_l26>; 129 px-supply = <&pm8994_lvs2>; 130 131 memory-region = <&slpi_region>; 132 qcom,smem-states = <&slpi_smp2p_out 0>; 133 qcom,smem-state-names = "stop"; 134 }; 135