vc/google/chromeos: Move clear_ec_ap_idle() to common code
Previously the clear_ec_ap_idle() is implemented in cr50_enable_update.c and be called in the file. Move it to common code so that it can be called in cse_board_reset.c TEST=emerge-brask coreboot Change-Id: I2dbe41b01e70f7259f75d967e6df694a3e0fac23 Signed-off-by: Derek Huang <derekhuang@google.com> Reviewed-on: https://review.coreboot.org/c/coreboot/+/77631 Reviewed-by: Eric Lai <eric_lai@quanta.corp-partner.google.com> Tested-by: build bot (Jenkins) <no-reply@coreboot.org> Reviewed-by: Subrata Banik <subratabanik@google.com> Reviewed-by: Reka Norman <rekanorman@chromium.org>
This commit is contained in:
		| @@ -1522,3 +1522,13 @@ int google_chromeec_regulator_get_voltage(uint32_t index, uint32_t *voltage_mv) | |||||||
| 	*voltage_mv = resp.voltage_mv; | 	*voltage_mv = resp.voltage_mv; | ||||||
| 	return 0; | 	return 0; | ||||||
| } | } | ||||||
|  |  | ||||||
|  | void google_chromeec_clear_ec_ap_idle(void) | ||||||
|  | { | ||||||
|  | 	/* Send EC command to clear AP_IDLE flag */ | ||||||
|  | 	if (!google_chromeec_reboot(EC_REBOOT_NO_OP, EC_REBOOT_FLAG_CLEAR_AP_IDLE | | ||||||
|  | 				    EC_REBOOT_FLAG_ON_AP_SHUTDOWN)) | ||||||
|  | 		printk(BIOS_INFO, "Successfully clear AP_IDLE flag\n"); | ||||||
|  | 	else | ||||||
|  | 		printk(BIOS_ERR, "Failed to clear EC AP_IDLE flag\n"); | ||||||
|  | } | ||||||
|   | |||||||
| @@ -411,6 +411,11 @@ int google_chromeec_regulator_set_voltage(uint32_t index, uint32_t min_mv, | |||||||
|  */ |  */ | ||||||
| int google_chromeec_regulator_get_voltage(uint32_t index, uint32_t *voltage_mv); | int google_chromeec_regulator_get_voltage(uint32_t index, uint32_t *voltage_mv); | ||||||
|  |  | ||||||
|  | /** | ||||||
|  |  * Clear EC AP_IDLE flag | ||||||
|  |  */ | ||||||
|  | void google_chromeec_clear_ec_ap_idle(void); | ||||||
|  |  | ||||||
| #if CONFIG(HAVE_ACPI_TABLES) | #if CONFIG(HAVE_ACPI_TABLES) | ||||||
| /** | /** | ||||||
|  * Writes USB Type-C PD related information to the SSDT |  * Writes USB Type-C PD related information to the SSDT | ||||||
|   | |||||||
							
								
								
									
										3
									
								
								src/security/tpm/tss/vendor/cr50/Kconfig
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										3
									
								
								src/security/tpm/tss/vendor/cr50/Kconfig
									
									
									
									
										vendored
									
									
								
							| @@ -41,7 +41,8 @@ config GOOGLE_TPM_IRQ_TIMEOUT_MS | |||||||
| 	  750ms otherwise. | 	  750ms otherwise. | ||||||
|  |  | ||||||
| config CR50_RESET_CLEAR_EC_AP_IDLE_FLAG | config CR50_RESET_CLEAR_EC_AP_IDLE_FLAG | ||||||
| 	def_bool n | 	bool | ||||||
|  | 	default y if !SYSTEM_TYPE_LAPTOP | ||||||
| 	help | 	help | ||||||
| 	  Select this if the variant is a Chromebox/base. This allows AP to direct EC | 	  Select this if the variant is a Chromebox/base. This allows AP to direct EC | ||||||
| 	  to clear AP_IDLE flag after AP shutdown before triggering CR50 reset and | 	  to clear AP_IDLE flag after AP shutdown before triggering CR50 reset and | ||||||
|   | |||||||
| @@ -68,19 +68,6 @@ static int cr50_is_reset_needed(void) | |||||||
| 	return 0; | 	return 0; | ||||||
| } | } | ||||||
|  |  | ||||||
| static void clear_ec_ap_idle(void) |  | ||||||
| { |  | ||||||
| 	if (!CONFIG(CR50_RESET_CLEAR_EC_AP_IDLE_FLAG)) |  | ||||||
| 		return; |  | ||||||
|  |  | ||||||
| 	/* Send EC command to clear AP_IDLE flag */ |  | ||||||
| 	if (!google_chromeec_reboot(EC_REBOOT_NO_OP, EC_REBOOT_FLAG_CLEAR_AP_IDLE | |  | ||||||
| 				    EC_REBOOT_FLAG_ON_AP_SHUTDOWN)) |  | ||||||
| 		printk(BIOS_INFO, "Successfully clear AP_IDLE flag"); |  | ||||||
| 	else |  | ||||||
| 		printk(BIOS_ERR, "Failed to clear EC AP_IDLE flag"); |  | ||||||
| } |  | ||||||
|  |  | ||||||
| static void enable_update(void *unused) | static void enable_update(void *unused) | ||||||
| { | { | ||||||
| 	int ret; | 	int ret; | ||||||
| @@ -170,7 +157,8 @@ static void enable_update(void *unused) | |||||||
| 	} | 	} | ||||||
|  |  | ||||||
| 	if (CONFIG(POWER_OFF_ON_CR50_UPDATE)) { | 	if (CONFIG(POWER_OFF_ON_CR50_UPDATE)) { | ||||||
| 		clear_ec_ap_idle(); | 		if (CONFIG(CR50_RESET_CLEAR_EC_AP_IDLE_FLAG)) | ||||||
|  | 			google_chromeec_clear_ec_ap_idle(); | ||||||
| 		poweroff(); | 		poweroff(); | ||||||
| 	} | 	} | ||||||
| 	halt(); | 	halt(); | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user