blob: 73eae78dc92113ac83ae4ab828fbb47401dd3b6f [file] [log] [blame]
Angel Pons9b10c092020-04-05 13:21:20 +02001/* SPDX-License-Identifier: GPL-2.0-only */
Duncan Laurie81485d22016-10-28 09:13:52 -07002
Kyösti Mälkkibe7692a2021-11-03 17:54:14 +02003#include <bootmode.h>
Kyösti Mälkki17887d02019-07-23 19:08:01 +03004#include <boot/coreboot_tables.h>
Duncan Laurie81485d22016-10-28 09:13:52 -07005#include <gpio.h>
6#include <soc/gpio.h>
Duncan Laurie81485d22016-10-28 09:13:52 -07007#include <vendorcode/google/chromeos/chromeos.h>
8
9#include "gpio.h"
Duncan Laurie81485d22016-10-28 09:13:52 -070010
Duncan Laurie81485d22016-10-28 09:13:52 -070011void fill_lb_gpios(struct lb_gpios *gpios)
12{
13 struct lb_gpio chromeos_gpios[] = {
Duncan Laurie81485d22016-10-28 09:13:52 -070014 {-1, ACTIVE_HIGH, get_lid_switch(), "lid"},
15 {-1, ACTIVE_HIGH, 0, "power"},
16 {-1, ACTIVE_HIGH, gfx_get_init_done(), "oprom"},
17 {GPIO_EC_IN_RW, ACTIVE_HIGH,
18 gpio_get(GPIO_EC_IN_RW), "EC in RW"},
19 };
20 lb_add_gpios(gpios, chromeos_gpios, ARRAY_SIZE(chromeos_gpios));
21}
Duncan Laurie81485d22016-10-28 09:13:52 -070022
Duncan Laurie81485d22016-10-28 09:13:52 -070023int get_write_protect_state(void)
24{
25 /* Read PCH_WP GPIO. */
26 return gpio_get(GPIO_PCH_WP);
27}
28
29static const struct cros_gpio cros_gpios[] = {
30 CROS_GPIO_REC_AL(CROS_GPIO_VIRTUAL, CROS_GPIO_DEVICE_NAME),
31 CROS_GPIO_WP_AH(GPIO_PCH_WP, CROS_GPIO_DEVICE_NAME),
32};
33
34void mainboard_chromeos_acpi_generate(void)
35{
36 chromeos_acpi_gpio_generate(cros_gpios, ARRAY_SIZE(cros_gpios));
37}