| /* SPDX-License-Identifier: GPL-2.0-only */ |
| |
| #include <acpi/acpi.h> |
| #include <baseboard/variants.h> |
| #include <delay.h> |
| |
| #include "gpio.h" |
| |
| #define TOUCH_DISABLE GPP_C3 |
| #define TOUCH_RESET GPP_B3 |
| #define TOUCH_ENABLE GPP_B4 |
| #define FP_PWR_ENABLE GPP_B11 |
| |
| /* |
| * Elan touchscreen has higher delay requirements than the other |
| * devices, so using that. |
| */ |
| #define ELAN_STOP_OFF_DELAY 2 |
| #define ELAN_RESET_OFF_DELAY 2 |
| #define ELAN_ENABLE_OFF_DELAY 100 |
| |
| void variant_smi_sleep(u8 slp_typ) |
| { |
| if (slp_typ == ACPI_S5) { |
| /* TOUCHSCREEN_DIS# */ |
| gpio_set(TOUCH_DISABLE, 0); |
| mdelay(ELAN_STOP_OFF_DELAY); |
| /* TOUCHSCREEN_RST# */ |
| gpio_set(TOUCH_RESET, 0); |
| mdelay(ELAN_RESET_OFF_DELAY); |
| /* EN_PP3300_DX_TOUCHSCREEN */ |
| gpio_set(TOUCH_ENABLE, 0); |
| mdelay(ELAN_ENABLE_OFF_DELAY); |
| /* PCH_FP_PWR_EN */ |
| gpio_set(FP_PWR_ENABLE, 0); |
| } |
| } |