• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /* SPDX-License-Identifier: GPL-2.0-only */
2 
3 #include <boardid.h>
4 #include <bootmode.h>
5 #include <boot/coreboot_tables.h>
6 #include <gpio.h>
7 
8 #include "gpio.h"
9 
setup_chromeos_gpios(void)10 void setup_chromeos_gpios(void)
11 {
12 	gpio_input(WRITE_PROTECT);
13 	gpio_input_pullup(EC_IN_RW);
14 	gpio_input_pullup(EC_IRQ);
15 	gpio_input(LID);
16 	gpio_input_pullup(POWER_BUTTON);
17 	if (board_id() + CONFIG_BOARD_ID_ADJUSTMENT < 5)
18 		gpio_output(EC_SUSPEND_L, 1);
19 }
20 
fill_lb_gpios(struct lb_gpios * gpios)21 void fill_lb_gpios(struct lb_gpios *gpios)
22 {
23 	struct lb_gpio chromeos_gpios[] = {
24 		{LID.id, ACTIVE_HIGH, -1, "lid"},
25 		{POWER_BUTTON.id, ACTIVE_HIGH, -1, "power"},
26 		{EC_IN_RW.id, ACTIVE_HIGH, -1, "EC in RW"},
27 		{EC_IRQ.id, ACTIVE_LOW, -1, "EC interrupt"},
28 		{CR50_IRQ.id, ACTIVE_HIGH, -1, "TPM interrupt"},
29 	};
30 	lb_add_gpios(gpios, chromeos_gpios, ARRAY_SIZE(chromeos_gpios));
31 }
32 
get_write_protect_state(void)33 int get_write_protect_state(void)
34 {
35 	return !gpio_get(WRITE_PROTECT);
36 }
37 
get_ec_is_trusted(void)38 int get_ec_is_trusted(void)
39 {
40 	/* EC is trusted if not in RW. */
41 	return !gpio_get(EC_IN_RW);
42 }
43