Joel Linn | a70493d | 2024-03-02 13:59:52 +0100 | [diff] [blame^] | 1 | /* SPDX-License-Identifier: GPL-2.0-only */ |
| 2 | |
| 3 | #include <acpi/acpi.h> |
| 4 | #include <console/console.h> |
| 5 | #include <cpu/x86/smm.h> |
| 6 | #include <superio/ite/common/ite.h> |
| 7 | #include "common_defines.h" |
| 8 | #include "led.h" |
| 9 | |
| 10 | /* Change power led state based on sleep type. */ |
| 11 | void mainboard_smi_sleep(u8 slp_typ) |
| 12 | { |
| 13 | printk(BIOS_DEBUG, "SMI: sleep S%d\n", slp_typ); |
| 14 | switch (slp_typ) { |
| 15 | case ACPI_S3: |
| 16 | /* |
| 17 | * Vendor firmware also only enables this when entering sleep. |
| 18 | * This saves some power when entering S5 via shutdown. |
| 19 | */ |
| 20 | ite_enable_3vsbsw(GPIO_DEV); |
| 21 | set_power_led(LED_YELLOW); |
| 22 | break; |
| 23 | case ACPI_S4: |
| 24 | /* Without 3vsbsw enabled the LED will be off in any case */ |
| 25 | case ACPI_S5: |
| 26 | set_power_led(LED_OFF); |
| 27 | break; |
| 28 | default: |
| 29 | break; |
| 30 | } |
| 31 | } |