ec/google/chromeec: Update EC headers
Generated using update_ec_headers.sh [EC-DIR]. The original include/ec_commands.h version in the EC repo is: 9fdd96bfc6 keyboard: Add support for a "Dictation" key The original include/ec_cmd_api.h version in the EC repo is: 562316a71e include: Add fingerprint host commands to ec_cmd_api.h Change-Id: I7ec965d07aa4cb1fe54916845780f342ea3debb9 Signed-off-by: Aseda Aboagye <aaboagye@google.com> Reviewed-on: https://review.coreboot.org/c/coreboot/+/81932 Reviewed-by: Forest Mittelberg <bmbm@google.com> Reviewed-by: Caveh Jalali <caveh@chromium.org> Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
This commit is contained in:
		
				
					committed by
					
						
						Felix Held
					
				
			
			
				
	
			
			
			
						parent
						
							c1a390f8c9
						
					
				
				
					commit
					abc3812365
				
			@@ -107,6 +107,20 @@ ec_cmd_usb_pd_set_amode(CROS_EC_COMMAND_INFO *h,
 | 
			
		||||
			       NULL, 0);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
static inline int ec_cmd_fp_frame(CROS_EC_COMMAND_INFO *h,
 | 
			
		||||
				  const struct ec_params_fp_frame *p,
 | 
			
		||||
				  uint8_t *r)
 | 
			
		||||
{
 | 
			
		||||
	return CROS_EC_COMMAND(h, EC_CMD_FP_FRAME, 0, p, sizeof(*p), r,
 | 
			
		||||
			       p->size);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
static inline int ec_cmd_fp_template(CROS_EC_COMMAND_INFO *h,
 | 
			
		||||
				     const struct ec_params_fp_template *p,
 | 
			
		||||
				     int size)
 | 
			
		||||
{
 | 
			
		||||
	return CROS_EC_COMMAND(h, EC_CMD_FP_TEMPLATE, 0, p, size, NULL, 0);
 | 
			
		||||
}
 | 
			
		||||
/*
 | 
			
		||||
 * Section 2: EC interface functions that can be generated with the help
 | 
			
		||||
 * of template macros.
 | 
			
		||||
@@ -280,9 +294,13 @@ _CROS_EC_CV_F_P_R(EC_CMD_FLASH_REGION_INFO, 1, flash_region_info_v1,
 | 
			
		||||
		  flash_region_info, flash_region_info);
 | 
			
		||||
_CROS_EC_C0_F_RF(EC_CMD_FLASH_SPI_INFO, flash_spi_info);
 | 
			
		||||
_CROS_EC_C0_F_PF(EC_CMD_FORCE_LID_OPEN, force_lid_open);
 | 
			
		||||
_CROS_EC_C0_F_PF_RF(EC_CMD_FP_MODE, fp_mode);
 | 
			
		||||
_CROS_EC_C0_F_PF(EC_CMD_FP_SEED, fp_seed);
 | 
			
		||||
_CROS_EC_C0_F_PF_RF(EC_CMD_FP_MODE, fp_mode);
 | 
			
		||||
_CROS_EC_C0_F_PF_RF(EC_CMD_FP_READ_MATCH_SECRET, fp_read_match_secret);
 | 
			
		||||
_CROS_EC_C0_F_RF(EC_CMD_FP_ENC_STATUS, fp_encryption_status);
 | 
			
		||||
_CROS_EC_C0_F_RF(EC_CMD_FP_STATS, fp_stats);
 | 
			
		||||
_CROS_EC_C1_F_PF(EC_CMD_FP_CONTEXT, fp_context);
 | 
			
		||||
_CROS_EC_CV_F_R(EC_CMD_FP_INFO, 1, fp_info, fp_info);
 | 
			
		||||
_CROS_EC_CV_F_R(EC_CMD_GET_BOARD_VERSION, 0, get_board_version, board_version);
 | 
			
		||||
_CROS_EC_C0_F_RF(EC_CMD_GET_BOOT_TIME, get_boot_time);
 | 
			
		||||
_CROS_EC_C0_F_RF(EC_CMD_GET_CHIP_INFO, get_chip_info);
 | 
			
		||||
@@ -292,8 +310,9 @@ _CROS_EC_C0_F_PF_RF(EC_CMD_GET_CMD_VERSIONS, get_cmd_versions);
 | 
			
		||||
_CROS_EC_C0_F_RF(EC_CMD_GET_COMMS_STATUS, get_comms_status);
 | 
			
		||||
_CROS_EC_C0_F_RF(EC_CMD_GET_FEATURES, get_features);
 | 
			
		||||
_CROS_EC_CV_F_R(EC_CMD_GET_KEYBD_CONFIG, 0, get_keybd_config, keybd_config);
 | 
			
		||||
_CROS_EC_CV_F_R(EC_CMD_GET_NEXT_EVENT, 2, get_next_event_v2, get_next_event);
 | 
			
		||||
_CROS_EC_C0_F_RF(EC_CMD_GET_NEXT_EVENT, get_next_event);
 | 
			
		||||
_CROS_EC_C1_F_RF(EC_CMD_GET_NEXT_EVENT, get_next_event);
 | 
			
		||||
_CROS_EC_CV_F_R(EC_CMD_GET_NEXT_EVENT, 2, get_next_event_v2, get_next_event_v1);
 | 
			
		||||
_CROS_EC_C0_F_PF_RF(EC_CMD_GET_PD_PORT_CAPS, get_pd_port_caps);
 | 
			
		||||
_CROS_EC_C0_F_RF(EC_CMD_GET_PROTOCOL_INFO, get_protocol_info);
 | 
			
		||||
_CROS_EC_CV_F_R(EC_CMD_GET_UPTIME_INFO, 0, get_uptime_info, uptime_info);
 | 
			
		||||
@@ -304,7 +323,7 @@ _CROS_EC_C1_F_PF_RF(EC_CMD_GPIO_GET, gpio_get);
 | 
			
		||||
_CROS_EC_C0_F_PF(EC_CMD_GPIO_SET, gpio_set);
 | 
			
		||||
_CROS_EC_CV_F_P_R(EC_CMD_GSV_PAUSE_IN_S5, 0, gsv_pause_in_s5, get_set_value,
 | 
			
		||||
		  get_set_value);
 | 
			
		||||
_CROS_EC_C0_F_PF(EC_CMD_HANG_DETECT, hang_detect);
 | 
			
		||||
_CROS_EC_C0_F_PF_RF(EC_CMD_HANG_DETECT, hang_detect);
 | 
			
		||||
_CROS_EC_C0_F_PF_RF(EC_CMD_HELLO, hello);
 | 
			
		||||
_CROS_EC_C0_F_PF_RF(EC_CMD_HIBERNATION_DELAY, hibernation_delay);
 | 
			
		||||
_CROS_EC_C0_F_PF_RF(EC_CMD_HOST_EVENT, host_event);
 | 
			
		||||
 
 | 
			
		||||
@@ -522,9 +522,9 @@ extern "C" {
 | 
			
		||||
#define USB_RETIMER_FW_UPDATE_SET_TBT 6 /* Set MUX to TBT mode   */
 | 
			
		||||
#define USB_RETIMER_FW_UPDATE_DISCONNECT 7 /* Set MUX to disconnect */
 | 
			
		||||
 | 
			
		||||
#define EC_ACPI_MEM_USB_RETIMER_PORT(x) ((x)&0x0f)
 | 
			
		||||
#define EC_ACPI_MEM_USB_RETIMER_PORT(x) ((x) & 0x0f)
 | 
			
		||||
#define EC_ACPI_MEM_USB_RETIMER_OP(x) \
 | 
			
		||||
	(((x)&0xf0) >> USB_RETIMER_FW_UPDATE_OP_SHIFT)
 | 
			
		||||
	(((x) & 0xf0) >> USB_RETIMER_FW_UPDATE_OP_SHIFT)
 | 
			
		||||
 | 
			
		||||
/*
 | 
			
		||||
 * ACPI addresses 0x20 - 0xff map to EC_MEMMAP offset 0x00 - 0xdf.  This data
 | 
			
		||||
@@ -690,6 +690,8 @@ enum ec_status {
 | 
			
		||||
	EC_RES_INVALID_DATA_CRC = 19, /* Data CRC invalid */
 | 
			
		||||
	EC_RES_DUP_UNAVAILABLE = 20, /* Can't resend response */
 | 
			
		||||
 | 
			
		||||
	EC_RES_COUNT,
 | 
			
		||||
 | 
			
		||||
	EC_RES_MAX = UINT16_MAX, /**< Force enum to be 16 bits */
 | 
			
		||||
} __packed;
 | 
			
		||||
BUILD_ASSERT(sizeof(enum ec_status) == sizeof(uint16_t));
 | 
			
		||||
@@ -737,6 +739,39 @@ BUILD_ASSERT((uint16_t)EC_RES_MAX == (uint16_t)EC_HOST_CMD_MAX);
 | 
			
		||||
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
/* clang-format off */
 | 
			
		||||
#define EC_STATUS_TEXT                                                        \
 | 
			
		||||
	{                                                                     \
 | 
			
		||||
	EC_MAP_ITEM(EC_RES_SUCCESS, SUCCESS),                                 \
 | 
			
		||||
	EC_MAP_ITEM(EC_RES_INVALID_COMMAND, INVALID_COMMAND),                 \
 | 
			
		||||
	EC_MAP_ITEM(EC_RES_ERROR, ERROR),                                     \
 | 
			
		||||
	EC_MAP_ITEM(EC_RES_INVALID_PARAM, INVALID_PARAM),                     \
 | 
			
		||||
	EC_MAP_ITEM(EC_RES_ACCESS_DENIED, ACCESS_DENIED),                     \
 | 
			
		||||
	EC_MAP_ITEM(EC_RES_INVALID_RESPONSE, INVALID_RESPONSE),               \
 | 
			
		||||
	EC_MAP_ITEM(EC_RES_INVALID_VERSION, INVALID_VERSION),                 \
 | 
			
		||||
	EC_MAP_ITEM(EC_RES_INVALID_CHECKSUM, INVALID_CHECKSUM),               \
 | 
			
		||||
	EC_MAP_ITEM(EC_RES_IN_PROGRESS, IN_PROGRESS),                         \
 | 
			
		||||
	EC_MAP_ITEM(EC_RES_UNAVAILABLE, UNAVAILABLE),                         \
 | 
			
		||||
	EC_MAP_ITEM(EC_RES_TIMEOUT, TIMEOUT),                                 \
 | 
			
		||||
	EC_MAP_ITEM(EC_RES_OVERFLOW, OVERFLOW),                               \
 | 
			
		||||
	EC_MAP_ITEM(EC_RES_INVALID_HEADER, INVALID_HEADER),                   \
 | 
			
		||||
	EC_MAP_ITEM(EC_RES_REQUEST_TRUNCATED, REQUEST_TRUNCATED),             \
 | 
			
		||||
	EC_MAP_ITEM(EC_RES_RESPONSE_TOO_BIG, RESPONSE_TOO_BIG),               \
 | 
			
		||||
	EC_MAP_ITEM(EC_RES_BUS_ERROR, BUS_ERROR),                             \
 | 
			
		||||
	EC_MAP_ITEM(EC_RES_BUSY, BUSY),                                       \
 | 
			
		||||
	EC_MAP_ITEM(EC_RES_INVALID_HEADER_VERSION, INVALID_HEADER_VERSION),   \
 | 
			
		||||
	EC_MAP_ITEM(EC_RES_INVALID_HEADER_CRC, INVALID_HEADER_CRC),           \
 | 
			
		||||
	EC_MAP_ITEM(EC_RES_INVALID_DATA_CRC, INVALID_DATA_CRC),               \
 | 
			
		||||
	EC_MAP_ITEM(EC_RES_DUP_UNAVAILABLE, DUP_UNAVAILABLE),                 \
 | 
			
		||||
	}
 | 
			
		||||
/* clang-format on */
 | 
			
		||||
 | 
			
		||||
#ifndef __cplusplus
 | 
			
		||||
#define EC_MAP_ITEM(k, v) [k] = #v
 | 
			
		||||
BUILD_ASSERT(ARRAY_SIZE(((const char *[])EC_STATUS_TEXT)) == EC_RES_COUNT);
 | 
			
		||||
#undef EC_MAP_ITEM
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
/*
 | 
			
		||||
 * Host event codes. ACPI query EC command uses code 0 to mean "no event
 | 
			
		||||
 * pending".  We explicitly specify each value in the enum listing so they won't
 | 
			
		||||
@@ -1658,6 +1693,10 @@ enum ec_feature_code {
 | 
			
		||||
	 * The EC supports DP2.1 capability
 | 
			
		||||
	 */
 | 
			
		||||
	EC_FEATURE_TYPEC_DP2_1 = 52,
 | 
			
		||||
	/*
 | 
			
		||||
	 * The MCU is System Companion Processor Core 1
 | 
			
		||||
	 */
 | 
			
		||||
	EC_FEATURE_SCP_C1 = 53,
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
#define EC_FEATURE_MASK_0(event_code) BIT(event_code % 32)
 | 
			
		||||
@@ -2864,6 +2903,7 @@ enum motionsensor_chip {
 | 
			
		||||
	MOTIONSENSE_CHIP_BMI323 = 28,
 | 
			
		||||
	MOTIONSENSE_CHIP_BMI220 = 29,
 | 
			
		||||
	MOTIONSENSE_CHIP_CM32183 = 30,
 | 
			
		||||
	MOTIONSENSE_CHIP_VEML3328 = 31,
 | 
			
		||||
	MOTIONSENSE_CHIP_MAX,
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
@@ -4096,15 +4136,15 @@ struct ec_response_keyboard_factory_test {
 | 
			
		||||
} __ec_align2;
 | 
			
		||||
 | 
			
		||||
/* Fingerprint events in 'fp_events' for EC_MKBP_EVENT_FINGERPRINT */
 | 
			
		||||
#define EC_MKBP_FP_RAW_EVENT(fp_events) ((fp_events)&0x00FFFFFF)
 | 
			
		||||
#define EC_MKBP_FP_ERRCODE(fp_events) ((fp_events)&0x0000000F)
 | 
			
		||||
#define EC_MKBP_FP_RAW_EVENT(fp_events) ((fp_events) & 0x00FFFFFF)
 | 
			
		||||
#define EC_MKBP_FP_ERRCODE(fp_events) ((fp_events) & 0x0000000F)
 | 
			
		||||
#define EC_MKBP_FP_ENROLL_PROGRESS_OFFSET 4
 | 
			
		||||
#define EC_MKBP_FP_ENROLL_PROGRESS(fpe) \
 | 
			
		||||
	(((fpe)&0x00000FF0) >> EC_MKBP_FP_ENROLL_PROGRESS_OFFSET)
 | 
			
		||||
	(((fpe) & 0x00000FF0) >> EC_MKBP_FP_ENROLL_PROGRESS_OFFSET)
 | 
			
		||||
#define EC_MKBP_FP_MATCH_IDX_OFFSET 12
 | 
			
		||||
#define EC_MKBP_FP_MATCH_IDX_MASK 0x0000F000
 | 
			
		||||
#define EC_MKBP_FP_MATCH_IDX(fpe) \
 | 
			
		||||
	(((fpe)&EC_MKBP_FP_MATCH_IDX_MASK) >> EC_MKBP_FP_MATCH_IDX_OFFSET)
 | 
			
		||||
	(((fpe) & EC_MKBP_FP_MATCH_IDX_MASK) >> EC_MKBP_FP_MATCH_IDX_OFFSET)
 | 
			
		||||
#define EC_MKBP_FP_ENROLL BIT(27)
 | 
			
		||||
#define EC_MKBP_FP_MATCH BIT(28)
 | 
			
		||||
#define EC_MKBP_FP_FINGER_DOWN BIT(29)
 | 
			
		||||
@@ -4122,6 +4162,7 @@ struct ec_response_keyboard_factory_test {
 | 
			
		||||
#define EC_MKBP_FP_ERR_MATCH_NO 0
 | 
			
		||||
#define EC_MKBP_FP_ERR_MATCH_NO_INTERNAL 6
 | 
			
		||||
#define EC_MKBP_FP_ERR_MATCH_NO_TEMPLATES 7
 | 
			
		||||
#define EC_MKBP_FP_ERR_MATCH_NO_AUTH_FAIL 8
 | 
			
		||||
#define EC_MKBP_FP_ERR_MATCH_NO_LOW_QUALITY 2
 | 
			
		||||
#define EC_MKBP_FP_ERR_MATCH_NO_LOW_COVERAGE 4
 | 
			
		||||
#define EC_MKBP_FP_ERR_MATCH_YES 1
 | 
			
		||||
@@ -4707,60 +4748,50 @@ struct ec_response_i2c_passthru {
 | 
			
		||||
} __ec_align1;
 | 
			
		||||
 | 
			
		||||
/*****************************************************************************/
 | 
			
		||||
/* Power button hang detect */
 | 
			
		||||
 | 
			
		||||
/* AP hang detect */
 | 
			
		||||
#define EC_CMD_HANG_DETECT 0x009F
 | 
			
		||||
 | 
			
		||||
/* Reasons to start hang detection timer */
 | 
			
		||||
/* Power button pressed */
 | 
			
		||||
#define EC_HANG_START_ON_POWER_PRESS BIT(0)
 | 
			
		||||
#define EC_HANG_DETECT_MIN_TIMEOUT 5
 | 
			
		||||
 | 
			
		||||
/* Lid closed */
 | 
			
		||||
#define EC_HANG_START_ON_LID_CLOSE BIT(1)
 | 
			
		||||
/* EC hang detect commands */
 | 
			
		||||
enum ec_hang_detect_cmds {
 | 
			
		||||
	/* Reload AP hang detect timer. */
 | 
			
		||||
	EC_HANG_DETECT_CMD_RELOAD = 0x0,
 | 
			
		||||
 | 
			
		||||
/* Lid opened */
 | 
			
		||||
#define EC_HANG_START_ON_LID_OPEN BIT(2)
 | 
			
		||||
	/* Stop AP hang detect timer. */
 | 
			
		||||
	EC_HANG_DETECT_CMD_CANCEL = 0x1,
 | 
			
		||||
 | 
			
		||||
/* Start of AP S3->S0 transition (booting or resuming from suspend) */
 | 
			
		||||
#define EC_HANG_START_ON_RESUME BIT(3)
 | 
			
		||||
	/* Configure watchdog with given reboot timeout and
 | 
			
		||||
	 * cancel currently running AP hand detect timer.
 | 
			
		||||
	 */
 | 
			
		||||
	EC_HANG_DETECT_CMD_SET_TIMEOUT = 0x2,
 | 
			
		||||
 | 
			
		||||
/* Reasons to cancel hang detection */
 | 
			
		||||
	/* Get last hang status - whether the AP boot was clear or not */
 | 
			
		||||
	EC_HANG_DETECT_CMD_GET_STATUS = 0x3,
 | 
			
		||||
 | 
			
		||||
/* Power button released */
 | 
			
		||||
#define EC_HANG_STOP_ON_POWER_RELEASE BIT(8)
 | 
			
		||||
 | 
			
		||||
/* Any host command from AP received */
 | 
			
		||||
#define EC_HANG_STOP_ON_HOST_COMMAND BIT(9)
 | 
			
		||||
 | 
			
		||||
/* Stop on end of AP S0->S3 transition (suspending or shutting down) */
 | 
			
		||||
#define EC_HANG_STOP_ON_SUSPEND BIT(10)
 | 
			
		||||
 | 
			
		||||
/*
 | 
			
		||||
 * If this flag is set, all the other fields are ignored, and the hang detect
 | 
			
		||||
 * timer is started.  This provides the AP a way to start the hang timer
 | 
			
		||||
 * without reconfiguring any of the other hang detect settings.  Note that
 | 
			
		||||
 * you must previously have configured the timeouts.
 | 
			
		||||
 */
 | 
			
		||||
#define EC_HANG_START_NOW BIT(30)
 | 
			
		||||
 | 
			
		||||
/*
 | 
			
		||||
 * If this flag is set, all the other fields are ignored (including
 | 
			
		||||
 * EC_HANG_START_NOW).  This provides the AP a way to stop the hang timer
 | 
			
		||||
 * without reconfiguring any of the other hang detect settings.
 | 
			
		||||
 */
 | 
			
		||||
#define EC_HANG_STOP_NOW BIT(31)
 | 
			
		||||
	/* Clear last hang status. Called when AP is rebooting/shutting down
 | 
			
		||||
	 * gracefully.
 | 
			
		||||
	 */
 | 
			
		||||
	EC_HANG_DETECT_CMD_CLEAR_STATUS = 0x4
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
struct ec_params_hang_detect {
 | 
			
		||||
	/* Flags; see EC_HANG_* */
 | 
			
		||||
	uint32_t flags;
 | 
			
		||||
 | 
			
		||||
	/* Timeout in msec before generating host event, if enabled */
 | 
			
		||||
	uint16_t host_event_timeout_msec;
 | 
			
		||||
 | 
			
		||||
	/* Timeout in msec before generating warm reboot, if enabled */
 | 
			
		||||
	uint16_t warm_reboot_timeout_msec;
 | 
			
		||||
} __ec_align4;
 | 
			
		||||
	uint16_t command; /* enum ec_hang_detect_cmds */
 | 
			
		||||
	/* Timeout in seconds before generating reboot */
 | 
			
		||||
	uint16_t reboot_timeout_sec;
 | 
			
		||||
} __ec_align2;
 | 
			
		||||
 | 
			
		||||
/* Status codes that describe whether AP has boot normally or the hang has been
 | 
			
		||||
 * detected and EC has reset AP
 | 
			
		||||
 */
 | 
			
		||||
enum ec_hang_detect_status {
 | 
			
		||||
	EC_HANG_DETECT_AP_BOOT_NORMAL = 0x0,
 | 
			
		||||
	EC_HANG_DETECT_AP_BOOT_EC_WDT = 0x1,
 | 
			
		||||
	EC_HANG_DETECT_AP_BOOT_COUNT,
 | 
			
		||||
};
 | 
			
		||||
struct ec_response_hang_detect {
 | 
			
		||||
	uint8_t status; /* enum ec_hang_detect_status */
 | 
			
		||||
} __ec_align1;
 | 
			
		||||
/*****************************************************************************/
 | 
			
		||||
/* Commands for battery charging */
 | 
			
		||||
 | 
			
		||||
@@ -4817,7 +4848,7 @@ enum charge_state_params {
 | 
			
		||||
	CS_PARAM_DEBUG_MANUAL_MODE,
 | 
			
		||||
	CS_PARAM_DEBUG_SEEMS_DEAD,
 | 
			
		||||
	CS_PARAM_DEBUG_SEEMS_DISCONNECTED,
 | 
			
		||||
	CS_PARAM_DEBUG_BATT_REMOVED,
 | 
			
		||||
	CS_PARAM_DEBUG_BATT_REMOVED, /* Deprecated */
 | 
			
		||||
	CS_PARAM_DEBUG_MANUAL_CURRENT,
 | 
			
		||||
	CS_PARAM_DEBUG_MANUAL_VOLTAGE,
 | 
			
		||||
	CS_PARAM_DEBUG_MAX = 0x2ffff,
 | 
			
		||||
@@ -5193,8 +5224,8 @@ struct ec_response_i2c_passthru_protect {
 | 
			
		||||
 * bits[31:28]: port number
 | 
			
		||||
 */
 | 
			
		||||
#define EC_MKBP_EVENT_CEC_PACK(events, port) \
 | 
			
		||||
	(((events)&GENMASK(27, 0)) | (((port)&0xf) << 28))
 | 
			
		||||
#define EC_MKBP_EVENT_CEC_GET_EVENTS(event) ((event)&GENMASK(27, 0))
 | 
			
		||||
	(((events) & GENMASK(27, 0)) | (((port) & 0xf) << 28))
 | 
			
		||||
#define EC_MKBP_EVENT_CEC_GET_EVENTS(event) ((event) & GENMASK(27, 0))
 | 
			
		||||
#define EC_MKBP_EVENT_CEC_GET_PORT(event) (((event) >> 28) & 0xf)
 | 
			
		||||
 | 
			
		||||
/* CEC message from the AP to be written on the CEC bus */
 | 
			
		||||
@@ -6064,9 +6095,9 @@ struct ec_response_pd_log {
 | 
			
		||||
#define PD_LOG_PORT_MASK 0xe0
 | 
			
		||||
#define PD_LOG_PORT_SHIFT 5
 | 
			
		||||
#define PD_LOG_PORT_SIZE(port, size) \
 | 
			
		||||
	(((port) << PD_LOG_PORT_SHIFT) | ((size)&PD_LOG_SIZE_MASK))
 | 
			
		||||
	(((port) << PD_LOG_PORT_SHIFT) | ((size) & PD_LOG_SIZE_MASK))
 | 
			
		||||
#define PD_LOG_PORT(size_port) ((size_port) >> PD_LOG_PORT_SHIFT)
 | 
			
		||||
#define PD_LOG_SIZE(size_port) ((size_port)&PD_LOG_SIZE_MASK)
 | 
			
		||||
#define PD_LOG_SIZE(size_port) ((size_port) & PD_LOG_SIZE_MASK)
 | 
			
		||||
 | 
			
		||||
/* PD event log : entry types */
 | 
			
		||||
/* PD MCU events */
 | 
			
		||||
@@ -6316,6 +6347,7 @@ enum cbi_data_tag {
 | 
			
		||||
	/* struct board_batt_params */
 | 
			
		||||
	CBI_TAG_BATTERY_CONFIG = 12,
 | 
			
		||||
	/* CBI_TAG_BATTERY_CONFIG_1 ~ 15 will use 13 ~ 27. */
 | 
			
		||||
	CBI_TAG_BATTERY_CONFIG_15 = 27,
 | 
			
		||||
 | 
			
		||||
	/* Last entry */
 | 
			
		||||
	CBI_TAG_COUNT,
 | 
			
		||||
@@ -6323,7 +6355,7 @@ enum cbi_data_tag {
 | 
			
		||||
 | 
			
		||||
union ec_common_control {
 | 
			
		||||
	struct {
 | 
			
		||||
		uint32_t bcic_enabled : 1;
 | 
			
		||||
		uint32_t bcic_enabled : 1; /* Unused. Take it over as yours. */
 | 
			
		||||
	};
 | 
			
		||||
	uint32_t raw_value;
 | 
			
		||||
};
 | 
			
		||||
@@ -6565,6 +6597,7 @@ struct ec_response_rollback_info {
 | 
			
		||||
enum ec_chip_type {
 | 
			
		||||
	EC_CHIP_TYPE_CBI_EEPROM = 0,
 | 
			
		||||
	EC_CHIP_TYPE_TCPC = 1,
 | 
			
		||||
	EC_CHIP_TYPE_PDC = 2,
 | 
			
		||||
	EC_CHIP_TYPE_COUNT,
 | 
			
		||||
	EC_CHIP_TYPE_MAX = 0xFF,
 | 
			
		||||
};
 | 
			
		||||
@@ -6760,6 +6793,9 @@ enum action_key {
 | 
			
		||||
	TK_KBD_BKLIGHT_TOGGLE = 18,
 | 
			
		||||
	TK_MICMUTE = 19,
 | 
			
		||||
	TK_MENU = 20,
 | 
			
		||||
	TK_DICTATE = 21,
 | 
			
		||||
 | 
			
		||||
	TK_COUNT
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
/*
 | 
			
		||||
@@ -6784,6 +6820,11 @@ enum action_key {
 | 
			
		||||
 */
 | 
			
		||||
#define KEYBD_CAP_SCRNLOCK_KEY BIT(2)
 | 
			
		||||
 | 
			
		||||
/*
 | 
			
		||||
 * Whether the keyboard has an assistant key.
 | 
			
		||||
 */
 | 
			
		||||
#define KEYBD_CAP_ASSISTANT_KEY BIT(3)
 | 
			
		||||
 | 
			
		||||
struct ec_response_keybd_config {
 | 
			
		||||
	/*
 | 
			
		||||
	 *  Number of top row keys, excluding Esc and Screenlock.
 | 
			
		||||
@@ -7123,6 +7164,7 @@ enum tcpc_cc_polarity {
 | 
			
		||||
#define PD_STATUS_EVENT_VDM_REQ_REPLY BIT(6)
 | 
			
		||||
#define PD_STATUS_EVENT_VDM_REQ_FAILED BIT(7)
 | 
			
		||||
#define PD_STATUS_EVENT_VDM_ATTENTION BIT(8)
 | 
			
		||||
#define PD_STATUS_EVENT_COUNT 9
 | 
			
		||||
 | 
			
		||||
/*
 | 
			
		||||
 * Encode and decode for BCD revision response
 | 
			
		||||
@@ -7428,7 +7470,8 @@ enum pchg_state {
 | 
			
		||||
#define EC_MKBP_PCHG_EVENT_TO_PORT(e) (((e) >> EC_MKBP_PCHG_PORT_SHIFT) & 0xf)
 | 
			
		||||
#define EC_MKBP_PCHG_PORT_TO_EVENT(p) ((p) << EC_MKBP_PCHG_PORT_SHIFT)
 | 
			
		||||
/* Utility macro for extracting event bits. */
 | 
			
		||||
#define EC_MKBP_PCHG_EVENT_MASK(e) ((e)&GENMASK(EC_MKBP_PCHG_PORT_SHIFT - 1, 0))
 | 
			
		||||
#define EC_MKBP_PCHG_EVENT_MASK(e) \
 | 
			
		||||
	((e) & GENMASK(EC_MKBP_PCHG_PORT_SHIFT - 1, 0))
 | 
			
		||||
 | 
			
		||||
#define EC_MKBP_PCHG_UPDATE_OPENED BIT(0)
 | 
			
		||||
#define EC_MKBP_PCHG_WRITE_COMPLETE BIT(1)
 | 
			
		||||
@@ -7726,7 +7769,7 @@ struct battery_info {
 | 
			
		||||
	uint8_t reserved;
 | 
			
		||||
} __packed __aligned(2);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
/*
 | 
			
		||||
 * The 'config' of a battery.
 | 
			
		||||
 */
 | 
			
		||||
struct board_batt_params {
 | 
			
		||||
@@ -7734,9 +7777,22 @@ struct board_batt_params {
 | 
			
		||||
	struct battery_info batt_info;
 | 
			
		||||
} __packed __aligned(4);
 | 
			
		||||
 | 
			
		||||
#define SBS_MAX_STRING_SIZE 32
 | 
			
		||||
/*
 | 
			
		||||
 * The SBS defines a string object as a block of chars, 32 byte maximum, where
 | 
			
		||||
 * the first byte indicates the number of chars in the block (excluding the
 | 
			
		||||
 * first byte).
 | 
			
		||||
 *
 | 
			
		||||
 * Thus, the actual string length (i.e. the value strlen returns) is limited to
 | 
			
		||||
 * 31 (=SBS_MAX_STR_SIZE).
 | 
			
		||||
 *
 | 
			
		||||
 * SBS_MAX_STR_OBJ_SIZE can be used as the size of a buffer for an SBS string
 | 
			
		||||
 * object but also as a buffer for a c-lang string because the null terminating
 | 
			
		||||
 * char also takes one byte.
 | 
			
		||||
 */
 | 
			
		||||
#define SBS_MAX_STR_SIZE 31
 | 
			
		||||
#define SBS_MAX_STR_OBJ_SIZE (SBS_MAX_STR_SIZE + 1)
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
/*
 | 
			
		||||
 * Header describing a battery config stored in CBI. Only struct_version has
 | 
			
		||||
 * size and position independent of struct_version. The rest varies as
 | 
			
		||||
 * struct_version changes.
 | 
			
		||||
@@ -7776,8 +7832,8 @@ struct batt_conf_header {
 | 
			
		||||
	/* manuf_name, device_name, board_batt_params follow after this. */
 | 
			
		||||
} __packed;
 | 
			
		||||
 | 
			
		||||
#define BATT_CONF_MAX_SIZE                                           \
 | 
			
		||||
	(sizeof(struct batt_conf_header) + SBS_MAX_STRING_SIZE * 2 + \
 | 
			
		||||
#define BATT_CONF_MAX_SIZE                                            \
 | 
			
		||||
	(sizeof(struct batt_conf_header) + SBS_MAX_STR_OBJ_SIZE * 2 + \
 | 
			
		||||
	 sizeof(struct board_batt_params))
 | 
			
		||||
 | 
			
		||||
/*
 | 
			
		||||
@@ -7884,7 +7940,7 @@ enum fp_capture_type {
 | 
			
		||||
};
 | 
			
		||||
/* Extracts the capture type from the sensor 'mode' word */
 | 
			
		||||
#define FP_CAPTURE_TYPE(mode) \
 | 
			
		||||
	(((mode)&FP_MODE_CAPTURE_TYPE_MASK) >> FP_MODE_CAPTURE_TYPE_SHIFT)
 | 
			
		||||
	(((mode) & FP_MODE_CAPTURE_TYPE_MASK) >> FP_MODE_CAPTURE_TYPE_SHIFT)
 | 
			
		||||
 | 
			
		||||
struct ec_params_fp_mode {
 | 
			
		||||
	uint32_t mode; /* as defined by FP_MODE_ constants */
 | 
			
		||||
@@ -7898,7 +7954,7 @@ struct ec_response_fp_mode {
 | 
			
		||||
#define EC_CMD_FP_INFO 0x0403
 | 
			
		||||
 | 
			
		||||
/* Number of dead pixels detected on the last maintenance */
 | 
			
		||||
#define FP_ERROR_DEAD_PIXELS(errors) ((errors)&0x3FF)
 | 
			
		||||
#define FP_ERROR_DEAD_PIXELS(errors) ((errors) & 0x3FF)
 | 
			
		||||
/* Unknown number of dead pixels detected on the last maintenance */
 | 
			
		||||
#define FP_ERROR_DEAD_PIXELS_UNKNOWN (0x3FF)
 | 
			
		||||
/* No interrupt from the sensor */
 | 
			
		||||
@@ -8067,6 +8123,10 @@ struct ec_params_fp_seed {
 | 
			
		||||
#define FP_CONTEXT_STATUS_MATCH_PROCESSED_SET BIT(2)
 | 
			
		||||
/* FP auth_nonce had been set or not*/
 | 
			
		||||
#define FP_CONTEXT_AUTH_NONCE_SET BIT(3)
 | 
			
		||||
/* FP user_id had been set or not*/
 | 
			
		||||
#define FP_CONTEXT_USER_ID_SET BIT(4)
 | 
			
		||||
/* FP templates are unlocked for nonce context or not */
 | 
			
		||||
#define FP_CONTEXT_TEMPLATE_UNLOCKED_SET BIT(5)
 | 
			
		||||
 | 
			
		||||
struct ec_response_fp_encryption_status {
 | 
			
		||||
	/* Used bits in encryption engine status */
 | 
			
		||||
@@ -8184,15 +8244,11 @@ struct ec_response_fp_read_match_secret_with_pubkey {
 | 
			
		||||
	uint8_t enc_secret[FP_POSITIVE_MATCH_SECRET_BYTES];
 | 
			
		||||
} __ec_align4;
 | 
			
		||||
 | 
			
		||||
/* Preload encrypted template into the MCU buffer */
 | 
			
		||||
#define EC_CMD_FP_PRELOAD_TEMPLATE 0x0416
 | 
			
		||||
/* Unlock the fpsensor template with the current nonce context */
 | 
			
		||||
#define EC_CMD_FP_UNLOCK_TEMPLATE 0x0417
 | 
			
		||||
 | 
			
		||||
struct ec_params_fp_preload_template {
 | 
			
		||||
	uint32_t offset;
 | 
			
		||||
	uint32_t size;
 | 
			
		||||
	uint16_t fgr;
 | 
			
		||||
	uint8_t reserved[2];
 | 
			
		||||
	uint8_t data[];
 | 
			
		||||
struct ec_params_fp_unlock_template {
 | 
			
		||||
	uint16_t fgr_num;
 | 
			
		||||
} __ec_align4;
 | 
			
		||||
 | 
			
		||||
/*****************************************************************************/
 | 
			
		||||
@@ -8303,10 +8359,10 @@ struct ec_response_battery_static_info_v2 {
 | 
			
		||||
	uint16_t design_capacity;
 | 
			
		||||
	uint16_t design_voltage;
 | 
			
		||||
	uint32_t cycle_count;
 | 
			
		||||
	char manufacturer[32];
 | 
			
		||||
	char device_name[32];
 | 
			
		||||
	char serial[32];
 | 
			
		||||
	char chemistry[32];
 | 
			
		||||
	char manufacturer[SBS_MAX_STR_OBJ_SIZE];
 | 
			
		||||
	char device_name[SBS_MAX_STR_OBJ_SIZE];
 | 
			
		||||
	char serial[SBS_MAX_STR_OBJ_SIZE];
 | 
			
		||||
	char chemistry[SBS_MAX_STR_OBJ_SIZE];
 | 
			
		||||
} __ec_align4;
 | 
			
		||||
 | 
			
		||||
/*
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user