| Qualcomm MSS QDSP6v5 Peripheral Image Loader |
| |
| pil-qdsp6v5-mss is a peripheral image loader (PIL) driver. It is used for |
| loading QDSP6v5 (Hexagon) firmware images for modem subsystems into memory and |
| preparing the subsystem's processor to execute code. It's also responsible for |
| shutting down the processor when it's not needed. |
| |
| Required properties: |
| - compatible: Must be "qcom,pil-q6v5-mss" |
| - reg: Pairs of physical base addresses and region sizes of |
| memory mapped registers. |
| - reg-names: Names of the bases for the above registers. "qdsp6_base", |
| "halt_base", "rmb_base", and "restart_reg" are expected. |
| - interrupts: The modem watchdog interrupt |
| - vdd_cx-supply: Reference to the regulator that supplies the vdd_cx domain. |
| - vdd_mx-supply: Reference to the regulator that supplies the memory rail. |
| - qcom,firmware-name: Base name of the firmware image. Ex. "mdsp" |
| - qcom,gpio-err-fatal: GPIO used by the modem to indicate error fatal to the apps. |
| - qcom,gpio-proxy-unvote: GPIO used by the modem to trigger proxy unvoting in |
| the apps. |
| - qcom,gpio-force-stop: GPIO used by the apps to force the modem to shutdown. |
| |
| Optional properties: |
| - vdd_mss-supply: Reference to the regulator that supplies the processor. |
| This may be a shared regulator that is already voted |
| on in the PIL proxy voting code (and also managed by the |
| modem on its own), hence we mark it as as optional. |
| - vdd_pll-supply: Reference to the regulator that supplies the PLL's rail. |
| - qcom,vdd_pll: Voltage to be set for the PLL's rail. |
| - reg-names: "cxrail_bhs_reg" - control register for modem power |
| domain. |
| - qcom,is-loadable: Boolean- Present if the image needs to be loaded. |
| - qcom,pil-self-auth: Boolean- True if authentication is required. |
| |
| Example: |
| qcom,mss@fc880000 { |
| compatible = "qcom,pil-q6v5-mss"; |
| reg = <0xfc880000 0x100>, |
| <0xfd485000 0x400>, |
| <0xfc820000 0x020>, |
| <0xfc401680 0x004>; |
| reg-names = "qdsp6_base", "halt_base", "rmb_base", |
| "restart_reg"; |
| interrupts = <0 24 1>; |
| vdd_mss-supply = <&pm8841_s3>; |
| vdd_cx-supply = <&pm8841_s2>; |
| vdd_mx-supply = <&pm8841_s1>; |
| |
| qcom,is-loadable; |
| qcom,firmware-name = "mba"; |
| qcom,pil-self-auth; |
| |
| /* GPIO inputs from mss */ |
| qcom,gpio-err-fatal = <&smp2pgpio_ssr_smp2p_1_in 0 0>; |
| qcom,gpio-proxy-unvote = <&smp2pgpio_ssr_smp2p_1_in 2 0>; |
| |
| /* GPIO output to mss */ |
| qcom,gpio-force-stop = <&smp2pgpio_ssr_smp2p_1_out 0 0>; |
| }; |