5 #ifndef __CROS_EC_EC_COMMANDS_H
6 #define __CROS_EC_EC_COMMANDS_H
8 #if !defined(__ACPI__) && !defined(__KERNEL__)
25 #include "compile_time_macros.h"
30 #define BUILD_ASSERT(_cond)
35 #include <linux/limits.h>
45 #define BIT(nr) (1UL << (nr))
49 #define BIT_ULL(nr) (1ULL << (nr))
59 #define GENMASK(h, l) (((BIT(h) << 1) - 1) ^ (BIT(l) - 1))
63 #define GENMASK_ULL(h, l) (((BIT_ULL(h) << 1) - 1) ^ (BIT_ULL(l) - 1))
80 #define EC_PROTO_VERSION 0x00000002
83 #define EC_VER_MASK(version) BIT(version)
86 #define EC_LPC_ADDR_ACPI_DATA 0x62
87 #define EC_LPC_ADDR_ACPI_CMD 0x66
90 #define EC_LPC_ADDR_HOST_DATA 0x200
91 #define EC_LPC_ADDR_HOST_CMD 0x204
95 #define EC_LPC_ADDR_HOST_ARGS 0x800
96 #define EC_LPC_ADDR_HOST_PARAM 0x804
100 #define EC_LPC_ADDR_HOST_PACKET 0x800
101 #define EC_LPC_HOST_PACKET_SIZE 0x100
107 #define EC_HOST_CMD_REGION0 0x800
108 #define EC_HOST_CMD_REGION1 0x880
109 #define EC_HOST_CMD_REGION_SIZE 0x80
112 #define EC_LPC_CMDR_DATA BIT(0)
113 #define EC_LPC_CMDR_PENDING BIT(1)
114 #define EC_LPC_CMDR_BUSY BIT(2)
115 #define EC_LPC_CMDR_CMD BIT(3)
116 #define EC_LPC_CMDR_ACPI_BRST BIT(4)
117 #define EC_LPC_CMDR_SCI BIT(5)
118 #define EC_LPC_CMDR_SMI BIT(6)
120 #define EC_LPC_ADDR_MEMMAP 0x900
121 #define EC_MEMMAP_SIZE 255
122 #define EC_MEMMAP_TEXT_MAX 8
125 #define EC_MEMMAP_TEMP_SENSOR 0x00
126 #define EC_MEMMAP_FAN 0x10
127 #define EC_MEMMAP_TEMP_SENSOR_B 0x18
128 #define EC_MEMMAP_ID 0x20
129 #define EC_MEMMAP_ID_VERSION 0x22
130 #define EC_MEMMAP_THERMAL_VERSION 0x23
131 #define EC_MEMMAP_BATTERY_VERSION 0x24
132 #define EC_MEMMAP_SWITCHES_VERSION 0x25
133 #define EC_MEMMAP_EVENTS_VERSION 0x26
134 #define EC_MEMMAP_HOST_CMD_FLAGS 0x27
136 #define EC_MEMMAP_SWITCHES 0x30
138 #define EC_MEMMAP_HOST_EVENTS 0x34
140 #define EC_MEMMAP_BATT_VOLT 0x40
141 #define EC_MEMMAP_BATT_RATE 0x44
142 #define EC_MEMMAP_BATT_CAP 0x48
143 #define EC_MEMMAP_BATT_FLAG 0x4c
144 #define EC_MEMMAP_BATT_COUNT 0x4d
145 #define EC_MEMMAP_BATT_INDEX 0x4e
147 #define EC_MEMMAP_BATT_DCAP 0x50
148 #define EC_MEMMAP_BATT_DVLT 0x54
149 #define EC_MEMMAP_BATT_LFCC 0x58
150 #define EC_MEMMAP_BATT_CCNT 0x5c
152 #define EC_MEMMAP_BATT_MFGR 0x60
153 #define EC_MEMMAP_BATT_MODEL 0x68
154 #define EC_MEMMAP_BATT_SERIAL 0x70
155 #define EC_MEMMAP_BATT_TYPE 0x78
156 #define EC_MEMMAP_ALS 0x80
158 #define EC_MEMMAP_ACC_STATUS 0x90
160 #define EC_MEMMAP_ACC_DATA 0x92
164 #define EC_MEMMAP_GYRO_DATA 0xa0
172 #define EC_MEMMAP_NO_ACPI 0xe0
175 #define EC_MEMMAP_ACC_STATUS_SAMPLE_ID_MASK 0x0f
176 #define EC_MEMMAP_ACC_STATUS_BUSY_BIT BIT(4)
177 #define EC_MEMMAP_ACC_STATUS_PRESENCE_BIT BIT(7)
180 #define EC_TEMP_SENSOR_ENTRIES 16
186 #define EC_TEMP_SENSOR_B_ENTRIES 8
189 #define EC_MAX_TEMP_SENSOR_ENTRIES (EC_TEMP_SENSOR_ENTRIES + \
190 EC_TEMP_SENSOR_B_ENTRIES)
193 #define EC_TEMP_SENSOR_NOT_PRESENT 0xff
194 #define EC_TEMP_SENSOR_ERROR 0xfe
195 #define EC_TEMP_SENSOR_NOT_POWERED 0xfd
196 #define EC_TEMP_SENSOR_NOT_CALIBRATED 0xfc
201 #define EC_TEMP_SENSOR_OFFSET 200
206 #define EC_ALS_ENTRIES 2
213 #define EC_TEMP_SENSOR_DEFAULT (296 - EC_TEMP_SENSOR_OFFSET)
215 #define EC_FAN_SPEED_ENTRIES 4
216 #define EC_FAN_SPEED_NOT_PRESENT 0xffff
217 #define EC_FAN_SPEED_STALLED 0xfffe
220 #define EC_BATT_FLAG_AC_PRESENT 0x01
221 #define EC_BATT_FLAG_BATT_PRESENT 0x02
222 #define EC_BATT_FLAG_DISCHARGING 0x04
223 #define EC_BATT_FLAG_CHARGING 0x08
224 #define EC_BATT_FLAG_LEVEL_CRITICAL 0x10
226 #define EC_BATT_FLAG_INVALID_DATA 0x20
229 #define EC_SWITCH_LID_OPEN 0x01
230 #define EC_SWITCH_POWER_BUTTON_PRESSED 0x02
231 #define EC_SWITCH_WRITE_PROTECT_DISABLED 0x04
233 #define EC_SWITCH_IGNORE1 0x08
235 #define EC_SWITCH_DEDICATED_RECOVERY 0x10
237 #define EC_SWITCH_IGNORE0 0x20
241 #define EC_HOST_CMD_FLAG_LPC_ARGS_SUPPORTED 0x01
243 #define EC_HOST_CMD_FLAG_VERSION_3 0x02
246 #define EC_WIRELESS_SWITCH_ALL ~0x00
247 #define EC_WIRELESS_SWITCH_WLAN 0x01
248 #define EC_WIRELESS_SWITCH_BLUETOOTH 0x02
249 #define EC_WIRELESS_SWITCH_WWAN 0x04
250 #define EC_WIRELESS_SWITCH_WLAN_POWER 0x08
272 #define EC_CMD_ACPI_READ 0x0080
287 #define EC_CMD_ACPI_WRITE 0x0081
296 #define EC_CMD_ACPI_BURST_ENABLE 0x0082
304 #define EC_CMD_ACPI_BURST_DISABLE 0x0083
313 #define EC_CMD_ACPI_QUERY_EVENT 0x0084
318 #define EC_ACPI_MEM_VERSION 0x00
323 #define EC_ACPI_MEM_TEST 0x01
325 #define EC_ACPI_MEM_TEST_COMPLIMENT 0x02
328 #define EC_ACPI_MEM_KEYBOARD_BACKLIGHT 0x03
330 #define EC_ACPI_MEM_FAN_DUTY 0x04
347 #define EC_ACPI_MEM_TEMP_ID 0x05
348 #define EC_ACPI_MEM_TEMP_THRESHOLD 0x06
349 #define EC_ACPI_MEM_TEMP_COMMIT 0x07
356 #define EC_ACPI_MEM_TEMP_COMMIT_SELECT_MASK BIT(0)
357 #define EC_ACPI_MEM_TEMP_COMMIT_ENABLE_MASK BIT(1)
374 #define EC_ACPI_MEM_CHARGING_LIMIT 0x08
377 #define EC_ACPI_MEM_CHARGING_LIMIT_STEP_MA 64
379 #define EC_ACPI_MEM_CHARGING_LIMIT_DISABLED 0xff
391 #define EC_ACPI_MEM_DEVICE_ORIENTATION 0x09
392 #define EC_ACPI_MEM_TBMD_SHIFT 0
393 #define EC_ACPI_MEM_TBMD_MASK 0x1
394 #define EC_ACPI_MEM_DDPN_SHIFT 1
395 #define EC_ACPI_MEM_DDPN_MASK 0x7
409 #define EC_ACPI_MEM_DEVICE_FEATURES0 0x0a
410 #define EC_ACPI_MEM_DEVICE_FEATURES1 0x0b
411 #define EC_ACPI_MEM_DEVICE_FEATURES2 0x0c
412 #define EC_ACPI_MEM_DEVICE_FEATURES3 0x0d
413 #define EC_ACPI_MEM_DEVICE_FEATURES4 0x0e
414 #define EC_ACPI_MEM_DEVICE_FEATURES5 0x0f
415 #define EC_ACPI_MEM_DEVICE_FEATURES6 0x10
416 #define EC_ACPI_MEM_DEVICE_FEATURES7 0x11
418 #define EC_ACPI_MEM_BATTERY_INDEX 0x12
427 #define EC_ACPI_MEM_USB_PORT_POWER 0x13
454 #define EC_ACPI_MEM_USB_RETIMER_FW_UPDATE 0x14
456 #define USB_RETIMER_FW_UPDATE_OP_SHIFT 4
457 #define USB_RETIMER_FW_UPDATE_ERR 0xfe
458 #define USB_RETIMER_FW_UPDATE_INVALID_MUX 0xff
460 #define USB_RETIMER_FW_UPDATE_MUX_MASK (USB_PD_MUX_USB_ENABLED | \
461 USB_PD_MUX_DP_ENABLED | \
462 USB_PD_MUX_SAFE_MODE | \
463 USB_PD_MUX_TBT_COMPAT_ENABLED | \
464 USB_PD_MUX_USB4_ENABLED)
467 #define USB_RETIMER_FW_UPDATE_QUERY_PORT 0
468 #define USB_RETIMER_FW_UPDATE_SUSPEND_PD 1
469 #define USB_RETIMER_FW_UPDATE_RESUME_PD 2
470 #define USB_RETIMER_FW_UPDATE_GET_MUX 3
471 #define USB_RETIMER_FW_UPDATE_SET_USB 4
472 #define USB_RETIMER_FW_UPDATE_SET_SAFE 5
473 #define USB_RETIMER_FW_UPDATE_SET_TBT 6
474 #define USB_RETIMER_FW_UPDATE_DISCONNECT 7
476 #define EC_ACPI_MEM_USB_RETIMER_PORT(x) ((x) & 0x0f)
477 #define EC_ACPI_MEM_USB_RETIMER_OP(x) \
478 (((x) & 0xf0) >> USB_RETIMER_FW_UPDATE_OP_SHIFT)
484 #define EC_ACPI_MEM_MAPPED_BEGIN 0x20
485 #define EC_ACPI_MEM_MAPPED_SIZE 0xe0
488 #define EC_ACPI_MEM_VERSION_CURRENT 2
504 #define __packed __attribute__((packed))
508 #define __aligned(x) __attribute__((aligned(x)))
539 #ifdef CONFIG_HOSTCMD_ALIGNED
545 #define __ec_align1 __packed
546 #define __ec_align2 __packed __aligned(2)
547 #define __ec_align4 __packed __aligned(4)
557 #define __ec_align_size1 __packed
563 #define __ec_align_offset1 __packed
564 #define __ec_align_offset2 __packed __aligned(2)
574 #define __ec_todo_packed __packed
575 #define __ec_todo_unpacked
583 #define __ec_align1 __packed
584 #define __ec_align2 __packed
585 #define __ec_align4 __packed
586 #define __ec_align_size1 __packed
587 #define __ec_align_offset1 __packed
588 #define __ec_align_offset2 __packed
589 #define __ec_todo_packed __packed
590 #define __ec_todo_unpacked
596 #define EC_LPC_STATUS_TO_HOST 0x01
598 #define EC_LPC_STATUS_FROM_HOST 0x02
600 #define EC_LPC_STATUS_PROCESSING 0x04
602 #define EC_LPC_STATUS_LAST_CMD 0x08
604 #define EC_LPC_STATUS_BURST_MODE 0x10
606 #define EC_LPC_STATUS_SCI_PENDING 0x20
608 #define EC_LPC_STATUS_SMI_PENDING 0x40
610 #define EC_LPC_STATUS_RESERVED 0x80
616 #define EC_LPC_STATUS_BUSY_MASK \
617 (EC_LPC_STATUS_FROM_HOST | EC_LPC_STATUS_PROCESSING)
740 #define EC_HOST_EVENT_MASK(event_code) BIT_ULL((event_code) - 1)
767 #define EC_HOST_ARGS_FLAG_FROM_HOST 0x01
775 #define EC_HOST_ARGS_FLAG_TO_HOST 0x02
817 #define EC_SPI_FRAME_START 0xec
822 #define EC_SPI_PAST_END 0xed
829 #define EC_SPI_RX_READY 0xf8
835 #define EC_SPI_RECEIVING 0xf9
838 #define EC_SPI_PROCESSING 0xfa
844 #define EC_SPI_RX_BAD_DATA 0xfb
851 #define EC_SPI_NOT_READY 0xfc
858 #define EC_SPI_OLD_READY 0xfd
878 #define EC_PROTO2_REQUEST_HEADER_BYTES 3
879 #define EC_PROTO2_REQUEST_TRAILER_BYTES 1
880 #define EC_PROTO2_REQUEST_OVERHEAD (EC_PROTO2_REQUEST_HEADER_BYTES + \
881 EC_PROTO2_REQUEST_TRAILER_BYTES)
883 #define EC_PROTO2_RESPONSE_HEADER_BYTES 2
884 #define EC_PROTO2_RESPONSE_TRAILER_BYTES 1
885 #define EC_PROTO2_RESPONSE_OVERHEAD (EC_PROTO2_RESPONSE_HEADER_BYTES + \
886 EC_PROTO2_RESPONSE_TRAILER_BYTES)
889 #define EC_PROTO2_MAX_PARAM_SIZE 0xfc
892 #define EC_PROTO2_MAX_REQUEST_SIZE (EC_PROTO2_REQUEST_OVERHEAD + \
893 EC_PROTO2_MAX_PARAM_SIZE)
894 #define EC_PROTO2_MAX_RESPONSE_SIZE (EC_PROTO2_RESPONSE_OVERHEAD + \
895 EC_PROTO2_MAX_PARAM_SIZE)
903 #define EC_COMMAND_PROTOCOL_3 0xda
905 #define EC_HOST_REQUEST_VERSION 3
928 #define EC_HOST_RESPONSE_VERSION 3
1067 #define EC_PACKET4_0_STRUCT_VERSION_MASK 0x0f
1068 #define EC_PACKET4_0_IS_RESPONSE_MASK 0x10
1069 #define EC_PACKET4_0_SEQ_NUM_SHIFT 5
1070 #define EC_PACKET4_0_SEQ_NUM_MASK 0x60
1071 #define EC_PACKET4_0_SEQ_DUP_MASK 0x80
1074 #define EC_PACKET4_1_COMMAND_VERSION_MASK 0x1f
1075 #define EC_PACKET4_1_DATA_CRC_PRESENT_MASK 0x80
1099 #define EC_CMD_PROTO_VERSION 0x0000
1113 #define EC_CMD_HELLO 0x0001
1132 #define EC_CMD_GET_VERSION 0x0002
1134 #if !defined(CHROMIUM_EC) && !defined(__KERNEL__)
1140 #define ec_current_image ec_image
1188 #define EC_CMD_READ_TEST 0x0003
1213 #define EC_CMD_GET_BUILD_INFO 0x0004
1216 #define EC_CMD_GET_CHIP_INFO 0x0005
1231 #define EC_CMD_GET_BOARD_VERSION 0x0006
1249 #define EC_CMD_READ_MEMMAP 0x0007
1262 #define EC_CMD_GET_CMD_VERSIONS 0x0008
1297 #define EC_CMD_GET_COMMS_STATUS 0x0009
1314 #define EC_CMD_TEST_PROTOCOL 0x000A
1329 #define EC_CMD_GET_PROTOCOL_INFO 0x000B
1333 #define EC_PROTOCOL_INFO_IN_PROGRESS_SUPPORTED BIT(0)
1356 #define EC_GSV_SET 0x80000000
1362 #define EC_GSV_PARAM_MASK 0x00ffffff
1375 #define EC_CMD_GSV_PAUSE_IN_S5 0x000C
1379 #define EC_CMD_GET_FEATURES 0x000D
1512 #define EC_FEATURE_MASK_0(event_code) BIT(event_code % 32)
1513 #define EC_FEATURE_MASK_1(event_code) BIT(event_code - 32)
1521 #define EC_CMD_GET_SKU_ID 0x000E
1524 #define EC_CMD_SET_SKU_ID 0x000F
1534 #define EC_CMD_FLASH_INFO 0x0010
1535 #define EC_VER_FLASH_INFO 2
1560 #define EC_FLASH_INFO_ERASE_TO_0 BIT(0)
1569 #define EC_FLASH_INFO_SELECT_REQUIRED BIT(1)
1653 #define EC_CMD_FLASH_READ 0x0011
1666 #define EC_CMD_FLASH_WRITE 0x0012
1667 #define EC_VER_FLASH_WRITE 1
1670 #define EC_FLASH_WRITE_VER0_SIZE 64
1684 #define EC_CMD_FLASH_ERASE 0x0013
1743 #define EC_CMD_FLASH_PROTECT 0x0015
1744 #define EC_VER_FLASH_PROTECT 1
1748 #define EC_FLASH_PROTECT_RO_AT_BOOT BIT(0)
1753 #define EC_FLASH_PROTECT_RO_NOW BIT(1)
1755 #define EC_FLASH_PROTECT_ALL_NOW BIT(2)
1757 #define EC_FLASH_PROTECT_GPIO_ASSERTED BIT(3)
1759 #define EC_FLASH_PROTECT_ERROR_STUCK BIT(4)
1765 #define EC_FLASH_PROTECT_ERROR_INCONSISTENT BIT(5)
1767 #define EC_FLASH_PROTECT_ALL_AT_BOOT BIT(6)
1769 #define EC_FLASH_PROTECT_RW_AT_BOOT BIT(7)
1771 #define EC_FLASH_PROTECT_RW_NOW BIT(8)
1773 #define EC_FLASH_PROTECT_ROLLBACK_AT_BOOT BIT(9)
1775 #define EC_FLASH_PROTECT_ROLLBACK_NOW BIT(10)
1777 #define EC_FLASH_PROTECT_ERROR_UNKNOWN BIT(11)
1811 #define EC_CMD_FLASH_REGION_INFO 0x0016
1812 #define EC_VER_FLASH_REGION_INFO 1
1841 #define EC_FLASH_REGION_RW EC_FLASH_REGION_ACTIVE
1866 #define EC_CMD_VBNV_CONTEXT 0x0017
1867 #define EC_VER_VBNV_CONTEXT 1
1868 #define EC_VBNV_BLOCK_SIZE 16
1886 #define EC_CMD_FLASH_SPI_INFO 0x0018
1904 #define EC_CMD_FLASH_SELECT 0x0019
1921 #define EC_CMD_RAND_NUM 0x001A
1922 #define EC_VER_RAND_NUM 0
1938 #define EC_CMD_RWSIG_INFO 0x001B
1939 #define EC_VER_RWSIG_INFO 0
1941 #define VBOOT2_KEY_ID_BYTES 20
1945 #include "vb21_struct.h"
1979 #define EC_CMD_SYSINFO 0x001C
1980 #define EC_VER_SYSINFO 0
2006 #define EC_CMD_PWM_GET_FAN_TARGET_RPM 0x0020
2013 #define EC_CMD_PWM_SET_FAN_TARGET_RPM 0x0021
2028 #define EC_CMD_PWM_GET_KEYBOARD_BACKLIGHT 0x0022
2037 #define EC_CMD_PWM_SET_KEYBOARD_BACKLIGHT 0x0023
2044 #define EC_CMD_PWM_SET_FAN_DUTY 0x0024
2057 #define EC_CMD_PWM_SET_DUTY 0x0025
2059 #define EC_PWM_MAX_DUTY 0xffff
2077 #define EC_CMD_PWM_GET_DUTY 0x0026
2095 #define EC_CMD_LIGHTBAR_CMD 0x0028
2101 #define LB_BATTERY_LEVELS 4
2259 #define EC_LB_PROG_LEN 192
2402 #define EC_CMD_LED_CONTROL 0x0029
2427 #define EC_LED_FLAGS_QUERY BIT(0)
2428 #define EC_LED_FLAGS_AUTO BIT(1)
2468 #define EC_CMD_VBOOT_HASH 0x002A
2512 #define EC_VBOOT_HASH_OFFSET_RO 0xfffffffe
2513 #define EC_VBOOT_HASH_OFFSET_ACTIVE 0xfffffffd
2514 #define EC_VBOOT_HASH_OFFSET_UPDATE 0xfffffffc
2520 #define EC_VBOOT_HASH_OFFSET_RW EC_VBOOT_HASH_OFFSET_ACTIVE
2527 #define EC_CMD_MOTION_SENSE_CMD 0x002B
2804 #define MOTIONSENSE_MODULE_FLAG_ACTIVE BIT(0)
2807 #define MOTIONSENSE_SENSOR_FLAG_PRESENT BIT(0)
2813 #define MOTIONSENSE_SENSOR_FLAG_FLUSH BIT(0)
2814 #define MOTIONSENSE_SENSOR_FLAG_TIMESTAMP BIT(1)
2815 #define MOTIONSENSE_SENSOR_FLAG_WAKEUP BIT(2)
2816 #define MOTIONSENSE_SENSOR_FLAG_TABLET_MODE BIT(3)
2817 #define MOTIONSENSE_SENSOR_FLAG_ODR BIT(4)
2819 #define MOTIONSENSE_SENSOR_FLAG_BYPASS_FIFO BIT(7)
2826 #define EC_MOTION_SENSE_NO_VALUE -1
2828 #define EC_MOTION_SENSE_INVALID_CALIB_TEMP 0x8000
2832 #define MOTION_SENSE_SET_OFFSET BIT(0)
2835 #define MOTION_SENSE_DEFAULT_SCALE BIT(15)
2837 #define LID_ANGLE_UNRELIABLE 500
3214 #define EC_CMD_FORCE_LID_OPEN 0x002C
3222 #define EC_CMD_CONFIG_POWER_BUTTON 0x002D
3238 #define EC_CMD_USB_CHARGE_SET_MODE 0x0030
3274 #define EC_PSTORE_SIZE_MAX 64
3277 #define EC_CMD_PSTORE_INFO 0x0040
3291 #define EC_CMD_PSTORE_READ 0x0041
3299 #define EC_CMD_PSTORE_WRITE 0x0042
3320 #define EC_CMD_RTC_GET_VALUE 0x0044
3321 #define EC_CMD_RTC_GET_ALARM 0x0045
3324 #define EC_CMD_RTC_SET_VALUE 0x0046
3325 #define EC_CMD_RTC_SET_ALARM 0x0047
3328 #define EC_RTC_ALARM_CLEAR 0
3334 #define EC_PORT80_SIZE_MAX 32
3337 #define EC_CMD_PORT80_LAST_BOOT 0x0048
3338 #define EC_CMD_PORT80_READ 0x0048
3376 #define EC_VSTORE_SLOT_SIZE 64
3379 #define EC_VSTORE_SLOT_MAX 32
3382 #define EC_CMD_VSTORE_INFO 0x0049
3395 #define EC_CMD_VSTORE_READ 0x004A
3408 #define EC_CMD_VSTORE_WRITE 0x004B
3422 #define EC_CMD_THERMAL_SET_THRESHOLD 0x0050
3423 #define EC_CMD_THERMAL_GET_THRESHOLD 0x0051
3504 #define EC_CMD_THERMAL_AUTO_FAN_CTRL 0x0052
3512 #define EC_CMD_TMP006_GET_CALIBRATION 0x0053
3513 #define EC_CMD_TMP006_SET_CALIBRATION 0x0054
3564 #define EC_CMD_TMP006_GET_RAW 0x0055
3588 #define EC_CMD_MKBP_STATE 0x0060
3593 #define EC_CMD_MKBP_INFO 0x0061
3647 #define EC_CMD_MKBP_SIMULATE_KEY 0x0062
3655 #define EC_CMD_GET_KEYBOARD_ID 0x0063
3667 #define EC_CMD_MKBP_SET_CONFIG 0x0064
3668 #define EC_CMD_MKBP_GET_CONFIG 0x0065
3721 #define EC_CMD_KEYSCAN_SEQ_CTRL 0x0066
3782 #define EC_CMD_GET_NEXT_EVENT 0x0067
3784 #define EC_MKBP_HAS_MORE_EVENTS_SHIFT 7
3790 #define EC_MKBP_HAS_MORE_EVENTS BIT(EC_MKBP_HAS_MORE_EVENTS_SHIFT)
3793 #define EC_MKBP_EVENT_TYPE_MASK (BIT(EC_MKBP_HAS_MORE_EVENTS_SHIFT) - 1)
3913 #define EC_MKBP_POWER_BUTTON 0
3914 #define EC_MKBP_VOL_UP 1
3915 #define EC_MKBP_VOL_DOWN 2
3916 #define EC_MKBP_RECOVERY 3
3919 #define EC_MKBP_LID_OPEN 0
3920 #define EC_MKBP_TABLET_MODE 1
3921 #define EC_MKBP_BASE_ATTACHED 2
3922 #define EC_MKBP_FRONT_PROXIMITY 3
3925 #define EC_CMD_KEYBOARD_FACTORY_TEST 0x0068
3932 #define EC_MKBP_FP_RAW_EVENT(fp_events) ((fp_events) & 0x00FFFFFF)
3933 #define EC_MKBP_FP_ERRCODE(fp_events) ((fp_events) & 0x0000000F)
3934 #define EC_MKBP_FP_ENROLL_PROGRESS_OFFSET 4
3935 #define EC_MKBP_FP_ENROLL_PROGRESS(fpe) (((fpe) & 0x00000FF0) \
3936 >> EC_MKBP_FP_ENROLL_PROGRESS_OFFSET)
3937 #define EC_MKBP_FP_MATCH_IDX_OFFSET 12
3938 #define EC_MKBP_FP_MATCH_IDX_MASK 0x0000F000
3939 #define EC_MKBP_FP_MATCH_IDX(fpe) (((fpe) & EC_MKBP_FP_MATCH_IDX_MASK) \
3940 >> EC_MKBP_FP_MATCH_IDX_OFFSET)
3941 #define EC_MKBP_FP_ENROLL BIT(27)
3942 #define EC_MKBP_FP_MATCH BIT(28)
3943 #define EC_MKBP_FP_FINGER_DOWN BIT(29)
3944 #define EC_MKBP_FP_FINGER_UP BIT(30)
3945 #define EC_MKBP_FP_IMAGE_READY BIT(31)
3947 #define EC_MKBP_FP_ERR_ENROLL_OK 0
3948 #define EC_MKBP_FP_ERR_ENROLL_LOW_QUALITY 1
3949 #define EC_MKBP_FP_ERR_ENROLL_IMMOBILE 2
3950 #define EC_MKBP_FP_ERR_ENROLL_LOW_COVERAGE 3
3951 #define EC_MKBP_FP_ERR_ENROLL_INTERNAL 5
3953 #define EC_MKBP_FP_ERR_ENROLL_PROBLEM_MASK 1
3955 #define EC_MKBP_FP_ERR_MATCH_NO 0
3956 #define EC_MKBP_FP_ERR_MATCH_NO_INTERNAL 6
3957 #define EC_MKBP_FP_ERR_MATCH_NO_TEMPLATES 7
3958 #define EC_MKBP_FP_ERR_MATCH_NO_LOW_QUALITY 2
3959 #define EC_MKBP_FP_ERR_MATCH_NO_LOW_COVERAGE 4
3960 #define EC_MKBP_FP_ERR_MATCH_YES 1
3961 #define EC_MKBP_FP_ERR_MATCH_YES_UPDATED 3
3962 #define EC_MKBP_FP_ERR_MATCH_YES_UPDATE_FAILED 5
3965 #define EC_CMD_MKBP_WAKE_MASK 0x0069
4020 #define EC_CMD_TEMP_SENSOR_GET_INFO 0x0070
4057 #define EC_CMD_HOST_EVENT_GET_B 0x0087
4058 #define EC_CMD_HOST_EVENT_GET_SMI_MASK 0x0088
4059 #define EC_CMD_HOST_EVENT_GET_SCI_MASK 0x0089
4060 #define EC_CMD_HOST_EVENT_GET_WAKE_MASK 0x008D
4063 #define EC_CMD_HOST_EVENT_SET_SMI_MASK 0x008A
4064 #define EC_CMD_HOST_EVENT_SET_SCI_MASK 0x008B
4065 #define EC_CMD_HOST_EVENT_CLEAR 0x008C
4066 #define EC_CMD_HOST_EVENT_SET_WAKE_MASK 0x008E
4067 #define EC_CMD_HOST_EVENT_CLEAR_B 0x008F
4151 #define EC_CMD_HOST_EVENT 0x00A4
4157 #define EC_CMD_SWITCH_ENABLE_BKLIGHT 0x0090
4164 #define EC_CMD_SWITCH_ENABLE_WIRELESS 0x0091
4165 #define EC_VER_SWITCH_ENABLE_WIRELESS 1
4204 #define EC_CMD_GPIO_SET 0x0092
4212 #define EC_CMD_GPIO_GET 0x0093
4266 #define EC_CMD_I2C_READ 0x0094
4280 #define EC_CMD_I2C_WRITE 0x0095
4296 #define EC_CMD_CHARGE_CONTROL 0x0096
4297 #define EC_VER_CHARGE_CONTROL 2
4307 #define EC_CHARGE_MODE_TEXT { \
4308 [CHARGE_CONTROL_NORMAL] = "NORMAL", \
4309 [CHARGE_CONTROL_IDLE] = "IDLE", \
4310 [CHARGE_CONTROL_DISCHARGE] = "DISCHARGE", \
4351 #define EC_CMD_CONSOLE_SNAPSHOT 0x0097
4365 #define EC_CMD_CONSOLE_READ 0x0098
4385 #define EC_CMD_BATTERY_CUT_OFF 0x0099
4387 #define EC_BATTERY_CUTOFF_FLAG_AT_SHUTDOWN BIT(0)
4399 #define EC_CMD_USB_MUX 0x009A
4416 #define EC_CMD_LDO_SET 0x009B
4426 #define EC_CMD_LDO_GET 0x009C
4444 #define EC_CMD_POWER_INFO 0x009D
4508 #define EC_CMD_I2C_PASSTHRU 0x009E
4511 #define EC_I2C_FLAG_READ BIT(15)
4514 #define EC_I2C_ADDR_MASK 0x3ff
4516 #define EC_I2C_STATUS_NAK BIT(0)
4517 #define EC_I2C_STATUS_TIMEOUT BIT(1)
4520 #define EC_I2C_STATUS_ERROR (EC_I2C_STATUS_NAK | EC_I2C_STATUS_TIMEOUT)
4543 #define EC_CMD_HANG_DETECT 0x009F
4547 #define EC_HANG_START_ON_POWER_PRESS BIT(0)
4550 #define EC_HANG_START_ON_LID_CLOSE BIT(1)
4553 #define EC_HANG_START_ON_LID_OPEN BIT(2)
4556 #define EC_HANG_START_ON_RESUME BIT(3)
4561 #define EC_HANG_STOP_ON_POWER_RELEASE BIT(8)
4564 #define EC_HANG_STOP_ON_HOST_COMMAND BIT(9)
4567 #define EC_HANG_STOP_ON_SUSPEND BIT(10)
4575 #define EC_HANG_START_NOW BIT(30)
4582 #define EC_HANG_STOP_NOW BIT(31)
4602 #define EC_CMD_CHARGE_STATE 0x00A0
4687 #define EC_CMD_CHARGE_CURRENT_LIMIT 0x00A1
4696 #define EC_CMD_EXTERNAL_POWER_LIMIT 0x00A2
4704 #define EC_POWER_LIMIT_NONE 0xffff
4709 #define EC_CMD_OVERRIDE_DEDICATED_CHARGER_LIMIT 0x00A3
4720 #define EC_CMD_HIBERNATION_DELAY 0x00A8
4751 #define EC_CMD_HOST_SLEEP_EVENT 0x00A9
4770 #define EC_HOST_SLEEP_TIMEOUT_DEFAULT 0
4773 #define EC_HOST_SLEEP_TIMEOUT_INFINITE 0xFFFF
4798 #define EC_HOST_RESUME_SLEEP_TIMEOUT 0x80000000
4805 #define EC_HOST_RESUME_SLEEP_TRANSITIONS_MASK 0x7FFFFFFF
4825 #define EC_CMD_DEVICE_EVENT 0x00AA
4843 #define EC_DEVICE_EVENT_MASK(event_code) BIT(event_code % 32)
4858 #define EC_CMD_SB_READ_WORD 0x00B0
4859 #define EC_CMD_SB_WRITE_WORD 0x00B1
4864 #define EC_CMD_SB_READ_BLOCK 0x00B2
4865 #define EC_CMD_SB_WRITE_BLOCK 0x00B3
4898 #define EC_CMD_BATTERY_VENDOR_PARAM 0x00B4
4919 #define EC_CMD_SB_FW_UPDATE 0x00B5
4932 #define SB_FW_UPDATE_CMD_WRITE_BLOCK_SIZE 32
4933 #define SB_FW_UPDATE_CMD_STATUS_SIZE 2
4934 #define SB_FW_UPDATE_CMD_INFO_SIZE 8
4981 #define EC_CMD_ENTERING_MODE 0x00B6
4987 #define VBOOT_MODE_NORMAL 0
4988 #define VBOOT_MODE_DEVELOPER 1
4989 #define VBOOT_MODE_RECOVERY 2
4996 #define EC_CMD_I2C_PASSTHRU_PROTECT 0x00B7
5021 #define MAX_CEC_MSG_LEN 16
5024 #define EC_CMD_CEC_WRITE_MSG 0x00B8
5035 #define EC_CMD_CEC_SET 0x00BA
5051 #define EC_CMD_CEC_GET 0x00BB
5091 #define EC_CMD_EC_CODEC 0x00BC
5155 #define EC_CMD_EC_CODEC_DMIC 0x00BD
5211 #define EC_CMD_EC_CODEC_I2S_RX 0x00BE
5262 set_sample_depth_param;
5273 #define EC_CMD_EC_CODEC_WOV 0x00BF
5335 #define EC_CMD_PSE 0x00C0
5366 #define EC_CMD_REBOOT_EC 0x00D2
5382 #define EC_REBOOT_FLAG_RESERVED0 BIT(0)
5383 #define EC_REBOOT_FLAG_ON_AP_SHUTDOWN BIT(1)
5384 #define EC_REBOOT_FLAG_SWITCH_RW_SLOT BIT(2)
5397 #define EC_CMD_GET_PANIC_INFO 0x00D3
5416 #define EC_CMD_REBOOT 0x00D1
5425 #define EC_CMD_RESEND_RESPONSE 0x00DB
5437 #define EC_CMD_VERSION0 0x00DC
5447 #define EC_CMD_PD_EXCHANGE_STATUS 0x0100
5448 #define EC_VER_PD_EXCHANGE_STATUS 2
5458 #define EC_STATUS_HIBERNATING BIT(0)
5467 #define PD_STATUS_HOST_EVENT BIT(0)
5468 #define PD_STATUS_IN_RW BIT(1)
5469 #define PD_STATUS_JUMPED_TO_IMAGE BIT(2)
5470 #define PD_STATUS_TCPC_ALERT_0 BIT(3)
5471 #define PD_STATUS_TCPC_ALERT_1 BIT(4)
5472 #define PD_STATUS_TCPC_ALERT_2 BIT(5)
5473 #define PD_STATUS_TCPC_ALERT_3 BIT(6)
5474 #define PD_STATUS_EC_INT_ACTIVE (PD_STATUS_TCPC_ALERT_0 | \
5475 PD_STATUS_TCPC_ALERT_1 | \
5476 PD_STATUS_HOST_EVENT)
5484 #define EC_CMD_PD_HOST_EVENT_STATUS 0x0104
5487 #define PD_EVENT_UPDATE_DEVICE BIT(0)
5488 #define PD_EVENT_POWER_CHANGE BIT(1)
5489 #define PD_EVENT_IDENTITY_RECEIVED BIT(2)
5490 #define PD_EVENT_DATA_SWAP BIT(3)
5491 #define PD_EVENT_TYPEC BIT(4)
5504 #define EC_CMD_USB_PD_CONTROL 0x0101
5541 #define PD_CTRL_RESP_ENABLED_COMMS BIT(0)
5542 #define PD_CTRL_RESP_ENABLED_CONNECTED BIT(1)
5543 #define PD_CTRL_RESP_ENABLED_PD_CAPABLE BIT(2)
5545 #define PD_CTRL_RESP_ROLE_POWER BIT(0)
5546 #define PD_CTRL_RESP_ROLE_DATA BIT(1)
5547 #define PD_CTRL_RESP_ROLE_VCONN BIT(2)
5548 #define PD_CTRL_RESP_ROLE_DR_POWER BIT(3)
5549 #define PD_CTRL_RESP_ROLE_DR_DATA BIT(4)
5550 #define PD_CTRL_RESP_ROLE_USB_COMM BIT(5)
5551 #define PD_CTRL_RESP_ROLE_UNCONSTRAINED BIT(6)
5583 #define USB_PD_CTRL_ACTIVE_CABLE BIT(0)
5585 #define USB_PD_CTRL_OPTICAL_CABLE BIT(1)
5587 #define USB_PD_CTRL_TBT_LEGACY_ADAPTER BIT(2)
5589 #define USB_PD_CTRL_ACTIVE_LINK_UNIDIR BIT(3)
5604 #define EC_CMD_USB_PD_PORTS 0x0102
5607 #define EC_USB_PD_MAX_PORTS 8
5613 #define EC_CMD_USB_PD_POWER_INFO 0x0103
5615 #define PD_POWER_CHARGING_PORT 0xff
5662 #define EC_CMD_CHARGE_PORT_COUNT 0x0105
5668 #define EC_CMD_USB_PD_FW_UPDATE 0x0110
5686 #define EC_CMD_USB_PD_RW_HASH_ENTRY 0x0111
5688 #define PD_RW_HASH_SIZE 20
5701 #define EC_CMD_USB_PD_DEV_INFO 0x0112
5708 #define EC_CMD_USB_PD_DISCOVERY 0x0113
5716 #define EC_CMD_PD_CHARGE_PORT_OVERRIDE 0x0114
5734 #define EC_CMD_PD_GET_LOG_ENTRY 0x0115
5745 #define PD_LOG_TIMESTAMP_SHIFT 10
5747 #define PD_LOG_SIZE_MASK 0x1f
5748 #define PD_LOG_PORT_MASK 0xe0
5749 #define PD_LOG_PORT_SHIFT 5
5750 #define PD_LOG_PORT_SIZE(port, size) (((port) << PD_LOG_PORT_SHIFT) | \
5751 ((size) & PD_LOG_SIZE_MASK))
5752 #define PD_LOG_PORT(size_port) ((size_port) >> PD_LOG_PORT_SHIFT)
5753 #define PD_LOG_SIZE(size_port) ((size_port) & PD_LOG_SIZE_MASK)
5757 #define PD_EVENT_MCU_BASE 0x00
5758 #define PD_EVENT_MCU_CHARGE (PD_EVENT_MCU_BASE+0)
5759 #define PD_EVENT_MCU_CONNECT (PD_EVENT_MCU_BASE+1)
5761 #define PD_EVENT_MCU_BOARD_CUSTOM (PD_EVENT_MCU_BASE+2)
5763 #define PD_EVENT_ACC_BASE 0x20
5764 #define PD_EVENT_ACC_RW_FAIL (PD_EVENT_ACC_BASE+0)
5765 #define PD_EVENT_ACC_RW_ERASE (PD_EVENT_ACC_BASE+1)
5767 #define PD_EVENT_PS_BASE 0x40
5768 #define PD_EVENT_PS_FAULT (PD_EVENT_PS_BASE+0)
5770 #define PD_EVENT_VIDEO_BASE 0x60
5771 #define PD_EVENT_VIDEO_DP_MODE (PD_EVENT_VIDEO_BASE+0)
5772 #define PD_EVENT_VIDEO_CODEC (PD_EVENT_VIDEO_BASE+1)
5774 #define PD_EVENT_NO_ENTRY 0xff
5782 #define CHARGE_FLAGS_DUAL_ROLE BIT(15)
5784 #define CHARGE_FLAGS_DELAYED_OVERRIDE BIT(14)
5786 #define CHARGE_FLAGS_OVERRIDE BIT(13)
5788 #define CHARGE_FLAGS_TYPE_SHIFT 3
5789 #define CHARGE_FLAGS_TYPE_MASK (0xf << CHARGE_FLAGS_TYPE_SHIFT)
5791 #define CHARGE_FLAGS_ROLE_MASK (7 << 0)
5796 #define PS_FAULT_OCP 1
5797 #define PS_FAULT_FAST_OCP 2
5798 #define PS_FAULT_OVP 3
5799 #define PS_FAULT_DISCH 4
5818 #define MCDP_CHIPID(chipid) ((chipid[0] << 8) | chipid[1])
5819 #define MCDP_FAMILY(family) ((family[0] << 8) | family[1])
5822 #define EC_CMD_USB_PD_GET_AMODE 0x0116
5834 #define EC_CMD_USB_PD_SET_AMODE 0x0117
5851 #define EC_CMD_PD_WRITE_LOG_ENTRY 0x0118
5860 #define EC_CMD_PD_CONTROL 0x0119
5876 #define EC_CMD_USB_PD_MUX_INFO 0x011A
5883 #define USB_PD_MUX_NONE 0
5884 #define USB_PD_MUX_USB_ENABLED BIT(0)
5885 #define USB_PD_MUX_DP_ENABLED BIT(1)
5886 #define USB_PD_MUX_POLARITY_INVERTED BIT(2)
5887 #define USB_PD_MUX_HPD_IRQ BIT(3)
5888 #define USB_PD_MUX_HPD_IRQ_DEASSERTED 0
5889 #define USB_PD_MUX_HPD_LVL BIT(4)
5890 #define USB_PD_MUX_HPD_LVL_DEASSERTED 0
5891 #define USB_PD_MUX_SAFE_MODE BIT(5)
5892 #define USB_PD_MUX_TBT_COMPAT_ENABLED BIT(6)
5893 #define USB_PD_MUX_USB4_ENABLED BIT(7)
5896 #define USB_PD_MUX_DOCK (USB_PD_MUX_USB_ENABLED | USB_PD_MUX_DP_ENABLED)
5902 #define EC_CMD_PD_CHIP_INFO 0x011B
5939 #define EC_CMD_RWSIG_CHECK_STATUS 0x011C
5946 #define EC_CMD_RWSIG_ACTION 0x011D
5958 #define EC_CMD_EFS_VERIFY 0x011E
5969 #define EC_CMD_GET_CROS_BOARD_INFO 0x011F
5974 #define EC_CMD_SET_CROS_BOARD_INFO 0x0120
5997 #define CBI_GET_RELOAD BIT(0)
6012 #define CBI_SET_NO_SYNC BIT(0)
6013 #define CBI_SET_INIT BIT(1)
6025 #define EC_CMD_GET_UPTIME_INFO 0x0121
6028 #define EC_RESET_FLAG_OTHER BIT(0)
6029 #define EC_RESET_FLAG_RESET_PIN BIT(1)
6030 #define EC_RESET_FLAG_BROWNOUT BIT(2)
6031 #define EC_RESET_FLAG_POWER_ON BIT(3)
6032 #define EC_RESET_FLAG_WATCHDOG BIT(4)
6033 #define EC_RESET_FLAG_SOFT BIT(5)
6034 #define EC_RESET_FLAG_HIBERNATE BIT(6)
6035 #define EC_RESET_FLAG_RTC_ALARM BIT(7)
6036 #define EC_RESET_FLAG_WAKE_PIN BIT(8)
6037 #define EC_RESET_FLAG_LOW_BATTERY BIT(9)
6038 #define EC_RESET_FLAG_SYSJUMP BIT(10)
6039 #define EC_RESET_FLAG_HARD BIT(11)
6040 #define EC_RESET_FLAG_AP_OFF BIT(12)
6041 #define EC_RESET_FLAG_PRESERVED BIT(13)
6044 #define EC_RESET_FLAG_USB_RESUME BIT(14)
6045 #define EC_RESET_FLAG_RDD BIT(15)
6046 #define EC_RESET_FLAG_RBOX BIT(16)
6047 #define EC_RESET_FLAG_SECURITY BIT(17)
6048 #define EC_RESET_FLAG_AP_WATCHDOG BIT(18)
6049 #define EC_RESET_FLAG_STAY_IN_RO BIT(19)
6052 #define EC_RESET_FLAG_EFS BIT(20)
6053 #define EC_RESET_FLAG_AP_IDLE BIT(21)
6054 #define EC_RESET_FLAG_INITIAL_PWR BIT(22)
6171 #define EC_CMD_ADD_ENTROPY 0x0122
6193 #define EC_CMD_ADC_READ 0x0123
6206 #define EC_CMD_ROLLBACK_INFO 0x0124
6216 #define EC_CMD_AP_RESET 0x0125
6226 #define EC_CMD_LOCATE_CHIP 0x0126
6278 #define EC_CMD_REBOOT_AP_ON_G3 0x0127
6298 #define EC_CMD_GET_PD_PORT_CAPS 0x0128
6363 #define EC_CMD_BUTTON 0x0129
6402 #define EC_CMD_GET_KEYBD_CONFIG 0x012A
6433 #define MAX_TOP_ROW_KEYS 15
6434 #define MIN_TOP_ROW_KEYS 10
6441 #define KEYBD_CAP_FUNCTION_KEYS BIT(0)
6445 #define KEYBD_CAP_NUMERIC_KEYPAD BIT(1)
6449 #define KEYBD_CAP_SCRNLOCK_KEY BIT(2)
6474 #define EC_CMD_SMART_DISCHARGE 0x012B
6476 #define EC_SMART_DISCHARGE_FLAGS_SET BIT(0)
6517 #define EC_CMD_REGULATOR_GET_INFO 0x012C
6520 #define EC_REGULATOR_NAME_MAX_LEN 16
6523 #define EC_REGULATOR_VOLTAGE_MAX_COUNT 16
6538 #define EC_CMD_REGULATOR_ENABLE 0x012D
6550 #define EC_CMD_REGULATOR_IS_ENABLED 0x012E
6568 #define EC_CMD_REGULATOR_SET_VOLTAGE 0x012F
6582 #define EC_CMD_REGULATOR_GET_VOLTAGE 0x0130
6603 #define EC_CMD_TYPEC_DISCOVERY 0x0131
6630 #define EC_CMD_TYPEC_CONTROL 0x0132
6683 #define EC_CMD_TYPEC_STATUS 0x0133
6744 #define MODE_DP_PIN_A BIT(0)
6745 #define MODE_DP_PIN_B BIT(1)
6746 #define MODE_DP_PIN_C BIT(2)
6747 #define MODE_DP_PIN_D BIT(3)
6748 #define MODE_DP_PIN_E BIT(4)
6749 #define MODE_DP_PIN_F BIT(5)
6750 #define MODE_DP_PIN_ALL GENMASK(5, 0)
6752 #define PD_STATUS_EVENT_SOP_DISC_DONE BIT(0)
6753 #define PD_STATUS_EVENT_SOP_PRIME_DISC_DONE BIT(1)
6754 #define PD_STATUS_EVENT_HARD_RESET BIT(2)
6755 #define PD_STATUS_EVENT_DISCONNECTED BIT(3)
6764 #define PD_STATUS_REV_SET_MAJOR(r) ((r + 1) << 12)
6765 #define PD_STATUS_REV_GET_MAJOR(r) ((r >> 12) & 0xF)
6766 #define PD_STATUS_REV_GET_MINOR(r) ((r >> 8) & 0xF)
6774 #define PDO_TYPE_FIXED (0 << 30)
6775 #define PDO_TYPE_BATTERY (1 << 30)
6776 #define PDO_TYPE_VARIABLE (2 << 30)
6777 #define PDO_TYPE_AUGMENTED (3 << 30)
6778 #define PDO_TYPE_MASK (3 << 30)
6793 #define PDO_FIXED_DUAL_ROLE BIT(29)
6794 #define PDO_FIXED_UNCONSTRAINED BIT(27)
6795 #define PDO_FIXED_COMM_CAP BIT(26)
6796 #define PDO_FIXED_DATA_SWAP BIT(25)
6797 #define PDO_FIXED_FRS_CURR_MASK GENMASK(24, 23)
6798 #define PDO_FIXED_VOLTAGE(p) ((p >> 10 & 0x3FF) * 50)
6799 #define PDO_FIXED_CURRENT(p) ((p & 0x3FF) * 10)
6809 #define PDO_BATT_MAX_VOLTAGE(p) ((p >> 20 & 0x3FF) * 50)
6810 #define PDO_BATT_MIN_VOLTAGE(p) ((p >> 10 & 0x3FF) * 50)
6811 #define PDO_BATT_MAX_POWER(p) ((p & 0x3FF) * 250)
6821 #define PDO_VAR_MAX_VOLTAGE(p) ((p >> 20 & 0x3FF) * 50)
6822 #define PDO_VAR_MIN_VOLTAGE(p) ((p >> 10 & 0x3FF) * 50)
6823 #define PDO_VAR_MAX_CURRENT(p) ((p & 0x3FF) * 10)
6841 #define PDO_AUG_MAX_VOLTAGE(p) ((p >> 17 & 0xFF) * 100)
6842 #define PDO_AUG_MIN_VOLTAGE(p) ((p >> 8 & 0xFF) * 100)
6843 #define PDO_AUG_MAX_CURRENT(p) ((p & 0x7F) * 50)
6890 #define EC_CMD_PCHG_COUNT 0x0134
6892 #define EC_PCHG_MAX_PORTS 8
6901 #define EC_CMD_PCHG 0x0135
6941 #define EC_PCHG_STATE_TEXT { \
6942 [PCHG_STATE_RESET] = "RESET", \
6943 [PCHG_STATE_INITIALIZED] = "INITIALIZED", \
6944 [PCHG_STATE_ENABLED] = "ENABLED", \
6945 [PCHG_STATE_DETECTED] = "DETECTED", \
6946 [PCHG_STATE_CHARGING] = "CHARGING", \
6947 [PCHG_STATE_FULL] = "FULL", \
6948 [PCHG_STATE_DOWNLOAD] = "DOWNLOAD", \
6949 [PCHG_STATE_DOWNLOADING] = "DOWNLOADING", \
6950 [PCHG_STATE_CONNECTED] = "CONNECTED", \
6956 #define EC_CMD_PCHG_UPDATE 0x0136
6959 #define EC_MKBP_PCHG_PORT_SHIFT 28
6961 #define EC_MKBP_PCHG_EVENT_TO_PORT(e) (((e) >> EC_MKBP_PCHG_PORT_SHIFT) & 0xf)
6962 #define EC_MKBP_PCHG_PORT_TO_EVENT(p) (BIT((p) + EC_MKBP_PCHG_PORT_SHIFT))
6964 #define EC_MKBP_PCHG_EVENT_MASK(e) ((e) \
6965 & GENMASK(EC_MKBP_PCHG_PORT_SHIFT-1, 0))
6967 #define EC_MKBP_PCHG_UPDATE_OPENED BIT(0)
6968 #define EC_MKBP_PCHG_WRITE_COMPLETE BIT(1)
6969 #define EC_MKBP_PCHG_UPDATE_CLOSED BIT(2)
6970 #define EC_MKBP_PCHG_UPDATE_ERROR BIT(3)
6971 #define EC_MKBP_PCHG_DEVICE_EVENT BIT(4)
7015 #define EC_CMD_DISPLAY_SOC 0x0137
7024 #define EC_CMD_SET_BASE_STATE 0x0138
7036 #define EC_CMD_I2C_CONTROL 0x0139
7045 #define EC_I2C_CONTROL_SPEED_UNKNOWN 0
7068 #define EC_CMD_CR51_BASE 0x0300
7069 #define EC_CMD_CR51_LAST 0x03FF
7075 #define EC_CMD_FP_PASSTHRU 0x0400
7077 #define EC_FP_FLAG_NOT_COMPLETE 0x1
7086 #define EC_CMD_FP_MODE 0x0402
7089 #define FP_MODE_DEEPSLEEP BIT(0)
7091 #define FP_MODE_FINGER_DOWN BIT(1)
7093 #define FP_MODE_FINGER_UP BIT(2)
7095 #define FP_MODE_CAPTURE BIT(3)
7097 #define FP_MODE_ENROLL_SESSION BIT(4)
7099 #define FP_MODE_ENROLL_IMAGE BIT(5)
7101 #define FP_MODE_MATCH BIT(6)
7103 #define FP_MODE_RESET_SENSOR BIT(7)
7105 #define FP_MODE_SENSOR_MAINTENANCE BIT(8)
7107 #define FP_MODE_DONT_CHANGE BIT(31)
7109 #define FP_VALID_MODES (FP_MODE_DEEPSLEEP | \
7110 FP_MODE_FINGER_DOWN | \
7111 FP_MODE_FINGER_UP | \
7113 FP_MODE_ENROLL_SESSION | \
7114 FP_MODE_ENROLL_IMAGE | \
7116 FP_MODE_RESET_SENSOR | \
7117 FP_MODE_SENSOR_MAINTENANCE | \
7118 FP_MODE_DONT_CHANGE)
7121 #define FP_MODE_CAPTURE_TYPE_SHIFT 28
7122 #define FP_MODE_CAPTURE_TYPE_MASK (0x7 << FP_MODE_CAPTURE_TYPE_SHIFT)
7143 #define FP_CAPTURE_TYPE(mode) (((mode) & FP_MODE_CAPTURE_TYPE_MASK) \
7144 >> FP_MODE_CAPTURE_TYPE_SHIFT)
7155 #define EC_CMD_FP_INFO 0x0403
7158 #define FP_ERROR_DEAD_PIXELS(errors) ((errors) & 0x3FF)
7160 #define FP_ERROR_DEAD_PIXELS_UNKNOWN (0x3FF)
7162 #define FP_ERROR_NO_IRQ BIT(12)
7164 #define FP_ERROR_SPI_COMM BIT(13)
7166 #define FP_ERROR_BAD_HWID BIT(14)
7168 #define FP_ERROR_INIT_FAIL BIT(15)
7207 #define EC_CMD_FP_FRAME 0x0404
7210 #define FP_FRAME_INDEX_SHIFT 28
7212 #define FP_FRAME_INDEX_RAW_IMAGE 0
7214 #define FP_FRAME_INDEX_TEMPLATE 1
7215 #define FP_FRAME_GET_BUFFER_INDEX(offset) ((offset) >> FP_FRAME_INDEX_SHIFT)
7216 #define FP_FRAME_OFFSET_MASK 0x0FFFFFFF
7219 #define FP_TEMPLATE_FORMAT_VERSION 4
7222 #define FP_CONTEXT_NONCE_BYTES 12
7223 #define FP_CONTEXT_USERID_WORDS (32 / sizeof(uint32_t))
7224 #define FP_CONTEXT_TAG_BYTES 16
7225 #define FP_CONTEXT_ENCRYPTION_SALT_BYTES 16
7226 #define FP_CONTEXT_TPM_BYTES 32
7229 #define FP_POSITIVE_MATCH_SALT_BYTES 16
7258 #define EC_CMD_FP_TEMPLATE 0x0405
7261 #define FP_TEMPLATE_COMMIT 0x80000000
7270 #define EC_CMD_FP_CONTEXT 0x0406
7288 #define EC_CMD_FP_STATS 0x0407
7290 #define FPSTATS_CAPTURE_INV BIT(0)
7291 #define FPSTATS_MATCHING_INV BIT(1)
7305 #define EC_CMD_FP_SEED 0x0408
7317 #define EC_CMD_FP_ENC_STATUS 0x0409
7320 #define FP_ENC_STATUS_SEED_SET BIT(0)
7329 #define EC_CMD_FP_READ_MATCH_SECRET 0x040A
7335 #define FP_POSITIVE_MATCH_SECRET_BYTES 32
7344 #define EC_CMD_TP_SELF_TEST 0x0500
7347 #define EC_CMD_TP_FRAME_INFO 0x0501
7355 #define EC_CMD_TP_FRAME_SNAPSHOT 0x0502
7358 #define EC_CMD_TP_FRAME_GET 0x0503
7369 #define EC_COMM_TEXT_MAX 8
7375 #define EC_CMD_BATTERY_GET_STATIC 0x0600
7432 #define EC_CMD_BATTERY_GET_DYNAMIC 0x0601
7465 #define EC_CMD_CHARGER_CONTROL 0x0602
7484 #define EC_CMD_USB_PD_MUX_ACK 0x0603
7516 #define EC_CMD_BOARD_SPECIFIC_BASE 0x3E00
7517 #define EC_CMD_BOARD_SPECIFIC_LAST 0x3FFF
7523 #define EC_PRIVATE_HOST_COMMAND_VALUE(command) \
7524 (EC_CMD_BOARD_SPECIFIC_BASE + (command))
7550 #define EC_CMD_PASSTHRU_OFFSET(n) (0x4000 * (n))
7551 #define EC_CMD_PASSTHRU_MAX(n) (EC_CMD_PASSTHRU_OFFSET(n) + 0x3fff)
7560 #define EC_HOST_PARAM_SIZE EC_PROTO2_MAX_PARAM_SIZE
7561 #define EC_LPC_ADDR_OLD_PARAM EC_HOST_CMD_REGION1
7562 #define EC_OLD_PARAM_SIZE EC_HOST_CMD_REGION_SIZE
static struct smmstore_params_info info
motion_sense_cmd_info_flags
@ MOTION_SENSE_CMD_INFO_FLAG_ONLINE_CALIB
@ EC_VBNV_CONTEXT_OP_WRITE
@ EC_VBNV_CONTEXT_OP_READ
@ EC_VBOOT_HASH_STATUS_DONE
@ EC_VBOOT_HASH_STATUS_NONE
@ EC_VBOOT_HASH_STATUS_BUSY
@ EC_PD_POWER_ROLE_SOURCE
@ HOST_SLEEP_EVENT_S3_RESUME
@ HOST_SLEEP_EVENT_S0IX_SUSPEND
@ HOST_SLEEP_EVENT_S0IX_RESUME
@ HOST_SLEEP_EVENT_S3_WAKEABLE_SUSPEND
@ HOST_SLEEP_EVENT_S3_SUSPEND
ec_i2c_passthru_protect_subcmd
@ EC_CMD_I2C_PASSTHRU_PROTECT_ENABLE
@ EC_CMD_I2C_PASSTHRU_PROTECT_ENABLE_TCPCS
@ EC_CMD_I2C_PASSTHRU_PROTECT_STATUS
@ MOTIONSENSE_CMD_SET_ACTIVITY
@ MOTIONSENSE_CMD_SENSOR_ODR
@ MOTIONSENSE_CMD_FIFO_INT_ENABLE
@ MOTIONSENSE_CMD_LID_ANGLE
@ MOTIONSENSE_CMD_SENSOR_OFFSET
@ MOTIONSENSE_CMD_KB_WAKE_ANGLE
@ MOTIONSENSE_CMD_SENSOR_SCALE
@ MOTIONSENSE_CMD_ONLINE_CALIB_READ
@ MOTIONSENSE_CMD_EC_RATE
@ MOTIONSENSE_CMD_GET_ACTIVITY
@ MOTIONSENSE_CMD_FIFO_READ
@ MOTIONSENSE_CMD_PERFORM_CALIB
@ MOTIONSENSE_CMD_SENSOR_RANGE
@ MOTIONSENSE_CMD_FIFO_INFO
@ MOTIONSENSE_CMD_FIFO_FLUSH
@ MOTIONSENSE_CMD_TABLET_MODE_LID_ANGLE
@ MOTIONSENSE_CMD_LIST_ACTIVITIES
@ EC_CHARGE_CONTROL_CMD_SET
@ EC_CHARGE_CONTROL_CMD_GET
@ CHARGE_STATE_CMD_GET_PARAM
@ CHARGE_STATE_CMD_SET_PARAM
@ CHARGE_STATE_CMD_GET_STATE
@ EC_KEYSCAN_SEQ_FLAG_DONE
@ EC_CODEC_WOV_READ_AUDIO
@ EC_CODEC_WOV_SUBCMD_COUNT
@ EC_CODEC_WOV_SET_LANG_SHM
@ EC_CODEC_WOV_READ_AUDIO_SHM
@ EC_MKBP_EVENT_WAKE_MASK
@ EC_MKBP_HOST_EVENT_WAKE_MASK
#define EC_MKBP_EVENT_TYPE_MASK
#define LB_BATTERY_LEVELS
@ EC_CODEC_DMIC_SET_GAIN_IDX
@ EC_CODEC_DMIC_SUBCMD_COUNT
@ EC_CODEC_DMIC_GET_GAIN_IDX
@ EC_CODEC_DMIC_GET_MAX_GAIN
@ EC_COMMS_STATUS_PROCESSING
@ MOTIONSENSE_SPOOF_MODE_CUSTOM
@ MOTIONSENSE_SPOOF_MODE_QUERY
@ MOTIONSENSE_SPOOF_MODE_LOCK_CURRENT
@ MOTIONSENSE_SPOOF_MODE_DISABLE
ec_codec_i2s_rx_sample_depth
@ EC_CODEC_I2S_RX_SAMPLE_DEPTH_24
@ EC_CODEC_I2S_RX_SAMPLE_DEPTH_COUNT
@ EC_CODEC_I2S_RX_SAMPLE_DEPTH_16
@ EC_HOST_EVENT_AC_DISCONNECTED
@ EC_HOST_EVENT_THERMAL_THRESHOLD
@ EC_HOST_EVENT_POWER_BUTTON
@ EC_HOST_EVENT_THROTTLE_START
@ EC_HOST_EVENT_THROTTLE_STOP
@ EC_HOST_EVENT_INTERFACE_READY
@ EC_HOST_EVENT_BATTERY_CRITICAL
@ EC_HOST_EVENT_LID_CLOSED
@ EC_HOST_EVENT_KEY_PRESSED
@ EC_HOST_EVENT_KEYBOARD_RECOVERY
@ EC_HOST_EVENT_THERMAL_SHUTDOWN
@ EC_HOST_EVENT_HANG_DETECT
@ EC_HOST_EVENT_KEYBOARD_FASTBOOT
@ EC_HOST_EVENT_BATTERY_SHUTDOWN
@ EC_HOST_EVENT_USB_CHARGER
@ EC_HOST_EVENT_HANG_REBOOT
@ EC_HOST_EVENT_KEYBOARD_RECOVERY_HW_REINIT
@ EC_HOST_EVENT_BATTERY_STATUS
@ EC_HOST_EVENT_AC_CONNECTED
@ EC_HOST_EVENT_MODE_CHANGE
@ EC_HOST_EVENT_BATTERY_LOW
@ EC_SET_BASE_STATE_ATTACH
@ EC_SET_BASE_STATE_DETACH
@ EC_SET_BASE_STATE_RESET
@ EC_MKBP_VALID_POLL_TIMEOUT
@ EC_MKBP_VALID_MIN_POST_SCAN_DELAY
@ EC_MKBP_VALID_SCAN_PERIOD
@ EC_MKBP_VALID_FIFO_MAX_DEPTH
@ EC_MKBP_VALID_DEBOUNCE_UP
@ EC_MKBP_VALID_OUTPUT_SETTLE
@ EC_MKBP_VALID_DEBOUNCE_DOWN
@ EC_I2C_CONTROL_SET_SPEED
@ EC_I2C_CONTROL_GET_SPEED
@ ADD_ENTROPY_RESET_ASYNC
@ EC_CODEC_DMIC_CHANNEL_0
@ EC_CODEC_DMIC_CHANNEL_5
@ EC_CODEC_DMIC_CHANNEL_1
@ EC_CODEC_DMIC_CHANNEL_2
@ EC_CODEC_DMIC_CHANNEL_6
@ EC_CODEC_DMIC_CHANNEL_3
@ EC_CODEC_DMIC_CHANNEL_7
@ EC_CODEC_DMIC_CHANNEL_COUNT
@ EC_CODEC_DMIC_CHANNEL_4
@ USB_PD_CTRL_MUX_NO_CHANGE
@ EC_CODEC_CAP_WOV_LANG_SHM
@ EC_CODEC_CAP_WOV_AUDIO_SHM
#define FP_CONTEXT_TAG_BYTES
@ USB_PD_CTRL_ROLE_FORCE_SINK
@ USB_PD_CTRL_ROLE_FREEZE
@ USB_PD_CTRL_ROLE_NO_CHANGE
@ USB_PD_CTRL_ROLE_FORCE_SOURCE
@ USB_PD_CTRL_ROLE_TOGGLE_ON
@ USB_PD_CTRL_ROLE_TOGGLE_OFF
@ USB_ALLOW_SUSPEND_CHARGE
@ USB_DISALLOW_SUSPEND_CHARGE
@ CHIPSET_RESET_BOARD_CUSTOM
@ CHIPSET_RESET_HANG_REBOOT
@ CHIPSET_RESET_KB_WARM_REBOOT
@ CHIPSET_SHUTDOWN_BATTERY_CRIT
@ CHIPSET_SHUTDOWN_BOARD_CUSTOM
@ CHIPSET_SHUTDOWN_THERMAL
@ CHIPSET_RESET_DBG_WARM_REBOOT
@ CHIPSET_SHUTDOWN_CONSOLE_CMD
@ CHIPSET_SHUTDOWN_BUTTON
@ CHIPSET_RESET_KB_SYSRESET
@ CHIPSET_SHUTDOWN_BATTERY_INHIBIT
@ CHIPSET_RESET_CONSOLE_CMD
@ CHIPSET_RESET_AP_WATCHDOG
@ CHIPSET_SHUTDOWN_POWERFAIL
@ EC_REBOOT_HIBERNATE_CLEAR_AP_OFF
#define SB_FW_UPDATE_CMD_STATUS_SIZE
@ EC_CODEC_I2S_RX_SUBCMD_COUNT
@ EC_CODEC_I2S_RX_SET_SAMPLE_DEPTH
@ EC_CODEC_I2S_RX_SET_DAIFMT
@ EC_CODEC_I2S_RX_DISABLE
@ EC_CODEC_I2S_RX_SET_BCLK
@ EC_DEVICE_EVENT_PARAM_SET_ENABLED_EVENTS
@ EC_DEVICE_EVENT_PARAM_GET_CURRENT_EVENTS
@ EC_DEVICE_EVENT_PARAM_GET_ENABLED_EVENTS
@ EC_CHIP_TYPE_CBI_EEPROM
@ EC_MKBP_EVENT_HOST_EVENT
@ EC_MKBP_EVENT_CEC_MESSAGE
@ EC_MKBP_EVENT_DP_ALT_MODE_ENTERED
@ EC_MKBP_EVENT_ONLINE_CALIBRATION
@ EC_MKBP_EVENT_CEC_EVENT
@ EC_MKBP_EVENT_SENSOR_FIFO
@ EC_MKBP_EVENT_FINGERPRINT
@ EC_MKBP_EVENT_HOST_EVENT64
@ EC_MKBP_EVENT_KEY_MATRIX
@ POWER_SOURCE_AC_BATTERY
#define VBOOT2_KEY_ID_BYTES
#define EC_VBNV_BLOCK_SIZE
#define SB_FW_UPDATE_CMD_INFO_SIZE
#define BUILD_ASSERT(_cond)
#define FP_CONTEXT_TPM_BYTES
#define FP_CONTEXT_ENCRYPTION_SALT_BYTES
@ MOTIONSENSE_ORIENTATION_UNKNOWN
@ MOTIONSENSE_ORIENTATION_PORTRAIT
@ MOTIONSENSE_ORIENTATION_UPSIDE_DOWN_LANDSCAPE
@ MOTIONSENSE_ORIENTATION_UPSIDE_DOWN_PORTRAIT
@ MOTIONSENSE_ORIENTATION_LANDSCAPE
@ MOTIONSENSE_ACTIVITY_RESERVED
@ MOTIONSENSE_ACTIVITY_ORIENTATION
@ MOTIONSENSE_ACTIVITY_BODY_DETECTION
@ MOTIONSENSE_ACTIVITY_DOUBLE_TAP
@ MOTIONSENSE_ACTIVITY_SIG_MOTION
@ EC_CODEC_GET_CAPABILITIES
@ USB_CHARGE_MODE_DCP_SHORT
@ USB_CHARGE_MODE_ENABLED
@ USB_CHARGE_MODE_DEFAULT
@ USB_CHARGE_MODE_DISABLED
#define FP_CONTEXT_NONCE_BYTES
@ CEC_CMD_LOGICAL_ADDRESS
#define EC_REGULATOR_NAME_MAX_LEN
#define FP_CONTEXT_USERID_WORDS
@ USB_CHG_TYPE_PROPRIETARY
ec_config_power_button_flags
@ EC_POWER_BUTTON_ENABLE_PULSE
@ FLASH_ERASE_SECTOR_ASYNC
@ MOTIONSENSE_CHIP_L3GD20H
@ MOTIONSENSE_CHIP_LSM6DS0
@ MOTIONSENSE_CHIP_ICM426XX
@ MOTIONSENSE_CHIP_LSM6DS3
@ MOTIONSENSE_CHIP_LSM6DSM
@ MOTIONSENSE_CHIP_BMA422
@ MOTIONSENSE_CHIP_SI1141
@ MOTIONSENSE_CHIP_TCS3400
@ MOTIONSENSE_CHIP_LSM6DSO
@ MOTIONSENSE_CHIP_BH1730
@ MOTIONSENSE_CHIP_BMI260
@ MOTIONSENSE_CHIP_LIS2MDL
@ MOTIONSENSE_CHIP_LIS2DW12
@ MOTIONSENSE_CHIP_BMI323
@ MOTIONSENSE_CHIP_LIS2DE
@ MOTIONSENSE_CHIP_OPT3001
@ MOTIONSENSE_CHIP_LIS2DH
@ MOTIONSENSE_CHIP_SI1142
@ MOTIONSENSE_CHIP_LIS2DWL
@ MOTIONSENSE_CHIP_LNG2DM
@ MOTIONSENSE_CHIP_BMP280
@ MOTIONSENSE_CHIP_BMA255
@ MOTIONSENSE_CHIP_ICM42607
@ MOTIONSENSE_CHIP_BMI160
@ MOTIONSENSE_CHIP_SI1143
@ MOTIONSENSE_CHIP_CM32183
@ MOTIONSENSE_CHIP_LIS2DS
@ MOTIONSENSE_CHIP_BMI220
@ EC_SB_FW_UPDATE_PROTECT
@ EC_SB_FW_UPDATE_PREPARE
ec_pd_try_power_role_caps
@ EC_PD_TRY_POWER_ROLE_NONE
@ EC_PD_TRY_POWER_ROLE_SINK
@ EC_PD_TRY_POWER_ROLE_SOURCE
@ EC_PWM_TYPE_DISPLAY_LIGHT
@ EC_LED_ID_RECOVERY_HW_REINIT_LED
@ EC_LED_ID_SYSRQ_DEBUG_LED
@ CHARGE_CONTROL_DISCHARGE
@ EC_MKBP_CEC_SEND_FAILED
@ EC_VBOOT_HASH_TYPE_SHA256
ec_battery_vendor_param_mode
@ BATTERY_VENDOR_PARAM_MODE_GET
@ BATTERY_VENDOR_PARAM_MODE_SET
@ MOTIONSENSE_TYPE_ACTIVITY
@ MOTIONSENSE_TYPE_LIGHT_RGB
#define SB_FW_UPDATE_CMD_WRITE_BLOCK_SIZE
#define EC_PSTORE_SIZE_MAX
#define EC_REGULATOR_VOLTAGE_MAX_COUNT
#define FP_POSITIVE_MATCH_SECRET_BYTES
@ EC_FEATURE_MOTION_SENSE
@ EC_FEATURE_BKLIGHT_SWITCH
@ EC_FEATURE_TYPEC_MUX_REQUIRE_AP_ACK
@ EC_FEATURE_SMART_BATTERY
@ EC_FEATURE_HOST_EVENT64
@ EC_FEATURE_USBC_SS_MUX_VIRTUAL
@ EC_FEATURE_MOTION_SENSE_TIGHT_TIMESTAMPS
@ EC_FEATURE_DEVICE_EVENT
@ EC_FEATURE_UNIFIED_WAKE_MASKS
@ EC_FEATURE_S4_RESIDENCY
@ EC_FEATURE_TYPEC_REQUIRE_AP_MODE_ENTRY
@ EC_FEATURE_REFINED_TABLET_MODE_HYSTERESIS
@ EC_FEATURE_MOTION_SENSE_FIFO
#define __ec_todo_unpacked
@ EC_RES_INVALID_HEADER_VERSION
@ EC_RES_INVALID_CHECKSUM
@ EC_RES_INVALID_HEADER_CRC
@ EC_RES_REQUEST_TRUNCATED
@ EC_RES_INVALID_DATA_CRC
@ EC_RES_MAX
Force enum to be 16 bits.
@ EC_RES_INVALID_RESPONSE
@ EC_RES_RESPONSE_TOO_BIG
@ EC_CODEC_I2S_RX_DAIFMT_RIGHT_J
@ EC_CODEC_I2S_RX_DAIFMT_LEFT_J
@ EC_CODEC_I2S_RX_DAIFMT_I2S
@ EC_CODEC_I2S_RX_DAIFMT_COUNT
#define EC_VSTORE_SLOT_SIZE
@ TYPEC_CONTROL_COMMAND_TBT_UFP_REPLY
@ TYPEC_CONTROL_COMMAND_EXIT_MODES
@ TYPEC_CONTROL_COMMAND_CLEAR_EVENTS
@ TYPEC_CONTROL_COMMAND_ENTER_MODE
@ TYPEC_TBT_UFP_REPLY_ACK
@ TYPEC_TBT_UFP_REPLY_NAK
@ USB_PD_PORT_POWER_DISCONNECTED
@ USB_PD_PORT_POWER_SOURCE
@ USB_PD_PORT_POWER_SINK_NOT_CHARGING
@ EC_PD_PORT_LOCATION_FRONT
@ EC_PD_PORT_LOCATION_RIGHT
@ EC_PD_PORT_LOCATION_UNKNOWN
@ EC_PD_PORT_LOCATION_RIGHT_BACK
@ EC_PD_PORT_LOCATION_BACK_RIGHT
@ EC_PD_PORT_LOCATION_LEFT
@ EC_PD_PORT_LOCATION_LEFT_BACK
@ EC_PD_PORT_LOCATION_LEFT_FRONT
@ EC_PD_PORT_LOCATION_BACK
@ EC_PD_PORT_LOCATION_BACK_LEFT
@ EC_PD_PORT_LOCATION_RIGHT_FRONT
@ EC_CODEC_SHM_TYPE_SYSTEM_RAM
@ EC_CODEC_SHM_TYPE_EC_RAM
#define EC_PORT80_SIZE_MAX
@ EC_HOST_EVENT_ACTIVE_WAKE_MASK
@ EC_HOST_EVENT_ALWAYS_REPORT_MASK
@ EC_HOST_EVENT_LAZY_WAKE_MASK_S3
@ EC_HOST_EVENT_LAZY_WAKE_MASK_S0IX
@ EC_HOST_EVENT_LAZY_WAKE_MASK_S5
@ LIGHTBAR_CMD_SET_PARAMS_V2_BRIGHTNESS
@ LIGHTBAR_CMD_SET_PARAMS_V2_THRESHOLDS
@ LIGHTBAR_CMD_SET_PARAMS_V0
@ LIGHTBAR_CMD_SET_PARAMS_V2_OSCILLATION
@ LIGHTBAR_CMD_GET_PARAMS_V2_TAP
@ LIGHTBAR_CMD_GET_PARAMS_V2_COLORS
@ LIGHTBAR_CMD_SET_BRIGHTNESS
@ LIGHTBAR_CMD_GET_PARAMS_V2_THRESHOLDS
@ LIGHTBAR_CMD_GET_BRIGHTNESS
@ LIGHTBAR_CMD_GET_PARAMS_V2_BRIGHTNESS
@ LIGHTBAR_CMD_GET_PARAMS_V2_TIMING
@ LIGHTBAR_CMD_GET_PARAMS_V0
@ LIGHTBAR_CMD_GET_PARAMS_V2_OSCILLATION
@ LIGHTBAR_CMD_MANUAL_SUSPEND_CTRL
@ LIGHTBAR_CMD_SET_PARAMS_V2_TAP
@ LIGHTBAR_CMD_SET_PARAMS_V2_COLORS
@ LIGHTBAR_CMD_SET_PARAMS_V1
@ LIGHTBAR_CMD_SET_PROGRAM
@ LIGHTBAR_CMD_GET_PARAMS_V1
@ LIGHTBAR_CMD_SET_PARAMS_V2_TIMING
@ EC_DEVICE_EVENT_TRACKPAD
@ EC_CODEC_SHM_ID_WOV_LANG
@ EC_CODEC_SHM_ID_WOV_AUDIO
@ EC_PCHG_UPDATE_CMD_WRITE
@ EC_PCHG_UPDATE_CMD_OPEN
@ EC_PCHG_UPDATE_CMD_RESET_TO_NORMAL
@ EC_PCHG_UPDATE_CMD_COUNT
@ EC_PCHG_UPDATE_CMD_CLOSE
@ SYSTEM_REBOOT_AT_SHUTDOWN
@ SYSTEM_IN_MANUAL_RECOVERY
@ SYSTEM_JUMPED_TO_CURRENT_IMAGE
#define __ec_align_offset1
@ TYPEC_PARTNER_SOP_PRIME
@ KEYBOARD_ID_UNSUPPORTED
@ KEYBOARD_BUTTON_CAPSENSE_7
@ KEYBOARD_BUTTON_CAPSENSE_5
@ KEYBOARD_BUTTON_CAPSENSE_6
@ KEYBOARD_BUTTON_CAPSENSE_8
@ KEYBOARD_BUTTON_VOLUME_UP
@ KEYBOARD_BUTTON_CAPSENSE_3
@ KEYBOARD_BUTTON_CAPSENSE_1
@ KEYBOARD_BUTTON_VOLUME_DOWN
@ KEYBOARD_BUTTON_RECOVERY
@ KEYBOARD_BUTTON_CAPSENSE_4
@ KEYBOARD_BUTTON_CAPSENSE_2
ec_mkbp_event_mask_action
@ CS_PARAM_DEBUG_SEEMS_DISCONNECTED
@ CS_PARAM_DEBUG_SEEMS_DEAD
@ CS_PARAM_DEBUG_MANUAL_MODE
@ CS_PARAM_DEBUG_MANUAL_CURRENT
@ CS_PARAM_DEBUG_CTL_MODE
@ CS_PARAM_DEBUG_BATT_REMOVED
@ CS_PARAM_CUSTOM_PROFILE_MAX
@ CS_PARAM_CUSTOM_PROFILE_MIN
@ CS_PARAM_DEBUG_MANUAL_VOLTAGE
@ CS_PARAM_CHG_INPUT_CURRENT
@ FP_CAPTURE_SIMPLE_IMAGE
@ FP_CAPTURE_QUALITY_TEST
@ FP_CAPTURE_VENDOR_FORMAT
unsigned long long uint64_t
struct ec_host_request - Version 3 request from host.
struct ec_host_response - Version 3 response from EC.
struct ec_lpc_host_args - Arguments at EC_LPC_ADDR_HOST_ARGS @flags: The host argument flags.
uint16_t output_settle_us
uint16_t min_post_scan_delay_us
uint16_t debounce_down_us
struct ec_params_battery_dynamic_info - Battery dynamic info parameters @index: Battery index.
struct ec_params_battery_static_info - Battery static info parameters @index: Battery index.
struct ec_params_cec_get - CEC parameters get @cmd: parameter type, can be CEC_CMD_ENABLE or CEC_CMD_...
struct ec_params_cec_set - CEC parameters set @cmd: parameter type, can be CEC_CMD_ENABLE or CEC_CMD_...
struct ec_params_cec_write - Message to write to the CEC bus @msg: message content to write to the CE...
uint8_t msg[MAX_CEC_MSG_LEN]
struct ec_params_charge_control::@138 sustain_soc
struct ec_params_charge_state::@141::__ec_todo_unpacked set_param
struct ec_params_charge_state::@141::__ec_todo_unpacked get_param
struct ec_params_charger_control - Charger control parameters @max_current: Charger current (mA).
struct ec_params_flash_erase_v1 - Parameters for the flash erase command, v1.
struct ec_params_flash_erase params
struct ec_params_flash_erase - Parameters for the flash erase command, v0.
struct ec_params_flash_protect - Parameters for the flash protect command.
struct ec_params_flash_read - Parameters for the flash read command.
struct ec_params_flash_region_info - Parameters for the flash region info command.
struct ec_params_flash_select - Parameters for the flash select command.
struct ec_params_flash_write - Parameters for the flash write command.
uint8_t action
enum fp_context_action
uint32_t userid[FP_CONTEXT_USERID_WORDS]
uint8_t reserved[3]
padding for alignment
uint32_t userid[FP_CONTEXT_USERID_WORDS]
uint8_t seed[FP_CONTEXT_TPM_BYTES]
struct ec_params_get_cmd_versions_v1 - Parameters for the get command versions (v1) @cmd: Command to ...
struct ec_params_get_cmd_versions - Parameters for the get command versions.
struct ec_params_gpio_get_v1::@134::__ec_align1 get_info
struct ec_params_gpio_get_v1::@134::__ec_align1 get_value_by_name
uint16_t host_event_timeout_msec
uint16_t warm_reboot_timeout_msec
struct ec_params_hello - Parameters to the hello command.
uint16_t sleep_timeout_ms
struct ec_params_host_sleep_event_v1::@145::@147 suspend_params
union ec_params_i2c_control::@175 cmd_params
struct ec_params_i2c_passthru_msg msg[]
struct ec_params_keyscan_seq_ctrl::@130::__ec_todo_unpacked add
struct ec_params_keyscan_seq_ctrl::@130::__ec_align1 collect
struct ec_params_keyscan_seq_ctrl::@130::__ec_align1 status
uint8_t brightness[EC_LED_COLOR_COUNT]
struct ec_params_lightbar::@110::__ec_todo_unpacked set_brightness
struct lightbar_params_v2_thresholds set_v2par_thlds
struct lightbar_params_v2_colors set_v2par_colors
struct lightbar_params_v1 set_params_v1
struct ec_params_lightbar::@110::__ec_todo_unpacked demo
struct lightbar_params_v2_brightness set_v2par_bright
struct ec_params_lightbar::@110::__ec_todo_unpacked set_rgb
struct ec_params_lightbar::@110::__ec_todo_unpacked get_rgb
struct lightbar_params_v0 set_params_v0
struct ec_params_lightbar::@110::__ec_todo_unpacked manual_suspend_ctrl
struct lightbar_params_v2_timing set_v2par_timing
struct lightbar_params_v2_oscillation set_v2par_osc
struct lightbar_params_v2_tap set_v2par_tap
struct lightbar_program set_program
struct ec_params_lightbar::@110::__ec_todo_unpacked seq
struct ec_mkbp_config config
struct ec_params_motion_sense::@118::__ec_todo_unpacked sensor_odr
struct ec_params_motion_sense::@118::__ec_todo_unpacked info
struct ec_params_motion_sense::@118::__ec_todo_unpacked fifo_flush
struct ec_params_motion_sense::@118::__ec_todo_unpacked perform_calib
struct ec_params_motion_sense::@118::__ec_todo_packed sensor_scale
struct ec_params_motion_sense::@118::__ec_todo_packed spoof
struct ec_params_motion_sense::@118::__ec_todo_unpacked info_3
struct ec_params_motion_sense::@118::__ec_todo_packed sensor_offset
struct ec_params_motion_sense::@118::__ec_todo_unpacked fifo_int_enable
struct ec_params_motion_sense::@118::__ec_todo_unpacked list_activities
struct ec_params_motion_sense::@118::__ec_todo_unpacked get_activity
struct ec_params_motion_sense::@118::__ec_todo_unpacked sensor_range
struct ec_params_motion_sense::@118::__ec_todo_unpacked ec_rate
struct ec_params_motion_sense::@118::__ec_todo_unpacked tablet_mode_threshold
struct ec_params_motion_sense::@118::__ec_todo_unpacked info_4
struct ec_motion_sense_activity set_activity
struct ec_params_motion_sense::@118::__ec_todo_unpacked online_calib_read
struct ec_params_motion_sense::@118::__ec_todo_unpacked kb_wake_angle
struct ec_params_motion_sense::@118::__ec_todo_unpacked dump
struct ec_params_motion_sense::@118::__ec_todo_unpacked fifo_read
struct ec_params_port80_read::@126::__ec_todo_unpacked read_buffer
uint8_t data[EC_PSTORE_SIZE_MAX]
uint16_t num_rand_bytes
num random bytes to generate
struct ec_params_read_memmap - Parameters for the read memory map command.
struct ec_params_read_test - Parameters for the read test command.
uint32_t reboot_ap_at_g3_delay
uint8_t data[SB_FW_UPDATE_CMD_WRITE_BLOCK_SIZE]
struct ec_params_sb_fw_update::@151::__ec_align4 write
struct ec_sb_fw_update_header hdr
struct discharge_rate drate
struct ec_thermal_config cfg
uint32_t clear_events_mask
uint8_t dev_rw_hash[PD_RW_HASH_SIZE]
uint8_t block[EC_VBNV_BLOCK_SIZE]
uint8_t data[EC_VSTORE_SLOT_SIZE]
struct ec_response_battery_dynamic_info - Battery dynamic info response @actual_voltage: Battery volt...
int16_t remaining_capacity
struct ec_response_battery_static_info_v1 - hostcmd v1 battery static info Equivalent to struct ec_re...
char manufacturer_ext[12]
struct ec_response_battery_static_info - Battery static info response @design_capacity: Battery Desig...
char type[EC_COMM_TEXT_MAX]
char serial[EC_COMM_TEXT_MAX]
char model[EC_COMM_TEXT_MAX]
char manufacturer[EC_COMM_TEXT_MAX]
struct ec_response_board_version - Response to the board version command.
struct ec_response_cec_get - CEC parameters get response @val: in case cmd was CEC_CMD_ENABLE,...
struct ec_response_charge_control::@139 sustain_soc
struct ec_response_charge_state::@143::__ec_align4 get_param
struct ec_response_charge_state::@143::__ec_align4 get_state
struct ec_response_flash_info_1 - Response to the flash info v1 command.
uint32_t write_block_size
uint32_t erase_block_size
uint32_t write_ideal_size
uint32_t protect_block_size
struct ec_flash_bank banks[0]
uint32_t write_ideal_size
struct ec_response_flash_info - Response to the flash info command.
uint32_t erase_block_size
uint32_t protect_block_size
uint32_t write_block_size
struct ec_response_flash_protect - Response to the flash protect command.
uint32_t template_version
uint8_t positive_match_secret[FP_POSITIVE_MATCH_SECRET_BYTES]
struct ec_response_fp_stats::@177 overall_t0
uint32_t matching_time_us
uint8_t timestamps_invalid
struct ec_response_get_cmd_version - Response to the get command versions.
struct ec_response_get_comms_status - Response to the get comms status command.
union ec_response_get_next_data_v1 data
union ec_response_get_next_data data
uint8_t pd_try_power_role_cap
uint8_t pd_power_role_cap
struct ec_response_get_protocol_info - Response to the get protocol info.
uint32_t protocol_versions
uint16_t max_response_packet_size
uint16_t max_request_packet_size
struct ec_response_get_version_v1 - Response to the v1 get version command.
char version_string_ro[32]
char version_string_rw[32]
struct ec_response_get_version - Response to the v0 get version command.
char version_string_ro[32]
char version_string_rw[32]
struct ec_response_gpio_get_v1::@136::__ec_align1 get_count
struct ec_response_gpio_get_v1::@136::__ec_todo_unpacked get_info
struct ec_response_gpio_get_v1::@136::__ec_align1 get_value_by_name
struct ec_response_hello - Response to the hello command.
uint32_t sleep_transitions
struct ec_response_host_sleep_event_v1::@148::@150 resume_response
union ec_response_i2c_control::@176 cmd_response
uint8_t action_keys[MAX_TOP_ROW_KEYS]
uint8_t brightness_range[EC_LED_COLOR_COUNT]
struct ec_response_lightbar::@112::__ec_todo_unpacked::__ec_todo_unpacked vals[23]
struct ec_response_lightbar::@112::__ec_todo_unpacked get_rgb
struct lightbar_params_v2_oscillation get_params_v2_osc
struct ec_response_lightbar::@112::__ec_todo_unpacked dump
struct lightbar_params_v1 get_params_v1
struct lightbar_params_v2_timing get_params_v2_timing
struct lightbar_params_v2_thresholds get_params_v2_thlds
struct lightbar_params_v2_colors get_params_v2_colors
struct ec_response_lightbar::@112::__ec_todo_unpacked get_brightness
struct lightbar_params_v2_tap get_params_v2_tap
struct lightbar_params_v2_brightness get_params_v2_bright
struct lightbar_params_v0 get_params_v0
struct ec_response_lightbar::@112::__ec_todo_unpacked get_seq
struct ec_response_lightbar::@112::__ec_todo_unpacked get_demo
struct ec_response_lightbar::@112::__ec_todo_unpacked version
struct ec_i2c_info i2c_info
struct ec_mkbp_config config
struct ec_response_motion_sensor_data data[0]
struct ec_response_motion_sense::@124::__ec_todo_unpacked spoof
struct ec_response_motion_sense::@124::__ec_todo_unpacked tablet_mode_threshold
struct ec_response_motion_sense::@124::__ec_todo_packed list_activities
struct ec_response_motion_sense::@124::__ec_todo_unpacked get_activity
struct ec_response_motion_sense_fifo_data fifo_read
struct ec_response_online_calibration_data online_calib_read
struct ec_response_motion_sensor_data data
struct ec_response_motion_sensor_data sensor[0]
struct ec_response_motion_sense::@124::__ec_todo_unpacked sensor_offset
struct ec_response_motion_sense::@124::__ec_todo_unpacked dump
struct ec_response_motion_sense::@124::__ec_todo_unpacked sensor_range
struct ec_response_motion_sense::@124::__ec_todo_unpacked info_3
struct ec_response_motion_sense_fifo_info fifo_info fifo_flush
struct ec_response_motion_sense::@124::__ec_todo_unpacked sensor_odr
struct ec_response_motion_sense::@124::__ec_todo_unpacked lid_angle
struct ec_response_motion_sense::@124::__ec_align4 info_4
struct ec_response_motion_sense::@124::__ec_todo_unpacked info
struct ec_response_motion_sense::@124::__ec_todo_unpacked perform_calib
uint32_t fifo_max_event_count
struct ec_response_motion_sense::@124::__ec_todo_unpacked kb_wake_angle
struct ec_response_motion_sense::@124::__ec_todo_unpacked sensor_scale
struct ec_response_motion_sense::@124::__ec_todo_unpacked ec_rate
struct ec_response_motion_sense::@124::__ec_todo_unpacked fifo_int_enable
struct ec_response_activity_data activity_data
int16_t data[3]
The calibration values.
uint8_t battery_percentage
uint32_t dropped_event_count
uint64_t fw_version_number
uint64_t min_req_fw_version_number
uint8_t fw_version_string[8]
uint8_t min_req_fw_version_string[8]
uint64_t fw_version_number
uint8_t fw_version_string[8]
int8_t active_charge_port
struct ec_response_port80_read::@128::__ec_todo_unpacked get_info
struct ec_response_port80_read::@128::__ec_todo_unpacked data
uint16_t codes[EC_PORT80_SIZE_MAX]
struct ec_response_power_info_v1::@140 intel
uint8_t batt_dbpt_sus_peak_power
uint8_t system_power_source
uint8_t ac_adapter_100pct
uint8_t batt_dbpt_max_peak_power
uint8_t batt_dbpt_support_level
uint8_t nominal_charger_eff
struct ec_response_proto_version - Response to the proto version command.
uint8_t rand[0]
generated random numbers
struct ec_response_read_test - Response to the read test command.
char name[EC_REGULATOR_NAME_MAX_LEN]
uint16_t voltages_mv[EC_REGULATOR_VOLTAGE_MAX_COUNT]
int32_t rollback_min_version
int32_t rw_rollback_version
uint16_t sig_alg
Signature algorithm used by the key (enum vb2_signature_algorithm).
uint16_t hash_alg
Hash digest algorithm used with the key (enum vb2_hash_algorithm).
uint32_t key_version
Key version.
uint8_t key_id[VBOOT2_KEY_ID_BYTES]
Key ID (struct vb2_id).
uint8_t reserved[3]
Alignment padding.
uint8_t data[SB_FW_UPDATE_CMD_INFO_SIZE]
struct ec_response_sb_fw_update::@153::__ec_align1 status
struct ec_response_sb_fw_update::@153::__ec_align1 info
struct smart_discharge_zone dzone
struct discharge_rate drate
uint32_t reset_flags
EC_RESET_FLAG_* flags.
uint32_t current_image
enum ec_current_image
uint32_t flags
enum sysinfo_flags
uint32_t discovery_vdo[6]
struct svid_mode_info svids[0]
uint32_t sink_cap_pdos[7]
uint16_t sop_prime_revision
uint32_t source_cap_pdos[7]
uint32_t ap_resets_since_ec_boot
struct ec_response_uptime_info::ap_reset_log_entry recent_ap_reset[4]
uint32_t time_since_ec_boot_ms
struct usb_chg_measures meas
uint8_t block[EC_VBNV_BLOCK_SIZE]
uint8_t data[EC_VSTORE_SLOT_SIZE]
struct ec_collect_item item[0]
struct ec_result_keyscan_seq_ctrl::@132::__ec_todo_unpacked collect
uint32_t temp_host_release[EC_TEMP_THRESH_COUNT]
uint32_t temp_host[EC_TEMP_THRESH_COUNT]
uint8_t s3_idx[2][LB_BATTERY_LEVELS]
int32_t s0a_tick_delay[2]
uint8_t bright_bl_off_fixed[2]
uint8_t bright_bl_on_min[2]
uint8_t battery_threshold[LB_BATTERY_LEVELS - 1]
uint8_t bright_bl_on_max[2]
uint8_t s0_idx[2][LB_BATTERY_LEVELS]
uint8_t battery_threshold[LB_BATTERY_LEVELS - 1]
int32_t s0a_tick_delay[2]
uint8_t s0_idx[2][LB_BATTERY_LEVELS]
uint8_t bright_bl_off_fixed[2]
uint8_t bright_bl_on_min[2]
uint8_t bright_bl_on_max[2]
uint8_t s3_idx[2][LB_BATTERY_LEVELS]
uint8_t bright_bl_off_fixed[2]
uint8_t bright_bl_on_min[2]
uint8_t bright_bl_on_max[2]
uint8_t s3_idx[2][LB_BATTERY_LEVELS]
uint8_t s0_idx[2][LB_BATTERY_LEVELS]
uint8_t battery_threshold[LB_BATTERY_LEVELS - 1]
int32_t s0a_tick_delay[2]
uint8_t data[EC_LB_PROG_LEN]