diff options
| author | Linux Build Service Account <lnxbuild@quicinc.com> | 2017-11-29 15:24:37 -0800 |
|---|---|---|
| committer | Gerrit - the friendly Code Review server <code-review@localhost> | 2017-11-29 15:24:37 -0800 |
| commit | 63eb29fe2b2b649801c4134c49a17cd9b16cf985 (patch) | |
| tree | 93ce0934b6f2fc940178f95d0eceb7296c7a4803 | |
| parent | bcc563a061a702c9f0f8282ad5d575abae4af88a (diff) | |
| parent | 8294fce51d68bfb0edcda90b296e145c17d2dc0c (diff) | |
Merge "defconfig: msm: Enable CONFIG_ESOC_DRV for msm8996 auto"
| -rw-r--r-- | arch/arm/boot/dts/qcom/msm8996-cv2x.dtsi | 10 | ||||
| -rw-r--r-- | arch/arm64/configs/msm-auto-perf_defconfig | 1 | ||||
| -rw-r--r-- | arch/arm64/configs/msm-auto_defconfig | 1 | ||||
| -rw-r--r-- | drivers/esoc/esoc-mdm-4x.c | 9 | ||||
| -rw-r--r-- | drivers/esoc/esoc-mdm-pon.c | 14 |
5 files changed, 29 insertions, 6 deletions
diff --git a/arch/arm/boot/dts/qcom/msm8996-cv2x.dtsi b/arch/arm/boot/dts/qcom/msm8996-cv2x.dtsi index f5391e727396..e96ed3020679 100644 --- a/arch/arm/boot/dts/qcom/msm8996-cv2x.dtsi +++ b/arch/arm/boot/dts/qcom/msm8996-cv2x.dtsi @@ -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"; }; diff --git a/arch/arm64/configs/msm-auto-perf_defconfig b/arch/arm64/configs/msm-auto-perf_defconfig index b13c086d7a0e..728bfc43bbee 100644 --- a/arch/arm64/configs/msm-auto-perf_defconfig +++ b/arch/arm64/configs/msm-auto-perf_defconfig @@ -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 diff --git a/arch/arm64/configs/msm-auto_defconfig b/arch/arm64/configs/msm-auto_defconfig index e26fc7d28b49..4c54fa07aaa2 100644 --- a/arch/arm64/configs/msm-auto_defconfig +++ b/arch/arm64/configs/msm-auto_defconfig @@ -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 diff --git a/drivers/esoc/esoc-mdm-4x.c b/drivers/esoc/esoc-mdm-4x.c index 6eab3ea187c6..b24457d575c8 100644 --- a/drivers/esoc/esoc-mdm-4x.c +++ b/drivers/esoc/esoc-mdm-4x.c @@ -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) { @@ -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; } diff --git a/drivers/esoc/esoc-mdm-pon.c b/drivers/esoc/esoc-mdm-pon.c index 4ae3b7520f77..4d8ff4968038 100644 --- a/drivers/esoc/esoc-mdm-pon.c +++ b/drivers/esoc/esoc-mdm-pon.c @@ -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 @@ -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; } |
