coreboot
coreboot is an Open Source project aimed at replacing the proprietary BIOS found in most computers.
smihandler.c
Go to the documentation of this file.
1
/* SPDX-License-Identifier: GPL-2.0-only */
2
3
#include <
acpi/acpi.h
>
4
#include <baseboard/variants.h>
5
#include <
delay.h
>
6
7
#include "gpio.h"
8
9
#define TOUCH_DISABLE GPP_C3
10
#define TOUCH_RESET GPP_B3
11
#define TOUCH_ENABLE GPP_B4
12
#define FP_PWR_ENABLE GPP_B11
13
14
/*
15
* Elan touchscreen has higher delay requirements than the other
16
* devices, so using that.
17
*/
18
#define ELAN_STOP_OFF_DELAY 2
19
#define ELAN_RESET_OFF_DELAY 2
20
#define ELAN_ENABLE_OFF_DELAY 100
21
22
void
variant_smi_sleep
(
u8
slp_typ)
23
{
24
if
(slp_typ ==
ACPI_S5
) {
25
/* TOUCHSCREEN_DIS# */
26
gpio_set
(
TOUCH_DISABLE
, 0);
27
mdelay
(
ELAN_STOP_OFF_DELAY
);
28
/* TOUCHSCREEN_RST# */
29
gpio_set
(
TOUCH_RESET
, 0);
30
mdelay
(
ELAN_RESET_OFF_DELAY
);
31
/* EN_PP3300_DX_TOUCHSCREEN */
32
gpio_set
(
TOUCH_ENABLE
, 0);
33
mdelay
(
ELAN_ENABLE_OFF_DELAY
);
34
/* PCH_FP_PWR_EN */
35
gpio_set
(
FP_PWR_ENABLE
, 0);
36
}
37
}
delay.h
mdelay
void mdelay(unsigned int msecs)
Definition:
delay.c:2
acpi.h
ACPI_S5
@ ACPI_S5
Definition:
acpi.h:1385
gpio_set
void gpio_set(gpio_t gpio, int value)
Definition:
gpio.c:174
variant_smi_sleep
void __weak variant_smi_sleep(u8 slp_typ)
Definition:
smihandler.c:52
ELAN_RESET_OFF_DELAY
#define ELAN_RESET_OFF_DELAY
Definition:
smihandler.c:19
ELAN_STOP_OFF_DELAY
#define ELAN_STOP_OFF_DELAY
Definition:
smihandler.c:18
TOUCH_DISABLE
#define TOUCH_DISABLE
Definition:
smihandler.c:9
TOUCH_RESET
#define TOUCH_RESET
Definition:
smihandler.c:10
FP_PWR_ENABLE
#define FP_PWR_ENABLE
Definition:
smihandler.c:12
TOUCH_ENABLE
#define TOUCH_ENABLE
Definition:
smihandler.c:11
ELAN_ENABLE_OFF_DELAY
#define ELAN_ENABLE_OFF_DELAY
Definition:
smihandler.c:20
u8
uint8_t u8
Definition:
stdint.h:45
src
mainboard
google
poppy
variants
nami
smihandler.c
Generated by
1.9.1