coreboot
coreboot is an Open Source project aimed at replacing the proprietary BIOS found in most computers.
chromeos.c
Go to the documentation of this file.
1 /* SPDX-License-Identifier: GPL-2.0-only */
2 
3 #include <bootmode.h>
4 #include <boot/coreboot_tables.h>
5 #include <gpio.h>
6 #include <security/tpm/tis.h>
7 
8 #include "gpio.h"
9 
11 {
12  /* Set up open-drain pins */
28 
29  /* Set up GPIOs */
33 }
34 
35 void fill_lb_gpios(struct lb_gpios *gpios)
36 {
37  struct lb_gpio chromeos_gpios[] = {
38  {GPIO_EC_AP_INT_ODL.id, ACTIVE_LOW, -1, "EC interrupt"},
39  {GPIO_EC_IN_RW_ODL.id, ACTIVE_LOW, -1, "EC in RW"},
40  {GPIO_GSC_AP_INT_ODL.id, ACTIVE_HIGH, -1, "TPM interrupt"},
41  {GPIO_EN_SPK.id, ACTIVE_HIGH, -1, "speaker enable"},
42  };
43  lb_add_gpios(gpios, chromeos_gpios, ARRAY_SIZE(chromeos_gpios));
44 }
45 
47 {
48  /* EC is trusted if not in RW. This is active low. */
49  return !!gpio_get(GPIO_EC_IN_RW_ODL);
50 }
51 
53 {
55 }
void fill_lb_gpios(struct lb_gpios *gpios)
Definition: chromeos.c:9
#define ARRAY_SIZE(a)
Definition: helpers.h:12
int get_ec_is_trusted(void)
Definition: chromeos.c:25
int tis_plat_irq_status(void)
Definition: chromeos.c:39
void setup_chromeos_gpios(void)
Definition: chromeos.c:10
#define GPIO_EDPBRDG_INT_ODL
Definition: mainboard.c:46
#define ACTIVE_HIGH
Definition: chromeos.c:18
#define ACTIVE_LOW
Definition: chromeos.c:17
void lb_add_gpios(struct lb_gpios *gpios, const struct lb_gpio *gpio_table, size_t count)
int gpio_get(gpio_t gpio)
Definition: gpio.c:166
void gpio_input(gpio_t gpio)
Definition: gpio.c:189
void gpio_output(gpio_t gpio, int value)
Definition: gpio.c:194
#define GPIO_XHCI_DONE
Definition: gpio.h:20
#define GPIO_RESET
Definition: gpio.h:16
#define GPIO_EN_SPK
Definition: gpio.h:16
#define GPIO_AP_WP_ODL
Definition: gpio.h:18
#define GPIO_HP_INT_ODL
Definition: gpio.h:19
#define GPIO_DPBRDG_INT_ODL
Definition: gpio.h:11
#define GPIO_WIFI_INT_ODL
Definition: gpio.h:10
#define GPIO_GSC_AP_INT_ODL
Definition: gpio.h:17
#define GPIO_BT_WAKE_AP_ODL
Definition: gpio.h:9
#define GPIO_UCAM_DET_ODL
Definition: gpio.h:21
#define GPIO_EC_AP_HPD_OD
Definition: gpio.h:12
#define GPIO_EC_IN_RW_ODL
Definition: gpio.h:16
#define GPIO_TCHSCR_INT_1V8_ODL
Definition: gpio.h:14
#define GPIO_PEN_EJECT_OD
Definition: gpio.h:20
#define GPIO_EC_AP_INT_ODL
Definition: gpio.h:15
#define GPIO_SAR_INT_ODL
Definition: gpio.h:8
#define GPIO_TCHPAD_INT_ODL
Definition: gpio.h:13
int gpio_eint_poll(gpio_t gpio)
Definition: gpio.c:126