UPSTREAM: acpigen: Add functions to generate _STA() and _PRW()
Add helper functions for generating some common objects:
acpigen_write_STA(status) will generate a status method that will
indicate the device status as provided:
Method (_STA) { Return (status) }
Full status byte configuration is possible and macros are provided for
the common status bytes used for generated code:
ACPI_STATUS_DEVICE_ALL_OFF = 0x0
ACPI_STATUS_DEVICE_ALL_ON = 0xF
acpigen_write_PRW() will generate a Power Resoruce for Wake that describes
the GPE that will wake a particular device:
Name (_PRW, Package (2) { wake, level }
Change-Id: I10277f0f3820d272d3975abf34b9a8de577782e5
Original-Signed-off-by: Duncan Laurie <dlaurie@chromium.org>
Original-Reviewed-on: https://review.coreboot.org/14795
Original-Reviewed-by: Aaron Durbin <adurbin@chromium.org>
(cherry-picked from commit abe2de8854)
Signed-off-by: Martin Roth <martinroth@chromium.org>
Reviewed-on: https://chromium-review.googlesource.com/346518
Reviewed-by: Stefan Reinauer <reinauer@google.com>
Commit-Queue: Stefan Reinauer <reinauer@google.com>
Tested-by: Stefan Reinauer <reinauer@google.com>
This commit is contained in:
parent
3d58e44a85
commit
1d4da5d984
2 changed files with 37 additions and 0 deletions
|
|
@ -449,6 +449,17 @@ void acpigen_write_device(const char *name)
|
|||
acpigen_emit_namestring(name);
|
||||
}
|
||||
|
||||
void acpigen_write_STA(uint8_t status)
|
||||
{
|
||||
/*
|
||||
* Method (_STA, 0, NotSerialized) { Return (status) }
|
||||
*/
|
||||
acpigen_write_method("_STA", 0);
|
||||
acpigen_emit_byte(0xa4);
|
||||
acpigen_write_byte(status);
|
||||
acpigen_pop_len();
|
||||
}
|
||||
|
||||
/*
|
||||
* Generates a func with max supported P-states.
|
||||
*/
|
||||
|
|
@ -503,6 +514,18 @@ void acpigen_write_TPC(const char *gnvs_tpc_limit)
|
|||
acpigen_pop_len();
|
||||
}
|
||||
|
||||
void acpigen_write_PRW(u32 wake, u32 level)
|
||||
{
|
||||
/*
|
||||
* Name (_PRW, Package () { wake, level }
|
||||
*/
|
||||
acpigen_write_name("_PRW");
|
||||
acpigen_write_package(2);
|
||||
acpigen_write_integer(wake);
|
||||
acpigen_write_integer(level);
|
||||
acpigen_pop_len();
|
||||
}
|
||||
|
||||
void acpigen_write_PSS_package(u32 coreFreq, u32 power, u32 transLat,
|
||||
u32 busmLat, u32 control, u32 status)
|
||||
{
|
||||
|
|
|
|||
|
|
@ -22,6 +22,18 @@
|
|||
#include <stdint.h>
|
||||
#include <arch/acpi.h>
|
||||
|
||||
/* Values that can be returned for ACPI Device _STA method */
|
||||
#define ACPI_STATUS_DEVICE_PRESENT (1 << 0)
|
||||
#define ACPI_STATUS_DEVICE_ENABLED (1 << 1)
|
||||
#define ACPI_STATUS_DEVICE_SHOW_IN_UI (1 << 2)
|
||||
#define ACPI_STATUS_DEVICE_STATE_OK (1 << 3)
|
||||
|
||||
#define ACPI_STATUS_DEVICE_ALL_OFF 0
|
||||
#define ACPI_STATUS_DEVICE_ALL_ON (ACPI_STATUS_DEVICE_PRESENT |\
|
||||
ACPI_STATUS_DEVICE_ENABLED |\
|
||||
ACPI_STATUS_DEVICE_SHOW_IN_UI |\
|
||||
ACPI_STATUS_DEVICE_STATE_OK)
|
||||
|
||||
void acpigen_write_len_f(void);
|
||||
void acpigen_pop_len(void);
|
||||
void acpigen_set_current(char *curr);
|
||||
|
|
@ -58,6 +70,8 @@ void acpigen_write_PPC(u8 nr);
|
|||
void acpigen_write_PPC_NVS(void);
|
||||
void acpigen_write_empty_PCT(void);
|
||||
void acpigen_write_empty_PTC(void);
|
||||
void acpigen_write_PRW(u32 wake, u32 level);
|
||||
void acpigen_write_STA(uint8_t status);
|
||||
void acpigen_write_TPC(const char *gnvs_tpc_limit);
|
||||
void acpigen_write_PSS_package(u32 coreFreq, u32 power, u32 transLat, u32 busmLat,
|
||||
u32 control, u32 status);
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue