blob: 3a99e255f95182315192544832c829b7fde3c6d7 [file] [log] [blame]
Angel Pons60ec3652020-04-03 01:22:13 +02001/* SPDX-License-Identifier: GPL-2.0-only */
Lee Leahyc4210412015-06-29 11:37:56 -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>
robbie zhangfada85e2015-08-25 16:13:53 -07005#include <gpio.h>
Lee Leahyc4210412015-06-29 11:37:56 -07006#include <soc/gpio.h>
Lee Leahyc4210412015-06-29 11:37:56 -07007#include <vendorcode/google/chromeos/chromeos.h>
Wenkai Du3b169252015-08-24 10:31:30 -07008#include "gpio.h"
Wenkai Du3b169252015-08-24 10:31:30 -07009
Lee Leahyc4210412015-06-29 11:37:56 -070010void fill_lb_gpios(struct lb_gpios *gpios)
11{
Julius Wernerc445b4f2016-03-31 17:27:05 -070012 struct lb_gpio chromeos_gpios[] = {
Julius Wernerc445b4f2016-03-31 17:27:05 -070013 {-1, ACTIVE_HIGH, get_lid_switch(), "lid"},
14 {-1, ACTIVE_HIGH, 0, "power"},
15 {-1, ACTIVE_HIGH, gfx_get_init_done(), "oprom"},
16 {GPIO_EC_IN_RW, ACTIVE_HIGH,
17 gpio_get(GPIO_EC_IN_RW), "EC in RW"},
18 };
19 lb_add_gpios(gpios, chromeos_gpios, ARRAY_SIZE(chromeos_gpios));
Lee Leahyc4210412015-06-29 11:37:56 -070020}
Lee Leahyc4210412015-06-29 11:37:56 -070021
Lee Leahyc4210412015-06-29 11:37:56 -070022int get_write_protect_state(void)
23{
robbie zhangfada85e2015-08-25 16:13:53 -070024 /* Read PCH_WP GPIO. */
25 return gpio_get(GPIO_PCH_WP);
Lee Leahyc4210412015-06-29 11:37:56 -070026}
Aaron Durbinb0f81512016-07-25 21:31:41 -050027
28static const struct cros_gpio cros_gpios[] = {
29 CROS_GPIO_REC_AL(CROS_GPIO_VIRTUAL, CROS_GPIO_DEVICE_NAME),
30 CROS_GPIO_WP_AH(GPIO_PCH_WP, CROS_GPIO_DEVICE_NAME),
31};
32
33void mainboard_chromeos_acpi_generate(void)
34{
35 chromeos_acpi_gpio_generate(cros_gpios, ARRAY_SIZE(cros_gpios));
36}