diff options
Diffstat (limited to 'baseboard/guybrush/base_fw_config.h')
-rw-r--r-- | baseboard/guybrush/base_fw_config.h | 50 |
1 files changed, 50 insertions, 0 deletions
diff --git a/baseboard/guybrush/base_fw_config.h b/baseboard/guybrush/base_fw_config.h new file mode 100644 index 0000000000..25463384af --- /dev/null +++ b/baseboard/guybrush/base_fw_config.h @@ -0,0 +1,50 @@ +/* Copyright 2021 The Chromium OS Authors. All rights reserved. + * Use of this source code is governed by a BSD-style license that can be + * found in the LICENSE file. + */ + +#ifndef _GUYBRUSH_BASE_FW_CONFIG__H_ +#define _GUYBRUSH_BASE_FW_CONFIG__H_ + +#define UNINITIALIZED_FW_CONFIG 0xFFFFFFFF + +#include <stdbool.h> +#include <stdint.h> + +/* + * Takes a bit offset and bit width and returns the fw_config field at that + * offset and width. Returns -1 if an error occurs. + */ +int get_fw_config_field(uint8_t offset, uint8_t width); + +/* + * Each Guybrush board variant will define a board specific fw_config schema. + * Below is the schema agnostic interface for fw_config fields. + * Fields that are not applicable outside a specific Guybrush variant do not + * need to be included here. + */ + +enum board_usb_a1_retimer { + USB_A1_RETIMER_UNKNOWN, + USB_A1_RETIMER_PS8811, + USB_A1_RETIMER_ANX7491 +}; + +enum board_usb_c1_mux { + USB_C1_MUX_UNKNOWN, + USB_C1_MUX_PS8818, + USB_C1_MUX_ANX7451 +}; + +enum board_form_factor { + FORM_FACTOR_UNKNOWN, + FORM_FACTOR_CLAMSHELL, + FORM_FACTOR_CONVERTIBLE +}; + +bool board_has_kblight(void); +enum board_usb_a1_retimer board_get_usb_a1_retimer(void); +enum board_usb_c1_mux board_get_usb_c1_mux(void); +enum board_form_factor board_get_form_factor(void); + +#endif /* _GUYBRUSH_BASE_FW_CONFIG__H_ */ |