blob: fe6924f41b0250cacbb65ba37bb50d52b3f4adfb [file] [log] [blame]
Kyösti Mälkkie37459e2020-06-17 01:04:44 +03001/* SPDX-License-Identifier: GPL-2.0-only */
2
3#ifndef __ACPI_GNVS_H__
4#define __ACPI_GNVS_H__
5
6#include <types.h>
7
Kyösti Mälkki4de1a312021-01-15 05:58:42 +02008struct global_nvs;
9
Kyösti Mälkki4bd91872021-03-16 19:02:26 +020010size_t size_of_dnvs(void);
11
Kyösti Mälkki37eb24b2021-01-11 18:40:37 +020012#if CONFIG(ACPI_SOC_NVS)
Kyösti Mälkkie37459e2020-06-17 01:04:44 +030013void *acpi_get_gnvs(void);
Kyösti Mälkki4abc7312021-01-12 17:46:30 +020014void *acpi_get_device_nvs(void);
Kyösti Mälkki4de1a312021-01-15 05:58:42 +020015int acpi_reset_gnvs_for_wake(struct global_nvs **gnvs);
Kyösti Mälkki37eb24b2021-01-11 18:40:37 +020016#else
17static inline void *acpi_get_gnvs(void) { return NULL; }
Kyösti Mälkki4de1a312021-01-15 05:58:42 +020018static inline int acpi_reset_gnvs_for_wake(struct global_nvs **gnvs) { return -1; }
Kyösti Mälkki37eb24b2021-01-11 18:40:37 +020019#endif
Kyösti Mälkkie37459e2020-06-17 01:04:44 +030020
Kyösti Mälkki027f86e2022-12-02 15:30:10 +020021/* Return GNVS fields for USB0/1 disablement for S3/S4/S5 sleep states. */
22void usb_charge_mode_from_gnvs(uint8_t slp_typ, bool *usb0_disable, bool *usb1_disable);
23
Kyösti Mälkki0c1dd9c2020-06-17 23:37:49 +030024/*
Kyösti Mälkkie1ff3cd2020-06-29 03:17:05 +030025 * These functions populate the gnvs structure in acpi table.
Kyösti Mälkki0c1dd9c2020-06-17 23:37:49 +030026 * Defined as weak in common acpi as gnvs structure definition is
27 * chipset specific.
28 */
Kyösti Mälkki4b4e9952020-06-28 21:28:54 +030029void soc_fill_gnvs(struct global_nvs *gnvs);
Kyösti Mälkkia9766c72020-06-29 02:56:49 +030030void mainboard_fill_gnvs(struct global_nvs *gnvs);
Kyösti Mälkki4b4e9952020-06-28 21:28:54 +030031
Kyösti Mälkkie37459e2020-06-17 01:04:44 +030032#endif