| 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"; |
| }; |