| Qualcomm ADSP Peripheral Image Loader | |
| This document defines the binding for a component that loads and boots firmware | |
| on the Qualcomm ADSP Hexagon core. | |
| - compatible: | |
| Usage: required | |
| Value type: <string> | |
| Definition: must be one of: | |
| "qcom,msm8974-adsp-pil" | |
| "qcom,msm8996-adsp-pil" | |
| "qcom,msm8996-slpi-pil" | |
| - interrupts-extended: | |
| Usage: required | |
| Value type: <prop-encoded-array> | |
| Definition: must list the watchdog, fatal IRQs ready, handover and | |
| stop-ack IRQs | |
| - interrupt-names: | |
| Usage: required | |
| Value type: <stringlist> | |
| Definition: must be "wdog", "fatal", "ready", "handover", "stop-ack" | |
| - clocks: | |
| Usage: required | |
| Value type: <prop-encoded-array> | |
| Definition: reference to the xo clock and optionally aggre2 clock to be | |
| held on behalf of the booting Hexagon core | |
| - clock-names: | |
| Usage: required | |
| Value type: <stringlist> | |
| Definition: must be "xo" and optionally include "aggre2" | |
| - cx-supply: | |
| Usage: required | |
| Value type: <phandle> | |
| Definition: reference to the regulator to be held on behalf of the | |
| booting Hexagon core | |
| - px-supply: | |
| Usage: required | |
| Value type: <phandle> | |
| Definition: reference to the px regulator to be held on behalf of the | |
| booting Hexagon core | |
| - memory-region: | |
| Usage: required | |
| Value type: <phandle> | |
| Definition: reference to the reserved-memory for the ADSP | |
| - qcom,smem-states: | |
| Usage: required | |
| Value type: <phandle> | |
| Definition: reference to the smem state for requesting the ADSP to | |
| shut down | |
| - qcom,smem-state-names: | |
| Usage: required | |
| Value type: <stringlist> | |
| Definition: must be "stop" | |
| = SUBNODES | |
| The adsp node may have an subnode named either "smd-edge" or "glink-edge" that | |
| describes the communication edge, channels and devices related to the ADSP. | |
| See ../soc/qcom/qcom,smd.txt and ../soc/qcom/qcom,glink.txt for details on how | |
| to describe these. | |
| = EXAMPLE | |
| The following example describes the resources needed to boot control the | |
| ADSP, as it is found on MSM8974 boards. | |
| adsp { | |
| compatible = "qcom,msm8974-adsp-pil"; | |
| interrupts-extended = <&intc 0 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 = <0 156 IRQ_TYPE_EDGE_RISING>; | |
| qcom,ipc = <&apcs 8 8>; | |
| qcom,smd-edge = <1>; | |
| }; | |
| }; | |
| The following example describes the resources needed to boot control the | |
| SLPI, as it is found on MSM8996 boards. | |
| slpi { | |
| compatible = "qcom,msm8996-slpi-pil"; | |
| interrupts-extended = <&intc 0 390 IRQ_TYPE_EDGE_RISING>, | |
| <&slpi_smp2p_in 0 IRQ_TYPE_EDGE_RISING>, | |
| <&slpi_smp2p_in 1 IRQ_TYPE_EDGE_RISING>, | |
| <&slpi_smp2p_in 2 IRQ_TYPE_EDGE_RISING>, | |
| <&slpi_smp2p_in 3 IRQ_TYPE_EDGE_RISING>; | |
| interrupt-names = "wdog", | |
| "fatal", | |
| "ready", | |
| "handover", | |
| "stop-ack"; | |
| clocks = <&rpmcc MSM8996_RPM_SMD_XO_CLK_SRC>, | |
| <&rpmcc MSM8996_RPM_SMD_AGGR2_NOC_CLK>; | |
| clock-names = "xo", "aggre2"; | |
| cx-supply = <&pm8994_l26>; | |
| px-supply = <&pm8994_lvs2>; | |
| memory-region = <&slpi_region>; | |
| qcom,smem-states = <&slpi_smp2p_out 0>; | |
| qcom,smem-state-names = "stop"; | |
| }; |