Loading arch/arm/boot/dts/qcom/msm8996-cv2x.dtsi +8 −2 Original line number Diff line number Diff line Loading @@ -352,15 +352,21 @@ pinctrl-0 = <&ap2mdm_active &mdm2ap_active>; pinctrl-1 = <&ap2mdm_sleep &mdm2ap_sleep>; interrupt-map = <0 &tlmm 108 0x3 1 &tlmm 107 0x3 1 &tlmm 106 0x3 2 &tlmm 112 0x3>; qcom,mdm2ap-errfatal-gpio = <&tlmm 108 0x00>; qcom,ap2mdm-errfatal-gpio = <&tlmm 109 0x00>; qcom,mdm2ap-status-gpio = <&tlmm 106 0x00>; qcom,ap2mdm-status-gpio = <&tlmm 107 0x00>; qcom,ap2mdm-soft-reset-gpio = <&pm8994_mpps 2 GPIO_ACTIVE_LOW>; qcom,ap2mdm-soft-reset-gpio = <&pm8994_mpps 2 0x00>; qcom,ap2mdm-vddmin-gpio = <&tlmm 111 0x00>; qcom,mdm2ap-vddmin-gpio = <&tlmm 112 0x00>; qcom,mdm-auto-boot; qcom,ignore-ssr-failure; qcom,mdm-link-info = "0302_02.01.00"; qcom,mdm-statusline-not-a-powersource; qcom,mdm-userspace-handle-shutdown; qcom,pil-force-shutdown; status = "okay"; }; Loading arch/arm64/configs/msm-auto-perf_defconfig +1 −0 Original line number Diff line number Diff line Loading @@ -460,6 +460,7 @@ CONFIG_ESOC=y CONFIG_ESOC_DEV=y CONFIG_ESOC_CLIENT=y CONFIG_ESOC_MDM_4x=y CONFIG_ESOC_MDM_DRV=y CONFIG_DMADEVICES=y CONFIG_QCOM_BAM_DMA=y CONFIG_QCOM_SPS_DMA=y Loading arch/arm64/configs/msm-auto_defconfig +1 −0 Original line number Diff line number Diff line Loading @@ -465,6 +465,7 @@ CONFIG_ESOC_DEV=y CONFIG_ESOC_CLIENT=y CONFIG_ESOC_DEBUG=y CONFIG_ESOC_MDM_4x=y CONFIG_ESOC_MDM_DRV=y CONFIG_DMADEVICES=y CONFIG_QCOM_BAM_DMA=y CONFIG_QCOM_SPS_DMA=y Loading drivers/esoc/esoc-mdm-4x.c +9 −0 Original line number Diff line number Diff line Loading @@ -1088,6 +1088,13 @@ static int mdm9x55_setup_hw(struct mdm_ctrl *mdm, esoc->parent = mdm->dev; esoc->owner = THIS_MODULE; esoc->np = pdev->dev.of_node; esoc->auto_boot = of_property_read_bool(esoc->np, "qcom,mdm-auto-boot"); esoc->statusline_not_a_powersource = of_property_read_bool(esoc->np, "qcom,mdm-statusline-not-a-powersource"); esoc->userspace_handle_shutdown = of_property_read_bool(esoc->np, "qcom,mdm-userspace-handle-shutdown"); set_esoc_clink_data(esoc, mdm); ret = esoc_clink_register(esoc); if (ret) { Loading @@ -1103,6 +1110,8 @@ static int mdm9x55_setup_hw(struct mdm_ctrl *mdm, mdm->debug_fail = false; mdm->esoc = esoc; mdm->init = 0; if (esoc->auto_boot) gpio_direction_output(MDM_GPIO(mdm, AP2MDM_STATUS), 1); return 0; } Loading drivers/esoc/esoc-mdm-pon.c +10 −4 Original line number Diff line number Diff line Loading @@ -141,13 +141,17 @@ static int mdm4x_power_down(struct mdm_ctrl *mdm) static int mdm9x55_power_down(struct mdm_ctrl *mdm) { struct device *dev = mdm->dev; int soft_reset_direction = mdm->soft_reset_inverted ? 1 : 0; int soft_reset_direction_assert = 0, soft_reset_direction_de_assert = 1; if (mdm->soft_reset_inverted) { soft_reset_direction_assert = 1; soft_reset_direction_de_assert = 0; } /* Assert the soft reset line whether mdm2ap_status went low or not */ gpio_direction_output(MDM_GPIO(mdm, AP2MDM_SOFT_RESET), soft_reset_direction); soft_reset_direction_assert); dev_dbg(dev, "Doing a hard reset\n"); gpio_direction_output(MDM_GPIO(mdm, AP2MDM_SOFT_RESET), soft_reset_direction); /* * Currently, there is a debounce timer on the charm PMIC. It is * necessary to hold the PMIC RESET low for 406ms Loading @@ -155,6 +159,8 @@ static int mdm9x55_power_down(struct mdm_ctrl *mdm) * reset has occurred before the function exits. */ msleep(406); gpio_direction_output(MDM_GPIO(mdm, AP2MDM_SOFT_RESET), soft_reset_direction_de_assert); return 0; } Loading Loading
arch/arm/boot/dts/qcom/msm8996-cv2x.dtsi +8 −2 Original line number Diff line number Diff line Loading @@ -352,15 +352,21 @@ pinctrl-0 = <&ap2mdm_active &mdm2ap_active>; pinctrl-1 = <&ap2mdm_sleep &mdm2ap_sleep>; interrupt-map = <0 &tlmm 108 0x3 1 &tlmm 107 0x3 1 &tlmm 106 0x3 2 &tlmm 112 0x3>; qcom,mdm2ap-errfatal-gpio = <&tlmm 108 0x00>; qcom,ap2mdm-errfatal-gpio = <&tlmm 109 0x00>; qcom,mdm2ap-status-gpio = <&tlmm 106 0x00>; qcom,ap2mdm-status-gpio = <&tlmm 107 0x00>; qcom,ap2mdm-soft-reset-gpio = <&pm8994_mpps 2 GPIO_ACTIVE_LOW>; qcom,ap2mdm-soft-reset-gpio = <&pm8994_mpps 2 0x00>; qcom,ap2mdm-vddmin-gpio = <&tlmm 111 0x00>; qcom,mdm2ap-vddmin-gpio = <&tlmm 112 0x00>; qcom,mdm-auto-boot; qcom,ignore-ssr-failure; qcom,mdm-link-info = "0302_02.01.00"; qcom,mdm-statusline-not-a-powersource; qcom,mdm-userspace-handle-shutdown; qcom,pil-force-shutdown; status = "okay"; }; Loading
arch/arm64/configs/msm-auto-perf_defconfig +1 −0 Original line number Diff line number Diff line Loading @@ -460,6 +460,7 @@ CONFIG_ESOC=y CONFIG_ESOC_DEV=y CONFIG_ESOC_CLIENT=y CONFIG_ESOC_MDM_4x=y CONFIG_ESOC_MDM_DRV=y CONFIG_DMADEVICES=y CONFIG_QCOM_BAM_DMA=y CONFIG_QCOM_SPS_DMA=y Loading
arch/arm64/configs/msm-auto_defconfig +1 −0 Original line number Diff line number Diff line Loading @@ -465,6 +465,7 @@ CONFIG_ESOC_DEV=y CONFIG_ESOC_CLIENT=y CONFIG_ESOC_DEBUG=y CONFIG_ESOC_MDM_4x=y CONFIG_ESOC_MDM_DRV=y CONFIG_DMADEVICES=y CONFIG_QCOM_BAM_DMA=y CONFIG_QCOM_SPS_DMA=y Loading
drivers/esoc/esoc-mdm-4x.c +9 −0 Original line number Diff line number Diff line Loading @@ -1088,6 +1088,13 @@ static int mdm9x55_setup_hw(struct mdm_ctrl *mdm, esoc->parent = mdm->dev; esoc->owner = THIS_MODULE; esoc->np = pdev->dev.of_node; esoc->auto_boot = of_property_read_bool(esoc->np, "qcom,mdm-auto-boot"); esoc->statusline_not_a_powersource = of_property_read_bool(esoc->np, "qcom,mdm-statusline-not-a-powersource"); esoc->userspace_handle_shutdown = of_property_read_bool(esoc->np, "qcom,mdm-userspace-handle-shutdown"); set_esoc_clink_data(esoc, mdm); ret = esoc_clink_register(esoc); if (ret) { Loading @@ -1103,6 +1110,8 @@ static int mdm9x55_setup_hw(struct mdm_ctrl *mdm, mdm->debug_fail = false; mdm->esoc = esoc; mdm->init = 0; if (esoc->auto_boot) gpio_direction_output(MDM_GPIO(mdm, AP2MDM_STATUS), 1); return 0; } Loading
drivers/esoc/esoc-mdm-pon.c +10 −4 Original line number Diff line number Diff line Loading @@ -141,13 +141,17 @@ static int mdm4x_power_down(struct mdm_ctrl *mdm) static int mdm9x55_power_down(struct mdm_ctrl *mdm) { struct device *dev = mdm->dev; int soft_reset_direction = mdm->soft_reset_inverted ? 1 : 0; int soft_reset_direction_assert = 0, soft_reset_direction_de_assert = 1; if (mdm->soft_reset_inverted) { soft_reset_direction_assert = 1; soft_reset_direction_de_assert = 0; } /* Assert the soft reset line whether mdm2ap_status went low or not */ gpio_direction_output(MDM_GPIO(mdm, AP2MDM_SOFT_RESET), soft_reset_direction); soft_reset_direction_assert); dev_dbg(dev, "Doing a hard reset\n"); gpio_direction_output(MDM_GPIO(mdm, AP2MDM_SOFT_RESET), soft_reset_direction); /* * Currently, there is a debounce timer on the charm PMIC. It is * necessary to hold the PMIC RESET low for 406ms Loading @@ -155,6 +159,8 @@ static int mdm9x55_power_down(struct mdm_ctrl *mdm) * reset has occurred before the function exits. */ msleep(406); gpio_direction_output(MDM_GPIO(mdm, AP2MDM_SOFT_RESET), soft_reset_direction_de_assert); return 0; } Loading