--- d92096991645e9b4f0fdf20d7fd8978a906e2a97 +++ a7f62d55930b12b1d805f6f5eeeb6e7e4764f1dc @@ -1928,11 +1928,12 @@ static void clear_ssp_gpio(void) .inv_int_pol = 0, }; struct pm_gpio ap_mcu_nrst_cfg = { - .direction = PM_GPIO_DIR_IN, - .pull = PM_GPIO_PULL_DN, + .direction = PM_GPIO_DIR_OUT, + .pull = PM_GPIO_PULL_NO, .vin_sel = 2, .function = PM_GPIO_FUNC_NORMAL, .inv_int_pol = 0, + .out_strength = PM_GPIO_STRENGTH_HIGH, }; pm8xxx_gpio_config(GPIO_AP_MCU_INT, &ap_mcu_int_cfg); @@ -1940,6 +1941,7 @@ static void clear_ssp_gpio(void) pm8xxx_gpio_config(GPIO_MCU_AP_INT_2, &mcu_ap_int_2_cfg); if (system_rev >= 5) pm8xxx_gpio_config(GPIO_MCU_NRST, &ap_mcu_nrst_cfg); + gpio_set_value_cansleep(GPIO_MCU_NRST, 0); mdelay(1); pr_info("[SSP] %s done\n", __func__); } @@ -1975,6 +1977,7 @@ static int initialize_ssp_gpio(void) .vin_sel = 2, .function = PM_GPIO_FUNC_NORMAL, .inv_int_pol = 0, + .out_strength = PM_GPIO_STRENGTH_HIGH, }; pr_info("[SSP]%s\n", __func__);