diff options
Diffstat (limited to 'baseboard/guybrush/baseboard.c')
-rw-r--r-- | baseboard/guybrush/baseboard.c | 16 |
1 files changed, 16 insertions, 0 deletions
diff --git a/baseboard/guybrush/baseboard.c b/baseboard/guybrush/baseboard.c index 5c517be91e..b8f37025eb 100644 --- a/baseboard/guybrush/baseboard.c +++ b/baseboard/guybrush/baseboard.c @@ -7,6 +7,8 @@ #include "adc.h" #include "adc_chip.h" +#include "cros_board_info.h" +#include "base_fw_config.h" #include "battery_fuel_gauge.h" #include "charge_manager.h" #include "charge_ramp.h" @@ -955,3 +957,17 @@ void baseboard_en_pwr_s0(enum gpio_signal signal) /* Now chain off to the normal power signal interrupt handler. */ power_signal_interrupt(signal); } + +int get_fw_config_field(uint8_t offset, uint8_t width) +{ + static uint32_t cached_fw_config = UNINITIALIZED_FW_CONFIG; + + if (cached_fw_config == UNINITIALIZED_FW_CONFIG) { + uint32_t val; + + if (cbi_get_fw_config(&val) != EC_SUCCESS) + return -1; + cached_fw_config = val; + } + return (cached_fw_config >> offset) & ((1 << width) - 1); +} |